26require_once DOL_DOCUMENT_ROOT.
'/expedition/class/expedition.class.php';
27require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
28require_once DOL_DOCUMENT_ROOT.
'/product/stock/class/entrepot.class.php';
39 global $db, $langs,
$conf, $user;
42 $langs->loadLangs(array(
"sendings",
"deliveries"));
47 $head[$h][0] = DOL_URL_ROOT.
"/expedition/card.php?id=".
$object->id;
48 $head[$h][1] = $langs->trans(
"SendingCard");
49 $head[$h][2] =
'shipping';
53 $head[$h][0] = DOL_URL_ROOT.
"/expedition/dispatch.php?id=".
$object->id;
54 $head[$h][1] = $langs->trans(
"ShipmentDistribution");
55 $head[$h][2] =
'dispatch';
59 if (
getDolGlobalInt(
'MAIN_SUBMODULE_DELIVERY') && $user->hasRight(
'expedition',
'delivery',
'lire')) {
62 if (isset(
$object->linkedObjectsIds[
'delivery']) && is_array(
$object->linkedObjectsIds[
'delivery']) && count(
$object->linkedObjectsIds[
'delivery']) > 0) {
64 $tmp = reset(
$object->linkedObjectsIds[
'delivery']);
66 $head[$h][0] = DOL_URL_ROOT.
"/delivery/card.php?id=".((int) $tmp);
67 $head[$h][1] = $langs->trans(
"DeliveryCard");
68 $head[$h][2] =
'delivery';
77 $objectsrc->fetch(
$object->origin_id);
79 $nbContact = count($objectsrc->liste_contact(-1,
'internal')) + count($objectsrc->liste_contact(-1,
'external'));
80 $head[$h][0] = DOL_URL_ROOT.
"/expedition/contact.php?id=".((int)
$object->id);
81 $head[$h][1] = $langs->trans(
"ContactsAddresses");
83 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbContact.
'</span>';
85 $head[$h][2] =
'contact';
90 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
91 require_once DOL_DOCUMENT_ROOT .
'/core/class/link.class.php';
93 $nbFiles = count(
dol_dir_list($upload_dir,
'files', 0,
'',
'(\.meta|_preview.*\.png)$'));
95 $head[$h][0] = DOL_URL_ROOT.
'/expedition/document.php?id='.
$object->id;
96 $head[$h][1] = $langs->trans(
'Documents');
97 if (($nbFiles + $nbLinks) > 0) {
98 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.($nbFiles + $nbLinks).
'</span>';
100 $head[$h][2] =
'documents';
105 if (!empty(
$object->note_private)) {
108 if (!empty(
$object->note_public)) {
111 $head[$h][0] = DOL_URL_ROOT.
"/expedition/note.php?id=".
$object->id;
112 $head[$h][1] = $langs->trans(
"Notes");
114 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbNote.
'</span>';
116 $head[$h][2] =
'note';
176 global $langs, $db,
$conf, $user;
179 $langs->loadLangs(array(
"sendings",
"deliveries"));
184 if (
getDolGlobalInt(
'MAIN_SUBMODULE_EXPEDITION') && $user->hasRight(
'expedition',
'lire')) {
185 $head[$h][0] = DOL_URL_ROOT.
"/expedition/card.php?id=".
$object->origin_id;
186 $head[$h][1] = $langs->trans(
"SendingCard");
187 $head[$h][2] =
'shipping';
191 $head[$h][0] = DOL_URL_ROOT.
"/delivery/card.php?id=".
$object->id;
192 $head[$h][1] = $langs->trans(
"DeliveryCard");
193 $head[$h][2] =
'delivery';
208 $tmpobject->fetch(
$object->origin_id);
214 $objectsrc = $tmpobject;
215 if ($tmpobject->origin_type ==
'commande' && $tmpobject->origin_id > 0) {
217 $objectsrc->fetch($tmpobject->origin_id);
219 $nbContact = count($objectsrc->liste_contact(-1,
'internal')) + count($objectsrc->liste_contact(-1,
'external'));
220 $head[$h][0] = DOL_URL_ROOT.
"/expedition/contact.php?id=".$tmpobject->id;
221 $head[$h][1] = $langs->trans(
"ContactsAddresses");
222 if ($nbContact > 0) {
223 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbContact.
'</span>';
225 $head[$h][2] =
'contact';
230 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
231 require_once DOL_DOCUMENT_ROOT.
'/core/class/link.class.php';
233 $nbFiles = count(
dol_dir_list($upload_dir,
'files', 0,
'',
'(\.meta|_preview.*\.png)$'));
234 $nbLinks =
Link::count($db, $tmpobject->element, $tmpobject->id);
235 $head[$h][0] = DOL_URL_ROOT.
'/expedition/document.php?id='.$tmpobject->id;
236 $head[$h][1] = $langs->trans(
'Documents');
237 if (($nbFiles + $nbLinks) > 0) {
238 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.($nbFiles + $nbLinks).
'</span>';
240 $head[$h][2] =
'documents';
245 if (!empty($tmpobject->note_private)) {
248 if (!empty($tmpobject->note_public)) {
251 $head[$h][0] = DOL_URL_ROOT.
"/expedition/note.php?id=".$tmpobject->id;
252 $head[$h][1] = $langs->trans(
"Notes");
254 $head[$h][1] .=
'<span class="badge marginleftonlyshort">'.$nbNote.
'</span>';
256 $head[$h][2] =
'note';
260 $head[$h][0] = DOL_URL_ROOT .
'/expedition/agenda.php?id=' . $tmpobject->id;
261 $head[$h][1] = $langs->trans(
"Events");
262 if (isModEnabled(
'agenda') && ($user->hasRight(
'agenda',
'myactions',
'read') || $user->hasRight(
'agenda',
'allactions',
'read'))) {
265 require_once DOL_DOCUMENT_ROOT .
'/core/lib/memory.lib.php';
266 $cachekey =
'count_events_expedition_' . $tmpobject->id;
268 if (!is_null($dataretrieved)) {
269 $nbEvent = $dataretrieved;
271 $sql =
"SELECT COUNT(id) as nb";
272 $sql .=
" FROM " . MAIN_DB_PREFIX .
"actioncomm";
273 $sql .=
" WHERE fk_element = " . ((int) $tmpobject->id);
274 $sql .=
" AND elementtype = 'shipping'";
275 $resql = $db->query($sql);
277 $obj = $db->fetch_object($resql);
280 dol_syslog(
'Failed to count actioncomm ' . $db->lasterror(), LOG_ERR);
286 $head[$h][1] .= $langs->trans(
"Agenda");
288 $head[$h][1] .=
'<span class="badge marginleftonlyshort">' . $nbEvent .
'</span>';
291 $head[$h][2] =
'agenda';
313function show_list_sending_receive($origin, $origin_id, $filter =
'')
315 global $db,
$conf, $langs;
318 $product_static =
new Product($db);
320 $warehousestatic =
new Entrepot($db);
322 $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, obj.special_code,";
323 $sql .=
" ed.rowid as edrowid, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_elementdet, ed.fk_entrepot as warehouse_id,";
324 $sql .=
" e.rowid as sendingid, e.ref as exp_ref, e.date_creation, e.date_delivery, e.date_expedition, e.billed, e.fk_statut as status, e.signed_status,";
325 $sql .=
' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch,';
326 $sql .=
' p.description as product_desc';
327 $sql .=
" FROM ".MAIN_DB_PREFIX.
"expeditiondet as ed,";
328 $sql .=
" ".MAIN_DB_PREFIX.
"expedition as e,";
329 $sql .=
" ".MAIN_DB_PREFIX.$origin.
"det as obj";
330 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"product as p ON obj.fk_product = p.rowid";
332 $sql .=
" WHERE e.entity IN (".getEntity(
'expedition').
")";
333 $sql .=
" AND obj.fk_".$origin.
" = ".((int) $origin_id);
334 $sql .=
" AND obj.rowid = ed.fk_elementdet";
335 if (isModEnabled(
'subtotals')) {
336 $sql .=
" AND obj.special_code <> ".SUBTOTALS_SPECIAL_CODE;
338 $sql .=
" AND ed.fk_expedition = e.rowid";
342 $sql .=
" ORDER BY obj.rowid, obj.fk_product";
344 dol_syslog(
"show_list_sending_receive", LOG_DEBUG);
345 $resql = $db->query($sql);
347 $num = $db->num_rows($resql);
357 print
'<div class="div-table-responsive-no-min">';
358 print
'<table class="liste centpercent">';
359 print
'<tr class="liste_titre">';
361 print
'<td>'.$langs->trans(
"SendingSheet").
'</td>';
362 print
'<td>'.$langs->trans(
"Description").
'</td>';
363 print
'<td class="center">'.$langs->trans(
"DateCreation").
'</td>';
364 print
'<td class="center">'.$langs->trans(
"DateDeliveryPlanned").
'</td>';
365 print
'<td class="center">'.$langs->trans(
"QtyPreparedOrShipped").
'</td>';
366 if (isModEnabled(
'stock')) {
367 print
'<td>'.$langs->trans(
"Warehouse").
'</td>';
376 print
'<td>'.$langs->trans(
"DeliveryOrder").
'</td>';
378 print
'<td class="right">'.$langs->trans(
"DeliveryDate").
'</td>';
383 $objp = $db->fetch_object($resql);
385 $expedition->id = $objp->expedition_id;
386 $expedition->ref = $objp->exp_ref;
387 $expedition->billed = $objp->billed;
388 $expedition->statut = $objp->status;
389 $expedition->status = $objp->status;
390 $expedition->signed_status = $objp->signed_status;
392 print
'<tr class="oddeven">';
395 print
'<td class="tdoverflowmax125">';
396 print $expedition->getNomUrl(1);
401 if ($objp->fk_product > 0) {
405 '@phan-var-force CommonObject $object';
410 $prod->id = $objp->fk_product;
411 $prod->getMultiLangs();
413 $outputlangs = $langs;
415 if (empty($newlang) &&
GETPOST(
'lang_id',
'aZ09')) {
416 $newlang =
GETPOST(
'lang_id',
'aZ09');
418 if (empty($newlang)) {
419 $newlang =
$object->thirdparty->default_lang;
421 if (!empty($newlang)) {
423 $outputlangs->setDefaultLang($newlang);
426 $label = (!empty($prod->multilangs[$outputlangs->defaultlang][
"label"])) ? $prod->multilangs[$outputlangs->defaultlang][
"label"] : $objp->product_label;
428 $label = (!empty($objp->label) ? $objp->label : $objp->product_label);
434 $product_static->type = $objp->fk_product_type;
435 $product_static->id = $objp->fk_product;
436 $product_static->ref = $objp->ref;
437 $product_static->status_batch = $objp->product_tobatch;
439 $text = $product_static->getNomUrl(1);
440 $text .=
' - '.$label;
442 print $form->textwithtooltip($text, $description, 3, 0,
'', (
string) $i);
449 print(!empty($objp->description) ? ((empty($objp->product) || $objp->description != $objp->product) ?
'<br>'.dol_htmlentitiesbr($objp->description) :
'') :
'');
455 if ($objp->fk_product_type == 1) {
456 $text =
img_object($langs->trans(
'Service'),
'service');
458 $text =
img_object($langs->trans(
'Product'),
'product');
461 if (!empty($objp->label)) {
462 $text .=
' <strong>'.$objp->label.
'</strong>';
463 print $form->textwithtooltip($text, $objp->description, 3, 0,
'', (
string) $i);
465 print $text.
' '.nl2br($objp->description);
476 print
'<td class="nowrap center">'.dol_print_date($db->jdate($objp->date_creation),
'day').
'</td>';
479 print
'<td class="nowrap center">'.dol_print_date($db->jdate($objp->date_delivery),
'day').
'</td>';
482 print
'<td class="center">'.$objp->qty_shipped.
'</td>';
485 if (isModEnabled(
'stock')) {
486 print
'<td class="tdoverflowmax125">';
487 if ($objp->warehouse_id > 0) {
488 $warehousestatic->fetch($objp->warehouse_id);
489 print $warehousestatic->getNomUrl(1);
528 include_once DOL_DOCUMENT_ROOT.
'/delivery/class/delivery.class.php';
529 $expedition->fetchObjectLinked($expedition->id, $expedition->element,
null,
'delivery');
533 if (!empty($expedition->linkedObjects[
'delivery'])) {
534 $receiving = reset($expedition->linkedObjects[
'delivery']);
537 if (!empty($receiving)) {
539 '@phan-var-force Delivery $receiving';
547 print $receiving->getNomUrl(1);
557 print
'<td class="right">';
562 print
'<td> </td>';
563 print
'<td> </td>';
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Class to manage customers orders.
Class to manage warehouses.
const STATUS_DRAFT
Draft status.
static count($dbs, $objecttype, $objectid)
Return nb of links.
Class to manage products or services.
Class to manage translations.
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
print_date_range($date_start, $date_end, $format='', $outputlangs=null)
Format output for start and end date.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode='add', $filterorigmodule='')
Complete or removed entries into a head array (used to build tabs).
dol_htmlentitiesbr($stringtoencode, $nl2brmode=0, $pagecodefrom='UTF-8', $removelasteolbr=1)
This function is called to encode a string into a HTML string but differs from htmlentities because a...
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
dol_setcache($memoryid, $data, $expire=0, $filecache=0, $replace=0)
Save data into a memory area shared by all users, all sessions on server.
dol_getcache($memoryid, $filecache=0)
Read a memory area shared by all users, all sessions on server.
delivery_prepare_head($object)
Prepare array with list of tabs.
shipping_prepare_head($object)
Prepare array with list of tabs.