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';
37 $langs->loadLangs(array(
'admin',
'languages',
'other',
'companies',
'products',
'members',
'stocks',
'Trips'));
43 $action =
GETPOST(
'action',
'aZ09');
44 $cancel =
GETPOST(
'cancel',
'alpha');
55 if ($action ==
'update') {
96 dolibarr_set_const($db,
"MAIN_PDF_NO_RECIPENT_FRAME",
GETPOST(
"MAIN_PDF_NO_RECIPENT_FRAME"),
'chaine', 0,
'', $conf->entity);
103 if (
GETPOSTISSET(
'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT')) {
104 dolibarr_set_const($db,
"MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT",
GETPOST(
"MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"),
'chaine', 0,
'', $conf->entity);
108 dolibarr_set_const($db,
"MAIN_TVAINTRA_NOT_IN_ADDRESS",
GETPOST(
"MAIN_TVAINTRA_NOT_IN_ADDRESS"),
'chaine', 0,
'', $conf->entity);
111 if (!empty($conf->project->enabled)) {
112 if (
GETPOST(
'PDF_SHOW_PROJECT_REF_OR_LABEL') ==
'no') {
115 } elseif (
GETPOST(
'PDF_SHOW_PROJECT_REF_OR_LABEL') ==
'showprojectref') {
118 } elseif (
GETPOST(
'PDF_SHOW_PROJECT_REF_OR_LABEL') ==
'showprojectlabel') {
120 dolibarr_set_const($db,
"PDF_SHOW_PROJECT_TITLE",
GETPOST(
"PDF_SHOW_PROJECT_REF_OR_LABEL"),
'chaine', 0,
'', $conf->entity);
124 if (
GETPOSTISSET(
'MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS')) {
125 dolibarr_set_const($db,
"MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS",
GETPOST(
"MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"),
'chaine', 0,
'', $conf->entity);
127 if (
GETPOSTISSET(
'MAIN_GENERATE_DOCUMENTS_HIDE_DESC')) {
128 dolibarr_set_const($db,
"MAIN_GENERATE_DOCUMENTS_HIDE_DESC",
GETPOST(
"MAIN_GENERATE_DOCUMENTS_HIDE_DESC"),
'chaine', 0,
'', $conf->entity);
131 dolibarr_set_const($db,
"MAIN_GENERATE_DOCUMENTS_HIDE_REF",
GETPOST(
"MAIN_GENERATE_DOCUMENTS_HIDE_REF"),
'chaine', 0,
'', $conf->entity);
135 dolibarr_set_const($db,
"MAIN_DOCUMENTS_LOGO_HEIGHT",
GETPOST(
"MAIN_DOCUMENTS_LOGO_HEIGHT",
'int'),
'chaine', 0,
'', $conf->entity);
138 dolibarr_set_const($db,
"MAIN_INVERT_SENDER_RECIPIENT",
GETPOST(
"MAIN_INVERT_SENDER_RECIPIENT"),
'chaine', 0,
'', $conf->entity);
141 dolibarr_set_const($db,
"MAIN_PDF_USE_ISO_LOCATION",
GETPOST(
"MAIN_PDF_USE_ISO_LOCATION"),
'chaine', 0,
'', $conf->entity);
144 dolibarr_set_const($db,
"MAIN_PDF_NO_CUSTOMER_CODE",
GETPOST(
"MAIN_PDF_NO_CUSTOMER_CODE"),
'chaine', 0,
'', $conf->entity);
147 if (
GETPOSTISSET(
'MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS')) {
148 dolibarr_set_const($db,
"MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS",
GETPOST(
"MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"),
'chaine', 0,
'', $conf->entity);
152 dolibarr_set_const($db,
"MAIN_PDF_MAIN_HIDE_SECOND_TAX",
GETPOST(
"MAIN_PDF_MAIN_HIDE_SECOND_TAX"),
'chaine', 0,
'', $conf->entity);
155 dolibarr_set_const($db,
"MAIN_PDF_MAIN_HIDE_THIRD_TAX",
GETPOST(
"MAIN_PDF_MAIN_HIDE_THIRD_TAX"),
'chaine', 0,
'', $conf->entity);
159 dolibarr_set_const($db,
"PDF_USE_ALSO_LANGUAGE_CODE",
GETPOST(
'PDF_USE_ALSO_LANGUAGE_CODE',
'alpha'),
'chaine', 0,
'', $conf->entity);
162 dolibarr_set_const($db,
"SHOW_SUBPRODUCT_REF_IN_PDF",
GETPOST(
'SHOW_SUBPRODUCT_REF_IN_PDF',
'alpha'),
'chaine', 0,
'', $conf->entity);
166 dolibarr_set_const($db,
"PDF_SHOW_LINK_TO_ONLINE_PAYMENT",
GETPOST(
'PDF_SHOW_LINK_TO_ONLINE_PAYMENT',
'alpha'),
'chaine', 0,
'', $conf->entity);
169 if (
GETPOSTISSET(
'PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME')) {
170 dolibarr_set_const($db,
"PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME",
GETPOST(
'PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME',
'alpha'),
'chaine', 0,
'', $conf->entity);
178 dolibarr_set_const($db,
"PDF_BOLD_PRODUCT_LABEL",
GETPOST(
'PDF_BOLD_PRODUCT_LABEL',
'alpha'),
'chaine', 0,
'', $conf->entity);
181 dolibarr_set_const($db,
"PDF_BOLD_PRODUCT_REF_AND_PERIOD",
GETPOST(
'PDF_BOLD_PRODUCT_REF_AND_PERIOD',
'alpha'),
'chaine', 0,
'', $conf->entity);
186 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?mainmenu=home&leftmenu=setup");
196 $wikihelp =
'EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones';
203 $arraydetailsforpdffoot = array(
204 0 => $langs->transnoentitiesnoconv(
'NoDetails'),
205 1 => $langs->transnoentitiesnoconv(
'DisplayCompanyInfo'),
206 2 => $langs->transnoentitiesnoconv(
'DisplayCompanyManagers'),
207 3 => $langs->transnoentitiesnoconv(
'DisplayCompanyInfoAndManagers')
210 $arraylistofpdfformat = array(
211 0 => $langs->transnoentitiesnoconv(
'PDF 1.7'),
212 1 => $langs->transnoentitiesnoconv(
'PDF/A-1b'),
213 3 => $langs->transnoentitiesnoconv(
'PDF/A-3b'),
216 $s = $langs->trans(
"LibraryToBuildPDF").
"<br>";
219 if (class_exists(
'FPDF') && !class_exists(
'TCPDF')) {
224 $s .=
' ('.@constant(
'FPDF_PATH').
')';
227 if (class_exists(
'TCPDF')) {
232 $s .=
' ('.@constant(
'TCPDF_PATH').
')';
235 if (class_exists(
'FPDI')) {
240 $s .=
' ('.@constant(
'FPDI_PATH').
')';
243 if (class_exists(
'TCPDI')) {
248 $s .=
' ('.@constant(
'TCPDI_PATH').
')';
258 print
'<span class="opacitymedium">'.$form->textwithpicto($langs->trans(
"PDFDesc"), $s).
"</span><br>\n";
261 $noCountryCode = (empty($mysoc->country_code) ? true :
false);
263 print
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].
'">';
264 print
'<input type="hidden" name="token" value="'.newToken().
'">';
265 print
'<input type="hidden" name="action" value="update">';
273 print
'<div class="div-table-responsive-no-min">';
274 print
'<table summary="more" class="noborder centpercent">';
275 print
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameter").
'</td><td width="200px">'.$langs->trans(
"Value").
'</td></tr>';
277 $selected = (isset($conf->global->MAIN_PDF_FORMAT) ? $conf->global->MAIN_PDF_FORMAT :
'');
278 if (empty($selected)) {
284 print
'<tr class="oddeven"><td>'.$langs->trans(
"DictionaryPaperFormat").
'</td><td>';
285 print $formadmin->select_paper_format($selected,
'MAIN_PDF_FORMAT');
288 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_MARGIN_LEFT").
'</td><td>';
289 print
'<input type="text" class="maxwidth50" name="MAIN_PDF_MARGIN_LEFT" value="'.(empty($conf->global->MAIN_PDF_MARGIN_LEFT) ? 10 : $conf->global->MAIN_PDF_MARGIN_LEFT).
'">';
291 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_MARGIN_RIGHT").
'</td><td>';
292 print
'<input type="text" class="maxwidth50" name="MAIN_PDF_MARGIN_RIGHT" value="'.(empty($conf->global->MAIN_PDF_MARGIN_RIGHT) ? 10 : $conf->global->MAIN_PDF_MARGIN_RIGHT).
'">';
294 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_MARGIN_TOP").
'</td><td>';
295 print
'<input type="text" class="maxwidth50" name="MAIN_PDF_MARGIN_TOP" value="'.(empty($conf->global->MAIN_PDF_MARGIN_TOP) ? 10 : $conf->global->MAIN_PDF_MARGIN_TOP).
'">';
297 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_MARGIN_BOTTOM").
'</td><td>';
298 print
'<input type="text" class="maxwidth50" name="MAIN_PDF_MARGIN_BOTTOM" value="'.(empty($conf->global->MAIN_PDF_MARGIN_BOTTOM) ? 10 : $conf->global->MAIN_PDF_MARGIN_BOTTOM).
'">';
310 print
'<div class="div-table-responsive-no-min">';
311 print
'<table summary="more" class="noborder centpercent">';
312 print
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameter").
'</td><td width="200px">'.$langs->trans(
"Value").
'</td></tr>';
328 print
'<tr class="oddeven"><td>'.$langs->trans(
"ShowVATIntaInAddress").
' - <span class="opacitymedium">'.$langs->trans(
"ThirdPartyAddress").
'</span></td><td>';
329 if ($conf->use_javascript_ajax) {
332 print
$form->selectyesno(
'MAIN_TVAINTRA_NOT_IN_ADDRESS', (!empty($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS)) ? $conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS : 0, 1);
337 for ($i = 1; $i <= 6; $i++) {
338 if (!$noCountryCode) {
339 $pid = $langs->transcountry(
"ProfId".$i, $mysoc->country_code);
344 $pid =
img_warning().
' <span class="error">'.$langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"CompanyCountry")).
'</span>';
347 print
'<tr class="oddeven"><td>'.$langs->trans(
"ShowProfIdInAddress").
' - '.$pid.
' - <span class="opacitymedium">'.$langs->trans(
"ThirdPartyAddress").
'</span></td><td>';
348 $keyforconstant =
'MAIN_PROFID'.$i.
'_IN_ADDRESS';
349 if ($conf->use_javascript_ajax) {
352 print
$form->selectyesno($keyforconstant, isset($conf->global->$keyforconstant) ? $conf->global->$keyforconstant : 0, 1, $noCountryCode);
360 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_NO_SENDER_FRAME").
'</td><td>';
361 if ($conf->use_javascript_ajax) {
364 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
365 print
$form->selectarray(
"MAIN_PDF_NO_SENDER_FRAME", $arrval, $conf->global->MAIN_PDF_NO_SENDER_FRAME);
369 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_NO_RECIPENT_FRAME").
'</td><td>';
370 if ($conf->use_javascript_ajax) {
373 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
374 print
$form->selectarray(
"MAIN_PDF_NO_RECIPENT_FRAME", $arrval, $conf->global->MAIN_PDF_NO_RECIPENT_FRAME);
379 print
'<tr class="oddeven"><td>'.$langs->trans(
"SwapSenderAndRecipientOnPDF").
'</td><td>';
380 if ($conf->use_javascript_ajax) {
383 print
$form->selectyesno(
'MAIN_INVERT_SENDER_RECIPIENT', (!empty($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) ? $conf->global->MAIN_INVERT_SENDER_RECIPIENT : 0, 1);
389 print
'<tr class="oddeven"><td>'.$langs->trans(
"PlaceCustomerAddressToIsoLocation").
'</td><td>';
390 if ($conf->use_javascript_ajax) {
393 print
$form->selectyesno(
'MAIN_PDF_USE_ISO_LOCATION', (!empty($conf->global->MAIN_PDF_USE_ISO_LOCATION)) ? $conf->global->MAIN_PDF_USE_ISO_LOCATION : 0, 1);
407 if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) {
408 if ($mysoc->useLocalTax(1)) {
409 $locales = $langs->transcountry(
"LT1", $mysoc->country_code);
410 $text =
'<tr class="oddeven"><td class="titlefieldmiddle">'.$langs->trans(
"HideLocalTaxOnPDF", $langs->transcountry(
"LT1", $mysoc->country_code)).
'</td><td>';
411 if ($conf->use_javascript_ajax) {
414 $text .=
$form->selectyesno(
'MAIN_PDF_MAIN_HIDE_SECOND_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_SECOND_TAX : 0, 1);
416 $text .=
'</td></tr>';
419 if ($mysoc->useLocalTax(2)) {
420 $locales .= ($locales ?
' & ' :
'').$langs->transcountry(
"LT2", $mysoc->country_code);
422 $text .=
'<tr class="oddeven"><td class="titlefieldmiddle">'.$langs->trans(
"HideLocalTaxOnPDF", $langs->transcountry(
"LT2", $mysoc->country_code)).
'</td><td>';
423 if ($conf->use_javascript_ajax) {
426 $text .=
$form->selectyesno(
'MAIN_PDF_MAIN_HIDE_THIRD_TAX', (!empty($conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX)) ? $conf->global->MAIN_PDF_MAIN_HIDE_THIRD_TAX : 0, 1);
428 $text .=
'</td></tr>';
432 $title = $langs->trans(
"PDFRulesForSalesTax");
433 if ($mysoc->useLocalTax(1) || $mysoc->useLocalTax(2)) {
434 $title .=
' - '.$langs->trans(
"PDFLocaltax", $locales);
440 print
'<table summary="more" class="noborder centpercent">';
441 print
'<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans(
"Parameter").
'</td><td width="200px">'.$langs->trans(
"Value").
'</td></tr>';
445 print
'<tr class="oddeven"><td>'.$langs->trans(
"HideAnyVATInformationOnPDF").
'</td><td>';
446 if ($conf->use_javascript_ajax) {
449 print
$form->selectyesno(
'MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT', (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) ? $conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT : 0, 1);
463 print
'<div class="div-table-responsive-no-min">';
464 print
'<table summary="more" class="noborder centpercent">';
465 print
'<tr class="liste_titre"><td>'.$langs->trans(
"Parameter").
'</td><td width="200px">'.$langs->trans(
"Value").
'</td></tr>';
469 print
'<tr class="oddeven"><td>'.$langs->trans(
"PDF_USE_ALSO_LANGUAGE_CODE").
'</td><td>';
472 $selected =
GETPOSTISSET(
'PDF_USE_ALSO_LANGUAGE_CODE') ?
GETPOST(
'PDF_USE_ALSO_LANGUAGE_CODE') : (!empty($conf->global->PDF_USE_ALSO_LANGUAGE_CODE) ? $conf->global->PDF_USE_ALSO_LANGUAGE_CODE : 0);
473 print $formadmin->select_language($selected,
'PDF_USE_ALSO_LANGUAGE_CODE', 0,
null, 1);
480 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_DOCUMENTS_LOGO_HEIGHT").
'</td><td>';
481 print
'<input type="text" class="maxwidth50" name="MAIN_DOCUMENTS_LOGO_HEIGHT" value="'.(!empty($conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT) ? $conf->global->MAIN_DOCUMENTS_LOGO_HEIGHT : 20).
'">';
485 if (!empty($conf->project->enabled)) {
486 print
'<tr class="oddeven"><td>'.$langs->trans(
"PDF_SHOW_PROJECT").
'</td><td>';
487 $tmparray = array(
'no' =>
'No',
'showprojectref' =>
'RefProject',
'showprojectlabel' =>
'ShowProjectLabel');
488 $showprojectref = empty($conf->global->PDF_SHOW_PROJECT) ? (empty($conf->global->PDF_SHOW_PROJECT_TITLE) ?
'no' :
'showprojectlabel') :
'showprojectref';
489 print
$form->selectarray(
'PDF_SHOW_PROJECT_REF_OR_LABEL', $tmparray, $showprojectref, 0, 0, 0,
'', 1);
495 print
'<tr class="oddeven"><td>'.$langs->trans(
"MAIN_PDF_HIDE_CUSTOMER_CODE");
497 if ($conf->use_javascript_ajax) {
500 $arrval = array(
'0' => $langs->trans(
"No"),
'1' => $langs->trans(
"Yes"));
501 print
$form->selectarray(
"MAIN_PDF_HIDE_CUSTOMER_CODE", $arrval, $conf->global->MAIN_PDF_HIDE_CUSTOMER_CODE);
507 print
'<tr class="oddeven"><td>'.$langs->trans(
"HideRefOnPDF").
'</td><td>';
508 if ($conf->use_javascript_ajax) {
511 print
$form->selectyesno(
'MAIN_GENERATE_DOCUMENTS_HIDE_REF', (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF)) ? $conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF : 0, 1);
517 print
'<tr class="oddeven"><td>'.$langs->trans(
"HideDescOnPDF").
'</td><td>';
518 if ($conf->use_javascript_ajax) {
521 print
$form->selectyesno(
'MAIN_GENERATE_DOCUMENTS_HIDE_DESC', (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC)) ? $conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC : 0, 1);
527 print
'<tr class="oddeven"><td>'.$langs->trans(
"HideDetailsOnPDF").
'</td><td>';
528 if ($conf->use_javascript_ajax) {
531 print
$form->selectyesno(
'MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS', (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS)) ? $conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS : 0, 1);
537 print
'<tr class="oddeven"><td>'.$langs->trans(
"BoldLabelOnPDF").
'</td><td>';
538 if ($conf->use_javascript_ajax) {
541 print
$form->selectyesno(
'PDF_BOLD_PRODUCT_LABEL', (!empty($conf->global->PDF_BOLD_PRODUCT_LABEL)) ? $conf->global->PDF_BOLD_PRODUCT_LABEL : 0, 1);
547 print
'<tr class="oddeven"><td>'.$langs->trans(
"BoldRefAndPeriodOnPDF").
'</td><td>';
548 if ($conf->use_javascript_ajax) {
551 print
$form->selectyesno(
'PDF_BOLD_PRODUCT_REF_AND_PERIOD', (!empty($conf->global->PDF_BOLD_PRODUCT_REF_AND_PERIOD)) ? $conf->global->PDF_BOLD_PRODUCT_REF_AND_PERIOD : 0, 1);
557 print
'<tr class="oddeven"><td>'.$langs->trans(
"SHOW_SUBPRODUCT_REF_IN_PDF", $langs->transnoentitiesnoconv(
"AssociatedProductsAbility"), $langs->transnoentitiesnoconv(
"Products")).
'</td><td>';
558 if ($conf->use_javascript_ajax) {
561 print
$form->selectyesno(
'SHOW_SUBPRODUCT_REF_IN_PDF', (!empty($conf->global->SHOW_SUBPRODUCT_REF_IN_PDF)) ? $conf->global->SHOW_SUBPRODUCT_REF_IN_PDF : 0, 1);
567 print
'<tr class="oddeven"><td>'.$langs->trans(
"ShowDetailsInPDFPageFoot").
'</td><td>';
568 print
$form->selectarray(
'MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS', $arraydetailsforpdffoot, (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS) ? $conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS : 0));
583 print
'<tr class="oddeven"><td>'.$langs->trans(
"PDF_SHOW_LINK_TO_ONLINE_PAYMENT").
'</td><td>';
584 if ($conf->use_javascript_ajax) {
587 print
$form->selectyesno(
'PDF_SHOW_LINK_TO_ONLINE_PAYMENT', (!empty($conf->global->PDF_SHOW_LINK_TO_ONLINE_PAYMENT)) ? $conf->global->PDF_SHOW_LINK_TO_ONLINE_PAYMENT : 0, 1);
591 print
'<tr class="oddeven"><td>'.$langs->trans(
"PDF_USE_A").
'</td><td>';
592 print
$form->selectarray(
'PDF_USE_A', $arraylistofpdfformat, (empty($conf->global->PDF_USE_A) ? 0 : $conf->global->PDF_USE_A));
598 print
$form->buttonsSaveCancel(
"Save",
'');