33require
'../main.inc.php';
34require_once DOL_DOCUMENT_ROOT.
'/delivery/class/delivery.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/modules/delivery/modules_delivery.php';
36require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/lib/sendings.lib.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/doleditor.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/extrafields.class.php';
40if (isModEnabled(
"product") || isModEnabled(
"service")) {
41 require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
43if (isModEnabled(
'shipping')) {
44 require_once DOL_DOCUMENT_ROOT.
'/expedition/class/expedition.class.php';
46if (isModEnabled(
'stock')) {
47 require_once DOL_DOCUMENT_ROOT.
'/product/stock/class/entrepot.class.php';
49if (isModEnabled(
'project')) {
50 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
51 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formprojet.class.php';
63$langs->loadLangs(array(
'bills',
'deliveries',
'orders',
'sendings'));
65if (isModEnabled(
'incoterm')) {
66 $langs->load(
'incoterm');
69$action =
GETPOST(
'action',
'aZ09');
70$confirm =
GETPOST(
'confirm',
'alpha');
71$backtopage =
GETPOST(
'backtopage',
'alpha');
76$hookmanager->initHooks(array(
'deliverycard',
'globalcard'));
82$extrafields->fetch_name_optionals_label(
$object->table_element);
85$extrafields->fetch_name_optionals_label(
$object->table_element_line);
88include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
94 $socid = $user->socid;
96$result =
restrictedArea($user,
'expedition', $id,
'delivery',
'delivery');
98$permissiontoread = $user->hasRight(
'expedition',
'delivery',
'read');
99$permissiontoadd = $user->hasRight(
'expedition',
'delivery',
'creer');
100$permissiontodelete = $user->hasRight(
'expedition',
'delivery',
'supprimer') || ($permissiontoadd && isset(
$object->status) &&
$object->status == $object::STATUS_DRAFT);
101$permissiontovalidate = ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'expedition',
'delivery',
'creer')) || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'expedition',
'delivery_advance',
'validate')));
102$permissionnote = $user->hasRight(
'expedition',
'delivery',
'creer');
103$permissiondellink = $user->hasRight(
'expedition',
'delivery',
'creer');
104$permissiontoeditextra = $permissiontoadd;
105if (
GETPOST(
'attribute',
'aZ09') && isset($extrafields->attributes[
$object->table_element][
'perms'][
GETPOST(
'attribute',
'aZ09')])) {
107 $permissiontoeditextra =
dol_eval((
string) $extrafields->attributes[
$object->table_element][
'perms'][
GETPOST(
'attribute',
'aZ09')]);
109$permissiontoeditextraline = $permissiontoadd;
110if (
GETPOST(
'attribute',
'aZ09') && isset($extrafields->attributes[
$object->table_element_line][
'perms'][
GETPOST(
'attribute',
'aZ09')])) {
112 $permissiontoeditextraline =
dol_eval((
string) $extrafields->attributes[
$object->table_element_line][
'perms'][
GETPOST(
'attribute',
'aZ09')]);
120$parameters = array();
121$reshook = $hookmanager->executeHooks(
'doActions', $parameters,
$object, $action);
123$permissiondellink = $user->hasRight(
'expedition',
'delivery',
'supprimer');
124include DOL_DOCUMENT_ROOT.
'/core/actions_dellink.inc.php';
126if ($action ==
'add' && $permissiontoadd) {
127 $array_options = array();
143 $commande->fetch(
$object->commande_id);
144 $commande->fetch_lines();
145 $num = count($commande->lines);
146 for ($i = 0; $i < $num; $i++) {
158 header(
"Location: ".$_SERVER[
'PHP_SELF'].
"?id=".
$object->id);
166} elseif ($action ==
'confirm_valid' && $confirm ==
'yes' && $permissiontovalidate) {
167 $result =
$object->valid($user);
171 $outputlangs = $langs;
174 $newlang =
GETPOST(
'lang_id',
'aZ09');
177 $newlang =
$object->thirdparty->default_lang;
179 if (!empty($newlang)) {
181 $outputlangs->setDefaultLang($newlang);
187 $result =
$object->generateDocument($model, $outputlangs, 0, 0, 0);
194if ($action ==
'confirm_delete' && $confirm ==
'yes' && $permissiontodelete) {
196 $result =
$object->delete($user);
200 if (!empty($backtopage)) {
201 header(
"Location: ".$backtopage);
203 header(
"Location: ".DOL_URL_ROOT.
'/expedition/list.php?restore_lastsearch_values=1');
211if ($action ==
'setdate_delivery' && $permissiontoadd) {
213 $result =
$object->setDeliveryDate($user, $datedelivery);
215 $mesg =
'<div class="error">'.$object->error.
'</div>';
217} elseif ($action ==
'set_incoterms' && isModEnabled(
'incoterm') && $permissiontoadd) {
223if ($action ==
'update_extras' && $permissiontoeditextra) {
226 $attribute_name =
GETPOST(
'attribute',
'aZ09');
229 $ret = $extrafields->setOptionalsFromPost(
null,
$object, $attribute_name);
235 $result =
$object->updateExtraField($attribute_name,
'DELIVERY_MODIFY');
243 $action =
'edit_extras';
248if ($action ==
'update_extras_line' && $permissiontoeditextraline) {
249 $array_options = array();
252 for ($i = 0; $i < $num; $i++) {
254 $extralabelsline = $extrafields->fetch_name_optionals_label(
$object->table_element_line);
255 $array_options[$i] = $extrafields->getOptionalsFromPost($extralabelsline, (
string) $i);
257 if (is_array($extralabelsline)) {
259 foreach ($extralabelsline as $key => $value) {
260 unset($_POST[
"options_".$key]);
264 $ret =
$object->update_line(
$object->lines[$i]->id, $array_options[$i]);
266 $mesg =
'<div class="error">'.$object->error.
'</div>';
274$upload_dir =
$conf->expedition->dir_output.
'/receipt';
275include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
278@phan-var-force int<0,1> $hidedetails
279@phan-var-force int<0,1> $hidedesc
280@phan-var-force int<0,1> $hideref
283include DOL_DOCUMENT_ROOT.
'/core/actions_printing.inc.php';
290$title = $langs->trans(
'Delivery');
292llxHeader(
'', $title,
'Livraison',
'', 0, 0,
'',
'',
'',
'mod-delivery page-card');
294$form =
new Form($db);
297if ($action ==
'create') {
305 $result = $expedition->fetch(
$object->origin_id);
307 $typeobject = $expedition->origin;
318 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">';
319 print
'<input type="hidden" name="token" value="'.newToken().
'">';
320 print
'<input type="hidden" name="action" value="update_extras_line">';
321 print
'<input type="hidden" name="origin" value="'.$object->origin.
'">';
322 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
323 print
'<input type="hidden" name="ref" value="'.$object->ref.
'">';
331 if ($action ==
'delete') {
332 $expedition_id =
GETPOST(
"expid");
333 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&expid='.$expedition_id.
'&backtopage='.urlencode($backtopage), $langs->trans(
"DeleteDeliveryReceipt"), $langs->trans(
"DeleteDeliveryReceiptConfirm",
$object->ref),
'confirm_delete',
'',
'', 1);
339 if ($action ==
'valid') {
340 print $form->formconfirm($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $langs->trans(
"ValidateDeliveryReceipt"), $langs->trans(
"ValidateDeliveryReceiptConfirm",
$object->ref),
'confirm_valid',
'',
'', 1);
348 if ($typeobject ==
'commande' && $expedition->origin_id > 0 && isModEnabled(
'order')) {
350 $objectsrc->fetch($expedition->origin_id);
352 if ($typeobject ==
'propal' && $expedition->origin_id > 0 && isModEnabled(
"propal")) {
353 $objectsrc =
new Propal($db);
354 $objectsrc->fetch($expedition->origin_id);
358 $linkback =
'<a href="'.DOL_URL_ROOT.
'/expedition/list.php?restore_lastsearch_values=1'.(!empty($socid) ?
'&socid='.$socid :
'').
'">'.$langs->trans(
"BackToList").
'</a>';
360 $morehtmlref =
'<div class="refidno">';
362 $morehtmlref .= $form->editfieldkey(
"RefCustomer",
'', $expedition->ref_customer, $expedition, $user->hasRight(
'expedition',
'creer'),
'string',
'', 0, 1);
363 $morehtmlref .= $form->editfieldval(
"RefCustomer",
'', $expedition->ref_customer, $expedition, $user->hasRight(
'expedition',
'creer'),
'string'.(getDolGlobalString(
'THIRDPARTY_REF_INPUT_SIZE') ?
':' .
getDolGlobalString(
'THIRDPARTY_REF_INPUT_SIZE') :
''),
'', null, null,
'', 1);
364 $morehtmlref .=
'<br>'.$langs->trans(
"RefDeliveryReceipt").
' : '.
$object->ref;
366 $morehtmlref .=
'<br>'.$expedition->thirdparty->getNomUrl(1);
368 if (isModEnabled(
'project')) {
369 $langs->load(
"projects");
370 $morehtmlref .=
'<br>';
372 $morehtmlref .=
img_picto($langs->trans(
"Project"),
'project',
'class="pictofixedwidth"');
373 if ($action !=
'classify') {
374 $morehtmlref .=
'<a class="editfielda" href="'.$_SERVER[
'PHP_SELF'].
'?action=classify&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->transnoentitiesnoconv(
'SetProject')).
'</a> ';
376 $morehtmlref .= $form->form_project($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, $objectsrc->socid, (
string) $objectsrc->fk_project, ($action ==
'classify' ?
'projectid' :
'none'), 0, 0, 0, 1,
'',
'maxwidth300');
378 if (!empty($objectsrc->fk_project)) {
380 $proj->fetch($objectsrc->fk_project);
381 $morehtmlref .= $proj->getNomUrl(1);
383 $morehtmlref .=
'<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).
'</span>';
388 $morehtmlref .=
'</div>';
390 $morehtmlstatus = $langs->trans(
"StatusReceipt").
' : '.
$object->getLibStatut(6).
'<br><br class="small">';
392 dol_banner_tab($expedition,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'', $morehtmlstatus);
395 print
'<div class="fichecenter">';
396 print
'<div class="underbanner clearboth"></div>';
398 print
'<table class="border tableforfield" width="100%">';
428 if ($typeobject ==
'commande' && $expedition->origin_id && isModEnabled(
'order')) {
429 print
'<tr><td class="titlefield">'.$langs->trans(
"RefOrder").
'</td>';
431 $order->fetch($expedition->origin_id);
432 print
'<td colspan="3">';
433 print $order->getNomUrl(1,
'commande');
437 if ($typeobject ==
'propal' && $expedition->origin_id && isModEnabled(
"propal")) {
438 $propal =
new Propal($db);
439 $propal->fetch($expedition->origin_id);
440 print
'<tr><td class="titlefield">'.$langs->trans(
"RefProposal").
'</td>';
441 print
'<td colspan="3">';
442 print $propal->getNomUrl(1,
'expedition');
448 print
'<tr><td class="titlefield">'.$langs->trans(
"DateCreation").
'</td>';
449 print
'<td colspan="3">'.dol_print_date(
$object->date_creation,
'dayhour').
"</td>\n";
453 print
'<tr><td height="10">';
454 print
'<table class="nobordernopadding" width="100%"><tr><td>';
455 print $langs->trans(
'DateReceived');
458 if ($action !=
'editdate_delivery') {
459 print
'<td class="right"><a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?action=editdate_delivery&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->trans(
'SetDeliveryDate'), 1).
'</a></td>';
461 print
'</tr></table>';
462 print
'</td><td colspan="2">';
463 if ($action ==
'editdate_delivery') {
464 print
'<form name="setdate_delivery" action="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'" method="post">';
465 print
'<input type="hidden" name="token" value="'.newToken().
'">';
466 print
'<input type="hidden" name="action" value="setdate_delivery">';
467 print $form->selectDate(
$object->date_delivery ?
$object->date_delivery : -1,
'liv_', 1, 1, 0,
"setdate_delivery", 1, 1);
468 print
'<input type="submit" class="button smallpaddingimp button-edit" value="'.$langs->trans(
'Modify').
'">';
477 if (isModEnabled(
'incoterm')) {
479 print
'<table class="centpercent nobordernopadding"><tr><td>';
480 print $langs->trans(
'IncotermLabel');
481 print
'<td><td class="right">';
482 if ($user->hasRight(
'expedition',
'delivery',
'creer')) {
483 print
'<a class="editfielda" href="'.DOL_URL_ROOT.
'/delivery/card.php?id='.
$object->id.
'&action=editincoterm&token='.
newToken().
'">'.
img_edit().
'</a>';
487 print
'</td></tr></table>';
489 print
'<td colspan="3">';
490 if ($action !=
'editincoterm') {
491 print $form->textwithpicto(
$object->display_incoterms(),
$object->label_incoterms, 1);
493 print $form->select_incoterms((!empty(
$object->fk_incoterms) ?
$object->fk_incoterms :
''), (!empty(
$object->location_incoterms) ?
$object->location_incoterms :
''), $_SERVER[
'PHP_SELF'].
'?id='.
$object->id);
518 if (!
getDolGlobalInt(
'MAIN_SUBMODULE_EXPEDITION') && isModEnabled(
'stock')) {
521 $entrepot->fetch($expedition->entrepot_id);
522 print
'<tr><td width="20%">'.$langs->trans(
"Warehouse").
'</td>';
523 print
'<td colspan="3"><a href="'.DOL_URL_ROOT.
'/product/stock/card.php?id='.$entrepot->id.
'">'.$entrepot->label.
'</a></td>';
528 if ($action ==
'create_delivery') {
530 $extrafields->fetch_name_optionals_label($expedition->table_element);
531 if ($expedition->fetch_optionals() > 0) {
532 $object->array_options = array_merge(
$object->array_options, $expedition->array_options);
536 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
538 print
"</table><br>\n";
546 $num_prod = count(
$object->lines);
550 print
'<table class="noborder centpercent">';
555 print
'<tr class="liste_titre">';
556 print
'<td>'.$langs->trans(
"Products").
'</td>';
557 print
'<td class="center">'.$langs->trans(
"QtyOrdered").
'</td>';
558 print
'<td class="center">'.$langs->trans(
"QtyReceived").
'</td>';
561 while ($i < $num_prod) {
562 $parameters = array(
'i' => $i,
'line' =>
$object->lines[$i],
'num' => $num_prod);
563 $reshook = $hookmanager->executeHooks(
'printObjectLine', $parameters,
$object, $action);
568 if (empty($reshook)) {
569 print
'<tr class="oddeven">';
570 if (
$object->lines[$i]->fk_product > 0) {
572 $product->fetch(
$object->lines[$i]->fk_product);
576 $outputlangs = $langs;
578 if (
GETPOST(
'lang_id',
'aZ09')) {
579 $newlang =
GETPOST(
'lang_id',
'aZ09');
581 if (empty($newlang)) {
582 $newlang =
$object->thirdparty->default_lang;
584 if (!empty($newlang)) {
586 $outputlangs->setDefaultLang($newlang);
589 $label = (!empty($product->multilangs[$outputlangs->defaultlang][
"label"])) ? $product->multilangs[$outputlangs->defaultlang][
"label"] :
$object->lines[$i]->product_label;
591 $label = (!empty(
$object->lines[$i]->label) ?
$object->lines[$i]->label :
$object->lines[$i]->product_label);
597 $text =
'<a href="'.DOL_URL_ROOT.
'/product/card.php?id='.
$object->lines[$i]->fk_product.
'">';
598 if (
$object->lines[$i]->fk_product_type == 1) {
599 $text .=
img_object($langs->trans(
'ShowService'),
'service');
601 $text .=
img_object($langs->trans(
'ShowProduct'),
'product');
603 $text .=
' '.$object->lines[$i]->product_ref.
'</a>';
604 $text .=
' - '.$label;
607 print $form->textwithtooltip($text, $description, 3, 0,
'', (
string) $i);
610 print (!empty(
$object->lines[$i]->description) &&
$object->lines[$i]->description !=
$object->lines[$i]->product_label) ?
'<br>'.dol_htmlentitiesbr(
$object->lines[$i]->description) :
'';
614 if (
$object->lines[$i]->fk_product_type == 1) {
615 $text =
img_object($langs->trans(
'Service'),
'service');
617 $text =
img_object($langs->trans(
'Product'),
'product');
620 if (!empty(
$object->lines[$i]->label)) {
621 $text .=
' <strong>'.$object->lines[$i]->label.
'</strong>';
622 print $form->textwithtooltip($text,
$object->lines[$i]->description, 3, 0,
'', (
string) $i);
624 print $text.
' '.nl2br(
$object->lines[$i]->description);
631 print
'<td class="center">'.$object->lines[$i]->qty_asked.
'</td>';
632 print
'<td class="center">'.$object->lines[$i]->qty_shipped.
'</td>';
639 $mode = (
$object->statut == 0) ?
'edit' :
'view';
641 $object->lines[$i]->fetch_optionals();
643 if ($action ==
'create_delivery') {
646 $extrafields->fetch_name_optionals_label($srcLine->table_element);
647 $srcLine->id = $expedition->lines[$i]->id;
648 $srcLine->fetch_optionals();
650 $object->lines[$i]->array_options = array_merge(
$object->lines[$i]->array_options, $srcLine->array_options);
653 $extrafields->fetch_name_optionals_label($srcLine->table_element);
655 print
$object->lines[$i]->showOptionals($extrafields, $mode, array(
'style' =>
'class="oddeven"',
'colspan' => $colspan),
'');
676 if ($user->socid == 0) {
677 print
'<div class="tabsAction">';
679 if (
$object->statut == 0 && $num_prod > 0) {
680 if ((!
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'expedition',
'delivery',
'creer'))
681 || (
getDolGlobalString(
'MAIN_USE_ADVANCED_PERMS') && $user->hasRight(
'expedition',
'delivery_advance',
'validate'))) {
686 if ($user->hasRight(
'expedition',
'delivery',
'supprimer')) {
688 print
dolGetButtonAction(
'', $langs->trans(
'Delete'),
'delete', $_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&expid='.
$object->origin_id.
'&action=delete&token='.
newToken().
'&backtopage='.urlencode(DOL_URL_ROOT.
'/expedition/card.php?id='.
$object->origin_id),
'');
698 print
'<div class="fichecenter"><div class="fichehalfleft">';
705 $filedir =
$conf->expedition->dir_output.
"/receipt/".$objectref;
706 $urlsource = $_SERVER[
"PHP_SELF"].
"?id=".
$object->id;
708 $genallowed = $user->hasRight(
'expedition',
'delivery',
'lire');
709 $delallowed = $user->hasRight(
'expedition',
'delivery',
'creer');
711 print $formfile->showdocuments(
'delivery', $objectref, $filedir, $urlsource, $genallowed, $delallowed,
$object->model_pdf, 1, 0, 0, 28, 0,
'',
'',
'', $soc->default_lang);
716 if (
$object->origin ==
'expedition') {
718 $shipment->fetch(
$object->origin_id);
722 $somethingshown = $form->showLinkedObjectBlock(
$object,
'');
726 print
'</div><div class="fichehalfright">';
730 print
'</div></div>';
733 print
"Expedition inexistante ou access refuse";
737 print
"Expedition inexistante ou access refuse";
$id
Support class for third parties, contacts, members, users or resources.
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage customers orders.
Class to manage receptions.
Management class of delivery note lines.
Class to manage warehouses.
Class to manage lines of shipment.
Class to manage products or services.
Class to manage projects.
Class to manage proposals.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage translations.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
dol_eval($s, $returnvalue=1, $hideerrors=1, $onlysimplestring='1')
Replace eval function to add more security.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
dol_now($mode='auto')
Return date for now.
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).
newToken()
Return the value of token currently saved into session with name 'newtoken'.
dolGetButtonAction($label, $text='', $actionType='default', $url='', $id='', $userRight=1, $params=array())
Function dolGetButtonAction.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
GETPOSTFLOAT($paramname, $rounding='')
Return the value of a $_GET or $_POST supervariable, converted into float.
dol_clone($object, $native=2)
Create a clone of instance of object (new instance with same value for each properties) With native =...
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
delivery_prepare_head($object)
Prepare array with list of tabs.