pdf_other.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  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-2022 Anthony Berton <bertonanthony@gmail.com>
  8. * Copyright (C) 2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 3 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program. If not, see <https://www.gnu.org/licenses/>.
  22. */
  23. /**
  24. * \file htdocs/admin/pdf.php
  25. * \brief Page to setup PDF options
  26. */
  27. // Load Dolibarr environment
  28. require '../main.inc.php';
  29. require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php';
  30. require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php';
  31. require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php';
  32. require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
  33. require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
  34. require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
  35. // Load translation files required by the page
  36. $langs->loadLangs(array('admin', 'bills', 'companies', 'languages', 'members', 'other', 'products', 'propal', 'receptions', 'stocks', 'trips'));
  37. if (!$user->admin) {
  38. accessforbidden();
  39. }
  40. $action = GETPOST('action', 'aZ09');
  41. /*
  42. * Actions
  43. */
  44. if ($action == 'update') {
  45. if (GETPOSTISSET('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING')) {
  46. dolibarr_set_const($db, "MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", GETPOST("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), 'chaine', 0, '', $conf->entity);
  47. }
  48. if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTTERM')) {
  49. dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTTERM", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTTERM"), 'chaine', 0, '', $conf->entity);
  50. }
  51. if (GETPOSTISSET('PROPOSAL_PDF_HIDE_PAYMENTMODE')) {
  52. dolibarr_set_const($db, "PROPOSAL_PDF_HIDE_PAYMENTMODE", GETPOST("PROPOSAL_PDF_HIDE_PAYMENTMODE"), 'chaine', 0, '', $conf->entity);
  53. }
  54. if (GETPOSTISSET('MAIN_GENERATE_PROPOSALS_WITH_PICTURE')) {
  55. dolibarr_set_const($db, "MAIN_GENERATE_PROPOSALS_WITH_PICTURE", GETPOST("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), 'chaine', 0, '', $conf->entity);
  56. }
  57. if (GETPOSTISSET('MAIN_DOCUMENTS_WITH_PICTURE_WIDTH')) {
  58. dolibarr_set_const($db, "MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", GETPOST("MAIN_DOCUMENTS_WITH_PICTURE_WIDTH", 'int'), 'chaine', 0, '', $conf->entity);
  59. }
  60. if (GETPOSTISSET('INVOICE_ADD_ZATCA_QR_CODE')) {
  61. dolibarr_set_const($db, "INVOICE_ADD_ZATCA_QR_CODE", GETPOST("INVOICE_ADD_ZATCA_QR_CODE", 'int'), 'chaine', 0, '', $conf->entity);
  62. dolibarr_del_const($db, "INVOICE_ADD_SWISS_QR_CODE", $conf->entity);
  63. }
  64. if (GETPOSTISSET('INVOICE_ADD_SWISS_QR_CODE')) {
  65. dolibarr_set_const($db, "INVOICE_ADD_SWISS_QR_CODE", GETPOST("INVOICE_ADD_SWISS_QR_CODE", 'alpha'), 'chaine', 0, '', $conf->entity);
  66. dolibarr_del_const($db, "INVOICE_ADD_ZATCA_QR_CODE", $conf->entity);
  67. }
  68. if (GETPOSTISSET('INVOICE_CATEGORY_OF_OPERATION')) {
  69. dolibarr_set_const($db, "INVOICE_CATEGORY_OF_OPERATION", GETPOST("INVOICE_CATEGORY_OF_OPERATION", 'int'), 'chaine', 0, '', $conf->entity);
  70. }
  71. if (GETPOSTISSET('INVOICE_SHOW_SHIPPING_ADDRESS')) {
  72. dolibarr_set_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", GETPOST("INVOICE_SHOW_SHIPPING_ADDRESS", 'int'), 'chaine', 0, '', $conf->entity);
  73. dolibarr_del_const($db, "INVOICE_SHOW_SHIPPING_ADDRESS", $conf->entity);
  74. }
  75. setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
  76. header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
  77. exit;
  78. }
  79. /*
  80. * View
  81. */
  82. $wikihelp = 'EN:First_setup|FR:Premiers_param&eacute;trages|ES:Primeras_configuraciones';
  83. llxHeader('', $langs->trans("Setup"), $wikihelp);
  84. $form = new Form($db);
  85. $formother = new FormOther($db);
  86. $formadmin = new FormAdmin($db);
  87. print load_fiche_titre($langs->trans("PDF"), '', 'title_setup');
  88. $head = pdf_admin_prepare_head();
  89. print dol_get_fiche_head($head, 'other', '', -1, '');
  90. $tooltiptext = '';
  91. print '<span class="opacitymedium">'.$form->textwithpicto($langs->trans("PDFOtherDesc"), $tooltiptext)."</span><br>\n";
  92. print "<br>\n";
  93. print '<form method="post" action="'.$_SERVER["PHP_SELF"].'">';
  94. print '<input type="hidden" name="token" value="'.newToken().'">';
  95. print '<input type="hidden" name="action" value="update">';
  96. if (isModEnabled('propal')) {
  97. print load_fiche_titre($langs->trans("Proposal"), '', 'proposal');
  98. print '<div class="div-table-responsive-no-min">';
  99. print '<table summary="more" class="noborder centpercent">';
  100. print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px">'.$langs->trans("Value").'</td></tr>';
  101. print '<tr class="oddeven"><td>';
  102. print $form->textwithpicto($langs->trans("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING"), '');
  103. print '</td><td>';
  104. if ($conf->use_javascript_ajax) {
  105. print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING');
  106. } else {
  107. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  108. print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, $conf->global->MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING);
  109. }
  110. print '</td></tr>';
  111. print '<tr class="oddeven"><td>';
  112. print $form->textwithpicto($langs->trans("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
  113. print '</td><td>';
  114. if ($conf->use_javascript_ajax) {
  115. print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE');
  116. } else {
  117. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  118. print $form->selectarray("MAIN_GENERATE_PROPOSALS_WITH_PICTURE", $arrval, $conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE);
  119. }
  120. print '</td></tr>';
  121. print '</table>';
  122. print '</div>';
  123. }
  124. if (isModEnabled('facture')) {
  125. print load_fiche_titre($langs->trans("Invoices"), '', 'bill');
  126. print '<div class="div-table-responsive-no-min">';
  127. print '<table summary="more" class="noborder centpercent">';
  128. print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px">'.$langs->trans("Value").'</td></tr>';
  129. print '<tr class="oddeven"><td>';
  130. print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore"));
  131. print '</td><td>';
  132. if ($conf->use_javascript_ajax) {
  133. print ajax_constantonoff('INVOICE_ADD_ZATCA_QR_CODE');
  134. } else {
  135. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  136. print $form->selectarray("INVOICE_ADD_ZATCA_QR_CODE", $arrval, $conf->global->INVOICE_ADD_ZATCA_QR_CODE);
  137. }
  138. print '</td></tr>';
  139. print '<tr class="oddeven"><td>';
  140. print $form->textwithpicto($langs->trans("INVOICE_ADD_SWISS_QR_CODE"), $langs->trans("INVOICE_ADD_SWISS_QR_CODEMore"));
  141. print '</td><td>';
  142. //if ($conf->use_javascript_ajax) {
  143. // print ajax_constantonoff('INVOICE_ADD_SWISS_QR_CODE');
  144. //} else {
  145. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"), 'bottom' => $langs->trans("AtBottomOfPage").' ('.$langs->trans("Experimental").' - Need PHP 8.1+)');
  146. print $form->selectarray("INVOICE_ADD_SWISS_QR_CODE", $arrval, $conf->global->INVOICE_ADD_SWISS_QR_CODE);
  147. //}
  148. print '</td></tr>';
  149. // Mention category of operations
  150. // French Decret n°2099-1299 2022-10-07
  151. print '<tr class="oddeven"><td>';
  152. print $form->textwithpicto($langs->trans("InvoiceOptionCategoryOfOperations"), $langs->trans('InvoiceOptionCategoryOfOperationsHelp'), 1);
  153. print '</td><td>';
  154. $arrval = array('0'=>$langs->trans("No"),
  155. '1'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes1"),
  156. '2'=>$langs->trans("InvoiceOptionCategoryOfOperationsYes2")
  157. );
  158. print $form->selectarray("INVOICE_CATEGORY_OF_OPERATION", $arrval, $conf->global->INVOICE_CATEGORY_OF_OPERATION, 0, 0, 0, '', 0, 0, 0, '', 'minwidth75imp');
  159. print '</td></tr>';
  160. print '<tr class="oddeven"><td>';
  161. print $form->textwithpicto($langs->trans("INVOICE_SHOW_SHIPPING_ADDRESS"), $langs->trans("INVOICE_SHOW_SHIPPING_ADDRESSMore"));
  162. print '</td><td>';
  163. if ($conf->use_javascript_ajax) {
  164. print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS');
  165. } else {
  166. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  167. print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->INVOICE_SHOW_SHIPPING_ADDRESS);
  168. }
  169. print '</td></tr>';
  170. print '</table>';
  171. print '</div>';
  172. }
  173. if (isModEnabled('reception')) {
  174. print load_fiche_titre($langs->trans("Receptions"), '', 'reception');
  175. print '<div class="div-table-responsive-no-min">';
  176. print '<table summary="more" class="noborder centpercent">';
  177. print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px">'.$langs->trans("Value").'</td></tr>';
  178. print '<tr class="oddeven"><td>';
  179. print $langs->trans("RECEPTION_PDF_HIDE_ORDERED");
  180. print '</td><td>';
  181. if ($conf->use_javascript_ajax) {
  182. print ajax_constantonoff('RECEPTION_PDF_HIDE_ORDERED');
  183. } else {
  184. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  185. print $form->selectarray("RECEPTION_PDF_HIDE_ORDERED", $arrval, $conf->global->RECEPTION_PDF_HIDE_ORDERED);
  186. }
  187. print '</td></tr>';
  188. print '<tr class="oddeven"><td>';
  189. print $langs->trans("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT");
  190. print '</td><td>';
  191. if ($conf->use_javascript_ajax) {
  192. print ajax_constantonoff('MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT');
  193. } else {
  194. $arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
  195. print $form->selectarray("MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT", $arrval, $conf->global->MAIN_PDF_RECEPTION_DISPLAY_AMOUNT_HT);
  196. }
  197. print '</td></tr>';
  198. print '</table>';
  199. print '</div>';
  200. }
  201. print '<br><div class="center">';
  202. print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
  203. print '</div>';
  204. print '</form>';
  205. // End of page
  206. llxFooter();
  207. $db->close();