Merge pull request #13852 from bb2a/MultiPriceInListe
Add columns for multiprices in product list
This commit is contained in:
commit
4d13fa532f
@ -211,6 +211,26 @@ $arrayfields = array(
|
|||||||
'p.tosell'=>array('label'=>$langs->trans("Status").' ('.$langs->trans("Sell").')', 'checked'=>1, 'position'=>1000),
|
'p.tosell'=>array('label'=>$langs->trans("Status").' ('.$langs->trans("Sell").')', 'checked'=>1, 'position'=>1000),
|
||||||
'p.tobuy'=>array('label'=>$langs->trans("Status").' ('.$langs->trans("Buy").')', 'checked'=>1, 'position'=>1000)
|
'p.tobuy'=>array('label'=>$langs->trans("Status").' ('.$langs->trans("Buy").')', 'checked'=>1, 'position'=>1000)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// MultiPrices
|
||||||
|
if ($conf->global->PRODUIT_MULTIPRICES){
|
||||||
|
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++)
|
||||||
|
{
|
||||||
|
$keyforlabel = 'PRODUIT_MULTIPRICES_LABEL'.$i;
|
||||||
|
if (!empty($conf->global->$keyforlabel))
|
||||||
|
{
|
||||||
|
$labelp = $i.' - '.$langs->trans($conf->global->$keyforlabel);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$labelp = $langs->trans("SellingPrice")." ".$i;
|
||||||
|
}
|
||||||
|
$arrayfields['p.sellprice'.$i] = array('label'=>$labelp, 'checked'=>1, 'enabled'=>$conf->global->PRODUIT_MULTIPRICES, 'position'=>40);
|
||||||
|
$arraypricelevel[$i] = array($i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//var_dump($arraypricelevel);
|
||||||
// Extra fields
|
// Extra fields
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']))
|
if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']))
|
||||||
{
|
{
|
||||||
@ -733,6 +753,19 @@ if ($resql)
|
|||||||
print '<td class="liste_titre right">';
|
print '<td class="liste_titre right">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Multiprice
|
||||||
|
if ($conf->global->PRODUIT_MULTIPRICES){
|
||||||
|
foreach ($arraypricelevel as $key => $value)
|
||||||
|
{
|
||||||
|
if (!empty($arrayfields['p.sellprice'.$key]['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="liste_titre right">';
|
||||||
|
print '</td>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Minimum buying Price
|
// Minimum buying Price
|
||||||
if (!empty($arrayfields['p.minbuyprice']['checked']))
|
if (!empty($arrayfields['p.minbuyprice']['checked']))
|
||||||
{
|
{
|
||||||
@ -865,6 +898,18 @@ if ($resql)
|
|||||||
if (!empty($arrayfields['p.sellprice']['checked'])) {
|
if (!empty($arrayfields['p.sellprice']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Multiprices
|
||||||
|
if ($conf->global->PRODUIT_MULTIPRICES){
|
||||||
|
foreach ($arraypricelevel as $key => $value)
|
||||||
|
{
|
||||||
|
if (!empty($arrayfields['p.sellprice'.$key]['checked']))
|
||||||
|
{
|
||||||
|
print_liste_field_titre($arrayfields['p.sellprice'.$key]['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($arrayfields['p.minbuyprice']['checked'])) {
|
if (!empty($arrayfields['p.minbuyprice']['checked'])) {
|
||||||
print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
|
||||||
}
|
}
|
||||||
@ -1200,6 +1245,40 @@ if ($resql)
|
|||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Multiprices
|
||||||
|
if ($conf->global->PRODUIT_MULTIPRICES){
|
||||||
|
foreach ($arraypricelevel as $key => $value)
|
||||||
|
{
|
||||||
|
if (!empty($arrayfields['p.sellprice'.$key]['checked']))
|
||||||
|
{
|
||||||
|
print '<td class="right nowraponall">';
|
||||||
|
if ($obj->tosell)
|
||||||
|
{
|
||||||
|
// TODO Make 1 request for all price levels (without filter on price_level) and saved result into an cache array
|
||||||
|
// then reuse the cache array if we need prices for other price levels
|
||||||
|
$resultp = "SELECT p.rowid, p.fk_product, p.price, p.price_ttc, p.price_level, p.date_price";
|
||||||
|
$resultp .= " FROM ".MAIN_DB_PREFIX."product_price as p";
|
||||||
|
$resultp .= " WHERE fk_product = ".$obj->rowid;
|
||||||
|
$resultp .= " AND p.price_level = ".$key;
|
||||||
|
$resultp .= " ORDER BY p.date_price DESC, p.rowid DESC, p.price_level ASC";
|
||||||
|
$resultp = $db->query($resultp);
|
||||||
|
if ($resultp)
|
||||||
|
{
|
||||||
|
$objp = $db->fetch_object($resultp);
|
||||||
|
if ($obj->price_base_type == 'TTC') print price($objp->price_ttc).' '.$langs->trans("TTC");
|
||||||
|
else print price($objp->price).' '.$langs->trans("HT");
|
||||||
|
$db->free($resultp);
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
if (!$i) $totalarray['nbfield']++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Better buy price
|
// Better buy price
|
||||||
if (!empty($arrayfields['p.minbuyprice']['checked']))
|
if (!empty($arrayfields['p.minbuyprice']['checked']))
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user