Merge pull request #15146 from atm-maxime/fix_selected_lines_invoice_creation

Fix #15143 selected lines on invoice creation
This commit is contained in:
Laurent Destailleur 2020-10-25 13:57:00 +01:00 committed by GitHub
commit b6db71e5e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -997,6 +997,7 @@ if (empty($reshook))
elseif ($action == 'add' && $usercancreate) elseif ($action == 'add' && $usercancreate)
{ {
if ($socid > 0) $object->socid = GETPOST('socid', 'int'); if ($socid > 0) $object->socid = GETPOST('socid', 'int');
$selectedLines = GETPOST('toselect', 'array');
$db->begin(); $db->begin();
@ -1586,8 +1587,11 @@ if (empty($reshook))
$fk_parent_line = 0; $fk_parent_line = 0;
$num = count($lines); $num = count($lines);
for ($i = 0; $i < $num; $i++) for ($i = 0; $i < $num; $i++)
{ {
if (!in_array($lines[$i]->id, $selectedLines)) continue; // Skip unselected lines
// Don't add lines with qty 0 when coming from a shipment including all order lines // Don't add lines with qty 0 when coming from a shipment including all order lines
if ($srcobject->element == 'shipping' && $conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS && $lines[$i]->qty == 0) continue; if ($srcobject->element == 'shipping' && $conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS && $lines[$i]->qty == 0) continue;
// Don't add closed lines when coming from a contract (Set constant to '0,5' to exclude also inactive lines) // Don't add closed lines when coming from a contract (Set constant to '0,5' to exclude also inactive lines)
@ -3647,8 +3651,6 @@ if ($action == 'create')
print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">'; print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
print '</div>'; print '</div>';
print "</form>\n";
// Show origin lines // Show origin lines
if (!empty($origin) && !empty($originid) && is_object($objectsrc)) { if (!empty($origin) && !empty($originid) && is_object($objectsrc)) {
print '<br>'; print '<br>';
@ -3658,12 +3660,12 @@ if ($action == 'create')
print '<table class="noborder centpercent">'; print '<table class="noborder centpercent">';
$objectsrc->printOriginLinesList(); $objectsrc->printOriginLinesList('', $selectedLines);
print '</table>'; print '</table>';
} }
print '<br>'; print "</form>\n";
} }
elseif ($id > 0 || !empty($ref)) elseif ($id > 0 || !empty($ref))
{ {