diff --git a/ChangeLog b/ChangeLog index c7c373ebaaf..3e61b274398 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,7 +8,8 @@ For users: - New: Use new combobox. - New: Add hidden option MAXTABS_IN_CARD. - Fix / Improve : [ bug #1747 ] Remove creation of batch 'Undefined' - +- Add Weighted average price as default price for buying price for margin calculation. Add option + MARGIN_PMP_AS_DEFAULT_BUY_PRICE to replace with first supplier price. For translators: - Update language files. diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index a3cac080ab5..70ac13c79cd 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -483,7 +483,8 @@ jQuery(document).ready(function() { } if (this.id == 'pmpprice') { - if (this.price > 0 && 1 == 1) { defaultkey = this.id; defaultprice = this.price; } + var defaultbuyprice = global->MARGIN_PMP_AS_DEFAULT_BUY_PRICE)?int($conf->global->MARGIN_PMP_AS_DEFAULT_BUY_PRICE):1); ?>; + if (this.price > 0 && 1 == defaultbuyprice) { defaultkey = this.id; defaultprice = this.price; } options += ''; } }); diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php index 907e34f8d35..e14e872a24f 100755 --- a/htdocs/fourn/ajax/getSupplierPrices.php +++ b/htdocs/fourn/ajax/getSupplierPrices.php @@ -28,6 +28,7 @@ if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; $idprod=GETPOST('idprod','int'); @@ -43,8 +44,11 @@ top_httphead(); //print ''."\n"; -if (! empty($idprod)) +if ($idprod > 0) { + $producttmp=new ProductFournisseur($db); + $producttmp->fetch($idprod); + $sql = "SELECT p.rowid, p.label, p.ref, p.price, p.duration,"; $sql.= " pfp.ref_fourn,"; $sql.= " pfp.rowid as idprodfournprice, pfp.price as fprice, pfp.remise_percent, pfp.quantity, pfp.unitprice, pfp.charges, pfp.unitcharges,"; @@ -111,6 +115,7 @@ if (! empty($idprod)) if ($objp->duration) $label .= " - ".$objp->duration; $label = price($price,0,$langs,0,0,-1,$conf->currency)."/".$langs->trans("Unit"); + if ($objp->ref_fourn) $label.=' ('.$objp->ref_fourn.')'; $prices[] = array("id" => $objp->idprodfournprice, "price" => price($price,0,'',0), "label" => $label, "title" => $title); $i++; @@ -121,9 +126,8 @@ if (! empty($idprod)) } // Add price for pmp - $price=123; + $price=$producttmp->pmp; $prices[] = array("id" => 'pmpprice', "price" => $price, "label" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); - } echo json_encode($prices);