diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 24adf7efce0..5fddccfa313 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -962,6 +962,9 @@ abstract class CommonObject
if($this->element=='shipping' && $this->origin_id != 0) {
$id=$this->origin_id;
$element='commande';
+ } else if($this->element=='reception' && $this->origin_id != 0) {
+ $id=$this->origin_id;
+ $element='order_supplier';
} else {
$id=$this->id;
$element=$this->element;
@@ -982,7 +985,7 @@ abstract class CommonObject
$sql.= " AND tc.code = '".$code."'";
$sql.= " AND tc.active = 1";
if ($status) $sql.= " AND ec.statut = ".$status;
-
+
dol_syslog(get_class($this)."::getIdContact", LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
@@ -998,7 +1001,6 @@ abstract class CommonObject
$this->error=$this->db->error();
return null;
}
-
return $result;
}
@@ -1193,6 +1195,7 @@ abstract class CommonObject
{
if ($this->origin == 'shipping') $this->origin = 'expedition';
if ($this->origin == 'delivery') $this->origin = 'livraison';
+ if ($this->origin == 'order_supplier') $this->origin = 'commandeFournisseur';
$origin = $this->origin;
@@ -3105,9 +3108,13 @@ abstract class CommonObject
{
if (empty($totalToShip)) $totalToShip=0; // Avoid warning because $totalToShip is ''
$totalToShip+=$line->qty_shipped; // defined for shipment only
+ }else if ($line->element == 'commandefournisseurdispatch' && isset($line->qty))
+ {
+ if (empty($totalToShip)) $totalToShip=0;
+ $totalToShip+=$line->qty; // defined for reception only
}
- // Define qty, weight, volume, weight_units, volume_units
+ // Define qty, weight, volume, weight_units, volume_units
if ($this->element == 'shipping') {
// for shipments
$qty = $line->qty_shipped ? $line->qty_shipped : 0;
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 288badf6285..c4172d7fad7 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -3932,10 +3932,10 @@ function showDimensionInBestUnit($dimension, $unit, $type, $outputlangs, $round=
$dimension = $dimension / 1000;
$unit = $unit + 3;
}
-
+
$ret=price($dimension, 0, $outputlangs, 0, 0, $round).' '.measuring_units_string($unit, $type);
- return $ret;
+ return $ret;
}
diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php
index 0f1add63c44..c272807c620 100644
--- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php
+++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php
@@ -126,7 +126,7 @@ class pdf_squille extends ModelePdfReception
$outputlangs->load("products");
$outputlangs->load("propal");
$outputlangs->load("deliveries");
- $outputlangs->load("sendings");
+ $outputlangs->load("receptions");
$outputlangs->load("productbatch");
$nblignes = count($object->lines);
@@ -182,13 +182,13 @@ class pdf_squille extends ModelePdfReception
// Definition de $dir et $file
if ($object->specimen)
{
- $dir = $conf->reception->dir_output."/sending";
+ $dir = $conf->reception->dir_output;
$file = $dir . "/SPECIMEN.pdf";
}
else
{
$expref = dol_sanitizeFileName($object->ref);
- $dir = $conf->reception->dir_output."/sending/" . $expref;
+ $dir = $conf->reception->dir_output."/" . $expref;
$file = $dir . "/" . $expref . ".pdf";
}
@@ -309,10 +309,10 @@ class pdf_squille extends ModelePdfReception
if ($object->reception_method_id > 0)
{
// Get code using getLabelFromKey
- $code=$outputlangs->getLabelFromKey($this->db,$object->reception_method_id,'c_shipment_mode','rowid','code');
+ $code=$outputlangs->getLabelFromKey($this->db,$object->shipment_method_id,'c_shipment_mode','rowid','code');
$label='';
if ($object->tracking_url != $object->tracking_number) $label.=$outputlangs->trans("LinkToTrackYourPackage")."
";
- $label.=$outputlangs->trans("SendingMethod").": ".$outputlangs->trans("SendingMethod".strtoupper($code));
+ $label.=$outputlangs->trans("ReceptionMethod").": ".$outputlangs->trans("ReceptionMethod".strtoupper($code));
//var_dump($object->tracking_url != $object->tracking_number);exit;
if ($object->tracking_url != $object->tracking_number)
{
@@ -405,6 +405,7 @@ class pdf_squille extends ModelePdfReception
$pageposafter=$pageposbefore;
//print $pageposafter.'-'.$pageposbefore;exit;
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
+
pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc);
$pageposafter=$pdf->getPage();
@@ -453,14 +454,14 @@ class pdf_squille extends ModelePdfReception
$pdf->SetXY($this->posxweightvol, $curY);
$weighttxt='';
- if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->weight)
+ if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->weight)
{
- $weighttxt=round($object->lines[$i]->weight * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->weight_units,"weight");
+ $weighttxt=round($object->lines[$i]->product->weight * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->weight_units,"weight");
}
$voltxt='';
- if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->volume)
+ if ($object->lines[$i]->fk_product_type == 0 && $object->lines[$i]->product->volume)
{
- $voltxt=round($object->lines[$i]->volume * $object->lines[$i]->qty_shipped, 5).' '.measuring_units_string($object->lines[$i]->volume_units?$object->lines[$i]->volume_units:0,"volume");
+ $voltxt=round($object->lines[$i]->product->volume * $object->lines[$i]->qty, 5).' '.measuring_units_string($object->lines[$i]->product->volume_units?$object->lines[$i]->product->volume_units:0,"volume");
}
$pdf->writeHTMLCell($this->posxqtyordered - $this->posxweightvol + 2, 3, $this->posxweightvol - 1, $curY, $weighttxt.(($weighttxt && $voltxt)?'
':'').$voltxt, 0, 0, false, true, 'C');
@@ -473,7 +474,7 @@ class pdf_squille extends ModelePdfReception
}
$pdf->SetXY($this->posxqtytoship, $curY);
- $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C');
+ $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 3, $object->lines[$i]->qty,'','C');
if(!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT))
{
@@ -622,18 +623,20 @@ class pdf_squille extends ModelePdfReception
$totalVolume=$tmparray['volume'];
$totalOrdered=$tmparray['ordered'];
$totalToShip=$tmparray['toship'];
+
// Set trueVolume and volume_units not currently stored into database
if ($object->trueWidth && $object->trueHeight && $object->trueDepth)
{
$object->trueVolume=price(($object->trueWidth * $object->trueHeight * $object->trueDepth), 0, $outputlangs, 0, 0);
$object->volume_units=$object->size_units * 3;
+
}
-
+
if ($totalWeight!='') $totalWeighttoshow=showDimensionInBestUnit($totalWeight, 0, "weight", $outputlangs);
if ($totalVolume!='') $totalVolumetoshow=showDimensionInBestUnit($totalVolume, 0, "volume", $outputlangs);
if ($object->trueWeight) $totalWeighttoshow=showDimensionInBestUnit($object->trueWeight, $object->weight_units, "weight", $outputlangs);
if ($object->trueVolume) $totalVolumetoshow=showDimensionInBestUnit($object->trueVolume, $object->volume_units, "volume", $outputlangs);
-
+
$pdf->SetFillColor(255,255,255);
$pdf->SetXY($col1x, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("Total"), 0, 'L', 1);
@@ -740,7 +743,7 @@ class pdf_squille extends ModelePdfReception
if (empty($hidetop))
{
$pdf->SetXY($this->posxqtytoship, $tab_top+1);
- $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToShip"),'','C');
+ $pdf->MultiCell(($this->posxpuht - $this->posxqtytoship), 2, $outputlangs->transnoentities("QtyToReceive"),'','C');
}
if(!empty($conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT)) {
@@ -834,7 +837,7 @@ class pdf_squille extends ModelePdfReception
//$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30);
if (! empty($conf->barcode->enabled))
{
- // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref
+ // TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref
//$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3);
//$pdf->Image($logo,10, 5, 0, 24);
}
@@ -842,7 +845,7 @@ class pdf_squille extends ModelePdfReception
$pdf->SetDrawColor(128,128,128);
if (! empty($conf->barcode->enabled))
{
- // TODO Build code bar with function writeBarCode of barcode module for sending ref $object->ref
+ // TODO Build code bar with function writeBarCode of barcode module for reception ref $object->ref
//$pdf->SetXY($this->marge_gauche+3, $this->marge_haute+3);
//$pdf->Image($logo,10, 5, 0, 24);
}
@@ -854,7 +857,7 @@ class pdf_squille extends ModelePdfReception
$pdf->SetFont('','B', $default_font_size + 2);
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
- $title=$outputlangs->transnoentities("SendingSheet");
+ $title=$outputlangs->transnoentities("ReceptionSheet");
$pdf->MultiCell($w, 4, $title, '', 'R');
$pdf->SetFont('','', $default_font_size + 1);
@@ -863,7 +866,7 @@ class pdf_squille extends ModelePdfReception
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
- $pdf->MultiCell($w, 4, $outputlangs->transnoentities("RefSending") ." : ".$object->ref, '', 'R');
+ $pdf->MultiCell($w, 4, $outputlangs->transnoentities("RefReception") ." : ".$object->ref, '', 'R');
// Date planned delivery
if (! empty($object->date_delivery))
@@ -874,12 +877,12 @@ class pdf_squille extends ModelePdfReception
$pdf->MultiCell($w, 4, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_delivery,"day",false,$outputlangs,true), '', 'R');
}
- if (! empty($object->thirdparty->code_client))
+ if (! empty($object->thirdparty->code_fournisseur))
{
$posy+=4;
$pdf->SetXY($posx,$posy);
$pdf->SetTextColor(0,0,60);
- $pdf->MultiCell($w, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_client), '', 'R');
+ $pdf->MultiCell($w, 3, $outputlangs->transnoentities("SupplierCode")." : " . $outputlangs->transnoentities($object->thirdparty->code_fournisseur), '', 'R');
}
@@ -891,11 +894,11 @@ class pdf_squille extends ModelePdfReception
$origin_id = $object->origin_id;
// TODO move to external function
- if (! empty($conf->$origin->enabled)) // commonly $origin='commande'
+ if (! empty($conf->fournisseur->enabled)) // commonly $origin='commande'
{
$outputlangs->load('orders');
- $classname = ucfirst($origin);
+ $classname = 'CommandeFournisseur';
$linkedobject = new $classname($this->db);
$result=$linkedobject->fetch($origin_id);
if ($result >= 0)
@@ -962,7 +965,8 @@ class pdf_squille extends ModelePdfReception
// If RECEPTION contact defined, we use it
$usecontact=false;
- $arrayidcontact=$object->$origin->getIdContact('external','RECEPTION');
+ $arrayidcontact=$object->$origin->getIdContact('external','SHIPPING');
+
if (count($arrayidcontact) > 0)
{
$usecontact=true;
diff --git a/htdocs/core/tpl/contacts.tpl.php b/htdocs/core/tpl/contacts.tpl.php
index c7b3ea7342f..18edf7ec67d 100644
--- a/htdocs/core/tpl/contacts.tpl.php
+++ b/htdocs/core/tpl/contacts.tpl.php
@@ -34,6 +34,7 @@ elseif ($module == 'order_supplier') { $permission=$user->rights->fournisseur->c
elseif ($module == 'project') { $permission=$user->rights->projet->creer; }
elseif ($module == 'action') { $permission=$user->rights->agenda->myactions->create; }
elseif ($module == 'shipping') { $permission=$user->rights->expedition->creer; }
+elseif ($module == 'reception') { $permission=$user->rights->reception->creer; }
elseif ($module == 'project_task') { $permission=$user->rights->projet->creer; }
elseif (! isset($permission) && isset($user->rights->$module->creer))
{
@@ -86,7 +87,7 @@ if ($permission) {
element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
+ if (($object->element == 'shipping' || $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
echo $formcompany->selectTypeContact($tmpobject, '', 'type','internal');
?>
@@ -125,7 +126,7 @@ if ($permission) {
element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
+ if (($object->element == 'shipping'|| $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
$formcompany->selectTypeContact($tmpobject, '', 'type','external'); ?>
@@ -155,7 +156,7 @@ if ($permission) {
foreach($arrayofsource as $source) {
$tmpobject=$object;
- if ($object->element == 'shipping' && is_object($objectsrc)) $tmpobject=$objectsrc;
+ if (($object->element == 'shipping'|| $object->element == 'reception') && is_object($objectsrc)) $tmpobject=$objectsrc;
$tab = $tmpobject->liste_contact(-1,$source);
$num=count($tab);
diff --git a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
index 38f1c3243dc..c3c33694514 100644
--- a/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.dispatch.class.php
@@ -333,16 +333,23 @@ class CommandeFournisseurDispatch extends CommonObject
if (! $error)
{
+ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
+ {
+ if(empty($this->id) && !empty($this->rowid))$this->id=$this->rowid;
+ $result=$this->insertExtraFields();
+ if ($result < 0)
+ {
+ $error++;
+ }
+ }
+
if (! $notrigger)
{
- // Uncomment this and change MYOBJECT to your own tag if you
- // want this action calls a trigger.
-
- //// Call triggers
- //$result=$this->call_trigger('MYOBJECT_MODIFY',$user);
- //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail}
- //// End call triggers
- }
+ // Call trigger
+ $result=$this->call_trigger('LINERECEPTION_UPDATE',$user);
+ if ($result < 0) $error++;
+ // End call triggers
+ }
}
// Commit or rollback
diff --git a/htdocs/reception/card.php b/htdocs/reception/card.php
index 1c343614aff..1911466905c 100644
--- a/htdocs/reception/card.php
+++ b/htdocs/reception/card.php
@@ -166,17 +166,17 @@ if (empty($reshook))
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
}
- if ($action == 'setref_customer')
+ if ($action == 'setref_supplier')
{
$result = $object->fetch($id);
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
}
- $result = $object->setValueFrom('ref_customer', GETPOST('ref_customer','alpha'), '', null, 'text', '', $user, 'RECEPTION_MODIFY');
+ $result = $object->setValueFrom('ref_supplier', GETPOST('ref_supplier','alpha'), '', null, 'text', '', $user, 'RECEPTION_MODIFY');
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
- $action = 'editref_customer';
+ $action = 'editref_supplier';
} else {
header("Location: ".$_SERVER['PHP_SELF']."?id=".$object->id);
exit;
@@ -622,202 +622,77 @@ if (empty($reshook))
else if ($action == 'updateline' && $user->rights->reception->creer && GETPOST('save'))
{
// Clean parameters
- $qty=0;
+ $qty = 0;
$entrepot_id = 0;
$batch_id = 0;
$lines = $object->lines;
$num_prod = count($lines);
- for ($i = 0 ; $i < $num_prod ; $i++)
+ for ($i = 0; $i < $num_prod; $i++)
{
- if ($lines[$i]->id == $line_id) // we have found line to update
+ if ($lines[$i]->id == $line_id) // we have found line to update
{
$line = new CommandeFournisseurDispatch($db);
+ $line->fetch($line_id);
// Extrafields Lines
$extrafieldsline = new ExtraFields($db);
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
$line->array_options = $extrafieldsline->getOptionalsFromPost($extralabelsline);
- // Unset extrafield POST Data
- if (is_array($extralabelsline)) {
- foreach ($extralabelsline as $key => $value) {
- unset($_POST["options_" . $key]);
- }
- }
+
+
$line->fk_product = $lines[$i]->fk_product;
- if (is_array($lines[$i]->detail_batch) && count($lines[$i]->detail_batch) > 0)
+
+
+
+
+ if ($lines[$i]->fk_product > 0)
{
- // line with lot
- foreach ($lines[$i]->detail_batch as $detail_batch)
- {
- $lotStock = new Productbatch($db);
- $batch="batchl".$detail_batch->fk_receptiondet."_".$detail_batch->fk_origin_stock;
- $qty = "qtyl".$detail_batch->fk_receptiondet.'_'.$detail_batch->id;
- $batch_id = GETPOST($batch,'int');
- $batch_qty = GETPOST($qty, 'int');
- if (! empty($batch_id) && ($batch_id != $detail_batch->fk_origin_stock || $batch_qty != $detail_batch->dluo_qty))
- {
- if ($lotStock->fetch($batch_id) > 0 && $line->fetch($detail_batch->fk_receptiondet) > 0) // $line is ReceptionLine
- {
- if ($lines[$i]->entrepot_id != 0)
- {
- // allow update line entrepot_id if not multi warehouse reception
- $line->entrepot_id = $lotStock->warehouseid;
- }
-
- // detail_batch can be an object with keys, or an array of ReceptionLineBatch
- if (empty($line->detail_batch)) $line->detail_batch=new stdClass();
-
- $line->detail_batch->fk_origin_stock = $batch_id;
- $line->detail_batch->batch = $lotStock->batch;
- $line->detail_batch->id = $detail_batch->id;
- $line->detail_batch->entrepot_id = $lotStock->warehouseid;
- $line->detail_batch->dluo_qty = $batch_qty;
- if ($line->update($user) < 0) {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- }
- else
- {
- setEventMessages($lotStock->error, $lotStock->errors, 'errors');
- $error++;
- }
- }
- unset($_POST[$batch]);
- unset($_POST[$qty]);
+
+ // single warehouse reception line
+ $stockLocation = "entl".$line_id;
+ $qty = "qtyl".$line_id;
+
+
+ $line->id = $line_id;
+ $line->fk_entrepot = GETPOST($stockLocation, 'int');
+ $line->qty = GETPOST($qty, 'int');
+
+ if(!empty($conf->productbatch->enabled)){
+ $batch = "batch".$line_id;
+ $dlc = "dlc".$line_id;
+ $dluo = "dluo".$line_id;
+ $eatby = GETPOST($dlc, 'alpha');
+ $eatbydate = str_replace('/','-',$eatby);
+ $sellby = GETPOST($dluo, 'alpha');
+ $sellbydate = str_replace('/','-',$sellby);
+ $line->batch = GETPOST($batch, 'alpha');
+ $line->eatby = strtotime($eatbydate);
+ $line->sellby = strtotime($sellbydate);
}
- // add new batch
- $lotStock = new Productbatch($db);
- $batch="batchl".$line_id."_0";
- $qty = "qtyl".$line_id."_0";
- $batch_id = GETPOST($batch,'int');
- $batch_qty = GETPOST($qty, 'int');
- $lineIdToAddLot = 0;
- if ($batch_qty > 0 && ! empty($batch_id))
+
+
+
+ if ($line->update($user) < 0)
{
- if ($lotStock->fetch($batch_id) > 0)
- {
- // check if lotStock warehouse id is same as line warehouse id
- if ($lines[$i]->entrepot_id > 0)
- {
- // single warehouse reception line
- if ($lines[i]->entrepot_id == $lotStock->warehouseid)
- {
- $lineIdToAddLot = $line_id;
- }
- }
- else if (count($lines[$i]->details_entrepot) > 1)
- {
- // multi warehouse reception lines
- foreach ($lines[$i]->details_entrepot as $detail_entrepot)
- {
- if ($detail_entrepot->entrepot_id == $lotStock->warehouseid)
- {
- $lineIdToAddLot = $detail_entrepot->line_id;
- }
- }
- }
- if ($lineIdToAddLot)
- {
- // add lot to existing line
- if ($line->fetch($lineIdToAddLot) > 0)
- {
- $line->detail_batch->fk_origin_stock = $batch_id;
- $line->detail_batch->batch = $lotStock->batch;
- $line->detail_batch->entrepot_id = $lotStock->warehouseid;
- $line->detail_batch->dluo_qty = $batch_qty;
- if ($line->update($user) < 0) {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- }
- else
- {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- }
- else
- {
- // create new line with new lot
- $line->origin_line_id = $lines[$i]->origin_line_id;
- $line->entrepot_id = $lotStock->warehouseid;
- $line->detail_batch[0] = new ReceptionLineBatch($db);
- $line->detail_batch[0]->fk_origin_stock = $batch_id;
- $line->detail_batch[0]->batch = $lotStock->batch;
- $line->detail_batch[0]->entrepot_id = $lotStock->warehouseid;
- $line->detail_batch[0]->dluo_qty = $batch_qty;
- if ($object->create_line_batch($line, $line->array_options) < 0)
- {
- setEventMessages($object->error, $object->errors, 'errors');
- $error++;
- }
- }
- }
- else
- {
- setEventMessages($lotStock->error, $lotStock->errors, 'errors');
- $error++;
- }
+ setEventMessages($line->error, $line->errors, 'errors');
+ $error++;
}
+
+
+
}
- else
+ else // Product no predefined
{
- if ($lines[$i]->fk_product > 0)
+ $qty = "qtyl".$line_id;
+ $line->id = $line_id;
+ $line->qty = GETPOST($qty, 'int');
+ $line->fk_entrepot = 0;
+ if ($line->update($user) < 0)
{
- // line without lot
- if ($lines[$i]->entrepot_id > 0)
- {
- // single warehouse reception line
- $stockLocation="entl".$line_id;
- $qty = "qtyl".$line_id;
- $line->id = $line_id;
- $line->entrepot_id = GETPOST($stockLocation,'int');
- $line->qty = GETPOST($qty, 'int');
- if ($line->update($user) < 0) {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- unset($_POST[$stockLocation]);
- unset($_POST[$qty]);
- }
- else if (count($lines[$i]->details_entrepot) > 1)
- {
- // multi warehouse reception lines
- foreach ($lines[$i]->details_entrepot as $detail_entrepot)
- {
- if (! $error) {
- $stockLocation="entl".$detail_entrepot->line_id;
- $qty = "qtyl".$detail_entrepot->line_id;
- $warehouse = GETPOST($stockLocation,'int');
- if (!empty ($warehouse))
- {
- $line->id = $detail_entrepot->line_id;
- $line->entrepot_id = $warehouse;
- $line->qty = GETPOST($qty, 'int');
- if ($line->update($user) < 0) {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- }
- unset($_POST[$stockLocation]);
- unset($_POST[$qty]);
- }
- }
- }
- }
- else // Product no predefined
- {
- $qty = "qtyl".$line_id;
- $line->id = $line_id;
- $line->qty = GETPOST($qty, 'int');
- $line->entrepot_id = 0;
- if ($line->update($user) < 0) {
- setEventMessages($line->error, $line->errors, 'errors');
- $error++;
- }
- unset($_POST[$qty]);
+ setEventMessages($line->error, $line->errors, 'errors');
+ $error++;
}
+ unset($_POST[$qty]);
}
}
}
@@ -1953,7 +1828,7 @@ else if ($id || $ref)
if ($obj)
{
// $obj->rowid is rowid in $origin."det" table
- $alreadysent[$obj->rowid][$obj->receptionline_id]=array('reception_ref'=>$obj->reception_ref, 'reception_id'=>$obj->reception_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty, 'date_valid'=>$obj->date_valid, 'date_delivery'=>$obj->date_delivery);
+ $alreadysent[$obj->rowid][$obj->receptionline_id]=array('reception_ref'=>$obj->reception_ref, 'reception_id'=>$obj->reception_id, 'warehouse'=>$obj->fk_entrepot, 'qty'=>$obj->qty, 'date_valid'=>$obj->date_valid, 'date_delivery'=>$obj->date_delivery);
}
$i++;
}
@@ -1981,20 +1856,16 @@ else if ($id || $ref)
{
$prod = new Product($db);
$prod->fetch($lines[$i]->fk_product);
- $label = ( ! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product->product_label;
+ $label = ( ! empty($prod->multilangs[$outputlangs->defaultlang]["label"])) ? $prod->multilangs[$outputlangs->defaultlang]["label"] : $lines[$i]->product->label;
}
else
$label = (! empty($lines[$i]->product->label)?$lines[$i]->product->label:$lines[$i]->product->product_label);
print '';
- // Show product and description
- $product_static->type=$lines[$i]->product->fk_product_type;
- $product_static->id=$lines[$i]->product->fk_product;
- $product_static->ref=$lines[$i]->product->ref;
- $product_static->status_batch=$lines[$i]->product->product_tobatch;
- $text=$product_static->getNomUrl(1);
+
+ $text=$lines[$i]->product->getNomUrl(1);
$text.= ' - '.$label;
$description=(! empty($conf->global->PRODUIT_DESC_IN_FORM)?'':dol_htmlentitiesbr($lines[$i]->product->description));
print $form->textwithtooltip($text,$description,3,'','',$i);
@@ -2042,7 +1913,7 @@ else if ($id || $ref)
if ($j > 1) print ' ';
$reception_static->fetch($receptionline_var['reception_id']);
print $reception_static->getNomUrl(1);
- print ' - '.$receptionline_var['qty_shipped'];
+ print ' - '.$receptionline_var['qty'];
$htmltext=$langs->trans("DateValidation").' : '.(empty($receptionline_var['date_valid'])?$langs->trans("Draft"):dol_print_date($receptionline_var['date_valid'], 'dayhour'));
if (! empty($conf->stock->enabled) && $receptionline_var['warehouse'] > 0)
@@ -2068,11 +1939,18 @@ else if ($id || $ref)
print '';
print ' | ';
// Qty to ship or shipped
- print '| ' . '' . ' | ';
+ print '' . '' . ' | ';
// Warehouse source
- print '' . $formproduct->selectWarehouses($lines[$i]->entrepot_id, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1). ' | ';
- //@TODO Batch number managment
- if($conf->productbatch->enabled)print ' - ' . $langs->trans("NA") . ' | ';
+ print '' . $formproduct->selectWarehouses($lines[$i]->fk_entrepot, 'entl'.$line_id, '', 1, 0, $lines[$i]->fk_product, '', 1). ' | ';
+ // Batch number managment
+ if($conf->productbatch->enabled){
+ print ' ';
+ print $langs->trans('EatByDate').' : ';
+ print $form->select_date($lines[$i]->eatby,'dlc' .$line_id , '', '', 1, ""). '';
+ print $langs->trans('SellByDate').' : ';
+ print $form->select_date($lines[$i]->sellby,'dluo' .$line_id , '', '', 1, "");
+ print ' | ';
+ }
print '
';
}
@@ -2081,7 +1959,7 @@ else if ($id || $ref)
print '';
print '';
// Qty to ship or shipped
- print '| ' . '' . ' | ';
+ print '' . '' . ' | ';
// Warehouse source
print '' . ' | ';
// Batch number managment
@@ -2196,7 +2074,7 @@ else if ($id || $ref)
// Display lines extrafields
if (is_array($extralabelslines) && count($extralabelslines)>0) {
- $colspan= empty($conf->productbatch->enabled) ? 5 : 6;
+ $colspan= empty($conf->productbatch->enabled) ? 8 : 9;
$line = new CommandeFournisseurDispatch($db);
$line->fetch_optionals($lines[$i]->id,$extralabelslines);
print '
';
@@ -2339,7 +2217,7 @@ else if ($id || $ref)
$genallowed=$user->rights->reception->lire;
$delallowed=$user->rights->reception->creer;
-
+
print $formfile->showdocuments('reception',$objectref,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf,1,0,0,28,0,'','','',$soc->default_lang);
@@ -2359,7 +2237,7 @@ else if ($id || $ref)
{
$ref = dol_sanitizeFileName($object->ref);
include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
- $fileparams = dol_most_recent_file($conf->reception->dir_output . '/reception/' . $ref, preg_quote($ref, '/').'[^\-]+');
+ $fileparams = dol_most_recent_file($conf->reception->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+');
$file=$fileparams['fullname'];
// Define output language
$outputlangs = $langs;
diff --git a/htdocs/reception/class/reception.class.php b/htdocs/reception/class/reception.class.php
index 9a557a9a50c..a11a18bd149 100644
--- a/htdocs/reception/class/reception.class.php
+++ b/htdocs/reception/class/reception.class.php
@@ -1194,18 +1194,22 @@ class Reception extends CommonObject
$sql = 'SELECT rowid FROM '.MAIN_DB_PREFIX.'commande_fournisseur_dispatch WHERE fk_reception='.$this->id;
$resql = $db->query($sql);
if(!empty($resql)){
-
+ $this->lines = array();
while ($obj = $resql->fetch_object()){
$line = new CommandeFournisseurDispatch($db);
$line->fetch($obj->rowid);
$line->fetch_product();
- $sql_qtyasked = 'SELECT qty FROM llx_commande_fournisseurdet WHERE rowid='.$line->fk_commandefourndet;
+ $sql_qtyasked = 'SELECT qty, description, label FROM llx_commande_fournisseurdet WHERE rowid='.$line->fk_commandefourndet;
$resql_qtyasked = $db->query($sql_qtyasked);
if(!empty($resql_qtyasked)){
$obj = $db->fetch_object($resql_qtyasked);
$line->qty_asked = $obj->qty;
+ $line->description = $obj->description;
+ $line->label = $obj->label;
}else {
$line->qty_asked = 0;
+ $line->description = '';
+ $line->label = $obj->label;
}
$this->lines[]=$line;
}
@@ -2059,7 +2063,7 @@ class Reception extends CommonObject
if (! dol_strlen($modele)) {
- $modele = 'rouget';
+ $modele = 'squille';
if ($this->modelpdf) {
$modele = $this->modelpdf;
@@ -2071,7 +2075,7 @@ class Reception extends CommonObject
$modelpath = "core/modules/reception/doc/";
$this->fetch_origin();
-
+
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
}
diff --git a/htdocs/reception/contact.php b/htdocs/reception/contact.php
index 7c721d7cf47..ef8f9650b5e 100644
--- a/htdocs/reception/contact.php
+++ b/htdocs/reception/contact.php
@@ -18,15 +18,16 @@
*/
/**
- * \file htdocs/expedition/contact.php
- * \ingroup expedition
- * \brief Onglet de gestion des contacts de expedition
+ * \file htdocs/reception/contact.php
+ * \ingroup reception
+ * \brief Onglet de gestion des contacts de reception
*/
require '../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
+require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
+require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
if (! empty($conf->projet->enabled)) {
@@ -35,7 +36,7 @@ if (! empty($conf->projet->enabled)) {
}
$langs->load("orders");
-$langs->load("sendings");
+$langs->load("receptions");
$langs->load("companies");
$id=GETPOST('id','int');
@@ -44,25 +45,27 @@ $action=GETPOST('action','alpha');
// Security check
if ($user->societe_id) $socid=$user->societe_id;
-$result = restrictedArea($user, 'expedition', $id,'');
+$result = restrictedArea($user, 'reception', $id,'');
-$object = new Expedition($db);
+$object = new Reception($db);
if ($id > 0 || ! empty($ref))
{
$object->fetch($id, $ref);
$object->fetch_thirdparty();
-
+
if (!empty($object->origin))
{
- $typeobject = $object->origin;
$origin = $object->origin;
+
$object->fetch_origin();
+ $typeobject = $object->origin;
+
}
// Linked documents
- if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
+ if ($origin == 'order_supplier' && $object->$typeobject->id && ! empty($conf->fournisseur->enabled))
{
- $objectsrc=new Commande($db);
+ $objectsrc=new CommandeFournisseur($db);
$objectsrc->fetch($object->$typeobject->id);
}
if ($typeobject == 'propal' && $object->$typeobject->id && ! empty($conf->propal->enabled))
@@ -77,7 +80,7 @@ if ($id > 0 || ! empty($ref))
* Actions
*/
-if ($action == 'addcontact' && $user->rights->expedition->creer)
+if ($action == 'addcontact' && $user->rights->reception->creer)
{
if ($result > 0 && $id > 0)
{
@@ -104,13 +107,13 @@ if ($action == 'addcontact' && $user->rights->expedition->creer)
}
// bascule du statut d'un contact
-else if ($action == 'swapstatut' && $user->rights->expedition->creer)
+else if ($action == 'swapstatut' && $user->rights->reception->creer)
{
$result=$objectsrc->swapContactStatus(GETPOST('ligne'));
}
// Efface un contact
-else if ($action == 'deletecontact' && $user->rights->expedition->creer)
+else if ($action == 'deletecontact' && $user->rights->reception->creer)
{
$result = $objectsrc->delete_contact(GETPOST("lineid"));
@@ -124,7 +127,7 @@ else if ($action == 'deletecontact' && $user->rights->expedition->creer)
}
}
/*
-else if ($action == 'setaddress' && $user->rights->expedition->creer)
+else if ($action == 'setaddress' && $user->rights->reception->creer)
{
$object->fetch($id);
$result=$object->setDeliveryAddress($_POST['fk_address']);
@@ -136,7 +139,7 @@ else if ($action == 'setaddress' && $user->rights->expedition->creer)
* View
*/
-llxHeader('',$langs->trans('Order'),'EN:Customers_Orders|FR:expeditions_Clients|ES:Pedidos de clientes');
+llxHeader('',$langs->trans('Reception'),'EN:Customers_Orders|FR:receptions_Clients|ES:Pedidos de clientes');
$form = new Form($db);
$formcompany = new FormCompany($db);
@@ -155,24 +158,24 @@ if ($id > 0 || ! empty($ref))
{
$langs->trans("OrderCard");
- $head = shipping_prepare_head($object);
- dol_fiche_head($head, 'contact', $langs->trans("Shipment"), -1, 'sending');
+ $head = reception_prepare_head($object);
+ dol_fiche_head($head, 'contact', $langs->trans("Reception"), -1, 'sending');
- // Shipment card
- $linkback = ''.$langs->trans("BackToList").'';
+ // Reception card
+ $linkback = ''.$langs->trans("BackToList").'';
$morehtmlref='';
- // Ref customer shipment
- $morehtmlref.=$form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1);
- $morehtmlref.=$form->editfieldval("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
+ // Ref customer reception
+ $morehtmlref.=$form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1);
+ $morehtmlref.=$form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '
' . $langs->trans('Project') . ' ';
- if (0) { // Do not change on shipment
+ if (0) { // Do not change on reception
if ($action != 'classify') {
$morehtmlref .= '
' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : ';
}
@@ -188,8 +191,8 @@ if ($id > 0 || ! empty($ref))
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
- // We don't have project on shipment, so we will use the project or source object instead
- // TODO Add project on shipment
+ // We don't have project on reception, so we will use the project or source object instead
+ // TODO Add project on reception
$morehtmlref .= ' : ';
if (! empty($objectsrc->fk_project)) {
$proj = new Project($db);
@@ -204,7 +207,7 @@ if ($id > 0 || ! empty($ref))
}
$morehtmlref.='
';
-
+ $object->picto = 'sending';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
@@ -213,12 +216,11 @@ if ($id > 0 || ! empty($ref))
print '';
print '';
-
// Linked documents
- if ($typeobject == 'commande' && $object->$typeobject->id && ! empty($conf->commande->enabled))
+ if ($origin == 'order_supplier' && $object->$typeobject->id && ! empty($conf->fournisseur->enabled))
{
print '| ';
- $objectsrc=new Commande($db);
+ $objectsrc=new CommandeFournisseur($db);
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefOrder").' | ';
print '';
@@ -233,7 +235,7 @@ if ($id > 0 || ! empty($ref))
$objectsrc->fetch($object->$typeobject->id);
print $langs->trans("RefProposal").' | ';
print '';
- print $objectsrc->getNomUrl(1,'expedition');
+ print $objectsrc->getNomUrl(1,'reception');
print " | \n";
print '
';
}
@@ -261,11 +263,12 @@ if ($id > 0 || ! empty($ref))
// Contacts lines (modules that overwrite templates must declare this into descriptor)
$dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl'));
- foreach($dirtpls as $reldir)
+ foreach($dirtpls as $reldir)
{
$res=@include dol_buildpath($reldir.'/contacts.tpl.php');
if ($res) break;
}
+
}
diff --git a/htdocs/reception/note.php b/htdocs/reception/note.php
index c32ec5c5124..8ffa32f1715 100644
--- a/htdocs/reception/note.php
+++ b/htdocs/reception/note.php
@@ -19,20 +19,21 @@
*/
/**
- * \file htdocs/expedition/note.php
- * \ingroup expedition
- * \brief Note card expedition
+ * \file htdocs/reception/nosendingte.php
+ * \ingroup receptionsending
+ * \brief Note card reception
*/
require '../main.inc.php';
-require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
-require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/reception/class/reception.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/reception.lib.php';
+dol_include_once('/fourn/class/fournisseur.commande.class.php');
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
-$langs->load("sendings");
+$langs->load("receptions");
$langs->load("companies");
$langs->load("bills");
$langs->load('deliveries');
@@ -50,7 +51,7 @@ $socid='';
if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user, $origin, $origin_id);
-$object = new Expedition($db);
+$object = new Reception($db);
if ($id > 0 || ! empty($ref))
{
$object->fetch($id, $ref);
@@ -76,7 +77,7 @@ if ($id > 0 || ! empty($ref))
}
}
-$permissionnote=$user->rights->expedition->creer; // Used by the include of actions_setnotes.inc.php
+$permissionnote=$user->rights->reception->creer; // Used by the include of actions_setnotes.inc.php
/*
@@ -90,31 +91,31 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include,
* View
*/
-llxHeader();
+llxHeader('','Reception');
$form = new Form($db);
if ($id > 0 || ! empty($ref))
{
- $head=shipping_prepare_head($object);
- dol_fiche_head($head, 'note', $langs->trans("Shipment"), -1, 'sending');
+ $head=reception_prepare_head($object);
+ dol_fiche_head($head, 'note', $langs->trans("Reception"), -1, 'sending');
- // Shipment card
- $linkback = ''.$langs->trans("BackToList").'';
+ // Reception card
+ $linkback = ''.$langs->trans("BackToList").'';
$morehtmlref='';
- // Ref customer shipment
- $morehtmlref.=$form->editfieldkey("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', 0, 1);
- $morehtmlref.=$form->editfieldval("RefCustomer", '', $object->ref_customer, $object, $user->rights->expedition->creer, 'string', '', null, null, '', 1);
+ // Ref customer reception
+ $morehtmlref.=$form->editfieldkey("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', 0, 1);
+ $morehtmlref.=$form->editfieldval("RefSupplier", '', $object->ref_supplier, $object, $user->rights->reception->creer, 'string', '', null, null, '', 1);
// Thirdparty
$morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
if (! empty($conf->projet->enabled)) {
$langs->load("projects");
$morehtmlref .= '
' . $langs->trans('Project') . ' ';
- if (0) { // Do not change on shipment
+ if (0) { // Do not change on reception
if ($action != 'classify') {
$morehtmlref .= '
' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : ';
}
@@ -130,8 +131,8 @@ if ($id > 0 || ! empty($ref))
$morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1);
}
} else {
- // We don't have project on shipment, so we will use the project or source object instead
- // TODO Add project on shipment
+ // We don't have project on reception, so we will use the project or source object instead
+ // TODO Add project on reception
$morehtmlref .= ' : ';
if (! empty($objectsrc->fk_project)) {
$proj = new Project($db);
@@ -146,7 +147,7 @@ if ($id > 0 || ! empty($ref))
}
$morehtmlref.='
';
-
+ $object->picto = 'sending';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);