28require
'../main.inc.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/bom/class/bom.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/bom/lib/bom.lib.php';
43require_once DOL_DOCUMENT_ROOT.
'/mrp/lib/mrp.lib.php';
47$langs->loadLangs(array(
'mrp',
'other'));
53$action =
GETPOST(
'action',
'aZ09');
54$confirm =
GETPOST(
'confirm',
'alpha');
55$cancel =
GETPOST(
'cancel',
'alpha');
56$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'bomcard';
57$backtopage =
GETPOST(
'backtopage',
'alpha');
67$diroutputmassaction =
getMultidirOutput($object) .
'/temp/massgeneration/'.$user->id;
68$hookmanager->initHooks(array(
'bomcard',
'globalcard'));
71$extrafields->fetch_name_optionals_label(
$object->table_element);
72$search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
75$search_all =
GETPOST(
"search_all",
'alpha');
77foreach (
$object->fields as $key => $val) {
78 if (
GETPOST(
'search_'.$key,
'alpha')) {
79 $search[$key] =
GETPOST(
'search_'.$key,
'alpha');
83if (empty($action) && empty($id) && empty($ref)) {
88include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
97$isdraft = ((
$object->status == $object::STATUS_DRAFT) ? 1 : 0);
101$permissionnote = $user->hasRight(
'bom',
'write');
102$permissiondellink = $user->hasRight(
'bom',
'write');
103$permissiontoadd = $user->hasRight(
'bom',
'write');
104$permissiontodelete = $user->hasRight(
'bom',
'delete') || ($permissiontoadd && isset(
$object->status) &&
$object->status == $object::STATUS_DRAFT);
112$parameters = array();
113$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
118if (empty($reshook)) {
121 $backurlforlist = DOL_URL_ROOT.
'/bom/bom_list.php';
123 if (empty($backtopage) || ($cancel && empty($id))) {
124 if (empty($backtopage) || ($cancel && strpos($backtopage,
'__ID__'))) {
125 if (empty($id) && (($action !=
'add' && $action !=
'create') || $cancel)) {
126 $backtopage = $backurlforlist;
128 $backtopage = DOL_URL_ROOT.
'/bom/bom_card.php?id='.(
$id > 0 ?
$id :
'__ID__');
133 $triggermodname =
$object->TRIGGER_PREFIX.
'_MODIFY';
136 include DOL_DOCUMENT_ROOT.
'/core/actions_addupdatedelete.inc.php';
139 if ($action ==
'confirm_validate' &&
$object->id > 0) {
144 include DOL_DOCUMENT_ROOT.
'/core/actions_dellink.inc.php';
147 include DOL_DOCUMENT_ROOT.
'/core/actions_printing.inc.php';
153 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
156 $triggersendname =
$object->TRIGGER_PREFIX.
'_SENTBYMAIL';
157 $autocopy =
'MAIN_MAIL_AUTOCOPY_'.$object->TRIGGER_PREFIX.
'_TO';
158 $trackid =
'bom'.$object->id;
159 include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
162 if ($action ==
'addline' && $user->hasRight(
'bom',
'write')) {
163 $langs->load(
'errors');
170 if ($bom_child_id > 0) {
171 $bom_child =
new BOM(
$db);
172 $res = $bom_child->fetch($bom_child_id);
174 $idprod = $bom_child->fk_product;
182 $disable_stock_change =
GETPOSTINT(
'disable_stock_change');
183 $fk_workstation =
GETPOSTINT(
'idworkstations');
187 $fk_default_workstation = 0;
190 $res = $product->fetch($idprod);
192 if ($fk_workstation > 0) {
193 $fk_default_workstation = $fk_workstation;
195 $fk_default_workstation = $product->fk_default_workstation;
198 if (empty($fk_unit)) {
199 $fk_unit = $product->fk_unit;
204 setEventMessages($langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Qty')),
null,
'errors');
207 if (!($idprod > 0)) {
208 setEventMessages($langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Product')),
null,
'errors');
212 if (
$object->fk_product == $idprod) {
213 setEventMessages($langs->trans(
'TheProductXIsAlreadyTheProductToProduce'),
null,
'errors');
218 $TParentBom = array();
219 $object->getParentBomTreeRecursive($TParentBom);
220 if ($bom_child_id > 0 && in_array($bom_child_id, $TParentBom)) {
222 $n_child->fetch($bom_child_id);
223 setEventMessages($langs->transnoentities(
'BomCantAddChildBom', $n_child->getNomUrl(1),
$object->getNomUrl(1)),
null,
'errors');
229 $extralabelsline = $extrafields->fetch_name_optionals_label(
$object->table_element_line);
230 $array_options = $extrafields->getOptionalsFromPost(
$object->table_element_line, $predef);
232 if (is_array($extralabelsline)) {
234 foreach ($extralabelsline as $key => $value) {
235 unset($_POST[
"options_".$key]);
239 $result =
$object->addLine((
int) $idprod, (
float) $qty, $qty_frozen, $disable_stock_change, (
float) $efficiency, -1, $bom_child_id,
null, (
int) $fk_unit, $array_options, $fk_default_workstation);
245 unset($_POST[
'idprod']);
246 unset($_POST[
'idprodservice']);
247 unset($_POST[
'qty']);
248 unset($_POST[
'qty_frozen']);
249 unset($_POST[
'disable_stock_change']);
259 if ($action ==
'updateline' && $user->hasRight(
'bom',
'write')) {
260 $langs->load(
'errors');
266 $disable_stock_change =
GETPOSTINT(
'disable_stock_change');
271 setEventMessages($langs->trans(
'ErrorFieldRequired', $langs->transnoentitiesnoconv(
'Qty')),
null,
'errors');
277 $extralabelsline = $extrafields->fetch_name_optionals_label(
$object->table_element_line);
278 $array_options = $extrafields->getOptionalsFromPost(
$object->table_element_line);
280 if (is_array($extralabelsline)) {
282 foreach ($extralabelsline as $key => $value) {
283 unset($_POST[
"options_".$key]);
288 $bomline->fetch($lineid);
290 $fk_default_workstation = $bomline->fk_default_workstation;
291 if (
isModEnabled(
'workstation') && GETPOSTISSET(
'idworkstations')) {
292 $fk_default_workstation =
GETPOSTINT(
'idworkstations');
295 $result =
$object->updateLine($lineid, (
float) $qty, $qty_frozen, (
int) $disable_stock_change, (
float) $efficiency, $bomline->position, $bomline->import_key, $fk_unit, $array_options, $fk_default_workstation);
301 unset($_POST[
'idprod']);
302 unset($_POST[
'idprodservice']);
303 unset($_POST[
'qty']);
304 unset($_POST[
'qty_frozen']);
305 unset($_POST[
'disable_stock_change']);
326 $title = $langs->trans(
'BOM');
328$help_url =
'EN:Module_BOM';
329llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'mod-bom page-card');
332if ($action ==
'create') {
335 print
'<form method="POST" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
336 print
'<input type="hidden" name="token" value="'.newToken().
'">';
337 print
'<input type="hidden" name="action" value="add">';
338 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
342 print
'<table class="border centpercent tableforfieldcreate">'.
"\n";
345 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_add.tpl.php';
348 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_add.tpl.php';
350 print
'</table>'.
"\n";
354 print $form->buttonsSaveCancel(
"Create");
360if (($id || $ref) && $action ==
'edit') {
363 print
'<form method="POST" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
364 print
'<input type="hidden" name="token" value="'.newToken().
'">';
365 print
'<input type="hidden" name="action" value="update">';
366 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
367 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
373 print
'<table class="border centpercent tableforfieldedit">'.
"\n";
376 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_edit.tpl.php';
379 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_edit.tpl.php';
385 print $form->buttonsSaveCancel(
"Update");
391if (
$object->id > 0 && (empty($action) || ($action !=
'edit' && $action !=
'create'))) {
393 print
dol_get_fiche_head($head,
'card', $langs->trans(
"BillOfMaterials"), -1,
$object->picto, 0,
'',
'', 0,
'', 1);
398 if ($action ==
'delete') {
399 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'DeleteBillOfMaterials'), $langs->trans(
'ConfirmDeleteBillOfMaterials'),
'confirm_delete',
'', 0, 1);
402 if ($action ==
'deleteline') {
403 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id,
'lineid' => $lineid]), $langs->trans(
'DeleteLine'), $langs->trans(
'ConfirmDeleteLine'),
'confirm_deleteline',
'', 0, 1);
407 if ($action ==
'validate') {
411 $ref = substr(
$object->ref, 1, 4);
412 if ($ref ==
'PROV') {
413 $res =
$object->fetch_product();
423 $text = $langs->trans(
'ConfirmValidateBom', $numref);
431 $formquestion = array();
434 $formquestion = array(
441 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'Validate'), $text,
'confirm_validate', $formquestion, 0, 1, 220);
449 if ($action ==
'close') {
450 $text = $langs->trans(
'ConfirmCloseBom',
$object->ref);
458 $formquestion = array();
461 $formquestion = array(
468 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'Close'), $text,
'confirm_close', $formquestion, 0, 1, 220);
472 if ($action ==
'reopen') {
473 $text = $langs->trans(
'ConfirmReopenBom',
$object->ref);
481 $formquestion = array();
484 require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
485 $formquestion = array(
492 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'ReOpen'), $text,
'confirm_reopen', $formquestion, 0, 1, 220);
496 if ($action ==
'clone') {
498 $formquestion = array();
499 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'ToClone'), $langs->trans(
'ConfirmCloneBillOfMaterials',
$object->ref),
'confirm_clone', $formquestion,
'yes', 1);
503 if ($action ==
'setdraft') {
504 $text = $langs->trans(
'ConfirmSetToDraft',
$object->ref);
506 $formquestion = array();
507 $formconfirm = $form->formconfirm(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id]), $langs->trans(
'SetToDraft'), $text,
'confirm_setdraft', $formquestion, 0, 1, 220);
511 $parameters = array(
'formConfirm' => $formconfirm,
'lineid' => $lineid);
512 $reshook = $hookmanager->executeHooks(
'formConfirm', $parameters, $object, $action);
513 if (empty($reshook)) {
514 $formconfirm .= $hookmanager->resPrint;
515 } elseif ($reshook > 0) {
516 $formconfirm = $hookmanager->resPrint;
525 $linkback =
'<a href="'.DOL_URL_ROOT.
'/bom/bom_list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
527 $morehtmlref =
'<div class="refidno">';
563 $morehtmlref .=
'</div>';
566 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref);
569 print
'<div class="fichecenter">';
570 print
'<div class="fichehalfleft">';
571 print
'<div class="underbanner clearboth"></div>';
572 print
'<table class="border centpercent tableforfield">'.
"\n";
575 $keyforbreak =
'duration';
576 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_view.tpl.php';
579 print
'<tr><td>'.$form->textwithpicto($langs->trans(
"ManufacturingCost"), $langs->trans(
"BOMTotalCost")).
'</td><td><span class="amount">';
583 print
' <span class="opacitymedium">('.$form->textwithpicto(
price(
$object->unit_cost), $langs->trans(
"ManufacturingUnitCost"), 1,
'help',
'').
')</span>';
589 $manufacturedvalued =
'';
590 if (!empty(
$object->product)) {
592 $manufacturedvalued = $tmparray[
'pu_ht'] *
$object->qty;
594 print
'<tr><td>'.$langs->trans(
"ManufacturingGeneratedValue").
'</td><td><span class="amount">'.
price($manufacturedvalued).
'</span></td></tr>';
597 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
603 print
'<div class="clearboth"></div>';
613 if (!empty(
$object->table_element_line)) {
616 $res =
$object->fetchLinesbytypeproduct(0);
619 print ($res == 0 &&
$object->status >= $object::STATUS_VALIDATED) ?
'' :
load_fiche_titre($langs->trans(
'BOMProductsList'),
'',
'product');
621 print
' <form name="addproduct" id="listbomproducts" action="' . $_SERVER[
"PHP_SELF"] .
'?id=' .
$object->id .
'" method="POST">
622 <input type="hidden" name="token" value="' . newToken() .
'">
623 <input type="hidden" name="action" value="' . (($action !=
'editline') ?
'addline' :
'updateline') .
'">
624 <input type="hidden" name="mode" value="">
625 <input type="hidden" name="page_y" value="">
626 <input type="hidden" name="id" value="' .
$object->id .
'">
629 if (!empty(
$conf->use_javascript_ajax) &&
$object->status == 0) {
630 include DOL_DOCUMENT_ROOT.
'/core/tpl/ajaxrow.tpl.php';
633 print
'<div class="div-table-responsive-no-min">';
634 if (!empty(
$object->lines) || (
$object->status == $object::STATUS_DRAFT && $permissiontoadd && $action !=
'selectlines' && $action !=
'editline')) {
635 print
'<table id="tablelines" class="noborder noshadow centpercent">';
643 if (
$object->status == 0 && $permissiontoadd && $action !=
'selectlines') {
644 if ($action !=
'editline') {
648 $parameters = array();
649 $reshook = $hookmanager->executeHooks(
'formAddObjectLine', $parameters, $object, $action);
653 if (empty($reshook)) {
659 if (!empty(
$object->lines) || (
$object->status == $object::STATUS_DRAFT && $permissiontoadd && $action !=
'selectlines' && $action !=
'editline')) {
670 $res =
$object->fetchLinesbytypeproduct($filtertype);
673 print ($res == 0 &&
$object->status >= $object::STATUS_VALIDATED) ?
'' :
load_fiche_titre($langs->trans(
'BOMServicesList'),
'',
'service');
675 print
' <form name="addservice" id="listbomservices" action="' . $_SERVER[
"PHP_SELF"] .
'?id=' .
$object->id .
'" method="POST">
676 <input type="hidden" name="token" value="' . newToken() .
'">
677 <input type="hidden" name="action" value="' . (($action !=
'editline') ?
'addline' :
'updateline') .
'">
678 <input type="hidden" name="mode" value="">
679 <input type="hidden" name="page_y" value=""> <input type="hidden" name="id" value="' .
$object->id .
'">
682 if (!empty(
$conf->use_javascript_ajax) &&
$object->status == 0) {
683 $tagidfortablednd =
'tablelinesservice';
684 include DOL_DOCUMENT_ROOT .
'/core/tpl/ajaxrow.tpl.php';
687 print
'<div class="div-table-responsive-no-min">';
688 if (!empty(
$object->lines) || (
$object->status == $object::STATUS_DRAFT && $permissiontoadd && $action !=
'selectlines' && $action !=
'editline')) {
689 print
'<table id="tablelinesservice" class="noborder noshadow centpercent">';
697 if (
$object->status == 0 && $permissiontoadd && $action !=
'selectlines') {
698 if ($action !=
'editline') {
700 $parameters = array();
701 $reshook = $hookmanager->executeHooks(
'formAddObjectServiceLine', $parameters, $object, $action);
705 if (empty($reshook)) {
712 if (!empty(
$object->lines) || (
$object->status == $object::STATUS_DRAFT && $permissiontoadd && $action !=
'selectlines' && $action !=
'editline')) {
727 if ($action !=
'presend' && $action !=
'editline') {
728 print
'<div class="tabsAction">'.
"\n";
729 $parameters = array();
730 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters, $object, $action);
735 if (empty($reshook)) {
742 if (
$object->status == $object::STATUS_VALIDATED) {
743 if ($permissiontoadd) {
744 print
'<a class="butAction" href="'.dolBuildUrl($_SERVER[
'PHP_SELF'], [
'id' =>
$object->id,
'action' =>
'setdraft'],
true).
'">'.$langs->trans(
"SetToDraft").
'</a>'.
"\n";
749 if (
$object->status == $object::STATUS_DRAFT) {
750 if ($permissiontoadd) {
751 print
'<a class="butAction" href="'.dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id,
'action' =>
'edit'],
true).
'">'.$langs->trans(
"Modify").
'</a>'.
"\n";
753 print
'<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans(
"NotEnoughPermissions")).
'">'.$langs->trans(
'Modify').
'</a>'.
"\n";
758 if (
$object->status == $object::STATUS_DRAFT) {
759 if ($permissiontoadd) {
761 print
'<a class="butAction" href="'.dolBuildUrl($_SERVER[
'PHP_SELF'], [
'id' =>
$object->id,
'action' =>
'validate'],
true).
'">'.$langs->trans(
"Validate").
'</a>'.
"\n";
763 $langs->load(
"errors");
764 print
'<a class="butActionRefused classfortooltip" href="" title="'.$langs->trans(
"ErrorAddAtLeastOneLineFirst").
'">'.$langs->trans(
"Validate").
'</a>'.
"\n";
770 if ($permissiontoadd &&
$object->status == $object::STATUS_CANCELED) {
771 print
'<a class="butAction" href="'.dolBuildUrl($_SERVER[
'PHP_SELF'], [
'id' =>
$object->id,
'action' =>
'reopen'],
true).
'">'.$langs->trans(
"ReOpen").
'</a>'.
"\n";
776 if (
$object->status == $object::STATUS_VALIDATED && $user->hasRight(
'mrp',
'write')) {
777 print
'<a class="butAction" href="'.dolBuildUrl(DOL_URL_ROOT.
'/mrp/mo_card.php', [
'action' =>
'create',
'fk_bom' =>
$object->id],
true).
'&backtopageforcancel='.urlencode(
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id])).
'">'.$langs->trans(
"CreateMO").
'</a>'.
"\n";
782 if ($permissiontoadd) {
783 print dolGetButtonAction($langs->trans(
"ToClone"),
'',
'clone',
dolBuildUrl($_SERVER[
'PHP_SELF'], [
'id' =>
$object->id,
'action' =>
'clone',
'object' =>
'bom'],
true),
'clone', $permissiontoadd);
787 if ($permissiontoadd &&
$object->status == $object::STATUS_VALIDATED) {
788 print
'<a class="butActionDelete" href="'.dolBuildUrl($_SERVER[
'PHP_SELF'], [
'id' =>
$object->id,
'action' =>
'close'],
true).
'">'.$langs->trans(
"Disable").
'</a>'.
"\n";
802 print dolGetButtonAction($langs->trans(
"Delete"),
'',
'delete',
dolBuildUrl($_SERVER[
"PHP_SELF"], [
'id' =>
$object->id,
'action' =>
'delete'],
true),
'delete', $permissiontodelete);
809 if (
GETPOST(
'modelselected')) {
813 if ($action !=
'presend') {
814 print
'<div class="fichecenter"><div class="fichehalfleft">';
815 print
'<a name="builddoc"></a>';
819 $relativepath = $objref.
'/'.$objref.
'.pdf';
821 $urlsource = $_SERVER[
"PHP_SELF"].
"?id=".
$object->id;
822 $genallowed = $user->hasRight(
'bom',
'read');
823 $delallowed = $user->hasRight(
'bom',
'write');
824 print $formfile->showdocuments(
'bom', $objref, $filedir, $urlsource, $genallowed, $delallowed,
$object->model_pdf, 1, 0, 0, 28, 0,
'',
'',
'', $langs->defaultlang,
'', $object);
827 $tmparray = $form->showLinkToObjectBlock($object, array(), array(
'bom'), 1);
828 $linktoelem = $tmparray[
'linktoelem'];
829 $htmltoenteralink = $tmparray[
'htmltoenteralink'];
830 print $htmltoenteralink;
832 $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem);
835 print
'</div><div class="fichehalfright">';
839 $morehtmlcenter = dolGetButtonTitle($langs->trans(
'SeeAll'),
'',
'fa fa-bars imgforviewmode', DOL_URL_ROOT.
'/bom/bom_agenda.php?id='.
$object->id);
842 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formactions.class.php';
844 $somethingshown = $formactions->showactions($object,
$object->element, 0, 1,
'', $MAXEVENT,
'', $morehtmlcenter);
846 print
'</div></div>';
850 if (
GETPOST(
'modelselected')) {
856 $defaulttopic =
'InformationMessage';
858 $trackid =
'bom'.$object->id;
860 include DOL_DOCUMENT_ROOT.
'/core/tpl/card_presend.tpl.php';
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $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.
mrpCollapseBomManagement()
Manage collapse bom display.
bomPrepareHead($object)
Prepare array of tabs for BillOfMaterials.
Class to manage products or services.
const TYPE_SERVICE
Service.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
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 '.
dolBuildUrl($url, $params=[], $addtoken=false, $anchor='')
Return path of url.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0, $allowdash=0)
Clean a string to use it as a file name.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
getMultidirOutput($object, $module='', $forobject=0, $mode='output')
Return the full path of the directory where a module (or an object of a module) stores its files.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
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.