From 75cfeb40afdd9e6c9df53d8483ccac8f7f35cca6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Sep 2007 19:48:28 +0000 Subject: [PATCH] =?UTF-8?q?Validation=20du=20cas=20d'utilisation=20UCIN02:?= =?UTF-8?q?=20Facturation=20et=20paiement=20sup=E9rieur=20re=E7u?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/compta/facture.php | 16 +++++++++-- htdocs/discount.class.php | 50 +++++++++++++++++++++++++---------- htdocs/html.form.class.php | 8 ++++-- htdocs/langs/en_US/bills.lang | 1 + htdocs/langs/fr_FR/bills.lang | 1 + 5 files changed, 58 insertions(+), 18 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index c87ffc595db..191ccd164bb 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1297,7 +1297,7 @@ if ($_GET['action'] == 'create') if ($soc->remise_client) print $langs->trans("CompanyHasRelativeDiscount",$soc->remise_client); else print $langs->trans("CompanyHasNoRelativeDiscount"); print '. '; - if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",$absolute_discount,$langs->trans("Currency".$conf->monnaie)); + if ($absolute_discount) print $langs->trans("CompanyHasAbsoluteDiscount",price($absolute_discount),$langs->trans("Currency".$conf->monnaie)); else print $langs->trans("CompanyHasNoAbsoluteDiscount"); print '.'; print ''; @@ -1836,7 +1836,19 @@ else print ''; // Reference - print ''; + print ''; + print ''; // Ref client /* diff --git a/htdocs/discount.class.php b/htdocs/discount.class.php index 294f1dfa2d3..9ffe5404234 100644 --- a/htdocs/discount.class.php +++ b/htdocs/discount.class.php @@ -59,15 +59,23 @@ class DiscountAbsolute $this->db = $DB; } - + /** * \brief Charge objet remise depuis la base - * \param rowid id du projet à charger - * \return int <0 si ko, =0 si non trouvé, >0 si ok + * \param rowid id du projet à charger + * \param fk_facture_source fk_facture_source + * \return int <0 si ko, =0 si non trouvé, >0 si ok */ - function fetch($rowid) + function fetch($rowid,$fk_facture_source=0) { - $sql = "SELECT sr.fk_soc,"; + // Check parameters + if (! $rowid && ! $fk_facture_source) + { + $this->error='ErrorBadParameters'; + return -1; + } + + $sql = "SELECT sr.rowid, sr.fk_soc,"; $sql.= " sr.fk_user,"; $sql.= " sr.amount_ht, sr.amount_tva, sr.amount_ttc, sr.tva_tx,"; $sql.= " sr.fk_facture, sr.fk_facture_source, sr.description,"; @@ -75,8 +83,10 @@ class DiscountAbsolute $sql.= " f.facnumber as ref_facture_source"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as sr"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."facture as f ON sr.fk_facture_source = f.rowid"; - $sql.= " WHERE sr.rowid=".$rowid; - + $sql.= " WHERE"; + if ($rowid) $sql.= " sr.rowid=".$rowid; + if ($fk_facture_source) $sql.= " sr.fk_facture_source=".$fk_facture_source; + dolibarr_syslog("DiscountAbsolute::fetch sql=".$sql); $resql = $this->db->query($sql); if ($resql) @@ -85,7 +95,7 @@ class DiscountAbsolute { $obj = $this->db->fetch_object($resql); - $this->id = $rowid; + $this->id = $obj->rowid; $this->fk_soc = $obj->fk_soc; $this->amount_ht = $obj->amount_ht; $this->amount_tva = $obj->amount_tva; @@ -213,21 +223,33 @@ class DiscountAbsolute \param option Sur quoi pointe le lien \return string Chaine avec URL */ - function getNomUrl($withpicto,$option='') + function getNomUrl($withpicto,$option='invoice') { global $langs; $result=''; - $lien = ''; - $lienfin=''; + if ($option == 'invoice') + { + $lien = ''; + $lienfin=''; + $label=$langs->trans("ShowDiscount").': '.$this->ref_facture_source; + $ref=$this->ref_facture_source; + $picto='bill'; + } + if ($option == 'discount') + { + $lien = ''; + $lienfin=''; + $label=$langs->trans("Discount"); + $ref=$langs->trans("Discount"); + $picto='generic'; + } - $picto='bill'; - $label=$langs->trans("ShowDiscount").': '.$this->ref_facture_source; if ($withpicto) $result.=($lien.img_object($label,$picto).$lienfin); if ($withpicto && $withpicto != 2) $result.=' '; - $result.=$lien.$this->ref_facture_source.$lienfin; + $result.=$lien.$ref.$lienfin; return $result; } diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index 58ce9eb921d..6e4c6445150 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -741,7 +741,7 @@ class Form // On recherche les societes $sql = "SELECT re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc,"; - $sql.= " re.description"; + $sql.= " re.description, re.fk_facture_source"; $sql.= " FROM ".MAIN_DB_PREFIX ."societe_remise_except as re"; $sql.= " WHERE fk_soc = ".$socid; if ($filter) $sql.= " AND ".$filter; @@ -760,7 +760,11 @@ class Form { $obj = $this->db->fetch_object($resql); $desc=dolibarr_trunc($obj->description,40); - if ($desc=='(CREDIT_NOTE)') $desc=$langs->trans("CreditNote"); + if ($desc=='(CREDIT_NOTE)') + { + $desc=$langs->trans("CreditNote"); + //$desc.=$obj->fk_facture_source; + } if ($selected > 0 && $selected == $obj->rowid) { diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index baf50d793ef..d5814978973 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -287,6 +287,7 @@ ChequesReceipts=Cheques receipts ChequesArea=Cheques deposits area ChequeDeposits=Cheques deposits Cheques=Cheques +CreditNoteConvertedIntoDiscount=This credit note has been converted into %s # oursin PDF model Of=du diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index a6d89e106fe..e573173b19b 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -287,6 +287,7 @@ ChequesReceipts=Bordereaux de remise de ch ChequesArea=Espace remises de chèques ChequeDeposits=Dépots de chèques Cheques=Chèques +CreditNoteConvertedIntoDiscount=Cet avoir a été converti en %s # oursin PDF model Of=du
'.$langs->trans('Ref').''.$fac->ref.'
'.$langs->trans('Ref').''.$fac->ref; + $discount=new DiscountAbsolute($db); + $result=$discount->fetch(0,$fac->id); + if ($result > 0) + { + print ' ('.$langs->trans("CreditNoteConvertedIntoDiscount",$discount->getNomUrl(1,'discount')).')'; + } + if ($result < 0) + { + dolibarr_print_error('',$discount->error); + } + print '