diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php index ec2e6f782bf89cc88bbf4360c598a31f8d019654..b332667f6818ea4c502c2d08c818c4f681b2259a 100644 --- a/htdocs/expedition/card.php +++ b/htdocs/expedition/card.php @@ -109,7 +109,6 @@ $hookmanager->initHooks(array('expeditioncard','globalcard')); $permissiondellink=$user->rights->expedition->livraison->creer; // Used by the include of actions_dellink.inc.php - /* * Actions */ @@ -195,8 +194,8 @@ if (empty($reshook)) $object->note = GETPOST('note','alpha'); $object->origin = $origin; - $object->origin_id = $origin_id; - $object->fk_project = GETPOST('projectid'); + $object->origin_id = $origin_id; + $object->fk_project = GETPOST('projectid','int'); $object->weight = GETPOST('weight','int')==''?"NULL":GETPOST('weight','int'); $object->sizeH = GETPOST('sizeH','int')==''?"NULL":GETPOST('sizeH','int'); $object->sizeW = GETPOST('sizeW','int')==''?"NULL":GETPOST('sizeW','int'); @@ -214,7 +213,7 @@ if (empty($reshook)) $object->socid = $objectsrc->socid; $object->ref_customer = ''; // We don't use $objectsrc->ref_client, this is ref or order not shipment - $object->model_pdf = GETPOST('model'); + $object->model_pdf = GETPOST('model','alpha'); $object->date_delivery = $date_delivery; // Date delivery planed $object->fk_delivery_address = $objectsrc->fk_delivery_address; $object->shipping_method_id = GETPOST('shipping_method_id','int'); @@ -704,7 +703,7 @@ if ($action == 'create') // Project if (! empty($conf->projet->enabled)) { - $projectid = GETPOST('projectid')?GETPOST('projectid'):0; + $projectid = GETPOST('projectid','int')?GETPOST('projectid','int'):0; if ($origin == 'project') $projectid = ($originid ? $originid : 0); $langs->load("projects"); @@ -890,6 +889,7 @@ if ($action == 'create') if (! empty($line->date_start)) $type=1; if (! empty($line->date_end)) $type=1; + print '<!-- line '.$line->rowid.' for product -->'."\n"; print '<tr class="oddeven">'."\n"; // Product label @@ -979,7 +979,7 @@ if ($action == 'create') print '<td align="center">'; if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - if (GETPOST('qtyl'.$indiceAsked)) $defaultqty=GETPOST('qtyl'.$indiceAsked); + if (GETPOST('qtyl'.$indiceAsked, 'int')) $defaultqty=GETPOST('qtyl'.$indiceAsked, 'int'); print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">'; print '<input name="qtyl'.$indiceAsked.'" id="qtyl'.$indiceAsked.'" type="text" size="4" value="'.$deliverableQty.'">'; } @@ -1107,8 +1107,8 @@ if ($action == 'create') // ship from multiple locations if (empty($conf->productbatch->enabled) || ! $product->hasbatch()) { - print '<td></td><td></td></tr>'; // end line and start a new one for each warehouse print '<!-- Case warehouse not already known and product does not need lot -->'; + print '<td></td><td></td></tr>'."\n"; // end line and start a new one for each warehouse print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">'; $subj=0; @@ -1195,7 +1195,8 @@ if ($action == 'create') } else { - print '<td></td><td></td></tr>'; // end line and start a new one for lot/serial + print '<!-- Case warehouse not already known and product need lot -->'; + print '<td></td><td></td></tr>'; // end line and start a new one for lot/serial $subj=0; print '<input name="idl'.$indiceAsked.'" type="hidden" value="'.$line->id.'">'; @@ -1222,6 +1223,7 @@ if ($action == 'create') //var_dump($dbatch); $batchStock = + $dbatch->qty; // To get a numeric $deliverableQty = min($quantityToBeDelivered,$batchStock); + if ($deliverableQty < 0) $deliverableQty = 0; print '<!-- subj='.$subj.'/'.$nbofsuggested.' --><tr '.((($subj + 1) == $nbofsuggested)?$bc[$var]:'').'><td colspan="3"></td><td align="center">'; print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">'; print '</td>'; @@ -1233,8 +1235,11 @@ if ($action == 'create') print '<!-- Show details of lot -->'; print '<input name="batchl'.$indiceAsked.'_'.$subj.'" type="hidden" value="'.$dbatch->id.'">'; //print $langs->trans("DetailBatchFormat", $dbatch->batch, dol_print_date($dbatch->eatby,"day"), dol_print_date($dbatch->sellby,"day"), $dbatch->qty); - $productlotObject->fetch(0, $line->fk_product, $dbatch->batch); - print $langs->trans("Batch").': '.$productlotObject->getNomUrl(1); + //print $line->fk_product.' - '.$dbatch->batch; + print $langs->trans("Batch").': '; + $result = $productlotObject->fetch(0, $line->fk_product, $dbatch->batch); + if ($result > 0) print $productlotObject->getNomUrl(1); + else print 'TableLotIncompleteRunRepair'; print ' ('.$dbatch->qty.')'; //print $langs->trans("DetailBatchFormat", 'ee'.$dbatch->batch, dol_print_date($dbatch->eatby,"day"), dol_print_date($dbatch->sellby,"day"), $dbatch->qty); $quantityToBeDelivered -= $deliverableQty; @@ -1350,7 +1355,7 @@ else if ($id || $ref) $res = $object->fetch_optionals($object->id, $extralabels); $head=shipping_prepare_head($object); - dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending'); + dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), -1, 'sending'); $formconfirm=''; @@ -1817,6 +1822,7 @@ else if ($id || $ref) // Loop on each product to send/sent for ($i = 0 ; $i < $num_prod ; $i++) { + print '<!-- origin line id = '.$lines[$i]->origin_line_id.' -->'; // id of order line print '<tr class="oddeven">'; if (! empty($conf->global->MAIN_VIEW_LINE_NUMBER)) @@ -1889,14 +1895,14 @@ else if ($id || $ref) $j = 0; foreach($val as $shipmentline_id=> $shipmentline_var) { - if ($shipmentline_id == $lines[$i]->rowid) continue; // We want to show only "other shipments" + if ($shipmentline_var['shipment_id'] == $lines[$i]->fk_expedition) continue; // We want to show only "other shipments" $j++; if ($j > 1) print '<br>'; $shipment_static->fetch($shipmentline_var['shipment_id']); print $shipment_static->getNomUrl(1); print ' - '.$shipmentline_var['qty_shipped']; - $htmltext=$langs->trans("DateValidation").' : '.dol_print_date($shipmentline_var['date_valid'], 'dayhour'); + $htmltext=$langs->trans("DateValidation").' : '.(empty($shipmentline_var['date_valid'])?$langs->trans("Draft"):dol_print_date($shipmentline_var['date_valid'], 'dayhour')); if (! empty($conf->stock->enabled) && $shipmentline_var['warehouse'] > 0) { $warehousestatic->fetch($shipmentline_var['warehouse']); diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 711bd5e767d314af622745e2ffdbc29adba68a46..857ac1d5271b42c35c58fb23edac716609f00762 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1369,8 +1369,13 @@ class Expedition extends CommonObject $line->line_id = $obj->line_id; $line->rowid = $obj->line_id; // TODO deprecated $line->id = $obj->line_id; - $line->fk_origin_line = $obj->fk_origin_line; - $line->origin_line_id = $obj->fk_origin_line; // TODO deprecated + + $line->fk_origin = 'orderline'; + $line->fk_origin_line = $obj->fk_origin_line; + $line->origin_line_id = $obj->fk_origin_line; // TODO deprecated + + $line->fk_expedition = $this->id; // id of parent + $line->product_type = $obj->product_type; $line->fk_product = $obj->fk_product; $line->fk_product_type = $obj->fk_product_type;