diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 205ed471673..d61804f1c0a 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2344,13 +2344,13 @@ class Form * @param string $htmlname Name of HTML field * @return string|null */ - function select_product_fourn_price($productid,$htmlname='productfournpriceid') + function select_product_fourn_price($productid, $selected_supplier='', $htmlname='productfournpriceid') { global $langs,$conf; $langs->load('stocks'); - $sql = "SELECT p.rowid, p.label, p.ref, p.price, p.duration,"; + $sql = "SELECT p.rowid, p.label, p.ref, p.price, p.duration, pfp.fk_soc,"; $sql.= " pfp.ref_fourn, pfp.rowid as idprodfournprice, pfp.price as fprice, pfp.quantity, pfp.unitprice,"; $sql.= " pfp.fk_supplier_price_expression, pfp.fk_product, pfp.tva_tx, s.nom as name"; $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; @@ -2387,7 +2387,7 @@ class Form $opt = ' 0 && $objp->fk_soc == $selected_supplier)) { $opt .= ' selected'; } $opt.= '>'.$objp->name.' - '.$objp->ref_fourn.' - '; diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index e256cfeaab8..bb447a8dfc0 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -3,6 +3,7 @@ * Copyright (C) 2013-2016 Laurent Destaileur * Copyright (C) 2014 Regis Houssin * Copyright (C) 2016 Juanjo Menent + * Copyright (C) 2016 ATM Consulting * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -54,6 +55,7 @@ $salert = GETPOST('salert', 'alpha'); $mode = GETPOST('mode','alpha'); $fourn_id = GETPOST('fourn_id','int'); +$fk_supplier = GETPOST('fk_supplier','int'); $fk_entrepot = GETPOST('fk_entrepot','int'); $texte = ''; @@ -269,6 +271,9 @@ $sql.= ' SUM('.$db->ifsql("s.reel IS NULL", "0", "s.reel").') as stock_physique' $sql.= ' FROM ' . MAIN_DB_PREFIX . 'product as p'; $sql.= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'product_stock as s'; $sql.= ' ON p.rowid = s.fk_product'; +if($fk_supplier > 0) { + $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price pfp ON (pfp.fk_product = p.rowid AND pfp.fk_soc = '.$fk_supplier.')'; +} if(!empty($conf->global->STOCK_ALLOW_ADD_LIMIT_STOCK_BY_WAREHOUSE) && $fk_entrepot > 0) { $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_warehouse_properties pse ON (p.rowid = pse.fk_product AND pse.fk_entrepot = '.$fk_entrepot.')'; } @@ -406,23 +411,26 @@ if ($usevirtualstock == 1) { print $langs->trans("CurentSelectionMode").': '; print $langs->trans("CurentlyUsingVirtualStock").' - '; - print ''.$langs->trans("UsePhysicalStock").''; + print ''.$langs->trans("UsePhysicalStock").''; } if ($usevirtualstock == 0) { print $langs->trans("CurentSelectionMode").': '; print $langs->trans("CurentlyUsingPhysicalStock").' - '; - print ''.$langs->trans("UseVirtualStock").''; + print ''.$langs->trans("UseVirtualStock").''; } print ''."\n"; print ''; -print ''; +print ''; print ''; print ''; print ''; print ''; -print $formproduct->selectWarehouses($fk_entrepot, 'fk_entrepot', '', 1); +print $langs->trans('Warehouse').' : '.$formproduct->selectWarehouses($fk_entrepot, 'fk_entrepot', '', 1); +print ''; +print $langs->trans('Supplier').' : '.$form->select_company($fk_supplier, 'fk_supplier', 'fournisseur=1', 1); +print ''; print ' '; print ''; @@ -431,6 +439,7 @@ if ($sref || $snom || $sall || $salert || GETPOST('search', 'alpha')) { $filters .= '&sall=' . $sall; $filters .= '&salert=' . $salert; $filters .= '&mode=' . $mode; + $filters .= '&fk_supplier=' . $fk_supplier; $filters .= '&fk_entrepot=' . $fk_entrepot; print_barre_liste( $texte, @@ -448,6 +457,7 @@ if ($sref || $snom || $sall || $salert || GETPOST('search', 'alpha')) { $filters .= (isset($type)?'&type=' . $type:''); $filters .= '&=' . $salert; $filters .= '&mode=' . $mode; + $filters .= '&fk_supplier=' . $fk_supplier; $filters .= '&fk_entrepot=' . $fk_entrepot; print_barre_liste( $texte, @@ -467,6 +477,7 @@ $param = (isset($type)? '&type=' . $type : ''); $param .= '&fourn_id=' . $fourn_id . '&snom='. $snom . '&salert=' . $salert; $param .= '&sref=' . $sref; $param .= '&mode=' . $mode; +$param .= '&fk_supplier=' . $fk_supplier; $param .= '&fk_entrepot=' . $fk_entrepot; $stocklabel = $langs->trans('Stock'); @@ -475,6 +486,7 @@ if ($usevirtualstock == 0) $stocklabel = $langs->trans('PhysicalStock'); print ''. ''. + ''. ''. ''. ''. @@ -632,7 +644,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) print ''; // Supplier - print ''. $form->select_product_fourn_price($prod->id, 'fourn'.$i, 1).''; + print ''. $form->select_product_fourn_price($prod->id, $fk_supplier, 'fourn'.$i).''; print ''; } @@ -649,6 +661,7 @@ if ($num > $conf->liste_limit) $filters .= '&sall=' . $sall; $filters .= '&salert=' . $salert; $filters .= '&mode=' . $mode; + $filters .= '&fk_supplier=' . $fk_supplier; $filters .= '&fk_entrepot=' . $fk_entrepot; print_barre_liste('', $page, 'replenish.php', $filters, $sortfield, $sortorder, '', $num, 0, ''); } @@ -659,6 +672,7 @@ if ($num > $conf->liste_limit) $filters .= (isset($type)? '&type=' . $type : ''); $filters .= '&salert=' . $salert; $filters .= '&mode=' . $mode; + $filters .= '&fk_supplier=' . $fk_supplier; $filters .= '&fk_entrepot=' . $fk_entrepot; print_barre_liste('', $page, 'replenish.php', $filters, $sortfield, $sortorder, '', $num, 0, ''); }