* Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2012-2105 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/admin/pdf.php * \brief Page to setup PDF options */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; $langs->load("admin"); $langs->load("languages"); $langs->load("other"); $langs->load("companies"); $langs->load("products"); $langs->load("members"); if (! $user->admin) accessforbidden(); $action = GETPOST('action','alpha'); /* * Actions */ if ($action == 'update') { dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", $_POST["MAIN_PROFID1_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"],'chaine',0,'',$conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"],'chaine',0,'',$conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } if ($action == 'activate_pdfsecurity') { dolibarr_set_const($db, "PDF_SECURITY_ENCRYPTION", "1",'chaine',0,'',$conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } else if ($action == 'disable_pdfsecurity') { dolibarr_del_const($db, "PDF_SECURITY_ENCRYPTION",$conf->entity); header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup"); exit; } /* * View */ $wikihelp='EN:First_setup|FR:Premiers_paramétrages|ES:Primeras_configuraciones'; llxHeader('',$langs->trans("Setup"),$wikihelp); $form=new Form($db); $formother=new FormOther($db); $formadmin=new FormAdmin($db); print_fiche_titre($langs->trans("PDF"),'','title_setup'); print $langs->trans("PDFDesc")."
\n"; print "
\n"; $noCountryCode = (empty($mysoc->country_code) ? true : false); if ($action == 'edit') // Edit { print '
'; print ''; print ''; clearstatcache(); // Misc options print_fiche_titre($langs->trans("DictionaryPaperFormat"),'','').'
'; $var=true; print ''; print ''; $selected=$conf->global->MAIN_PDF_FORMAT; if (empty($selected)) $selected=dol_getDefaultFormat(); // Show pdf format $var=!$var; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DictionaryPaperFormat").''; print $formadmin->select_paper_format($selected,'MAIN_PDF_FORMAT'); print '
'; print '
'; // Addresses print_fiche_titre($langs->trans("PDFAddressForging"),'','').'
'; $var=true; print ''; print ''; // Show prof id 1 in address into pdf $var=!$var; if (! $noCountryCode) { $pid1=$langs->transcountry("ProfId1",$mysoc->country_code); if ($pid1 == '-') $pid1=false; } else { $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid1) { print ''; } // Show prof id 2 in address into pdf $var=!$var; if (! $noCountryCode) { $pid2=$langs->transcountry("ProfId2",$mysoc->country_code); if ($pid2 == '-') $pid2=false; } else { $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid2) { print ''; } // Show prof id 3 in address into pdf $var=!$var; if (! $noCountryCode) { $pid3=$langs->transcountry("ProfId3",$mysoc->country_code); if ($pid3 == '-') $pid3=false; } else { $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid3) { print ''; } // Show prof id 4 in address into pdf $var=!$var; if (! $noCountryCode) { $pid4=$langs->transcountry("ProfId4",$mysoc->country_code); if ($pid4 == '-') $pid4=false; } else { $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid4) { print ''; } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; print $form->selectyesno('MAIN_PROFID1_IN_ADDRESS',isset($conf->global->MAIN_PROFID1_IN_ADDRESS)?$conf->global->MAIN_PROFID1_IN_ADDRESS:0,1,$noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; print $form->selectyesno('MAIN_PROFID2_IN_ADDRESS',isset($conf->global->MAIN_PROFID2_IN_ADDRESS)?$conf->global->MAIN_PROFID2_IN_ADDRESS:0,1,$noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; print $form->selectyesno('MAIN_PROFID3_IN_ADDRESS',isset($conf->global->MAIN_PROFID3_IN_ADDRESS)?$conf->global->MAIN_PROFID3_IN_ADDRESS:0,1,$noCountryCode); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; print $form->selectyesno('MAIN_PROFID4_IN_ADDRESS',isset($conf->global->MAIN_PROFID4_IN_ADDRESS)?$conf->global->MAIN_PROFID4_IN_ADDRESS:0,1,$noCountryCode); print '
'; print '
'; // Other print_fiche_titre($langs->trans("Other"),'','').'
'; $var=true; print ''; print ''; // Hide any PDF informations $var=!$var; print ''; // Hide Tva Intra on adress $var=!$var; print ''; //Desc $var=!$var; print ''; //Ref $var=!$var; print ''; //Details $var=!$var; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideAnyVATInformationOnPDF").''; 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); print '
'.$langs->trans("ShowVATIntaInAddress").''; 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); print '
'.$langs->trans("HideDescOnPDF").''; 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); print '
'.$langs->trans("HideRefOnPDF").''; 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); print '
'.$langs->trans("HideDetailsOnPDF").''; 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); print '
'; print '
'; print ''; print '
'; print '
'; print '
'; } else // Show { $var=true; // Misc options print_fiche_titre($langs->trans("DictionaryPaperFormat"),'','').'
'; $var=true; print ''; print ''; // Show pdf format $var=!$var; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("DictionaryPaperFormat").''; $pdfformatlabel=''; if (empty($conf->global->MAIN_PDF_FORMAT)) { include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; $pdfformatlabel=dol_getDefaultFormat(); } else $pdfformatlabel=$conf->global->MAIN_PDF_FORMAT; if (! empty($pdfformatlabel)) { $sql="SELECT code, label, width, height, unit FROM ".MAIN_DB_PREFIX."c_paper_format"; $sql.=" WHERE code LIKE '%".$db->escape($pdfformatlabel)."%'"; $resql=$db->query($sql); if ($resql) { $obj=$db->fetch_object($resql); $paperKey = $langs->trans('PaperFormat'.$obj->code); $unitKey = $langs->trans('SizeUnit'.$obj->unit); $pdfformatlabel = ($paperKey == 'PaperFormat'.$obj->code ? $obj->label : $paperKey).' - '.round($obj->width).'x'.round($obj->height).' '.($unitKey == 'SizeUnit'.$obj->unit ? $obj->unit : $unitKey); } } print $pdfformatlabel; print '
'; print '
'; print_fiche_titre($langs->trans("PDFAddressForging"),'','').'
'; print ''; print ''; // Show prof id 1 in address into pdf $var=!$var; if (! $noCountryCode) { $pid1=$langs->transcountry("ProfId1",$mysoc->country_code); if ($pid1 == '-') $pid1=false; } else { $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid1) { print ''; } // Show prof id 2 in address into pdf $var=!$var; if (! $noCountryCode) { $pid2=$langs->transcountry("ProfId2",$mysoc->country_code); if ($pid2 == '-') $pid2=false; } else { $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid2) { print ''; } // Show prof id 3 in address into pdf $var=!$var; if (! $noCountryCode) { $pid3=$langs->transcountry("ProfId3",$mysoc->country_code); if ($pid3 == '-') $pid3=false; } else { $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid3) { print ''; } // Show prof id 4 in address into pdf $var=!$var; if (! $noCountryCode) { $pid4=$langs->transcountry("ProfId4",$mysoc->country_code); if ($pid4 == '-') $pid4=false; } else { $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; } if ($pid4) { print ''; } print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; print yn($conf->global->MAIN_PROFID1_IN_ADDRESS,1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; print yn($conf->global->MAIN_PROFID2_IN_ADDRESS,1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; print yn($conf->global->MAIN_PROFID3_IN_ADDRESS,1); print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; print yn($conf->global->MAIN_PROFID4_IN_ADDRESS,1); print '
'."\n"; print '
'; // Other print_fiche_titre($langs->trans("Other"),'','').'
'; $var=true; print ''; print ''; // Hide any PDF informations $var=!$var; print ''; // Encrypt and protect PDF $var=!$var; print ""; print ''; print ''; print '"; print ""; print ''; // Hide Tva Intra on adress $var=!$var; print ''; //Desc $var=!$var; print ''; //Ref $var=!$var; print ''; //Details $var=!$var; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("HideAnyVATInformationOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT,1); print '
'; $text = $langs->trans("ProtectAndEncryptPdfFiles"); $desc = $form->textwithpicto($text,$langs->transnoentities("ProtectAndEncryptPdfFilesDesc"),1); print $desc; print ''; if($conf->global->PDF_SECURITY_ENCRYPTION == 1) { print img_picto($langs->trans("Active"),'tick'); } print ''; if (empty($conf->global->PDF_SECURITY_ENCRYPTION)) { print ''.$langs->trans("Activate").''; } else { print ''.$langs->trans("Disable").''; } print "
'.$langs->trans("ShowVATIntaInAddress").''; print yn($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS,1); print '
'.$langs->trans("HideDescOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DESC,1); print '
'.$langs->trans("HideRefOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF,1); print '
'.$langs->trans("HideDetailsOnPDF").''; print yn($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS,1); print '
'; /* * Library */ print '
'; print_titre($langs->trans("Library")); print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; print "\n"; $var=false; if (! empty($dolibarr_pdf_force_fpdf)) { $var=!$var; print ''."\n"; print ''."\n"; print ''; print ''; } $var=!$var; print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; print "
'.$langs->trans("Name").''.$langs->trans("Value").'
dolibarr_pdf_force_fpdf'; print $dolibarr_pdf_force_fpdf; print '
'.$langs->trans("LibraryToBuildPDF").''; $i=0; $pdf=pdf_getInstance('A4'); if (class_exists('FPDF') && ! class_exists('TCPDF')) { if ($i) print ' + '; print 'FPDF'; print ' ('.@constant('FPDF_PATH').')'; $i++; } if (class_exists('TCPDF')) { if ($i) print ' + '; print 'TCPDF'; print ' ('.@constant('TCPDF_PATH').')'; $i++; } if (class_exists('FPDI')) { if ($i) print ' + '; print 'FPDI'; print ' ('.@constant('FPDI_PATH').')'; $i++; } if (class_exists('TCPDI')) { if ($i) print ' + '; print 'TCPDI'; print ' ('.@constant('TCPDI_PATH').')'; $i++; } print ''; print '
\n"; if (! empty($dolibarr_pdf_force_fpdf)) { print info_admin($langs->trans("WarningUsingFPDF")).'
'; } print '
'; print ''.$langs->trans("Modify").''; print '
'; print '
'; } llxFooter(); $db->close();