Fix the eatby/sellby date was not visible.

This commit is contained in:
Laurent Destailleur 2017-12-02 10:43:01 +01:00
parent 0a73daba01
commit e8327fd9a1
9 changed files with 70 additions and 48 deletions

View File

@ -902,7 +902,7 @@ if ($action == 'create')
// Description
print '<tr><td class="tdtop">'.$langs->trans("Description").'</td><td>';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
$doleditor=new DolEditor('note',(GETPOST('note','none')?GETPOST('note','none'):$object->note),'',180,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_5,'90%');
$doleditor=new DolEditor('note',(GETPOST('note','none')?GETPOST('note','none'):$object->note),'',180,'dolibarr_notes','In',true,true,$conf->fckeditor->enabled,ROWS_4,'90%');
$doleditor->Create();
print '</td></tr>';

View File

@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2014 Laurent Destailleur <eldy@users.sourceforge.net>
/* Copyright (C) 2014-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
*
* This program is free software; you can redistribute it and/or modify

View File

@ -53,9 +53,9 @@ function shipping_prepare_head($object)
$object->fetchObjectLinked($object->id,$object->element);
if (count($object->linkedObjectsIds['delivery']) > 0) // If there is a delivery
{
// Take first one element of array
// Take first one element of array
$tmp = reset($object->linkedObjectsIds['delivery']);
$head[$h][0] = DOL_URL_ROOT."/livraison/card.php?id=".$tmp;
$head[$h][1] = $langs->trans("DeliveryCard");
$head[$h][2] = 'delivery';
@ -78,7 +78,7 @@ function shipping_prepare_head($object)
$head[$h][2] = 'contact';
$h++;
}
$nbNote = 0;
if (!empty($object->note_private)) $nbNote++;
if (!empty($object->note_public)) $nbNote++;
@ -171,7 +171,7 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
$product_static=new Product($db);
$expedition=new Expedition($db);
$warehousestatic=new Entrepot($db);
$sql = "SELECT obj.rowid, obj.fk_product, obj.label, obj.description, obj.product_type as fk_product_type, obj.qty as qty_asked, obj.date_start, obj.date_end,";
$sql.= " ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot as warehouse_id,";
$sql.= " e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition,";
@ -233,7 +233,7 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
$var=True;
while ($i < $num)
{
$objp = $db->fetch_object($resql);
print '<tr class="oddeven">';
@ -336,7 +336,7 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
}
print '</td>';
}
// Batch number managment
/*TODO Add link to expeditiondet_batch
if (! empty($conf->productbatch->enabled))
@ -351,7 +351,11 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
$detail = '';
foreach ($lines[$i]->detail_batch as $dbatch)
{
$detail.= $langs->trans("DetailBatchFormat",$dbatch->batch,dol_print_date($dbatch->eatby,"day"),dol_print_date($dbatch->sellby,"day"),$dbatch->dluo_qty).'<br/>';
$detail.= $langs->trans("Batch").': '.$dbatch->batch;
$detail.= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby,"day");
$detail.= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby,"day");
$detail.= ' - '.$langs->trans("Qty").': '.$dbatch->dluo_qty;
$detail.= '<br>';
}
print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"),$detail);
}
@ -363,8 +367,8 @@ function show_list_sending_receive($origin,$origin_id,$filter='')
} else {
print '<td></td>';
}
}*/
}*/
// Informations on receipt
if (! empty($conf->livraison_bon->enabled))
{

View File

@ -52,14 +52,8 @@ if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
}
$langs->load("sendings");
$langs->load("companies");
$langs->load("bills");
$langs->load('deliveries');
$langs->load('orders');
$langs->load('stocks');
$langs->load('other');
$langs->load('propal');
$langs->loadLangs(array("sendings","companies","bills",'deliveries','orders','stocks','other','propal'));
if (!empty($conf->incoterm->enabled)) $langs->load('incoterm');
if (! empty($conf->productbatch->enabled)) $langs->load('productbatch');
@ -108,6 +102,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be inclu
$hookmanager->initHooks(array('expeditioncard','globalcard'));
$permissiondellink=$user->rights->expedition->livraison->creer; // Used by the include of actions_dellink.inc.php
//var_dump($object->lines[0]->detail_batch);
/*
@ -1191,7 +1186,8 @@ if ($action == 'create')
if ($line->fk_product > 0) // If predefined product
{
$product->fetch($line->fk_product);
$product->load_stock('warehouseopen');
$product->load_stock('warehouseopen'); // Load all $product->stock_warehouse[idwarehouse]->detail_batch
//var_dump($product->stock_warehouse[1]);
print '<td>';
print '<a name="'.$line->rowid.'"></a>'; // ancre pour retourner sur la ligne
@ -1368,13 +1364,21 @@ if ($action == 'create')
print '<input name="qtyl'.$indiceAsked.'_'.$subj.'" id="qtyl'.$indiceAsked.'_'.$subj.'" type="text" size="4" value="'.$deliverableQty.'">';
print '</td>';
print '<!-- Show details of lot -->';
print '<td align="left">';
print $staticwarehouse->getNomUrl(0).' / ';
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);
$detail='';
$detail.= $langs->trans("Batch").': '.$dbatch->batch;
$detail.= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby,"day");
$detail.= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby,"day");
$detail.= ' - '.$langs->trans("Qty").': '.$dbatch->dluo_qty;
$detail.= '<br>';
print $detail;
$quantityToBeDelivered -= $deliverableQty;
if ($quantityToBeDelivered < 0)
{
@ -1530,14 +1534,12 @@ 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);
//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;
if ($quantityToBeDelivered < 0)
{
@ -2378,13 +2380,18 @@ else if ($id || $ref)
{
if (isset($lines[$i]->detail_batch))
{
print '<!-- Detail of lot -->';
print '<td>';
if ($lines[$i]->product_tobatch)
{
$detail = '';
foreach ($lines[$i]->detail_batch as $dbatch)
{
$detail.= $langs->trans("DetailBatchFormat",$dbatch->batch,dol_print_date($dbatch->eatby,"day"),dol_print_date($dbatch->sellby,"day"),$dbatch->dluo_qty).'<br/>';
$detail.= $langs->trans("Batch").': '.$dbatch->batch;
$detail.= ' - '.$langs->trans("EatByDate").': '.dol_print_date($dbatch->eatby,"day");
$detail.= ' - '.$langs->trans("SellByDate").': '.dol_print_date($dbatch->sellby,"day");
$detail.= ' - '.$langs->trans("Qty").': '.$dbatch->dluo_qty;
$detail.= '<br>';
}
print $form->textwithtooltip(img_picto('', 'object_barcode').' '.$langs->trans("DetailBatchNumber"),$detail);
}

View File

@ -1295,8 +1295,7 @@ class Expedition extends CommonObject
$sql.= ", ed.rowid as line_id, ed.qty as qty_shipped, ed.fk_origin_line, ed.fk_entrepot";
$sql.= ", p.ref as product_ref, p.label as product_label, p.fk_product_type";
$sql.= ", p.weight, p.weight_units, p.length, p.length_units, p.surface, p.surface_units, p.volume, p.volume_units, p.tobatch as product_tobatch";
$sql.= " FROM (".MAIN_DB_PREFIX."expeditiondet as ed,";
$sql.= " ".MAIN_DB_PREFIX."commandedet as cd)";
$sql.= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = cd.fk_product";
$sql.= " WHERE ed.fk_expedition = ".$this->id;
$sql.= " AND ed.fk_origin_line = cd.rowid";
@ -1411,12 +1410,13 @@ class Expedition extends CommonObject
{
$line->detail_batch = array();
}
// Eat-by date
if (! empty($conf->productbatch->enabled) && $obj->line_id > 0)
// Detail of batch
if (! empty($conf->productbatch->enabled) && $obj->line_id > 0 && $obj->product_tobatch > 0)
{
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php';
$newdetailbatch = ExpeditionLineBatch::fetchAll($this->db,$obj->line_id);
$newdetailbatch = ExpeditionLineBatch::fetchAll($this->db, $obj->line_id, $obj->fk_product);
if (is_array($newdetailbatch))
{
if ($originline != $obj->fk_origin_line)

View File

@ -169,22 +169,33 @@ class ExpeditionLineBatch extends CommonObject
}
/**
* Retrieve all batch number details link to a shipment line
* Retrieve all batch number detailed information of a shipment line
*
* @param DoliDB $db Database object
* @param int $id_line_expdet id of shipment line
* @return variant -1 if KO, array of ExpeditionLineBatch if OK
* @param DoliDB $db Database object
* @param int $id_line_expdet id of shipment line
* @param int $fk_product If provided, load also detailed information of lot
* @return int|array -1 if KO, array of ExpeditionLineBatch if OK
*/
static function fetchAll($db,$id_line_expdet)
static function fetchAll($db, $id_line_expdet, $fk_product=0)
{
$sql="SELECT rowid,";
$sql.= "fk_expeditiondet";
$sql.= ", sellby";
$sql.= ", eatby";
$sql.= ", batch";
$sql.= ", qty";
$sql.= ", fk_origin_stock";
$sql.= " FROM ".MAIN_DB_PREFIX.self::$_table_element;
$sql="SELECT";
$sql.= " eb.rowid,";
$sql.= " eb.fk_expeditiondet,";
$sql.= " eb.sellby as oldsellby,"; // deprecated
$sql.= " eb.eatby as oldeatby,"; // deprecated
$sql.= " eb.batch,";
$sql.= " eb.qty,";
$sql.= " eb.fk_origin_stock";
if ($fk_product > 0)
{
$sql.= ", pl.sellby";
$sql.= ", pl.eatby";
}
$sql.= " FROM ".MAIN_DB_PREFIX.self::$_table_element." as eb";
if ($fk_product > 0)
{
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot as pl ON pl.batch = eb.batch AND pl.fk_product = ".$fk_product;
}
$sql.= " WHERE fk_expeditiondet=".(int) $id_line_expdet;
dol_syslog(__METHOD__ ."", LOG_DEBUG);
@ -200,8 +211,8 @@ class ExpeditionLineBatch extends CommonObject
$obj = $db->fetch_object($resql);
$tmp->sellby = $db->jdate($obj->sellby);
$tmp->eatby = $db->jdate($obj->eatby);
$tmp->sellby = $db->jdate($obj->sellby ? $obj->sellby : $obj->oldsellby);
$tmp->eatby = $db->jdate($obj->eatby ? $obj->eatby : $obj->oldeatby);
$tmp->batch = $obj->batch;
$tmp->id = $obj->rowid;
$tmp->fk_origin_stock = $obj->fk_origin_stock;
@ -216,6 +227,7 @@ class ExpeditionLineBatch extends CommonObject
}
else
{
dol_print_error($db);
return -1;
}
}

View File

@ -11,7 +11,6 @@ BatchNumberShort=Lot/Serial
EatByDate=Eat-by date
SellByDate=Sell-by date
DetailBatchNumber=Lot/Serial details
DetailBatchFormat=Lot/Serial: %s - Eat by: %s - Sell by: %s (Qty : %d)
printBatch=Lot/Serial: %s
printEatby=Eat-by: %s
printSellby=Sell-by: %s

View File

@ -3873,7 +3873,7 @@ class Product extends CommonObject
$this->stock_warehouse[$row->fk_entrepot] = new stdClass();
$this->stock_warehouse[$row->fk_entrepot]->real = $row->reel;
$this->stock_warehouse[$row->fk_entrepot]->id = $row->rowid;
if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db,$row->rowid,1);
if ((! preg_match('/nobatch/', $option)) && $this->hasbatch()) $this->stock_warehouse[$row->fk_entrepot]->detail_batch=Productbatch::findAll($this->db, $row->rowid, 1, $this->id);
$this->stock_reel+=$row->reel;
$i++;
}

View File

@ -469,7 +469,7 @@ class Productbatch extends CommonObject
}
}
/**
* Return all batch detail records for given product and warehouse
* Return all batch detail records for a given product and warehouse
*
* @param DoliDB $db database object
* @param int $fk_product_stock id product_stock for objet