36@phan-var-force CommonObject $this
37@phan-var-force Propal|Commande|Facture|FactureRec|Expedition|SupplierProposal|CommandeFournisseur|FactureFournisseur $object
38@phan-var-force ?array<int,string> $depth_array
39@phan-var-force ?array<string,string> $titles
40@phan-var-force string $type
43$depth_array = $depth_array ?? array();
44$titles = $titles ?? array();
46if ($type ==
'subtotal' && empty($titles)) {
51$formquestion = array();
53if ($type ==
'title') {
54 $formquestion = array();
56 $predefinedtitles =
$object->getPredefinedTitles();
57 if (!empty($predefinedtitles)) {
58 $formquestion[] = array(
60 'name' =>
'subtotalpredefinedtitle',
61 'label' => $langs->trans(
"PredefinedTitle"),
62 'values' => $predefinedtitles,
63 'select_show_empty' => 1,
64 'moreattr' =>
'onchange="var v = jQuery(this).val(); if (v && v != \'-1\') { jQuery(\'#subtotallinedesc\').val(v); }"',
68 $formquestion = array_merge($formquestion, array(
69 array(
'type' =>
'text',
'name' =>
'subtotallinedesc',
'label' => $langs->trans(
"SubtotalLineDesc"),
'moreattr' =>
'placeholder="' . $langs->trans(
"Description") .
'"'),
70 array(
'type' =>
'select',
'name' =>
'subtotallinelevel',
'label' => $langs->trans(
"SubtotalLineLevel"),
'values' => $depth_array,
'default' => 1,
'select_show_empty' => 0),
71 array(
'type' =>
'checkbox',
'value' =>
true,
'name' =>
'titleshowuponpdf',
'label' => $langs->trans(
"ShowUPOnPDF")),
72 array(
'type' =>
'checkbox',
'value' =>
true,
'name' =>
'titleshowtotalexludingvatonpdf',
'label' => $langs->trans(
"ShowTotalExludingVATOnPDF")),
73 array(
'type' =>
'checkbox',
'value' =>
false,
'name' =>
'titleforcepagebreak',
'label' => $langs->trans(
"ForcePageBreak")),
75} elseif ($type ==
'subtotal') {
76 $formquestion = array(
77 array(
'type' =>
'select',
'name' =>
'subtotaltitleline',
'label' => $langs->trans(
"CorrespondingTitleLine"),
'values' => $titles,
'select_show_empty' => 0),
78 array(
'type' =>
'hidden',
'value' =>
true,
'name' =>
'subtotalshowtotalexludingvatonpdf',
'label' => $langs->trans(
"ShowTotalExludingVATOnPDF")),
80} elseif ($type ==
'text') {
81 $formquestion = array();
83 $predefinedtexts =
$object->getPredefinedTexts();
84 if (!empty($predefinedtexts)) {
85 $predefinedtextvalues = array();
86 $predefinedtextsmap = array();
87 foreach ($predefinedtexts as $rowid => $text) {
88 $predefinedtextvalues[$rowid] = $text[
'label'];
89 $predefinedtextsmap[$rowid] = $text[
'content'];
91 print
'<script>var subtotalPredefinedTextsMap = ' . json_encode($predefinedtextsmap, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT) .
';</script>';
92 $formquestion[] = array(
94 'name' =>
'subtotalpredefinedtext',
95 'label' => $langs->trans(
"PredefinedText"),
96 'values' => $predefinedtextvalues,
97 'select_show_empty' => 1,
98 'moreattr' =>
'onchange="var v = subtotalPredefinedTextsMap[jQuery(this).val()]; if (v !== undefined) { jQuery(\'#subtotaltextcontent\').val(v); }"',
102 $formquestion[] = array(
'type' =>
'textarea',
'name' =>
'subtotaltextcontent',
'label' => $langs->trans(
"SubtotalTextContent"),
'morecss' =>
'quatrevingtpercent',
'moreattr' =>
'rows="4"');
105$page = $_SERVER[
"PHP_SELF"];
107if (
$object->element ==
'facture') {
108 $page .=
'?facid=' .
$object->id;
109} elseif (in_array(
$object->element, $object::$ALLOWED_TYPES)) {
113$form_title = $type ==
'title' ? $langs->trans(
'AddTitleLine') : $langs->trans(
'AddSubtotalLine');
115print $form->formconfirm($page, $form_title,
'',
'confirm_add' . $type .
'line', $formquestion,
'yes', 1);
if(! $sortfield) if(! $sortorder) $object
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.