Changed input type from select to input.
New function selectLot
This commit is contained in:
parent
372aa6bf4c
commit
94cc75cb69
@ -973,8 +973,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
print '<td>';
|
print '<td>';
|
||||||
if ($tmpproduct->status_batch) {
|
if ($tmpproduct->status_batch) {
|
||||||
$preselected = (GETPOSTISSET('batch-'.$line->id.'-'.$i) ? GETPOST('batch-'.$line->id.'-'.$i) : '');
|
$preselected = (GETPOSTISSET('batch-'.$line->id.'-'.$i) ? GETPOST('batch-'.$line->id.'-'.$i) : '');
|
||||||
print '<td>'.$formproduct->selectLotStock('', 'batch-'.$line->id.'-'.$i, '', 1, 0, $line->fk_product, '', '', '', '', '', '', 1).'</td>';
|
print '<input type="text" class="width50" name="batch-'.$line->id.'-'.$i.'" value="'.$preselected.'" list="batch-'.$line->id.'-'.$i.'">';
|
||||||
//print '<input type="text" class="width50" name="batch-'.$line->id.'-'.$i.'" value="'.$preselected.'">';
|
print $formproduct->selectLot('batch-'.$line->id.'-'.$i, 0, $line->fk_product, '', '');
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -536,11 +536,10 @@ class FormProduct
|
|||||||
* @param int $forcecombo 1=Force combo iso ajax select2
|
* @param int $forcecombo 1=Force combo iso ajax select2
|
||||||
* @param array $events Events to add to select2
|
* @param array $events Events to add to select2
|
||||||
* @param string $morecss Add more css classes to HTML select
|
* @param string $morecss Add more css classes to HTML select
|
||||||
* @param int $use_baseval 1=uses batch as value within select
|
|
||||||
*
|
*
|
||||||
* @return string HTML select
|
* @return string HTML select
|
||||||
*/
|
*/
|
||||||
public function selectLotStock($selected = '', $htmlname = 'batch_id', $filterstatus = '', $empty = 0, $disabled = 0, $fk_product = 0, $fk_entrepot = 0, $objectLines = array(), $empty_label = '', $forcecombo = 0, $events = array(), $morecss = 'minwidth200', $use_baseval = 0)
|
public function selectLotStock($selected = '', $htmlname = 'batch_id', $filterstatus = '', $empty = 0, $disabled = 0, $fk_product = 0, $fk_entrepot = 0, $objectLines = array(), $empty_label = '', $forcecombo = 0, $events = array(), $morecss = 'minwidth200' )
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@ -591,9 +590,7 @@ class FormProduct
|
|||||||
$label .= ' <span class=\'opacitymedium\'>('.$langs->trans("Stock").' '.$arraytypes['qty'].')</span>';
|
$label .= ' <span class=\'opacitymedium\'>('.$langs->trans("Stock").' '.$arraytypes['qty'].')</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $use_baseval = 1 )
|
$out .= '<option value="'.$id.'"';
|
||||||
$out .= '<option value="'.$arraytypes['batch'].'"';
|
|
||||||
else $out .= '<option value="'.$id.'"';
|
|
||||||
|
|
||||||
if ($selected == $id || ($selected == 'ifone' && $nboflot == 1)) {
|
if ($selected == $id || ($selected == 'ifone' && $nboflot == 1)) {
|
||||||
$out .= ' selected';
|
$out .= ' selected';
|
||||||
@ -613,6 +610,67 @@ class FormProduct
|
|||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return list of lot numbers (stock from product_batch) with stock location and stock qty
|
||||||
|
*
|
||||||
|
* @param string $htmlname Name of html select html
|
||||||
|
* @param int $empty 1=Can be empty, 0 if not
|
||||||
|
* @param int $fk_product show lot numbers of product with id fk_product. All from objectLines if 0.
|
||||||
|
* @param int $fk_entrepot filter lot numbers for warehouse with id fk_entrepot. All if 0.
|
||||||
|
* @param array $objectLines Only cache lot numbers for products in lines of object. If no lines only for fk_product. If no fk_product, all.
|
||||||
|
* @param int $use_baseval 1=uses batch as value within select
|
||||||
|
*
|
||||||
|
* @return string HTML select
|
||||||
|
*/
|
||||||
|
public function selectLot( $htmlname = 'batch_id', $empty = 0, $fk_product = 0, $fk_entrepot = 0, $objectLines = array() )
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::selectLot $htmlname, $empty, $fk_product, $fk_entrepot,$objectLines", LOG_DEBUG);
|
||||||
|
|
||||||
|
$out = '';
|
||||||
|
$productIdArray = array();
|
||||||
|
if (!is_array($objectLines) || !count($objectLines)) {
|
||||||
|
if (!empty($fk_product) && $fk_product > 0) {
|
||||||
|
$productIdArray[] = (int) $fk_product;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach ($objectLines as $line) {
|
||||||
|
if ($line->fk_product) {
|
||||||
|
$productIdArray[] = $line->fk_product;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$nboflot = $this->loadLotStock($productIdArray);
|
||||||
|
|
||||||
|
$out .= '<datalist id="'.$htmlname.'" >';
|
||||||
|
|
||||||
|
if (!empty($fk_product) && $fk_product > 0) {
|
||||||
|
$productIdArray = array((int) $fk_product); // only show lot stock for product
|
||||||
|
} else {
|
||||||
|
foreach ($this->cache_lot as $key => $value) {
|
||||||
|
$productIdArray[] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($productIdArray as $productId) {
|
||||||
|
foreach ($this->cache_lot[$productId] as $id => $arraytypes) {
|
||||||
|
if (empty($fk_entrepot) || $fk_entrepot == $arraytypes['entrepot_id']) {
|
||||||
|
$label = $arraytypes['entrepot_label'].' - ';
|
||||||
|
$label .= $arraytypes['batch'];
|
||||||
|
$out .= '<option>'.$arraytypes['batch'].'</option>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$out .= '</datalist>';
|
||||||
|
|
||||||
|
return $out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load in cache array list of lot available in stock from a given list of products
|
* Load in cache array list of lot available in stock from a given list of products
|
||||||
*
|
*
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user