FIX Stock visibility for service when option stock on service is on
NEW Add option STOCK_SHOW_VIRTUAL_STOCK_IN_PRODUCTS_COMBO
This commit is contained in:
parent
4a3751a054
commit
2891758c23
@ -2266,7 +2266,7 @@ class Form
|
|||||||
$objp->remise_percent = $objp2->remise_percent;
|
$objp->remise_percent = $objp2->remise_percent;
|
||||||
$objp->remise = $objp2->remise;
|
$objp->remise = $objp2->remise;
|
||||||
|
|
||||||
$this->constructProductListOption($objp, $opt, $optJson, 0, $selected, $hidepriceinlabel);
|
$this->constructProductListOption($objp, $opt, $optJson, 0, $selected, $hidepriceinlabel, $filterkey);
|
||||||
|
|
||||||
$j++;
|
$j++;
|
||||||
|
|
||||||
@ -2293,7 +2293,7 @@ class Form
|
|||||||
$objp->price_ttc = price2num($objp->price_ttc, 'MU');
|
$objp->price_ttc = price2num($objp->price_ttc, 'MU');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->constructProductListOption($objp, $opt, $optJson, $price_level, $selected, $hidepriceinlabel);
|
$this->constructProductListOption($objp, $opt, $optJson, $price_level, $selected, $hidepriceinlabel, $filterkey);
|
||||||
// Add new entry
|
// Add new entry
|
||||||
// "key" value of json key array is used by jQuery automatically as selected value
|
// "key" value of json key array is used by jQuery automatically as selected value
|
||||||
// "label" value of json key array is used by jQuery automatically as text for combo box
|
// "label" value of json key array is used by jQuery automatically as text for combo box
|
||||||
@ -2318,7 +2318,8 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* constructProductListOption
|
* constructProductListOption.
|
||||||
|
* This define value for &$opt and &$optJson.
|
||||||
*
|
*
|
||||||
* @param resultset $objp Resultset of fetch
|
* @param resultset $objp Resultset of fetch
|
||||||
* @param string $opt Option (var used for returned value in string option format)
|
* @param string $opt Option (var used for returned value in string option format)
|
||||||
@ -2326,9 +2327,10 @@ class Form
|
|||||||
* @param int $price_level Price level
|
* @param int $price_level Price level
|
||||||
* @param string $selected Preselected value
|
* @param string $selected Preselected value
|
||||||
* @param int $hidepriceinlabel Hide price in label
|
* @param int $hidepriceinlabel Hide price in label
|
||||||
|
* @param string $filterkey Filter key to highlight
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected, $hidepriceinlabel = 0)
|
private function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected, $hidepriceinlabel = 0, $filterkey = '')
|
||||||
{
|
{
|
||||||
global $langs, $conf, $user, $db;
|
global $langs, $conf, $user, $db;
|
||||||
|
|
||||||
@ -2368,7 +2370,7 @@ class Form
|
|||||||
{
|
{
|
||||||
$opt.= ' pbq="'.$objp->price_by_qty_rowid.'" data-pbq="'.$objp->price_by_qty_rowid.'" data-pbqqty="'.$objp->price_by_qty_quantity.'" data-pbqpercent="'.$objp->price_by_qty_remise_percent.'"';
|
$opt.= ' pbq="'.$objp->price_by_qty_rowid.'" data-pbq="'.$objp->price_by_qty_rowid.'" data-pbqqty="'.$objp->price_by_qty_quantity.'" data-pbqpercent="'.$objp->price_by_qty_remise_percent.'"';
|
||||||
}
|
}
|
||||||
if (! empty($conf->stock->enabled) && $objp->fk_product_type == 0 && isset($objp->stock))
|
if (! empty($conf->stock->enabled) && isset($objp->stock) && ($objp->fk_product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)))
|
||||||
{
|
{
|
||||||
if ($objp->stock > 0) $opt.= ' class="product_line_stock_ok"';
|
if ($objp->stock > 0) $opt.= ' class="product_line_stock_ok"';
|
||||||
elseif ($objp->stock <= 0) $opt.= ' class="product_line_stock_too_low"';
|
elseif ($objp->stock <= 0) $opt.= ' class="product_line_stock_too_low"';
|
||||||
@ -2509,14 +2511,38 @@ class Form
|
|||||||
$outtva_tx=$objp->tva_tx;
|
$outtva_tx=$objp->tva_tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->stock->enabled) && isset($objp->stock) && $objp->fk_product_type == 0)
|
if (! empty($conf->stock->enabled) && isset($objp->stock) && ($objp->fk_product_type == Product::TYPE_PRODUCT || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)))
|
||||||
{
|
{
|
||||||
$opt.= ' - '.$langs->trans("Stock").':'.$objp->stock;
|
$opt.= ' - '.$langs->trans("Stock").':'.$objp->stock;
|
||||||
|
|
||||||
if ($objp->stock > 0) {
|
if ($objp->stock > 0) {
|
||||||
$outval.= ' - <span class="product_line_stock_ok">'.$langs->transnoentities("Stock").':'.$objp->stock.'</span>';
|
$outval.= ' - <span class="product_line_stock_ok">';
|
||||||
}elseif ($objp->stock <= 0) {
|
}elseif ($objp->stock <= 0) {
|
||||||
$outval.= ' - <span class="product_line_stock_too_low">'.$langs->transnoentities("Stock").':'.$objp->stock.'</span>';
|
$outval.= ' - <span class="product_line_stock_too_low">';
|
||||||
|
}
|
||||||
|
$outval.= $langs->transnoentities("Stock").':'.$objp->stock;
|
||||||
|
$outval.= '</span>';
|
||||||
|
if (! empty($conf->global->STOCK_SHOW_VIRTUAL_STOCK_IN_PRODUCTS_COMBO)) // Warning, this option may slow down combo list generation
|
||||||
|
{
|
||||||
|
$langs->load("stocks");
|
||||||
|
|
||||||
|
$tmpproduct=new Product($this->db);
|
||||||
|
$tmpproduct->fetch($objp->rowid);
|
||||||
|
$tmpproduct->load_virtual_stock();
|
||||||
|
$virtualstock = $tmpproduct->stock_theorique;
|
||||||
|
|
||||||
|
$opt.= ' - '.$langs->trans("VirtualStock").':'.$virtualstock;
|
||||||
|
|
||||||
|
$outval.=' - '.$langs->transnoentities("VirtualStock").':';
|
||||||
|
if ($virtualstock > 0) {
|
||||||
|
$outval.= ' - <span class="product_line_stock_ok">';
|
||||||
|
}elseif ($virtualstock <= 0) {
|
||||||
|
$outval.= ' - <span class="product_line_stock_too_low">';
|
||||||
|
}
|
||||||
|
$outval.=$virtualstock;
|
||||||
|
$outval.='</span>';
|
||||||
|
|
||||||
|
unset($tmpproduct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user