26 require
'../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formprojet.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
32 require_once DOL_DOCUMENT_ROOT.
'/mrp/class/mo.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/mrp/lib/mrp_mo.lib.php';
34 require_once DOL_DOCUMENT_ROOT.
'/bom/class/bom.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/bom/lib/bom.lib.php';
38 require_once DOL_DOCUMENT_ROOT.
'/workstation/class/workstation.class.php';
43 $langs->loadLangs(array(
'mrp',
'other'));
49 $action =
GETPOST(
'action',
'aZ09');
50 $confirm =
GETPOST(
'confirm',
'alpha');
51 $cancel =
GETPOST(
'cancel',
'aZ09');
52 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'mocard';
53 $backtopage =
GETPOST(
'backtopage',
'alpha');
54 $backtopageforcancel =
GETPOST(
'backtopageforcancel',
'alpha');
55 $TBomLineId =
GETPOST(
'bomlineid',
'array');
61 $objectbom =
new BOM($db);
64 $diroutputmassaction = $conf->mrp->dir_output.
'/temp/massgeneration/'.$user->id;
65 $hookmanager->initHooks(array(
'mocard',
'globalcard'));
68 $extrafields->fetch_name_optionals_label(
$object->table_element);
70 $search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
73 $search_all =
GETPOST(
"search_all",
'alpha');
75 foreach (
$object->fields as $key => $val) {
76 if (
GETPOST(
'search_'.$key,
'alpha')) {
77 $search[$key] =
GETPOST(
'search_'.$key,
'alpha');
81 if (empty($action) && empty($id) && empty($ref)) {
86 include DOL_DOCUMENT_ROOT.
'/core/actions_fetchobject.inc.php';
91 if ($action !=
'add') {
93 $_POST[
'fk_product'] = $objectbom->fk_product;
94 $_POST[
'qty'] = $objectbom->qty;
95 $_POST[
'mrptype'] = $objectbom->bomtype;
96 $_POST[
'fk_warehouse'] = $objectbom->fk_warehouse;
97 $_POST[
'note_private'] = $objectbom->note_private;
104 $isdraft = ((
$object->status == $object::STATUS_DRAFT) ? 1 : 0);
108 $permissionnote = $user->hasRight(
'mrp',
'write');
109 $permissiondellink = $user->hasRight(
'mrp',
'write');
110 $permissiontoadd = $user->hasRight(
'mrp',
'write');
111 $permissiontodelete = $user->rights->mrp->delete || ($permissiontoadd && isset(
$object->status) &&
$object->status == $object::STATUS_DRAFT);
112 $upload_dir = $conf->mrp->multidir_output[isset(
$object->entity) ?
$object->entity : 1];
119 $parameters = array();
120 $reshook = $hookmanager->executeHooks(
'doActions', $parameters,
$object, $action);
125 if (empty($reshook)) {
132 if (empty($backtopage) || ($cancel && empty($id))) {
133 if (empty($backtopage) || ($cancel && strpos($backtopage,
'__ID__'))) {
134 if (empty($id) && (($action !=
'add' && $action !=
'create') || $cancel)) {
135 $backtopage = $backurlforlist;
137 $backtopage = DOL_URL_ROOT.
'/mrp/mo_card.php?id='.($id > 0 ? $id :
'__ID__');
141 if ($cancel && !empty($backtopageforcancel)) {
142 $backtopage = $backtopageforcancel;
144 $triggermodname =
'MO_MODIFY';
147 if ($action ==
'add' && empty($id) && !empty($TBomLineId)) {
149 include DOL_DOCUMENT_ROOT.
'/core/actions_addupdatedelete.inc.php';
153 $moline =
new MoLine($db);
154 $objectbomchildline =
new BOMLine($db);
156 foreach ($TBomLineId as $id_bom_line) {
159 $objectbomchildline->fetch($id_bom_line);
161 $TMoLines = $moline->fetchAll(
'DESC',
'rowid',
'1',
'', array(
'origin_id' => $id_bom_line));
163 foreach ($TMoLines as $tmpmoline) {
164 $_POST[
'fk_bom'] = $objectbomchildline->fk_bom_child;
165 $_POST[
'fk_parent_line'] = $tmpmoline->id;
166 $_POST[
'qty'] = $tmpmoline->qty;
167 $_POST[
'fk_product'] = $tmpmoline->fk_product;
170 include DOL_DOCUMENT_ROOT.
'/core/actions_addupdatedelete.inc.php';
172 $res =
$object->add_object_linked(
'mo', $mo_parent->id);
175 header(
"Location: ".
dol_buildpath(
'/mrp/mo_card.php?id='.((
int) $mo_parent->id), 1));
177 } elseif ($action ==
'confirm_cancel' && $confirm ==
'yes' && !empty($permissiontoadd)) {
178 $also_cancel_consumed_and_produced_lines = (
GETPOST(
'alsoCancelConsumedAndProducedLines',
'alpha') ? 1 : 0);
179 $result =
$object->cancel($user, 0, $also_cancel_consumed_and_produced_lines);
187 } elseif ($action ==
'confirm_delete' && $confirm ==
'yes' && !empty($permissiontodelete)) {
188 $also_cancel_consumed_and_produced_lines = (
GETPOST(
'alsoCancelConsumedAndProducedLines',
'alpha') ? 1 : 0);
189 $result =
$object->delete($user, 0, $also_cancel_consumed_and_produced_lines);
191 header(
"Location: " . $backurlforlist);
199 if ($action ==
'confirm_delete' && !empty($permissiontodelete)) {
201 dol_print_error(
null,
'Error, object must be fetched before being deleted');
206 $deleteChilds =
GETPOST(
'deletechilds',
'aZ');
211 if ($deleteChilds ===
'on') {
212 $TMoChildren =
$object->getAllMoChilds();
214 foreach ($TMoChildren as $id => $childObject) {
215 if ($childObject->delete($user) == -1) {
217 if (!empty($childObject->errors)) {
227 $result =
$object->delete($user);
232 if ($deleteChilds ===
'on') {
236 if (empty($noback)) {
237 header(
"Location: " . $backurlforlist);
260 include DOL_DOCUMENT_ROOT.
'/core/actions_addupdatedelete.inc.php';
263 include DOL_DOCUMENT_ROOT.
'/core/actions_dellink.inc.php';
266 include DOL_DOCUMENT_ROOT.
'/core/actions_printing.inc.php';
269 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
271 if ($action ==
'set_thirdparty' && $permissiontoadd) {
272 $object->setValueFrom(
'fk_soc',
GETPOSTINT(
'fk_soc'),
'',
'',
'date',
'', $user, $triggermodname);
274 if ($action ==
'classin' && $permissiontoadd) {
279 $triggersendname =
'MO_SENTBYMAIL';
280 $autocopy =
'MAIN_MAIL_AUTOCOPY_MO_TO';
281 $trackid =
'mo'.$object->id;
282 include DOL_DOCUMENT_ROOT.
'/core/actions_sendmails.inc.php';
288 if ($action ==
'confirm_produced' && $confirm ==
'yes' && $permissiontoadd) {
289 $result =
$object->setStatut($object::STATUS_PRODUCED, 0,
'',
'MRP_MO_PRODUCED');
293 $outputlangs = $langs;
296 $newlang =
GETPOST(
'lang_id',
'aZ09');
299 $newlang =
$object->thirdparty->default_lang;
301 if (!empty($newlang)) {
303 $outputlangs->setDefaultLang($newlang);
308 $object->generateDocument($model, $outputlangs, 0, 0, 0);
323 $form =
new Form($db);
327 $title = $langs->trans(
'ManufacturingOrder').
" - ".$langs->trans(
"Card");
334 if ($action ==
'create') {
336 $titlelist = $langs->trans(
"ToConsume");
337 if ($objectbom->bomtype == 1) {
338 $titlelist = $langs->trans(
"ToObtain");
342 print
load_fiche_titre($langs->trans(
"NewObject", $langs->transnoentitiesnoconv(
"Mo")),
'',
'mrp');
344 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
345 print
'<input type="hidden" name="token" value="'.newToken().
'">';
346 print
'<input type="hidden" name="action" value="add">';
348 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
350 if ($backtopageforcancel) {
351 print
'<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.
'">';
356 print
'<table class="border centpercent tableforfieldcreate">'.
"\n";
359 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_add.tpl.php';
362 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_add.tpl.php';
364 print
'</table>'.
"\n";
370 $(document).ready(
function () {
371 jQuery(
'#fk_bom').change(
function() {
372 console.log(
'We change value of BOM with BOM of id '+jQuery(
'#fk_bom').val());
373 if (jQuery(
'#fk_bom').val() > 0)
376 window.location.href =
'<?php echo $_SERVER["PHP_SELF"] ?>?action=create&token=<?php echo newToken(); ?>&fk_bom='+jQuery(
'#fk_bom').val();
405 else if (jQuery(
'#fk_bom').val() < 0) {
407 console.log(jQuery(
'#fk_product').val());
408 window.location.href =
'<?php echo $_SERVER["PHP_SELF"] ?>?action=create&token=<?php echo newToken(); ?>&qty='+jQuery(
'#qty').val()+
'&mrptype='+jQuery(
'#mrptype').val()+
'&fk_product='+jQuery(
'#fk_product').val()+
'&label='+jQuery(
'#label').val()+
'&fk_project='+jQuery(
'#fk_project').val()+
'&fk_warehouse='+jQuery(
'#fk_warehouse').val();
426 print $form->buttonsSaveCancel(
"Create");
428 if ($objectbom->id > 0) {
431 print
'<!-- list of product/services to consume -->'.
"\n";
432 print
'<div class="div-table-responsive-no-min">';
433 print
'<table class="noborder centpercent">';
435 $arrayOfMoLines = array();
436 foreach ($objectbom->lines as $key => $val) {
437 $moLine =
new MoLine($db);
438 $moLine->id = $objectbom->lines[$key]->id;
439 $moLine->position = $objectbom->lines[$key]->position;
440 $moLine->fk_product = $objectbom->lines[$key]->fk_product;
441 $moLine->fk_unit = $objectbom->lines[$key]->fk_unit;
442 $moLine->qty = $objectbom->lines[$key]->qty;
443 $moLine->qty_frozen = $objectbom->lines[$key]->qty_frozen;
444 $moLine->disable_stock_change = $objectbom->lines[$key]->disable_stock_change;
446 $arrayOfMoLines[] = $moLine;
448 $object->lines = $arrayOfMoLines;
449 $object->mrptype = $objectbom->bomtype;
452 $object->printOriginLinesList(
'', array());
462 if (($id || $ref) && $action ==
'edit') {
465 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
466 print
'<input type="hidden" name="token" value="'.newToken().
'">';
467 print
'<input type="hidden" name="action" value="update">';
468 print
'<input type="hidden" name="id" value="'.$object->id.
'">';
470 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
472 if ($backtopageforcancel) {
473 print
'<input type="hidden" name="backtopageforcancel" value="'.$backtopageforcancel.
'">';
478 $object->fields[
'fk_bom'][
'disabled'] = 1;
480 print
'<table class="border centpercent tableforfieldedit">'.
"\n";
483 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_edit.tpl.php';
486 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_edit.tpl.php';
492 print $form->buttonsSaveCancel();
498 if (
$object->id > 0 && (empty($action) || ($action !=
'edit' && $action !=
'create'))) {
499 $res =
$object->fetch_thirdparty();
508 if ($action ==
'delete') {
509 $numberofmochilds = count(
$object->getAllMoChilds());
511 if ($numberofmochilds > 0) {
512 $label = $langs->trans(
"DeleteMoChild",
'('.strval($numberofmochilds).
')');
514 $label = $langs->trans(
"DeleteMoChild");
517 $formquestion = array(
518 array(
'type' =>
'checkbox',
'name' =>
'deletechilds',
'label' => $label,
'value' => 0),
520 'label' => $langs->trans(
'MoCancelConsumedAndProducedLines'),
521 'name' =>
'alsoCancelConsumedAndProducedLines',
522 'type' =>
'checkbox',
523 'value' => !
getDolGlobalString(
'MO_ALSO_CANCEL_CONSUMED_AND_PRODUCED_LINES_BY_DEFAULT') ? 0 : 1
526 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id, $langs->trans(
'DeleteMo'), $langs->trans(
'ConfirmDeleteMo'),
'confirm_delete', $formquestion, 0, 1);
529 if ($action ==
'deleteline') {
530 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&lineid='.$lineid, $langs->trans(
'DeleteLine'), $langs->trans(
'ConfirmDeleteLine'),
'confirm_deleteline',
'', 0, 1);
534 if ($action ==
'validate') {
536 $ref = substr(
$object->ref, 1, 4);
537 if ($ref ==
'PROV') {
544 $text = $langs->trans(
'ConfirmValidateMo', $numref);
553 $formquestion = array();
556 require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
559 if ($conf->browser->name ==
'ie') {
562 $formquestion = array(
569 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id, $langs->trans(
'Validate'), $text,
'confirm_validate', $formquestion, 0, 1, 220);
573 if ($action ==
'cancel') {
574 $formquestion = array(
576 'label' => $langs->trans(
'MoCancelConsumedAndProducedLines'),
577 'name' =>
'alsoCancelConsumedAndProducedLines',
578 'type' =>
'checkbox',
582 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"] .
'?id=' .
$object->id, $langs->trans(
'CancelMo'), $langs->trans(
'ConfirmCancelMo'),
'confirm_cancel', $formquestion, 0, 1);
586 if ($action ==
'clone') {
588 $formquestion = array();
589 $formconfirm = $form->formconfirm($_SERVER[
"PHP_SELF"].
'?id='.
$object->id, $langs->trans(
'ToClone'), $langs->trans(
'ConfirmCloneMo',
$object->ref),
'confirm_clone', $formquestion,
'yes', 1);
593 $parameters = array(
'formConfirm' =>
$formconfirm,
'lineid' => $lineid);
594 $reshook = $hookmanager->executeHooks(
'formConfirm', $parameters,
$object, $action);
595 if (empty($reshook)) {
597 } elseif ($reshook > 0) {
607 $linkback =
'<a href="'.dol_buildpath(
'/mrp/mo_list.php', 1).
'?restore_lastsearch_values=1'.(!empty($socid) ?
'&socid='.$socid :
'').
'">'.$langs->trans(
"BackToList").
'</a>';
609 $morehtmlref =
'<div class="refidno">';
615 if (is_object(
$object->thirdparty)) {
616 $morehtmlref .=
$object->thirdparty->getNomUrl(1,
'customer');
618 $morehtmlref .=
' (<a href="'.DOL_URL_ROOT.
'/commande/list.php?socid='.
$object->thirdparty->id.
'&search_societe='.urlencode(
$object->thirdparty->name).
'">'.$langs->trans(
"OtherOrders").
'</a>)';
623 $langs->load(
"projects");
624 if (is_object(
$object->thirdparty)) {
625 $morehtmlref .=
'<br>';
627 if ($permissiontoadd) {
628 $morehtmlref .=
img_picto($langs->trans(
"Project"),
'project',
'class="pictofixedwidth"');
629 if ($action !=
'classify') {
630 $morehtmlref .=
'<a class="editfielda" href="'.$_SERVER[
'PHP_SELF'].
'?action=classify&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->transnoentitiesnoconv(
'SetProject')).
'</a> ';
632 $morehtmlref .= $form->form_project($_SERVER[
'PHP_SELF'].
'?id='.
$object->id,
$object->socid,
$object->fk_project, ($action ==
'classify' ?
'projectid' :
'none'), 0, 0, 0, 1,
'',
'maxwidth300');
634 if (!empty(
$object->fk_project)) {
636 $proj->fetch(
$object->fk_project);
637 $morehtmlref .= $proj->getNomUrl(1);
639 $morehtmlref .=
'<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).
'</span>';
644 $morehtmlref .=
'</div>';
647 dol_banner_tab(
$object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref);
650 print
'<div class="fichecenter">';
651 print
'<div class="fichehalfleft">';
652 print
'<div class="underbanner clearboth"></div>';
653 print
'<table class="border centpercent tableforfield">'.
"\n";
656 $mo_parent =
$object->getMoParent();
657 if (is_object($mo_parent)) {
658 print
'<tr class="field_fk_mo_parent">';
659 print
'<td class="titlefield fieldname_fk_mo_parent">' . $langs->trans(
'ParentMo') .
'</td>';
660 print
'<td class="valuefield fieldname_fk_mo_parent">' .$mo_parent->getNomUrl(1).
'</td>';
665 $keyforbreak =
'fk_warehouse';
666 unset(
$object->fields[
'fk_project']);
667 unset(
$object->fields[
'fk_soc']);
668 include DOL_DOCUMENT_ROOT.
'/core/tpl/commonfields_view.tpl.php';
671 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
677 print
'<div class="clearboth"></div>';
686 if (!empty(
$object->table_element_line)) {
691 print
' <form name="addproduct" id="addproduct" action="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.(($action !=
'editline') ?
'' :
'#line_'.
GETPOSTINT(
'lineid')).
'" method="POST">
692 <input type="hidden" name="token" value="' .
newToken().
'">
693 <input type="hidden" name="action" value="' . (($action !=
'editline') ?
'addline' :
'updateline').
'">
694 <input type="hidden" name="mode" value="">
695 <input type="hidden" name="page_y" value="">
696 <input type="hidden" name="id" value="' .
$object->id.
'">
704 print
'<div class="div-table-responsive-no-min">';
705 print
'<table id="tablelines" class="noborder noshadow" width="100%">';
707 print
'<tr class="liste_titre">';
708 print
'<td class="liste_titre">'.$langs->trans(
"Summary").
'</td>';
712 print
'<tr class="oddeven">';
713 print
'<td>'.$langs->trans(
"ProductsToConsume").
'</td>';
717 foreach (
$object->lines as $line) {
718 if ($line->role ==
'toconsume') {
722 $tmpproduct =
new Product($db);
723 $tmpproduct->fetch($line->fk_product);
724 print $tmpproduct->getNomUrl(1);
732 print
'<tr class="oddeven">';
733 print
'<td>'.$langs->trans(
"ProductsToProduce").
'</td>';
737 foreach (
$object->lines as $line) {
738 if ($line->role ==
'toproduce') {
742 $tmpproduct =
new Product($db);
743 $tmpproduct->fetch($line->fk_product);
744 print $tmpproduct->getNomUrl(1);
762 if ($action !=
'presend' && $action !=
'editline') {
763 print
'<div class="tabsAction">'.
"\n";
764 $parameters = array();
765 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters,
$object, $action);
770 if (empty($reshook)) {
777 if (
$object->status == $object::STATUS_VALIDATED) {
778 if ($permissiontoadd) {
780 print
'<a class="butAction" href="'.$_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&action=confirm_setdraft&confirm=yes&token='.
newToken().
'">'.$langs->trans(
"SetToDraft").
'</a>';
785 if (
$object->status == $object::STATUS_DRAFT) {
786 if ($permissiontoadd) {
787 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=edit&token='.
newToken().
'">'.$langs->trans(
"Modify").
'</a>'.
"\n";
789 print
'<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans(
"NotEnoughPermissions")).
'">'.$langs->trans(
'Modify').
'</a>'.
"\n";
794 if (
$object->status == $object::STATUS_DRAFT) {
795 if ($permissiontoadd) {
797 print
'<a class="butAction" href="'.$_SERVER[
'PHP_SELF'].
'?id='.
$object->id.
'&action=validate">'.$langs->trans(
"Validate").
'</a>';
799 $langs->load(
"errors");
800 print
'<a class="butActionRefused" href="" title="'.$langs->trans(
"ErrorAddAtLeastOneLineFirst").
'">'.$langs->trans(
"Validate").
'</a>';
806 if ($permissiontoadd) {
807 print
dolGetButtonAction($langs->trans(
"ToClone"),
'',
'default', $_SERVER[
'PHP_SELF'].
'?id='.
$object->id.(!empty(
$object->socid) ?
'&socid='.$object->socid :
"").
'&action=clone&object=mo',
'clone', $permissiontoadd);
811 if ($permissiontoadd) {
812 if (
$object->status == $object::STATUS_VALIDATED ||
$object->status == $object::STATUS_INPROGRESS) {
813 $arrayproduced =
$object->fetchLinesLinked(
'produced', 0);
815 foreach ($arrayproduced as $lineproduced) {
816 $nbProduced += $lineproduced[
'qty'];
818 if ($nbProduced > 0) {
819 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=confirm_produced&confirm=yes&token='.
newToken().
'">'.$langs->trans(
"Close").
'</a>'.
"\n";
821 print
'<a class="butActionRefused" href="#" title="'.$langs->trans(
"GoOnTabProductionToProduceFirst", $langs->transnoentitiesnoconv(
"Production")).
'">'.$langs->trans(
"Close").
'</a>'.
"\n";
824 print
'<a class="butActionDelete" href="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=cancel&token='.
newToken().
'">'.$langs->trans(
"Cancel").
'</a>'.
"\n";
827 if (
$object->status == $object::STATUS_PRODUCED ||
$object->status == $object::STATUS_CANCELED) {
828 print
'<a class="butAction" href="'.$_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=confirm_reopen&confirm=yes&token='.
newToken().
'">'.$langs->trans(
"ReOpen").
'</a>'.
"\n";
833 print
dolGetButtonAction($langs->trans(
"Delete"),
'',
'delete', $_SERVER[
"PHP_SELF"].
'?id='.
$object->id.
'&action=delete&token='.
newToken(),
'delete', $permissiontodelete);
840 if (
GETPOST(
'modelselected')) {
844 if ($action !=
'presend') {
845 print
'<div class="fichecenter"><div class="fichehalfleft">';
846 print
'<a name="builddoc"></a>';
850 $relativepath = $objref.
'/'.$objref.
'.pdf';
851 $filedir = $conf->mrp->dir_output.
'/'.$objref;
852 $urlsource = $_SERVER[
"PHP_SELF"].
"?id=".
$object->id;
853 $genallowed = $user->hasRight(
'mrp',
'read');
854 $delallowed = $user->hasRight(
"mrp",
"creer");
855 print $formfile->showdocuments(
'mrp:mo', $objref, $filedir, $urlsource, $genallowed, $delallowed,
$object->model_pdf, 1, 0, 0, 28, 0,
'',
'',
'', $mysoc->default_lang);
858 $linktoelem = $form->showLinkToObjectBlock(
$object,
null, array(
'mo'));
859 $somethingshown = $form->showLinkedObjectBlock(
$object, $linktoelem,
false);
862 print
'</div><div class="fichehalfright">';
866 $morehtmlcenter =
dolGetButtonTitle($langs->trans(
'SeeAll'),
'',
'fa fa-bars imgforviewmode', DOL_URL_ROOT.
'/mrp/mo_agenda.php?id='.
$object->id);
869 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formactions.class.php';
873 print
'</div></div>';
877 if (
GETPOST(
'modelselected')) {
883 $defaulttopic =
'InformationMessage';
884 $diroutput = $conf->mrp->dir_output;
885 $trackid =
'mo'.$object->id;
887 include DOL_DOCUMENT_ROOT.
'/core/tpl/card_presend.tpl.php';
if($user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) if(preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) if($action=='set') elseif($action=='specimen') elseif($action=='setmodel') elseif($action=='del') elseif($action=='setdoc') $formactions
View.
if(!defined('NOREQUIRESOC')) if(!defined('NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined('NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined('NOREQUIREAJAX')) llxHeader()
Empty header.
mrpCollapseBomManagement()
Manage collapse bom display.
Class to manage products or services.
Class to manage projects.
Class to manage translations.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
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)
Show tabs of a record.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
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.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
$formconfirm
if ($action == 'delbookkeepingyear') {
moPrepareHead($object)
Prepare array of tabs for Mo.
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.