From 9cae92f25bb3c1bfda42873550d16653b33deda2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 2 Dec 2007 19:50:58 +0000 Subject: [PATCH] On deplace la methode getCurrentDiscount dans classe des discount --- htdocs/admin/ihm.php | 1 - htdocs/compta/facture.php | 6 ++++++ htdocs/discount.class.php | 28 ++++++++++++++++++++++++++++ htdocs/societe.class.php | 37 ++++++++++++++++++------------------- 4 files changed, 52 insertions(+), 20 deletions(-) diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php index 2ee3618dcff..2f2c18995c8 100644 --- a/htdocs/admin/ihm.php +++ b/htdocs/admin/ihm.php @@ -17,7 +17,6 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ - * $Source$ */ /** diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 604f95c3fcf..4b738f1da01 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -2054,10 +2054,16 @@ else // Already payed print ''.$langs->trans('AlreadyPayed').' :'.price($totalpaye).''.$langs->trans('Currency'.$conf->monnaie).''; + // Facturé print ''.$langs->trans("Billed").' :'.price($fac->total_ttc).''.$langs->trans('Currency'.$conf->monnaie).''; + $resteapayeraffiche=$resteapayer; + // Boucle sur chaque facture avoir appliquee + + + // Payé partiellement 'escompte' if (($fac->statut == 2 || $fac->statut == 3) && $fac->close_code == 'escompte') { diff --git a/htdocs/discount.class.php b/htdocs/discount.class.php index 08b5cdab613..154f454a0a0 100644 --- a/htdocs/discount.class.php +++ b/htdocs/discount.class.php @@ -263,6 +263,34 @@ class DiscountAbsolute } } + + /** + * \brief Renvoie montant TTC des avoirs en cours disponibles + * \param fk_soc Filtre sur une societe + * \param user Filtre sur un user auteur des remises + * \param filter Filtre autre + * \return int <0 si ko, montant avoir sinon + */ + function getCurrentDiscount($company='', $user='',$filter='') + { + $sql = "SELECT SUM(rc.amount_ttc) as amount"; + $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc"; + $sql.= " WHERE (rc.fk_facture IS NULL AND rc.fk_facture_line IS NULL)"; // Available + if (is_object($company)) $sql.= " AND rc.fk_soc = ".$company->id; + if (is_object($user)) $sql.= " AND rc.fk_user = ".$user->id; + if ($filter) $sql.=' AND '.$filter; + + dolibarr_syslog("Discount::getCurrentDiscount sql=".$sql,LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $obj = $this->db->fetch_object($resql); + return $obj->amount; + } + return -1; + } + + /** \brief Renvoie nom clicable (avec eventuellement le picto) \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul diff --git a/htdocs/societe.class.php b/htdocs/societe.class.php index c55260028ac..71eeac3d268 100644 --- a/htdocs/societe.class.php +++ b/htdocs/societe.class.php @@ -954,7 +954,7 @@ class Societe } /** - * \brief Ajoute une remise fixe pour la soci�t� + * \brief Ajoute une remise fixe pour la societe * \param remise Montant de la remise * \param user Utilisateur qui accorde la remise * \param desc Motif de l'avoir @@ -968,6 +968,7 @@ class Societe $remise = price2num($remise); $desc = trim($desc); + // Check parameters if (! $remise > 0) { $this->error=$langs->trans("ErrorWrongValueForParameter","1"); @@ -1005,8 +1006,8 @@ class Societe } /** - * \brief Supprime un avoir (� condition que non affect� � une facture) - * \param id Id de l'avoir � supprimer + * \brief Supprime un avoir (a condition que non affecte a une facture) + * \param id Id de l'avoir a supprimer * \return int <0 si ko, id de l'avoir si ok */ function del_remise_except($id) @@ -1025,28 +1026,26 @@ class Societe /** - * \brief Renvoie montant des avoirs en cours disponibles + * \brief Renvoie montant TTC des avoirs en cours disponibles de la societe * \param user Filtre sur un user auteur des remises * \param filter Filtre autre - * \return int <0 si ko, montant avoir sinon + * \return int <0 if KO, Credit note amount otherwise */ function getCurrentDiscount($user='',$filter='') { - $sql = "SELECT SUM(rc.amount_ht) as amount"; - $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc"; - $sql.= " WHERE rc.fk_soc =". $this->id; - if (is_object($user)) $sql.= " AND rc.fk_user = ".$user->id; - $sql.= " AND (rc.fk_facture IS NULL AND rc.fk_facture_line IS NULL)"; - if ($filter) $sql.=' AND '.$filter; + require_once(DOL_DOCUMENT_ROOT.'/discount.class.php'); - dolibarr_syslog("Societe::getCurrentDiscount sql=".$sql,LOG_DEBUG); - $resql=$this->db->query($sql); - if ($resql) - { - $obj = $this->db->fetch_object($resql); - return $obj->amount; - } - return -1; + $discountstatic=new DiscountAbsolute($this->db); + $result=$discountstatic->getCurrentDiscount($this,$user,$filter); + if ($result >= 0) + { + return $result; + } + else + { + $this->error=$discount->error; + return -1; + } }