dolibarr 21.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 Frédéric France <frederic.france@free.fr>
10 * Copyright (C) 2024 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';
33require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
34require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
35require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
36require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
37require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
38require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
39require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
40require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
41
51// Load translation files required by the page
52$langs->loadLangs(array('admin', 'bills', 'companies', 'languages', 'members', 'other', 'products', 'propal', 'receptions', 'stocks', 'trips', 'orders'));
53
54if (!$user->admin) {
56}
57
58$action = GETPOST('action', 'aZ09');
59
60
61/*
62 * Actions
63 */
64
65if ($action == 'update') {
66 if (GETPOSTISSET('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING')) {
67 dolibarr_set_const($db, "MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", GETPOST("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), 'chaine', 0, '', $conf->entity);
68 }
69 if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTTERM')) {
70 dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTTERM", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTTERM"), 'chaine', 0, '', $conf->entity);
71 }
72 if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTMODE')) {
73 dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTMODE", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTMODE"), 'chaine', 0, '', $conf->entity);
74 }
75 if (GETPOSTISSET('MAIN_GENERATE_PROPOSALS_WITH_PICTURE')) {
76 dolibarr_set_const($db, "MAIN_GENERATE_PROPOSALS_WITH_PICTURE", GETPOST("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), 'chaine', 0, '', $conf->entity);
77 }
78 if (GETPOSTISSET('SALES_ORDER_SHOW_SHIPPING_ADDRESS')) {
79 dolibarr_set_const($db, "SALES_ORDER_SHOW_SHIPPING_ADDRESS", GETPOSTINT("SALES_ORDER_SHOW_SHIPPING_ADDRESS"), 'chaine', 0, '', $conf->entity);
80 dolibarr_del_const($db, "SALES_ORDER_SHOW_SHIPPING_ADDRESS", $conf->entity);
81 }
82 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE')) {
83 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);
84 }
85 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN')) {
86 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);
87 }
88 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE')) {
89 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);
90 }
91 if (GETPOSTISSET('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN')) {
92 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);
93 }
94 if (GETPOSTISSET('MAIN_DOCUMENTS_WITH_PICTURE_WIDTH')) {
95 dolibarr_set_const($db, "MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", GETPOSTINT("MAIN_DOCUMENTS_WITH_PICTURE_WIDTH"), 'chaine', 0, '', $conf->entity);
96 }
97 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_PROPAL')) {
98 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_PROPAL", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", 'int'), 'chaine', 0, '', $conf->entity);
99 }
100 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_ORDER')) {
101 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_ORDER", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_ORDER", 'int'), 'chaine', 0, '', $conf->entity);
102 }
103 if (GETPOSTISSET('MAIN_PDF_ADD_TERMSOFSALE_INVOICE')) {
104 dolibarr_set_const($db, "MAIN_PDF_ADD_TERMSOFSALE_INVOICE", GETPOST("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", 'int'), 'chaine', 0, '', $conf->entity);
105 }
106 if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) {
107 dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOSTINT("INVOICE_ADD_ZATCA_QR_CODE"), 'chaine', 0, '', $conf->entity);
108 if (GETPOSTINT('INVOICE_ADD_ZATCA_QR_CODE') == 1) {
109 dolibarr_del_const($db, "INVOICE_ADD_SWISS_QR_CODE", $conf->entity);
110 }
111 }
112 if (GETPOSTISSET('INVOICE_ADD_EPC_QR_CODE')) {
113 dolibarr_set_const($db, "INVOICE_ADD_EPC_QR_CODE", GETPOST("INVOICE_ADD_EPC_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
114 if (GETPOSTINT('INVOICE_ADD_EPC_QR_CODE') == 1) {
115 dolibarr_del_const($db, "INVOICE_ADD_EPC_QR_CODE", $conf->entity);
116 }
117 }
118 if (GETPOSTISSET('INVOICE_ADD_SWISS_QR_CODE')) {
119 dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'alpha'), 'chaine', 0, '', $conf->entity);
120 if (GETPOST('INVOICE_ADD_SWISS_QR_CODE', 'alpha') != '0') {
121 dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity);
122 }
123 }
124 if (GETPOSTISSET('INVOICE_CATEGORY_OF_OPERATION')) {
125 dolibarr_set_const($db, "INVOICE_CATEGORY_OF_OPERATION", GETPOSTINT("INVOICE_CATEGORY_OF_OPERATION"), 'chaine', 0, '', $conf->entity);
126 }
127 if (GETPOSTISSET('INVOICE_SHOW_SHIPPING_ADDRESS')) {
128 dolibarr_set_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", GETPOSTINT("INVOICE_SHOW_SHIPPING_ADDRESS"), 'chaine', 0, '', $conf->entity);
129 dolibarr_del_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", $conf->entity);
130 }
131 if (GETPOSTISSET('PDF_INVOICE_SHOW_VAT_ANALYSIS')) {
132 dolibarr_set_const($db, "PDF_INVOICE_SHOW_VAT_ANALYSIS", GETPOSTINT("PDF_INVOICE_SHOW_VAT_ANALYSIS"), 'chaine', 0, '', $conf->entity);
133 dolibarr_del_const($db, "PDF_INVOICE_SHOW_VAT_ANALYSIS", $conf->entity);
134 }
135 if (GETPOSTISSET('BARCODE_ON_SHIPPING_PDF')) {
136 dolibarr_set_const($db, "BARCODE_ON_SHIPPING_PDF", GETPOSTINT("BARCODE_ON_SHIPPING_PDF"), 'chaine', 0, '', $conf->entity);
137 }
138 if (GETPOSTISSET('BARCODE_ON_RECEPTION_PDF')) {
139 dolibarr_set_const($db, "BARCODE_ON_RECEPTION_PDF", GETPOSTINT("BARCODE_ON_RECEPTION_PDF"), 'chaine', 0, '', $conf->entity);
140 }
141 if (GETPOSTISSET('BARCODE_ON_STOCKTRANSFER_PDF')) {
142 dolibarr_set_const($db, "BARCODE_ON_STOCKTRANSFER_PDF", GETPOSTINT("BARCODE_ON_STOCKTRANSFER_PDF"), 'chaine', 0, '', $conf->entity);
143 }
144
145 // Terms of sale
146 if ($_FILES['termsofsale']["name"]) {
147 if (!preg_match('/(\.pdf)$/i', $_FILES['termsofsale']["name"])) { // Document can be used on a lot of different places. Only pdf can be supported.
148 $langs->load("errors");
149 setEventMessages($langs->trans("ErrorBadFormat"), null, 'errors');
150 } else {
151 $dirforterms = $conf->mycompany->dir_output.'/';
152 if (!is_dir($dirforterms)) {
153 dol_mkdir($dirforterms);
154 }
155 $original_file = $_FILES['termsofsale']["name"];
156 $result = dol_move_uploaded_file($_FILES['termsofsale']["tmp_name"], $dirforterms.$original_file, 1, 0, $_FILES['termsofsale']['error']);
157 if ($result) {
158 dolibarr_set_const($db, 'MAIN_INFO_SOCIETE_TERMSOFSALE', $original_file, 'chaine', 0, '', $conf->entity);
159
160 $mysoc->termsofsale = getDolGlobalString('MAIN_INFO_SOCIETE_TERMSOFSALE');
161 }
162 }
163 }
164
165 setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
166
167 header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
168 exit;
169}
170
171
172// Terms of sale
173if ($action == 'removetermsofsale') {
174 require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
175
176 $filename = $mysoc->termsofsale;
177 $file = $conf->mycompany->dir_output.'/'.$filename;
178
179 if ($filename != '') {
180 dol_delete_file($file);
181 }
182 dolibarr_del_const($db, 'MAIN_INFO_SOCIETE_TERMSOFSALE', $conf->entity);
183
184 $mysoc->termsofsale = '';
185}
186
187
188/*
189 * View
190 */
191
192$wikihelp = 'EN:First_setup|FR:Premiers_param&eacute;trages|ES:Primeras_configuraciones';
193llxHeader('', $langs->trans("Setup"), $wikihelp, '', 0, 0, '', '', '', 'mod-admin page-pdf_other');
194
195$form = new Form($db);
196$formother = new FormOther($db);
197$formadmin = new FormAdmin($db);
198$formfile = new FormFile($db);
199
200print load_fiche_titre($langs->trans("PDF"), '', 'title_setup');
201
202$head = pdf_admin_prepare_head();
203
204print dol_get_fiche_head($head, 'other', '', -1, '');
205
206$tooltiptext = '';
207print '<span class="opacitymedium">'.$form->textwithpicto($langs->trans("PDFOtherDesc"), $tooltiptext)."</span><br>\n";
208print "<br>\n";
209
210print '<form enctype="multipart/form-data" method="post" action="'.$_SERVER["PHP_SELF"].'">';
211print '<input type="hidden" name="token" value="'.newToken().'">';
212print '<input type="hidden" name="action" value="update">';
213
214if (isModEnabled('propal')) {
215 print load_fiche_titre($langs->trans("Proposal"), '', 'proposal');
216
217 print '<div class="div-table-responsive-no-min">';
218 print '<table summary="more" class="noborder centpercent">';
219 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
220
221 /* This feature seems not yet used into Dolibarr. So option is kept hidden and enabled by default
222 print '<tr class="oddeven"><td>';
223 print $form->textwithpicto($langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), '');
224 print '</td><td>';
225 if ($conf->use_javascript_ajax) {
226 print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING');
227 } else {
228 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
229 print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, $conf->global->MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING);
230 }
231 print '</td></tr>';
232 */
233
234 print '<tr class="oddeven"><td>';
235 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_PROPAL"), $langs->trans("PdfAddTermOfSaleHelp"));
236 print '</td><td>';
237 if ($conf->use_javascript_ajax) {
238 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_PROPAL');
239 } else {
240 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
241 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_PROPAL);
242 }
243 print '</td></tr>';
244
245 print '<tr class="oddeven"><td>';
246 print $form->textwithpicto($langs->trans("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
247 print '</td><td>';
248 if ($conf->use_javascript_ajax) {
249 print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE');
250 } else {
251 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
252 print $form->selectarray("MAIN_GENERATE_PROPOSALS_WITH_PICTURE", $arrval, $conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE);
253 }
254 print '</td></tr>';
255
256 print '</table>';
257 print '</div>';
258}
259
260if (isModEnabled('order')) {
261 $langs->load("orders");
262 print load_fiche_titre($langs->trans('CustomersOrders'), '', 'order');
263
264 print '<div class="div-table-responsive-no-min">';
265 print '<table summary="more" class="noborder centpercent">';
266 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
267 print '<tr class="oddeven"><td>';
268 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_ORDER"), $langs->trans("PdfAddTermOfSaleHelp"));
269 print '</td><td>';
270 if ($conf->use_javascript_ajax) {
271 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_ORDER');
272 } else {
273 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
274 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_ORDER", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_ORDER);
275 }
276 print '</td></tr>';
277
278 print '<tr class="oddeven"><td>';
279 print $form->textwithpicto($langs->trans("SALES_ORDER_SHOW_SHIPPING_ADDRESS"), $langs->trans("SALES_ORDER_SHOW_SHIPPING_ADDRESSMore"));
280 print '</td><td>';
281 if ($conf->use_javascript_ajax) {
282 print ajax_constantonoff('SALES_ORDER_SHOW_SHIPPING_ADDRESS');
283 } else {
284 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
285 print $form->selectarray("SALES_ORDER_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->SALES_ORDER_SHOW_SHIPPING_ADDRESS);
286 }
287 print '</td></tr>';
288
289 print '</table>';
290 print '</div>';
291}
292
293
294if (isModEnabled('supplier_proposal')) {
295 $langs->load("supplier_proposal");
296 print load_fiche_titre($langs->trans("SupplierProposal"), '', 'supplier_proposal');
297
298 print '<div class="div-table-responsive-no-min">';
299 print '<table summary="more" class="noborder centpercent">';
300 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
301
302 print '<tr class="oddeven"><td>';
303 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE"), '');
304 print '</td><td>';
305 if ($conf->use_javascript_ajax) {
306 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE');
307 } else {
308 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
309 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE);
310 }
311 print '</td></tr>';
312
313 print '<tr class="oddeven"><td>';
314 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN"), '');
315 print '</td><td>';
316 if ($conf->use_javascript_ajax) {
317 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN');
318 } else {
319 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
320 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN);
321 }
322 print '</td></tr>';
323
324 print '</table>';
325 print '</div>';
326}
327
328
329if (isModEnabled('supplier_order')) {
330 $langs->load("supplier_order");
331 print load_fiche_titre($langs->trans("SupplierOrder"), '', 'supplier_proposal');
332
333 print '<div class="div-table-responsive-no-min">';
334 print '<table summary="more" class="noborder centpercent">';
335 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
336
337 print '<tr class="oddeven"><td>';
338 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE"), '');
339 print '</td><td>';
340 if ($conf->use_javascript_ajax) {
341 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE');
342 } else {
343 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
344 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE);
345 }
346 print '</td></tr>';
347
348 print '<tr class="oddeven"><td>';
349 print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN"), '');
350 print '</td><td>';
351 if ($conf->use_javascript_ajax) {
352 print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN');
353 } else {
354 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
355 print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN);
356 }
357 print '</td></tr>';
358
359 print '</table>';
360 print '</div>';
361}
362
363if (isModEnabled('invoice')) {
364 print load_fiche_titre($langs->trans("Invoices"), '', 'bill');
365
366 print '<div class="div-table-responsive-no-min">';
367 print '<table summary="more" class="noborder centpercent">';
368 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
369
370 print '<tr class="oddeven"><td>';
371 print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_INVOICE"), $langs->trans("PdfAddTermOfSaleHelp"));
372 print '</td><td>';
373 if ($conf->use_javascript_ajax) {
374 print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_INVOICE');
375 } else {
376 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
377 print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_INVOICE);
378 }
379 print '</td></tr>';
380 print '<tr class="oddeven"><td>';
381 print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore"));
382 print '</td><td>';
383 if ($conf->use_javascript_ajax) {
384 print ajax_constantonoff('INVOICE_ADD_ZATCA_QR_CODE');
385 } else {
386 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
387 print $form->selectarray("INVOICE_ADD_ZATCA_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_ZATCA_QR_CODE'));
388 }
389 print '</td></tr>';
390
391 print '<tr class="oddeven"><td>';
392 print $form->textwithpicto($langs->trans("INVOICE_ADD_EPC_QR_CODE"), $langs->trans("INVOICE_ADD_EPC_QR_CODEMore"));
393 print '</td><td>';
394 if ($conf->use_javascript_ajax) {
395 print ajax_constantonoff('INVOICE_ADD_EPC_QR_CODE');
396 } else {
397 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
398 print $form->selectarray("INVOICE_ADD_EPC_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_EPC_QR_CODE'));
399 }
400 print '</td></tr>';
401
402 print '<tr class="oddeven"><td>';
403 if (getDolGlobalString('INVOICE_ADD_SWISS_QR_CODE') == 'bottom') {
404 print $form->textwithpicto($langs->trans("INVOICE_ADD_SWISS_QR_CODE"), $langs->trans("INVOICE_ADD_SWISS_QR_CODEMore"));
405 } else {
406 print $langs->trans("INVOICE_ADD_SWISS_QR_CODE");
407 }
408 print '</td><td>';
409 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
410 if (getDolGlobalString('MAIN_FEATURES_LEVEL') >= 1) {
411 $arrval['bottom'] = $langs->trans("AtBottomOfPage").' ('.$langs->trans("Experimental").' - Need PHP 8.1+ and some PHP libs)';
412 }
413 print $form->selectarray("INVOICE_ADD_SWISS_QR_CODE", $arrval, getDolGlobalString('INVOICE_ADD_SWISS_QR_CODE'));
414 print '</td></tr>';
415
416 // Mention category of operations
417 // French Decret n°2099-1299 2022-10-07
418 print '<tr class="oddeven"><td>';
419 print $form->textwithpicto($langs->trans("InvoiceOptionCategoryOfOperations"), $langs->trans('InvoiceOptionCategoryOfOperationsHelp'), 1);
420 print '</td><td>';
421 $arrval = array('0'=>$langs->trans("No"),
422 '1'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes1"),
423 '2'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes2")
424 );
425 print $form->selectarray("INVOICE_CATEGORY_OF_OPERATION", $arrval, getDolGlobalString('INVOICE_CATEGORY_OF_OPERATION'), 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp');
426 print '</td></tr>';
427
428 print '<tr class="oddeven"><td>';
429 print $form->textwithpicto($langs->trans("INVOICE_SHOW_SHIPPING_ADDRESS"), $langs->trans("INVOICE_SHOW_SHIPPING_ADDRESSMore"));
430 print '</td><td>';
431 if ($conf->use_javascript_ajax) {
432 print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS');
433 } else {
434 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
435 print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->INVOICE_SHOW_SHIPPING_ADDRESS);
436 }
437 print '</td></tr>';
438
439 /* too late to have it enabled by default in v21
440 print '<tr class="oddeven"><td>';
441 print $form->textwithpicto($langs->trans("PDF_INVOICE_SHOW_VAT_ANALYSIS"), '');
442 print '</td><td>';
443 if ($conf->use_javascript_ajax) {
444 print ajax_constantonoff('PDF_INVOICE_SHOW_VAT_ANALYSIS');
445 } else {
446 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
447 print $form->selectarray("PDF_INVOICE_SHOW_VAT_ANALYSIS", $arrval, $conf->global->PDF_INVOICE_SHOW_VAT_ANALYSIS);
448 }
449 print '</td></tr>';
450 */
451
452 /* Keep this option hidden for the moment to avoid options inflation. We'll see later if it is used enough...
453 print '<tr class="oddeven"><td>';
454 print $form->textwithpicto($langs->trans("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT"), $langs->trans("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACTMore"));
455 print '</td><td>';
456 if ($conf->use_javascript_ajax) {
457 print ajax_constantonoff('SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT');
458 } else {
459 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
460 print $form->selectarray("SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT", $arrval, $conf->global->SUPPLIER_PROPOSAL_ADD_BILLING_CONTACT);
461 }
462 print '</td></tr>';
463 */
464
465 print '</table>';
466 print '</div>';
467}
468
469if (isModEnabled('shipping')) {
470 print load_fiche_titre($langs->trans("Shipments"), '', 'shipment');
471
472 print '<div class="div-table-responsive-no-min">';
473 print '<table summary="more" class="noborder centpercent">';
474 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
475
476 print '<tr class="oddeven"><td>';
477 print $langs->trans("BARCODE_ON_SHIPPING_PDF");
478 print '</td><td>';
479 if ($conf->use_javascript_ajax) {
480 print ajax_constantonoff('BARCODE_ON_SHIPPING_PDF');
481 } else {
482 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
483 print $form->selectarray("BARCODE_ON_SHIPPING_PDF", $arrval, getDolGlobalString('BARCODE_ON_SHIPPING_PDF'));
484 }
485 print '</td></tr>';
486 print '</table>';
487 print '</div>';
488}
489
490
491if (isModEnabled('reception')) {
492 print load_fiche_titre($langs->trans("Receptions"), '', 'reception');
493
494 print '<div class="div-table-responsive-no-min">';
495 print '<table summary="more" class="noborder centpercent">';
496 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
497
498 print '<tr class="oddeven"><td>';
499 print $langs->trans("RECEPTION_PDF_HIDE_ORDERED");
500 print '</td><td>';
501 if ($conf->use_javascript_ajax) {
502 print ajax_constantonoff('RECEPTION_PDF_HIDE_ORDERED');
503 } else {
504 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
505 print $form->selectarray("RECEPTION_PDF_HIDE_ORDERED", $arrval, getDolGlobalString('RECEPTION_PDF_HIDE_ORDERED'));
506 }
507 print '</td></tr>';
508
509 print '<tr class="oddeven"><td>';
510 print $langs->trans("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT");
511 print '</td><td>';
512 if ($conf->use_javascript_ajax) {
513 print ajax_constantonoff('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT');
514 } else {
515 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
516 print $form->selectarray("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT", $arrval, getDolGlobalString('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT'));
517 }
518 print '</td></tr>';
519
520 print '<tr class="oddeven"><td>';
521 print $langs->trans("BARCODE_ON_RECEPTION_PDF");
522 print '</td><td>';
523 if ($conf->use_javascript_ajax) {
524 print ajax_constantonoff('BARCODE_ON_RECEPTION_PDF');
525 } else {
526 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
527 print $form->selectarray("BARCODE_ON_RECEPTION_PDF", $arrval, getDolGlobalString('BARCODE_ON_RECEPTION_PDF'));
528 }
529 print '</td></tr>';
530 print '</table>';
531 print '</div>';
532}
533
534if (isModEnabled('stocktransfer')) {
535 print load_fiche_titre($langs->trans("StockTransfer"), '', 'stock');
536
537 print '<div class="div-table-responsive-no-min">';
538 print '<table summary="more" class="noborder centpercent">';
539 print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
540
541 print '<tr class="oddeven"><td>';
542 print $langs->trans("BARCODE_ON_STOCKTRANSFER_PDF");
543 print '</td><td>';
544 if ($conf->use_javascript_ajax) {
545 print ajax_constantonoff('BARCODE_ON_STOCKTRANSFER_PDF');
546 } else {
547 $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
548 print $form->selectarray("BARCODE_ON_STOCKTRANSFER_PDF", $arrval, getDolGlobalString('BARCODE_ON_STOCKTRANSFER_PDF'));
549 }
550 print '</td></tr>';
551
552 print '</table>';
553 print '</div>';
554}
555
556print load_fiche_titre($langs->trans("Files"), '', 'file');
557print '<div class="div-table-responsive-no-min">';
558print '<table summary="more" class="noborder centpercent">';
559print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
560
561// Terms of sale
562$tooltiptermsofsale = $langs->trans('AvailableFormats').' : pdf';
563$maxfilesizearray = getMaxFileSizeArray();
564$tooltiptermsofsale .= ($maxfilesizearray['maxmin'] > 0) ? '<br>'.$langs->trans('MaxSize').' : '.$maxfilesizearray['maxmin'].' '.$langs->trans('Kb') : '';
565$documenturl = DOL_URL_ROOT.'/document.php';
566if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) {
567 $documenturl = $conf->global->DOL_URL_ROOT_DOCUMENT_PHP;
568}
569$modulepart = 'mycompany';
570
571print '<tr class="oddeven"><td><label for="logo">'.$form->textwithpicto($langs->trans("TERMSOFSALE"), $tooltiptermsofsale).'</label></td><td>';
572print '<div class="centpercent nobordernopadding valignmiddle "><div class="inline-block marginrightonly">';
573print '<input type="file" class="flat minwidth100 maxwidthinputfileonsmartphone" name="termsofsale" id="termsofsale" accept="application/pdf">';
574
575if (!empty($mysoc->termsofsale)) {
576 if (file_exists($conf->mycompany->dir_output.'/'.$mysoc->termsofsale)) {
577 print '<div class="inline-block valignmiddle marginrightonly"><a href="'.$documenturl.'?modulepart='.$modulepart.'&amp;file='.urlencode($mysoc->termsofsale).'">'.$mysoc->termsofsale.'</a>'.$formfile->showPreview($mysoc->termsofsale, $modulepart, $mysoc->termsofsale, 0, '');
578 print '<div class="inline-block valignmiddle marginrightonly"><a class="reposition" href="'.$_SERVER["PHP_SELF"].'?action=removetermsofsale&token='.newToken().'">'.img_delete($langs->trans("Delete"), '', 'marginleftonly').'</a></div>';
579 }
580}
581print '</div>';
582print '</td></tr>';
583print '</table>';
584print '</div>';
585
586print '<br><div class="center">';
587print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
588print '</div>';
589
590print '</form>';
591
592
593// End of page
594llxFooter();
595$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:87
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:71
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_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disablevirusscan=0, $uploaderrorcode=0, $nohook=0, $varfiles='addedfile', $upload_dir='')
Check validity of a file upload from an GUI page, and move it to its final destination.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
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)
Show tabs of a record.
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.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_mkdir($dir, $dataroot='', $newmask='')
Creation of a directory (this can create recursive subdir)
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
Definition member.php:79
pdf_admin_prepare_head()
Return array head with list of tabs to view object information.
Definition pdf.lib.php:48
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.