dolibarr 23.0.3
pdf_other.php
1<?php
2/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
3 * Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
4 * Copyright (C) 2005-2011 Regis Houssin <regis.houssin@inodbox.com>
5 * Copyright (C) 2012-2107 Juanjo Menent <jmenent@2byte.es>
6 * Copyright (C) 2019 Ferran Marcet <fmarcet@2byte.es>
7 * Copyright (C) 2021-2024 Anthony Berton <anthony.berton@bb2a.fr>
8 * Copyright (C) 2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
9 * Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
10 * Copyright (C) 2024-2025 Nick Fragoulis
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 3 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program. If not, see <https://www.gnu.org/licenses/>.
24 */
25
31// Load Dolibarr environment
32require '../main.inc.php';
41require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
42require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
43require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
44require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
45require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
46require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
47require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
48require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
49
50// Load translation files required by the page
51$langs->loadLangs(array('admin', 'bills', 'companies', 'languages', 'members', 'other', 'products', 'propal', 'receptions', 'stocks', 'trips', 'orders', 'sendings'));
52
53if (!$user->admin) {
55}
56
57$action = GETPOST('action', 'aZ09');
58$modulepart = GETPOST('modulepart', 'aZ09');
59
60$diroffile = '';
61$varname = '';
62if ($modulepart == 'propal') {
63 $diroffile = $conf->propal->dir_output;
64 $varname = 'MAIN_INFO_PROPAL_TERMSOFSALE';
65}
66if ($modulepart == 'order') {
67 $diroffile = $conf->order->dir_output;
68 $varname = 'MAIN_INFO_ORDER_TERMSOFSALE';
69}
70if ($modulepart == 'invoice') {
71 $diroffile = $conf->invoice->dir_output;
72 $varname = 'MAIN_INFO_INVOICE_TERMSOFSALE';
73}
74
75
76/*
77 * Actions
78 */
79
80if ($action == 'update') {
81 if (GETPOSTISSET('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING')) {
82 dolibarr_set_const($db, "MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", GETPOST("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), 'chaine', 0, '', $conf->entity);
83 }
84 if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTTERM')) {
85 dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTTERM", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTTERM"), 'chaine', 0, '', $conf->entity);
86 }
87 if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTMODE')) {
88 dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTMODE", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTMODE"), 'chaine', 0, '', $conf->entity);
89 }
90 if (GETPOSTISSET('MAIN_GENERATE_PROPOSALS_WITH_PICTURE')) {
91 dolibarr_set_const($db, "MAIN_GENERATE_PROPOSALS_WITH_PICTURE", GETPOST("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), 'chaine', 0, '', $conf->entity);
92 }
93 if (GETPOSTISSET('PROPOSAL_SHOW_SHIPPING_ADDRESS')) {
94 dolibarr_set_const($db, "PROPOSAL_SHOW_SHIPPING_ADDRESS", GETPOSTINT("PROPOSAL_SHOW_SHIPPING_ADDRESS"), 'chaine', 0, '', $conf->entity);
95 }
96 if (GETPOSTISSET('SALES_ORDER_SHOW_SHIPPING_ADDRESS')) {
97 dolibarr_set_const($db, "SALES_ORDER_SHOW_SHIPPING_ADDRESS", GETPOSTINT("SALES_ORDER_SHOW_SHIPPING_ADDRESS"), 'chaine', 0, '', $conf->entity);
98 dolibarr_del_const($db, "SALES_ORDER_SHOW_SHIPPING_ADDRESS", $conf->entity);
99 }
100 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE')) {
101 dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE", GETPOST("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE"), 'chaine', 0, '', $conf->entity);
102 }
103 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN')) {
104 dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN", GETPOST("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN"), 'chaine', 0, '', $conf->entity);
105 }
106 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE')) {
107 dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE", GETPOST("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE"), 'chaine', 0, '', $conf->entity);
108 }
109 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN')) {
110 dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN", GETPOST("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN"), 'chaine', 0, '', $conf->entity);
111 }
112 if (GETPOSTISSET('MAIN_DOCUMENTS_WITH_PICTURE_WIDTH')) {
113 dolibarr_set_const($db, "MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", GETPOSTINT("MAIN_DOCUMENTS_WITH_PICTURE_WIDTH"), 'chaine', 0, '', $conf->entity);
114 }
115 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_PROPAL')) {
116 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_PROPAL", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", 'int'), 'chaine', 0, '', $conf->entity);
117 }
118 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_ORDER')) {
119 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_ORDER", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_ORDER", 'int'), 'chaine', 0, '', $conf->entity);
120 }
121 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_INVOICE')) {
122 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_INVOICE", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", 'int'), 'chaine', 0, '', $conf->entity);
123 }
124 if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) {
125 dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOSTINT("INVOICE_ADD_ZATCA_QR_CODE"), 'chaine', 0, '', $conf->entity);
126 if (GETPOSTINT('INVOICE_ADD_ZATCA_QR_CODE') == 1) {
127 dolibarr_del_const($db, "INVOICE_ADD_SWISS_QR_CODE", $conf->entity);
128 }
129 }
130 if (GETPOSTISSET('INVOICE_ADD_EPC_QR_CODE')) {
131 dolibarr_set_const($db, "INVOICE_ADD_EPC_QR_CODE", GETPOST("INVOICE_ADD_EPC_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
132 if (GETPOSTINT('INVOICE_ADD_EPC_QR_CODE') == 1) {
133 dolibarr_del_const($db, "INVOICE_ADD_EPC_QR_CODE", $conf->entity);
134 }
135 }
136 if (GETPOSTISSET('INVOICE_ADD_SWISS_QR_CODE')) {
137 dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'alpha'), 'chaine', 0, '', $conf->entity);
138 if (GETPOST('INVOICE_ADD_SWISS_QR_CODE', 'alpha') != '0') {
139 dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity);
140 }
141 }
142 if (GETPOSTISSET('INVOICE_CATEGORY_OF_OPERATION')) {
143 dolibarr_set_const($db, "INVOICE_CATEGORY_OF_OPERATION", GETPOSTINT("INVOICE_CATEGORY_OF_OPERATION"), 'chaine', 0, '', $conf->entity);
144 }
145 if (GETPOSTISSET('INVOICE_SHOW_SHIPPING_ADDRESS')) {
146 dolibarr_set_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", GETPOSTINT("INVOICE_SHOW_SHIPPING_ADDRESS"), 'chaine', 0, '', $conf->entity);
147 dolibarr_del_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", $conf->entity);
148 }
149 if (GETPOSTISSET('PDF_INVOICE_SHOW_VAT_ANALYSIS')) {
150 dolibarr_set_const($db, "PDF_INVOICE_SHOW_VAT_ANALYSIS", GETPOSTINT("PDF_INVOICE_SHOW_VAT_ANALYSIS"), 'chaine', 0, '', $conf->entity);
151 dolibarr_del_const($db, "PDF_INVOICE_SHOW_VAT_ANALYSIS", $conf->entity);
152 }
153 if (GETPOSTISSET('PDF_INVOICE_SHOW_BALANCE_SUMMARY')) {
154 dolibarr_set_const($db, "PDF_INVOICE_SHOW_BALANCE_SUMMARY", GETPOSTINT("PDF_INVOICE_SHOW_BALANCE_SUMMARY"), 'chaine', 0, '', $conf->entity);
155 dolibarr_del_const($db, "PDF_INVOICE_SHOW_BALANCE_SUMMARY", $conf->entity);
156 }
157 if (GETPOSTISSET('INVOICE_HIDE_LINKED_OBJECT')) {
158 dolibarr_set_const($db, "INVOICE_HIDE_LINKED_OBJECT", GETPOSTINT("INVOICE_HIDE_LINKED_OBJECT"), 'chaine', 0, '', $conf->entity);
159 }
160 if (GETPOSTISSET('BARCODE_ON_SHIPPING_PDF')) {
161 dolibarr_set_const($db, "BARCODE_ON_SHIPPING_PDF", GETPOSTINT("BARCODE_ON_SHIPPING_PDF"), 'chaine', 0, '', $conf->entity);
162 }
163 if (GETPOSTISSET('BARCODE_ON_RECEPTION_PDF')) {
164 dolibarr_set_const($db, "BARCODE_ON_RECEPTION_PDF", GETPOSTINT("BARCODE_ON_RECEPTION_PDF"), 'chaine', 0, '', $conf->entity);
165 }
166 if (GETPOSTISSET('BARCODE_ON_STOCKTRANSFER_PDF')) {
167 dolibarr_set_const($db, "BARCODE_ON_STOCKTRANSFER_PDF", GETPOSTINT("BARCODE_ON_STOCKTRANSFER_PDF"), 'chaine', 0, '', $conf->entity);
168 }
169 // add file to concat
170 foreach (array('MAIN_INFO_PROPAL_TERMSOFSALE', 'MAIN_INFO_ORDER_TERMSOFSALE', 'MAIN_INFO_INVOICE_TERMSOFSALE') as $varname) {
171 if (isset($_FILES[$varname]) && $_FILES[$varname]["name"]) {
172 if (!preg_match('/(\.pdf)$/i', $_FILES[$varname]["name"])) { // Document can be used on a lot of different places. Only pdf can be supported.
173 $langs->load("errors");
174 setEventMessages($langs->trans("ErrorBadFormat"), null, 'errors');
175 } else {
176 if ($varname == 'MAIN_INFO_PROPAL_TERMSOFSALE') {
177 $diroffile = $conf->propal->dir_output;
178 } elseif ($varname == 'MAIN_INFO_ORDER_TERMSOFSALE') {
179 $diroffile = $conf->order->dir_output;
180 } elseif ($varname == 'MAIN_INFO_INVOICE_TERMSOFSALE') {
181 $diroffile = $conf->invoice->dir_output;
182 }
183 if ($diroffile) {
184 $dirforterms = $diroffile.'/';
185 $original_file = $_FILES[$varname]["name"];
186 $result = dol_move_uploaded_file($_FILES[$varname]["tmp_name"], $dirforterms.$original_file, 1, 0, $_FILES[$varname]['error']);
187 if ((int) $result > 0) {
188 dolibarr_set_const($db, $varname, $original_file, 'chaine', 0, '', $conf->entity);
189 }
190 }
191 }
192 }
193 }
194
195 setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
196
197 header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
198 exit;
199}
200// Remove file to concat
201if ($action == 'removetermsofsale') {
202 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
203
204 $filename = getDolGlobalString($varname);
205 if ($filename != '') {
206 $file = dol_sanitizePathName($diroffile).'/'.dol_sanitizeFileName($filename);
207 dol_delete_file($file);
208 }
209 dolibarr_del_const($db, $varname, $conf->entity);
210}
211
212
213/*
214 * View
215 */
216
217$wikihelp = 'EN:First_setup|FR:Premiers_param&eacute;trages|ES:Primeras_configuraciones';
218llxHeader('', $langs->trans("Setup"), $wikihelp, '', 0, 0, '', '', '', 'mod-admin page-pdf_other');
219
220$form = new Form($db);
221$formother = new FormOther($db);
222$formadmin = new FormAdmin($db);
223$formfile = new FormFile($db);
224
225print load_fiche_titre($langs->trans("PDF"), '', 'title_setup');
226
227$head = pdf_admin_prepare_head();
228
229print dol_get_fiche_head($head, 'other', '', -1, '');
230
231$tooltiptext = '';
232print '<span class="opacitymedium">'.$form->textwithpicto($langs->trans("PDFOtherDesc"), $tooltiptext)."</span><br>\n";
233print "<br>\n";
234
235
236$maxfilesizearray = getMaxFileSizeArray();
237$tooltipconcatpdf = ($maxfilesizearray['maxmin'] > 0) ? $langs->trans('MaxSize').' : '.$maxfilesizearray['maxmin'].' '.$langs->trans('Kb') : '';
238
239$documenturl = getDolGlobalString('DOL_URL_ROOT_DOCUMENT_PHP', DOL_URL_ROOT.'/document.php');
240
241
242print '<form enctype="multipart/form-data" method="post" action="'.dolBuildUrl($_SERVER["PHP_SELF"]).'">';
243print '<input type="hidden" name="token" value="'.newToken().'">';
244print '<input type="hidden" name="action" value="update">';
245
246if (isModEnabled('propal')) {
247 print '<div id="proposal" class="undertopmenu"></div>';
248
249 print load_fiche_titre($langs->trans("Proposal"), '', 'proposal');
250 print '<div class="div-table-responsive-no-min">';
251 print '<table summary="more" class="noborder centpercent">';
252 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
253
254 /* This feature seems not yet used into Dolibarr. So option is kept hidden and enabled by default
255 print '<tr class="oddeven"><td>';
256 print $form->textwithpicto($langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), '');
257 print '</td><td>';
258 if ($conf->use_javascript_ajax) {
259 print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING');
260 } else {
261 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
262 print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, getDolGlobalString('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING'));
263 }
264 print '</td></tr>';
265 */
266
267 print '<tr class="oddeven"><td>';
268 print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
269 print '</td><td>';
270 if ($conf->use_javascript_ajax) {
271 print ajax_constantonoff('PDF_PROPAL_SHOW_PRICE_INCL_TAX');
272 } else {
273 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
274 print $form->selectarray("PDF_PROPAL_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_PROPAL_SHOW_PRICE_INCL_TAX'));
275 }
276 print '</td></tr>';
277
278 print '<tr class="oddeven"><td>';
279 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
280 print '</td><td>';
281 if ($conf->use_javascript_ajax) {
282 print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE');
283 } else {
284 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
285 print $form->selectarray("MAIN_GENERATE_PROPOSALS_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_PROPOSALS_WITH_PICTURE'));
286 }
287 print '</td></tr>';
288
289 // Add delivery address option for proposals
290 print '<tr class="oddeven"><td>';
291 print $form->textwithpicto($langs->trans("PROPOSAL_SHOW_SHIPPING_ADDRESS"), $langs->trans("PROPOSAL_SHOW_SHIPPING_ADDRESSMore"));
292 print '</td><td>';
293 if ($conf->use_javascript_ajax) {
294 print ajax_constantonoff('PROPOSAL_SHOW_SHIPPING_ADDRESS');
295 } else {
296 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
297 print $form->selectarray("PROPOSAL_SHOW_SHIPPING_ADDRESS", $arrval, getDolGlobalString('PROPOSAL_SHOW_SHIPPING_ADDRESS'));
298 }
299 print '</td></tr>';
300
301 // Concat PDF
302 print '<tr class="oddeven"><td>';
303 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_PROPAL"), $tooltipconcatpdf);
304 print '</td><td>';
305 if ($conf->use_javascript_ajax) {
306 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_PROPAL', array(), null, 0, 0, 1);
307 } else {
308 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
309 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_PROPAL'));
310 }
311
312 if (getDolGlobalString("MAIN_PDF_ADD_TERMSOFSALE_PROPAL")) {
313 $modulepart = 'propal';
314 print '<div class="inline-block nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
315 print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="MAIN_INFO_PROPAL_TERMSOFSALE" id="MAIN_INFO_PROPAL_TERMSOFSALE" accept="application/pdf">';
316 print '</div>';
317 if (getDolGlobalString("MAIN_INFO_PROPAL_TERMSOFSALE")) {
318 $termofsale = getDolGlobalString("MAIN_INFO_PROPAL_TERMSOFSALE");
319 if (file_exists($conf->propal->dir_output.'/'.$termofsale)) {
320 $file = dol_dir_list($conf->propal->dir_output, 'files', 0, $termofsale);
321 print ' ';
322 print '<div class="inline-block valignmiddle marginrightonly"><a href="'.$documenturl.'?modulepart='.$modulepart.'&file='.urlencode($termofsale).'">'.$termofsale.'</a>'.$formfile->showPreview($file[0], $modulepart, $termofsale, 0, '').'</div>';
323 print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removetermsofsale&modulepart='.$modulepart.'&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
324 }
325 }
326 print '</div>';
327 }
328 print '</td></tr>';
329
330 print '</table>';
331 print '</div>';
332
333 print '<br>';
334}
335
336if (isModEnabled('order')) {
337 print '<div id="order" class="undertopmenu"></div>';
338
339 $langs->load("orders");
340 print load_fiche_titre($langs->trans('CustomersOrders'), '', 'order');
341
342 print '<div class="div-table-responsive-no-min">';
343 print '<table summary="more" class="noborder centpercent">';
344
345 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
346
347 print '<tr class="oddeven"><td>';
348 print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
349 print '</td><td>';
350 if ($conf->use_javascript_ajax) {
351 print ajax_constantonoff('PDF_ORDER_SHOW_PRICE_INCL_TAX');
352 } else {
353 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
354 print $form->selectarray("PDF_ORDER_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_ORDER_SHOW_PRICE_INCL_TAX'));
355 }
356 print '</td></tr>';
357
358 print '<tr class="oddeven"><td>';
359 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
360 print '</td><td>';
361 if ($conf->use_javascript_ajax) {
362 print ajax_constantonoff('MAIN_GENERATE_ORDERS_WITH_PICTURE');
363 } else {
364 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
365 print $form->selectarray("MAIN_GENERATE_ORDERS_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_ORDERS_WITH_PICTURE'));
366 }
367 print '</td></tr>';
368
369 print '<tr class="oddeven"><td>';
370 print $form->textwithpicto($langs->trans("SALES_ORDER_SHOW_SHIPPING_ADDRESS"), $langs->trans("SALES_ORDER_SHOW_SHIPPING_ADDRESSMore"));
371 print '</td><td>';
372 if ($conf->use_javascript_ajax) {
373 print ajax_constantonoff('SALES_ORDER_SHOW_SHIPPING_ADDRESS');
374 } else {
375 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
376 print $form->selectarray("SALES_ORDER_SHOW_SHIPPING_ADDRESS", $arrval, getDolGlobalString('SALES_ORDER_SHOW_SHIPPING_ADDRESS'));
377 }
378 print '</td></tr>';
379
380 // Concat PDF
381 print '<tr class="oddeven"><td>';
382 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_ORDER"), '');
383 print '</td><td>';
384 if ($conf->use_javascript_ajax) {
385 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_ORDER', array(), null, 0, 0, 1);
386 } else {
387 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
388 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_ORDER", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_ORDER'));
389 }
390
391 if (getDolGlobalString("MAIN_PDF_ADD_TERMSOFSALE_ORDER")) {
392 $modulepart = 'order';
393 print '<div class="inline-block nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
394 print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="MAIN_INFO_ORDER_TERMSOFSALE" id="MAIN_INFO_ORDER_TERMSOFSALE" accept="application/pdf">';
395 print '</div>';
396 if (getDolGlobalString("MAIN_INFO_ORDER_TERMSOFSALE")) {
397 $termofsale = getDolGlobalString("MAIN_INFO_ORDER_TERMSOFSALE");
398 if (file_exists($conf->order->dir_output.'/'.$termofsale)) {
399 $file = dol_dir_list($conf->order->dir_output, 'files', 0, $termofsale);
400 print ' ';
401 print '<div class="inline-block valignmiddle marginrightonly"><a href="'.$documenturl.'?modulepart='.$modulepart.'&file='.urlencode($termofsale).'">'.$termofsale.'</a>'.$formfile->showPreview($file[0], $modulepart, $termofsale, 0, '').'</div>';
402 print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removetermsofsale&modulepart='.$modulepart.'&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
403 }
404 }
405 print '</div>';
406 }
407
408 print '</td></tr>';
409
410 print '</table>';
411 print '</div>';
412
413 print '<br>';
414}
415
416
417if (isModEnabled('invoice')) {
418 print '<div id="invoice" class="undertopmenu"></div>';
419
420 print load_fiche_titre($langs->trans("Invoices"), '', 'bill');
421
422 print '<div class="div-table-responsive-no-min">';
423 print '<table summary="more" class="noborder centpercent">';
424 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
425
426 print '<tr class="oddeven"><td>';
427 print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
428 print '</td><td>';
429 if ($conf->use_javascript_ajax) {
430 print ajax_constantonoff('PDF_INVOICE_SHOW_PRICE_INCL_TAX');
431 } else {
432 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
433 print $form->selectarray("PDF_INVOICE_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_INVOICE_SHOW_PRICE_INCL_TAX'));
434 }
435 print '</td></tr>';
436
437 print '<tr class="oddeven"><td>';
438 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
439 print '</td><td>';
440 if ($conf->use_javascript_ajax) {
441 print ajax_constantonoff('MAIN_GENERATE_INVOICES_WITH_PICTURE');
442 } else {
443 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
444 print $form->selectarray("MAIN_GENERATE_INVOICES_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_INVOICES_WITH_PICTURE'));
445 }
446 print '</td></tr>';
447
448 print '<tr class="oddeven"><td>';
449 print $form->textwithpicto($langs->trans("INVOICE_SHOW_SHIPPING_ADDRESS"), $langs->trans("INVOICE_SHOW_SHIPPING_ADDRESSMore"));
450 print '</td><td>';
451 if ($conf->use_javascript_ajax) {
452 print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS');
453 } else {
454 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
455 print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, getDolGlobalString('INVOICE_SHOW_SHIPPING_ADDRESS'));
456 }
457 print '</td></tr>';
458
459 // Concat PDF
460 print '<tr class="oddeven"><td>';
461 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_INVOICE"), '');
462 print '</td><td>';
463 if ($conf->use_javascript_ajax) {
464 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_INVOICE', array(), null, 0, 0, 1);
465 } else {
466 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
467 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_INVOICE'));
468 }
469
470 if (getDolGlobalString("MAIN_PDF_ADD_TERMSOFSALE_INVOICE")) {
471 $modulepart = 'invoice';
472 print '<div class="inline-block nobordernopadding valignmiddle"><div class="inline-block marginrightonly">';
473 print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="MAIN_INFO_INVOICE_TERMSOFSALE" id="MAIN_INFO_INVOICE_TERMSOFSALE" accept="application/pdf">';
474 print '</div>';
475 if (getDolGlobalString("MAIN_INFO_INVOICE_TERMSOFSALE")) {
476 $termofsale = getDolGlobalString("MAIN_INFO_INVOICE_TERMSOFSALE");
477 if (file_exists($conf->invoice->dir_output.'/'.$termofsale)) {
478 $file = dol_dir_list($conf->invoice->dir_output, 'files', 0, $termofsale);
479 print ' ';
480 print '<div class="inline-block valignmiddle marginrightonly"><a href="'.$documenturl.'?modulepart='.$modulepart.'&file='.urlencode($termofsale).'">'.$termofsale.'</a>'.$formfile->showPreview($file[0], $modulepart, $termofsale, 0, '').'</div>';
481 print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removetermsofsale&modulepart='.$modulepart.'&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
482 }
483 }
484 print '</div>';
485 }
486 print '</td></tr>';
487
488 // QR Codes
489 print '<tr class="oddeven"><td>';
490 print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore"));
491 print '</td><td>';
492 if ($conf->use_javascript_ajax) {
493 print ajax_constantonoff('INVOICE_ADD_ZATCA_QR_CODE');
494 } else {
495 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
496 print $form->selectarray("INVOICE_ADD_ZATCA_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_ZATCA_QR_CODE'));
497 }
498 print '</td></tr>';
499
500 print '<tr class="oddeven"><td>';
501 print $form->textwithpicto($langs->trans("INVOICE_ADD_EPC_QR_CODE"), $langs->trans("INVOICE_ADD_EPC_QR_CODEMore"));
502 print '</td><td>';
503 if ($conf->use_javascript_ajax) {
504 print ajax_constantonoff('INVOICE_ADD_EPC_QR_CODE');
505 } else {
506 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
507 print $form->selectarray("INVOICE_ADD_EPC_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_EPC_QR_CODE'));
508 }
509 print '</td></tr>';
510
511 print '<tr class="oddeven"><td>';
512 if (getDolGlobalString('INVOICE_ADD_SWISS_QR_CODE') == 'bottom') {
513 print $form->textwithpicto($langs->trans("INVOICE_ADD_SWISS_QR_CODE"), $langs->trans("INVOICE_ADD_SWISS_QR_CODEMore"));
514 } else {
515 print $langs->trans("INVOICE_ADD_SWISS_QR_CODE");
516 }
517 print '</td><td>';
518 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
519 if (getDolGlobalString('MAIN_FEATURES_LEVEL') >= 1) {
520 $arrval['bottom'] = $langs->trans("AtBottomOfPage").' ('.$langs->trans("Experimental").' - Need PHP 8.1+ and some PHP libs)';
521 }
522 print $form->selectarray("INVOICE_ADD_SWISS_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_SWISS_QR_CODE'));
523 print '</td></tr>';
524
525 // Mention category of operations
526 // French Decret n°2099-1299 2022-10-07
527 print '<tr class="oddeven"><td>';
528 print $form->textwithpicto($langs->trans("InvoiceOptionCategoryOfOperations"), $langs->trans('InvoiceOptionCategoryOfOperationsHelp'), 1);
529 print '</td><td>';
530 $arrval = array('0'=>$langs->trans("No"),
531 '1'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes1"),
532 '2'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes2")
533 );
534 print $form->selectarray("INVOICE_CATEGORY_OF_OPERATION", $arrval, getDolGlobalString('INVOICE_CATEGORY_OF_OPERATION'), 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp');
535 print '</td></tr>';
536
537 print '<tr class="oddeven"><td>';
538 print $form->textwithpicto($langs->trans("PDF_INVOICE_SHOW_VAT_ANALYSIS"), '');
539 print '</td><td>';
540 if ($conf->use_javascript_ajax) {
541 print ajax_constantonoff('PDF_INVOICE_SHOW_VAT_ANALYSIS');
542 } else {
543 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
544 print $form->selectarray("PDF_INVOICE_SHOW_VAT_ANALYSIS", $arrval, getDolGlobalInt('PDF_INVOICE_SHOW_VAT_ANALYSIS'));
545 }
546 print '</td></tr>';
547
548
549 print '<tr class="oddeven"><td>';
550 print $form->textwithpicto($langs->trans("PDF_INVOICE_SHOW_BALANCE_SUMMARY"), '');
551 print '</td><td>';
552 if ($conf->use_javascript_ajax) {
553 print ajax_constantonoff('PDF_INVOICE_SHOW_BALANCE_SUMMARY');
554 } else {
555 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
556 print $form->selectarray("PDF_INVOICE_SHOW_BALANCE_SUMMARY", $arrval, getDolGlobalInt('PDF_INVOICE_SHOW_BALANCE_SUMMARY'));
557 }
558 print '</td></tr>';
559
560 /* Keep this option hidden for the moment to avoid options inflation. We'll see later if it is used enough...
561 print '<tr class="oddeven"><td>';
562 print $form->textwithpicto($langs->trans("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT"), $langs->trans("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACTMore"));
563 print '</td><td>';
564 if ($conf->use_javascript_ajax) {
565 print ajax_constantonoff('SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT');
566 } else {
567 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
568 print $form->selectarray("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT", $arrval, getDolGlobalInt('SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT'));
569 }
570 print '</td></tr>';
571 */
572 print '<tr class="oddeven"><td>';
573 print $form->textwithpicto($langs->trans("INVOICE_HIDE_LINKED_OBJECT"), $langs->trans("INVOICE_HIDE_LINKED_OBJECTMore"));
574 print '</td><td>';
575 if ($conf->use_javascript_ajax) {
576 print ajax_constantonoff('INVOICE_HIDE_LINKED_OBJECT');
577 } else {
578 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
579 print $form->selectarray("INVOICE_HIDE_LINKED_OBJECT", $arrval, getDolGlobalString('INVOICE_HIDE_LINKED_OBJECT'));
580 }
581 print '</td></tr>';
582
583 print '</table>';
584 print '</div>';
585
586 print '<br>';
587}
588
589
590if (isModEnabled('supplier_proposal')) {
591 print '<div id="supplier_proposal"></div>';
592
593 $langs->load("supplier_proposal");
594 print load_fiche_titre($langs->trans("SupplierProposal"), '', 'supplier_proposal');
595
596 print '<div class="div-table-responsive-no-min">';
597 print '<table summary="more" class="noborder centpercent">';
598 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
599
600 print '<tr class="oddeven"><td>';
601 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE"), '');
602 print '</td><td>';
603 if ($conf->use_javascript_ajax) {
604 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE');
605 } else {
606 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
607 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE'));
608 }
609 print '</td></tr>';
610
611 print '<tr class="oddeven"><td>';
612 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN"), '');
613 print '</td><td>';
614 if ($conf->use_javascript_ajax) {
615 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN');
616 } else {
617 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
618 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN'));
619 }
620 print '</td></tr>';
621
622 print '</table>';
623 print '</div>';
624
625 print '<br>';
626}
627
628
629if (isModEnabled('supplier_order')) {
630 print '<div id="supplier_order"></div>';
631
632 $langs->load("supplier_order");
633 print load_fiche_titre($langs->trans("SupplierOrder"), '', 'supplier_proposal');
634
635 print '<div class="div-table-responsive-no-min">';
636 print '<table summary="more" class="noborder centpercent">';
637 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
638
639 print '<tr class="oddeven"><td>';
640 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE"), '');
641 print '</td><td>';
642 if ($conf->use_javascript_ajax) {
643 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE');
644 } else {
645 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
646 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE'));
647 }
648 print '</td></tr>';
649
650 print '<tr class="oddeven"><td>';
651 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN"), '');
652 print '</td><td>';
653 if ($conf->use_javascript_ajax) {
654 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN');
655 } else {
656 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
657 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN'));
658 }
659 print '</td></tr>';
660
661 print '</table>';
662 print '</div>';
663
664 print '<br>';
665}
666
667if (isModEnabled('shipping')) {
668 print '<div id="shipping"></div>';
669
670 print load_fiche_titre($langs->trans("Shipments"), '', 'shipment');
671
672 print '<div class="div-table-responsive-no-min">';
673 print '<table summary="more" class="noborder centpercent">';
674 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
675
676 print '<tr class="oddeven"><td>';
677 print $langs->trans("BARCODE_ON_SHIPPING_PDF");
678 print '</td><td>';
679 if ($conf->use_javascript_ajax) {
680 print ajax_constantonoff('BARCODE_ON_SHIPPING_PDF');
681 } else {
682 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
683 print $form->selectarray("BARCODE_ON_SHIPPING_PDF", $arrval, getDolGlobalString('BARCODE_ON_SHIPPING_PDF'));
684 }
685 print '</td></tr>';
686 print '</table>';
687 print '</div>';
688
689 print '<br>';
690}
691
692if (isModEnabled('reception')) {
693 print '<div id="reception"></div>';
694
695 print load_fiche_titre($langs->trans("Receptions"), '', 'reception');
696
697 print '<div class="div-table-responsive-no-min">';
698 print '<table summary="more" class="noborder centpercent">';
699 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
700
701 print '<tr class="oddeven"><td>';
702 print $langs->trans("RECEPTION_PDF_HIDE_ORDERED");
703 print '</td><td>';
704 if ($conf->use_javascript_ajax) {
705 print ajax_constantonoff('RECEPTION_PDF_HIDE_ORDERED');
706 } else {
707 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
708 print $form->selectarray("RECEPTION_PDF_HIDE_ORDERED", $arrval, getDolGlobalString('RECEPTION_PDF_HIDE_ORDERED'));
709 }
710 print '</td></tr>';
711
712 print '<tr class="oddeven"><td>';
713 print $langs->trans("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT");
714 print '</td><td>';
715 if ($conf->use_javascript_ajax) {
716 print ajax_constantonoff('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT');
717 } else {
718 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
719 print $form->selectarray("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT", $arrval, getDolGlobalString('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT'));
720 }
721 print '</td></tr>';
722
723 print '<tr class="oddeven"><td>';
724 print $langs->trans("BARCODE_ON_RECEPTION_PDF");
725 print '</td><td>';
726 if ($conf->use_javascript_ajax) {
727 print ajax_constantonoff('BARCODE_ON_RECEPTION_PDF');
728 } else {
729 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
730 print $form->selectarray("BARCODE_ON_RECEPTION_PDF", $arrval, getDolGlobalString('BARCODE_ON_RECEPTION_PDF'));
731 }
732 print '</td></tr>';
733 print '</table>';
734 print '</div>';
735
736 print '<br>';
737}
738
739if (isModEnabled('stocktransfer')) {
740 print '<div id="stocktransfer"></div>';
741
742 print load_fiche_titre($langs->trans("StockTransfer"), '', 'stock');
743
744 print '<div class="div-table-responsive-no-min">';
745 print '<table summary="more" class="noborder centpercent">';
746 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
747
748 print '<tr class="oddeven"><td>';
749 print $langs->trans("BARCODE_ON_STOCKTRANSFER_PDF");
750 print '</td><td>';
751 if ($conf->use_javascript_ajax) {
752 print ajax_constantonoff('BARCODE_ON_STOCKTRANSFER_PDF');
753 } else {
754 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
755 print $form->selectarray("BARCODE_ON_STOCKTRANSFER_PDF", $arrval, getDolGlobalString('BARCODE_ON_STOCKTRANSFER_PDF'));
756 }
757 print '</td></tr>';
758
759 print '</table>';
760 print '</div>';
761
762 print '<br>';
763}
764
765print '<br><div class="center">';
766print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
767print '</div>';
768
769print '</form>';
770
771
772// End of page
773llxFooter();
774$db->close();
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
dolibarr_del_const($db, $name, $entity=1)
Delete a constant.
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
Definition wrapper.php:91
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.
Definition wrapper.php:73
Class to generate html code for admin pages.
Class to offer components to list and upload files.
Class to manage generation of HTML components Only common components must be here.
Class permettant la generation de composants html autre Only common components are here.
dol_delete_file($file, $disableglob=0, $nophperrors=0, $nohook=0, $object=null, $allowdotdot=false, $indexdatabase=1, $nolog=0)
Remove a file or several files with a mask.
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.
Definition files.lib.php:64
dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $keyforsourcefile='addedfile', $upload_dir='', $mode=0)
Check validity of a file upload from an GUI page, and move it to its final destination.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
img_delete($titlealt='default', $other='class="pictodelete"', $morecss='')
Show delete logo.
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.
dol_sanitizePathName($str, $newstr='_', $unaccent=0, $allowdash=0)
Clean a string to use it as a path name.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0, $allowdash=0)
Clean a string to use it as a file name.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
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.
pdf_admin_prepare_head()
Return array head with list of tabs to view object information.
Definition pdf.lib.php:49
getMaxFileSizeArray()
Return the max allowed for file upload.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.