From 6b0b975ffda214f73c65a5679c2730025e2400b5 Mon Sep 17 00:00:00 2001 From: ATM-Nicolas Date: Tue, 29 May 2018 10:50:20 +0200 Subject: [PATCH 1/3] FIX : Keep supplier proposal price for supplier order --- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 4eccc21cd93..3edb70b1ed6 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -1430,7 +1430,7 @@ class CommandeFournisseur extends CommonOrder // We use 'none' instead of $fourn_ref, because fourn_ref may not exists anymore. So we will take the first supplier price ok. // If we want a dedicated supplier price, we must provide $fk_prod_fourn_price. $result=$prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc?$this->fk_soc:$this->socid)); // Search on couple $fk_prod_fourn_price/$qty first, then on triplet $qty/$fk_product/$fourn_ref/$this->fk_soc - if ($result > 0) + if ($result > 0 && $origin !== 'supplier_proposal') { $pu = $prod->fourn_pu; // Unit price supplier price set by get_buyprice $ref_supplier = $prod->ref_supplier; // Ref supplier price set by get_buyprice From b65b545e0f498c5bd46d1c3c098ba6ff30410ed4 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Tue, 29 May 2018 16:29:14 +0200 Subject: [PATCH 2/3] add hook on balence pages --- htdocs/compta/recap-compta.php | 47 ++++++++++++++++++---------------- htdocs/fourn/recap-fourn.php | 8 +++--- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/htdocs/compta/recap-compta.php b/htdocs/compta/recap-compta.php index c3231ecccdd..07dfa0d738e 100644 --- a/htdocs/compta/recap-compta.php +++ b/htdocs/compta/recap-compta.php @@ -54,9 +54,12 @@ if (! $sortorder) $sortorder="DESC"; $arrayfields=array( 'f.datef'=>array('label'=>"Date", 'checked'=>1), - //... + //... ); +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('supplierbalencelist','globalcard')); + /* * Actions */ @@ -87,13 +90,13 @@ if ($id > 0) dol_fiche_head($head, 'customer', $langs->trans("ThirdParty"), 0, 'company'); dol_banner_tab($object, 'socid', '', ($user->societe_id?0:1), 'rowid', 'nom', '', '', 0, '', '', 1); dol_fiche_end(); - + if (! empty($conf->facture->enabled) && $user->rights->facture->lire) { // Invoice list print load_fiche_titre($langs->trans("CustomerPreview")); - print ''; + print '
'; print ''; if (! empty($arrayfields['f.datef']['checked'])) print_liste_field_titre($arrayfields['f.datef']['label'],$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); print ''; @@ -103,7 +106,7 @@ if ($id > 0) print ''; print ''; print ''; - + $TData = array(); $TDataSort = array(); @@ -135,10 +138,10 @@ if ($id > 0) continue; } $totalpaye = $fac->getSommePaiement(); - + $userstatic->id=$objf->userid; $userstatic->login=$objf->login; - + $TData[] = array( 'date' => $fac->date, 'link' => $fac->getNomUrl(1), @@ -168,13 +171,13 @@ if ($id > 0) while ($j < $nump) { $objp = $db->fetch_object($resqlp); - + $paymentstatic = new Paiement($db); $paymentstatic->id = $objp->rowid; - + $userstatic->id=$objp->userid; $userstatic->login=$objp->login; - + $TData[] = array( 'date' => $db->jdate($objp->dp), 'link' => $langs->trans("Payment") .' '. $paymentstatic->getNomUrl(1), @@ -199,11 +202,11 @@ if ($id > 0) { dol_print_error($db); } - + if(empty($TData)) { print ''; } else { - + // Sort array by date asort($TDataSort); array_multisort($TData,$TDataSort); @@ -213,37 +216,37 @@ if ($id > 0) $balance += $data1['amount']; $data1['balance'] += $balance; } - + // Reverse array to have last elements on top $TData = dol_sort_array($TData, 'date', $sortorder); - - + + $totalDebit = 0; $totalCredit = 0; - + // Display array foreach($TData as $data) { - + print ''; - + print "\n"; print '\n"; - + print ''; print '\n"; $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0; print '\n"; $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); print '\n"; - + // Author print ''; - + print "\n"; } - + print ''; print ''; print ''; @@ -252,7 +255,7 @@ if ($id > 0) print ''; print "\n"; } - + print "
'.$langs->trans("Element").''.$langs->trans("Balance").''.$langs->trans("Author").'
'.$langs->trans("NoInvoice").'
".dol_print_date($data['date'],'day')."'.$data['link']."'.$data['status'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."'.price($data['balance'])."'; print $data['author']; print '
 '.price($totalDebit).'
"; } } diff --git a/htdocs/fourn/recap-fourn.php b/htdocs/fourn/recap-fourn.php index 470e6c64cc4..fc5821b96f8 100644 --- a/htdocs/fourn/recap-fourn.php +++ b/htdocs/fourn/recap-fourn.php @@ -38,6 +38,8 @@ if ($user->societe_id > 0) } +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('supplierbalencelist','globalcard')); /* * View @@ -67,7 +69,7 @@ if ($socid > 0) // Invoice list print load_fiche_titre($langs->trans("SupplierPreview")); - print ''; + print '
'; $sql = "SELECT s.nom, s.rowid as socid, f.ref_supplier, f.amount, f.datef as df,"; $sql.= " f.paye as paye, f.fk_statut as statut, f.rowid as facid,"; @@ -114,7 +116,7 @@ if ($socid > 0) } $totalpaye = $fac->getSommePaiement(); - + print ''; print "\n"; @@ -182,7 +184,7 @@ if ($socid > 0) { dol_print_error($db); } - + print "
".dol_print_date($fac->date)."
"; } } From e57ceab5de4fad7a54c6f8b613cf0dfdd2ce8857 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 30 May 2018 10:45:06 +0200 Subject: [PATCH 3/3] Update fournisseur.commande.class.php --- htdocs/fourn/class/fournisseur.commande.class.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index 3edb70b1ed6..e84815a828e 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -1430,15 +1430,13 @@ class CommandeFournisseur extends CommonOrder // We use 'none' instead of $fourn_ref, because fourn_ref may not exists anymore. So we will take the first supplier price ok. // If we want a dedicated supplier price, we must provide $fk_prod_fourn_price. $result=$prod->get_buyprice($fk_prod_fourn_price, $qty, $fk_product, 'none', ($this->fk_soc?$this->fk_soc:$this->socid)); // Search on couple $fk_prod_fourn_price/$qty first, then on triplet $qty/$fk_product/$fourn_ref/$this->fk_soc - if ($result > 0 && $origin !== 'supplier_proposal') + if ($result > 0 && $origin == 'commande') // If supplier order created from customer order, we take best supplier price { $pu = $prod->fourn_pu; // Unit price supplier price set by get_buyprice $ref_supplier = $prod->ref_supplier; // Ref supplier price set by get_buyprice // is remise percent not keyed but present for the product we add it if ($remise_percent == 0 && $prod->remise_percent !=0) $remise_percent =$prod->remise_percent; - - } if ($result == 0) // If result == 0, we failed to found the supplier reference price {