From f5f1d37ea054bee554e0d07b56d3728eaea12902 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@users.sourceforge.net> Date: Mon, 16 May 2011 14:00:09 +0000 Subject: [PATCH] Enhancements in doc generation. --- .../includes/modules/action/rapport.pdf.php | 14 ---- .../modules/commande/pdf_edison.modules.php | 16 +---- .../modules/commande/pdf_einstein.modules.php | 16 +---- .../pdf/pdf_expedition_merou.modules.php | 14 ---- .../pdf/pdf_expedition_rouget.modules.php | 14 ---- .../doc/doc_generic_invoice_odt.modules.php | 65 +++++++++++++++--- .../modules/facture/doc/pdf_crabe.modules.php | 19 +---- .../facture/doc/pdf_oursin.modules.php | 17 +---- .../modules/fichinter/pdf_soleil.modules.php | 14 ---- .../livraison/pdf/pdf_sirocco.modules.php | 14 ---- .../livraison/pdf/pdf_typhon.modules.php | 16 +---- .../member/cards/pdf_standard.class.php | 15 ---- .../member/labels/pdf_standardlabel.class.php | 15 ---- .../project/pdf/pdf_baleine.modules.php | 14 ---- .../propale/pdf_propale_azur.modules.php | 2 +- .../propale/pdf_propale_jaune.modules.php | 14 ---- .../modules/rapport/pdf_paiement.class.php | 15 ---- .../societe/doc/doc_generic_odt.modules.php | 2 +- .../pdf/pdf_canelle.modules.php | 16 +---- .../pdf/pdf_muscadet.modules.php | 16 +---- htdocs/install/default.css | 8 ++- .../invoices/template_invoice.odt | Bin 22708 -> 28461 bytes htdocs/install/fileconf.php | 8 ++- 23 files changed, 76 insertions(+), 268 deletions(-) diff --git a/htdocs/includes/modules/action/rapport.pdf.php b/htdocs/includes/modules/action/rapport.pdf.php index b7dfc1a2464..e7e4eac9505 100644 --- a/htdocs/includes/modules/action/rapport.pdf.php +++ b/htdocs/includes/modules/action/rapport.pdf.php @@ -106,20 +106,6 @@ class CommActionRapport if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/commande/pdf_edison.modules.php b/htdocs/includes/modules/commande/pdf_edison.modules.php index 29e1fff7a36..ed5406a52e4 100644 --- a/htdocs/includes/modules/commande/pdf_edison.modules.php +++ b/htdocs/includes/modules/commande/pdf_edison.modules.php @@ -74,7 +74,7 @@ class pdf_edison extends ModelePDFCommandes // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -139,20 +139,6 @@ class pdf_edison extends ModelePDFCommandes if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/commande/pdf_einstein.modules.php b/htdocs/includes/modules/commande/pdf_einstein.modules.php index bfe70e745f3..4fe63227539 100644 --- a/htdocs/includes/modules/commande/pdf_einstein.modules.php +++ b/htdocs/includes/modules/commande/pdf_einstein.modules.php @@ -88,7 +88,7 @@ class pdf_einstein extends ModelePDFCommandes // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -159,20 +159,6 @@ class pdf_einstein extends ModelePDFCommandes { $nblignes = sizeof($object->lines); - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php index 5c260a3d773..652e792297d 100644 --- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php @@ -142,20 +142,6 @@ Class pdf_expedition_merou extends ModelePdfExpedition //Si le dossier existe if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('l','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('l','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format,'mm','l'); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php index b5ef3fb44a2..376f2d5640f 100644 --- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php @@ -262,20 +262,6 @@ Class pdf_expedition_rouget extends ModelePdfExpedition if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php index 286336f444e..3b9b90cd177 100644 --- a/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php +++ b/htdocs/includes/modules/facture/doc/doc_generic_invoice_odt.modules.php @@ -97,23 +97,39 @@ class doc_generic_invoice_odt extends ModelePDFFactures { global $conf; + $invoice_source=new Facture($this->db); + if ($object->fk_facture_source > 0) + { + $invoice_source->fetch($object->fk_facture_source); + } + $alreadypayed=price($object->getSommePaiement(),'MT'); + return array( 'object_id'=>$object->id, 'object_ref'=>$object->ref, - 'object_ref_customer'=>$object->ref_client, + 'object_ref_ext'=>$object->ref_ext, + 'object_ref_customer'=>$object->ref_client, 'object_ref_supplier'=>$object->ref_fournisseur, - 'object_date'=>dol_print_date($object->date,'day'), - 'object_date_creation'=>dol_print_date($object->date_creation,'dayhour'), + 'object_source_invoice_ref'=>$invoice_source->ref, + 'object_date'=>dol_print_date($object->date,'day'), + 'object_date_limit'=>dol_print_date($object->date_lim_reglement,'dayhour'), + 'object_date_creation'=>dol_print_date($object->date_creation,'day'), + 'object_date_modification'=>dol_print_date($object->date_modification,'day'), 'object_date_validation'=>dol_print_date($object->date_validation,'dayhour'), - 'object_total_ht'=>price($object->total_ht), + 'object_payment_mode'=>$object->mode_reglement, + 'object_payment_term'=>$object->cond_reglement, + 'object_total_ht'=>price($object->total_ht), 'object_total_vat'=>price($object->total_tva), 'object_total_ttc'=>price($object->total_ttc), 'object_vatrate'=>vatrate($object->tva), 'object_note_private'=>$object->note, - 'object_note'=>$object->note_public + 'object_note'=>$object->note_public, + // Payments + 'object_already_payed'=>$alreadypayed, + 'object_remain_to_pay'=>price($object->total_ttc - $alreadypayed,'MT') ); } - + /** * Define array with couple substitution key => substitution value * @@ -223,7 +239,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures $texte.= '</table>'; // Scan directories - if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': '.sizeof($listoffiles); + if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.sizeof($listoffiles).'</b>'; $texte.= '</td>'; @@ -337,6 +353,23 @@ class doc_generic_invoice_odt extends ModelePDFFactures $socobject=$object->client; } + // Line of free text + $newfreetext=''; + $paramfreetext='FACTURE_FREE_TEXT'; + if (! empty($conf->global->$paramfreetext)) + { + // Make substitution + $substitutionarray=array( + '__FROM_NAME__' => $this->emetteur->nom, + '__FROM_EMAIL__' => $this->emetteur->email, + '__TOTAL_TTC__' => $object->total_ttc, + '__TOTAL_HT__' => $object->total_ht, + '__TOTAL_VAT__' => $object->total_vat + ); + + $newfreetext=make_substitutions($conf->global->$paramfreetext,$substitutionarray,$outputlangs,$object); + } + // Open and load template require_once(DOL_DOCUMENT_ROOT.'/includes/odtphp/odf.php'); $odfHandler = new odf($srctemplatepath, array( @@ -351,8 +384,18 @@ class doc_generic_invoice_odt extends ModelePDFFactures //print html_entity_decode($odfHandler->__toString()); //print exit; - // Make substitutions - $tmparray=$this->get_substitutionarray_user($user,$outputlangs); + + // Make substitutions into odt + if ($newfreetext) + { + try { + $odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8'); + } + catch(OdfException $e) + { + } + } + $tmparray=$this->get_substitutionarray_user($user,$outputlangs); //var_dump($tmparray); exit; foreach($tmparray as $key=>$value) { @@ -410,7 +453,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures { } } - + // Replace tags of object $tmparray=$this->get_substitutionarray_object($object,$outputlangs); foreach($tmparray as $key=>$value) { @@ -429,7 +472,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures { } } - + // Replace tags of lines try { $listlines = $odfHandler->setSegment('lines'); diff --git a/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php b/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php index e0804fe8ed2..f0fd65172ee 100755 --- a/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/includes/modules/facture/doc/pdf_crabe.modules.php @@ -92,7 +92,7 @@ class pdf_crabe extends ModelePDFFactures // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -165,22 +165,6 @@ class pdf_crabe extends ModelePDFFactures { $nblignes = sizeof($object->lines); - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - if ($conf->global->MAIN_USE_FPDF) $pdf = new FPDI_Protection('P','mm',$this->format); - else $pdf = new FPDI('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - if (empty($conf->global->MAIN_USE_FPDF)) $pdfrights[]='assemble'; - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) @@ -242,7 +226,6 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetDrawColor(192,192,192); //print $pdf->getStringHeight(200,'SPECIMEN',false,false); //print "$this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1";exit; - $pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note+1); $tab_height = $tab_height - $height_note; diff --git a/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php b/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php index f24a0e7b726..12cc1769374 100755 --- a/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php +++ b/htdocs/includes/modules/facture/doc/pdf_oursin.modules.php @@ -93,7 +93,7 @@ class pdf_oursin extends ModelePDFFactures // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -163,21 +163,6 @@ class pdf_oursin extends ModelePDFFactures if (file_exists($dir)) { - - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du propri�taire, cr�� al�atoirement si pas d�fini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php index fd4a957b9b6..ad281e7f23a 100644 --- a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php +++ b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php @@ -127,20 +127,6 @@ class pdf_soleil extends ModelePDFFicheinter if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php index 294ed84feea..b6e724875f7 100644 --- a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php @@ -117,20 +117,6 @@ class pdf_sirocco extends ModelePDFDeliveryOrder if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php index ffc9b867005..a7e5b91dfbc 100644 --- a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php @@ -83,7 +83,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; $this->posxcomm=120; - $this->posxtva=121; + //$this->posxtva=111; $this->posxup=132; $this->posxqty=168; $this->posxdiscount=162; @@ -140,20 +140,6 @@ class pdf_typhon extends ModelePDFDeliveryOrder if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/member/cards/pdf_standard.class.php b/htdocs/includes/modules/member/cards/pdf_standard.class.php index c1d14432ac3..c25d94355f7 100644 --- a/htdocs/includes/modules/member/cards/pdf_standard.class.php +++ b/htdocs/includes/modules/member/cards/pdf_standard.class.php @@ -397,21 +397,6 @@ class pdf_standard { } } - - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P',$this->Tformat['metric'],$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P',$this->Tformat['metric'],$this->format); - } -*/ $pdf=pdf_getInstance($this->format,$this->Tformat['metric']); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php b/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php index b51d8e13e07..46c7b063b18 100644 --- a/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php +++ b/htdocs/includes/modules/member/labels/pdf_standardlabel.class.php @@ -376,21 +376,6 @@ class pdf_standardlabel { } } - - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P',$this->Tformat['metric'],$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P',$this->Tformat['metric'],$this->format); - } -*/ $pdf=pdf_getInstance($this->format,$this->Tformat['metric']); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php b/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php index c90cccb0dd9..a8483b52240 100644 --- a/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php +++ b/htdocs/includes/modules/project/pdf/pdf_baleine.modules.php @@ -125,20 +125,6 @@ class pdf_baleine extends ModelePDFProjects if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php index dafcbe31e4f..c39973fd7a8 100644 --- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php @@ -87,7 +87,7 @@ class pdf_propale_azur extends ModelePDFPropales // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; diff --git a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php index 49b1892bd84..a00ed488846 100644 --- a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php @@ -132,20 +132,6 @@ class pdf_propale_jaune extends ModelePDFPropales if (file_exists($dir)) { - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/rapport/pdf_paiement.class.php b/htdocs/includes/modules/rapport/pdf_paiement.class.php index 9f72bdc6fa1..79bcae814e3 100644 --- a/htdocs/includes/modules/rapport/pdf_paiement.class.php +++ b/htdocs/includes/modules/rapport/pdf_paiement.class.php @@ -103,21 +103,6 @@ class pdf_paiement $year = sprintf("%04d",$year); $file = $dir . "/payments-".$year."-".$month.".pdf"; - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - if ($conf->global->MAIN_USE_FPDF) $pdf = new FPDI_Protection('P','mm',$this->format); - else $pdf = new FPDI('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php index beb7cb91cd1..cb252f05931 100644 --- a/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/includes/modules/societe/doc/doc_generic_odt.modules.php @@ -158,7 +158,7 @@ class doc_generic_odt extends ModeleThirdPartyDoc $texte.= '</table>'; // Scan directories - if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': '.sizeof($listoffiles); + if (sizeof($listofdir)) $texte.=$langs->trans("NumberOfModelFilesFound").': <b>'.sizeof($listoffiles).'</b>'; $texte.= '</td>'; diff --git a/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 3611f1f75b8..3fdb683e06f 100755 --- a/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/includes/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -80,7 +80,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -151,20 +151,6 @@ class pdf_canelle extends ModelePDFSuppliersInvoices { $nblignes = sizeof($object->lines); - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php index 741d4c4e67f..ed520033d75 100644 --- a/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -81,7 +81,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders // Defini position des colonnes $this->posxdesc=$this->marge_gauche+1; - $this->posxtva=113; + $this->posxtva=111; $this->posxup=126; $this->posxqty=145; $this->posxdiscount=162; @@ -153,20 +153,6 @@ class pdf_muscadet extends ModelePDFSuppliersOrders { $nblignes = sizeof($object->lines); - // Protection et encryption du pdf -/* if ($conf->global->PDF_SECURITY_ENCRYPTION) - { - $pdf=new FPDI_Protection('P','mm',$this->format); - $pdfrights = array('print'); // Ne permet que l'impression du document - $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du proprietaire, cree aleatoirement si pas defini - $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); - } - else - { - $pdf=new FPDI('P','mm',$this->format); - } -*/ $pdf=pdf_getInstance($this->format); if (class_exists('TCPDF')) diff --git a/htdocs/install/default.css b/htdocs/install/default.css index dcc953ce5b6..ed5237d940f 100644 --- a/htdocs/install/default.css +++ b/htdocs/install/default.css @@ -177,7 +177,7 @@ color: black; padding: 5px 5px 5px 5px; margin: 0em 0em 0em 0em; text-decoration:none; -font-size: 13px; +font-size: 12px; border-bottom: 1px solid #8CACBB; } @@ -198,3 +198,9 @@ div.visible { div.hidden { display: none; } + +ul { + margin: 0; + padding-top: 0; + padding-bottom: 0; +} diff --git a/htdocs/install/doctemplates/invoices/template_invoice.odt b/htdocs/install/doctemplates/invoices/template_invoice.odt index cbc74a9bf239bc10aa830ecc3398382a59c39635..c1693757a7cd03dbe58c9547825c00428a94736e 100644 GIT binary patch delta 23614 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 delta 17851 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%0Af3o@e@py3kFWKUC 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 E00-m(%m4rY diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index f364fdcb8f6..d0bec95443b 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -40,8 +40,9 @@ $langs->load("errors"); // You can force preselected values of the config step of Dolibarr by adding a file // install.forced.php into directory htdocs/install (This is the case with some installer -// lile DoliWamp, DoliMamp or DoliDeb. +// lile DoliWamp, DoliMamp or DoliBuntu. // We first init "forced values" to nothing. +if (! isset($force_install_noedit)) $force_install_noedit=''; if (! isset($force_install_type)) $force_install_type=''; if (! isset($force_install_port)) $force_install_port=''; if (! isset($force_install_database)) $force_install_database=''; @@ -121,7 +122,10 @@ if (! empty($force_install_message)) } ?> <td class="label" valign="top"> - <input type="text" size="60" value="<?php print $dolibarr_main_document_root; ?>"<?php print (empty($todoforce_install_main_data_root)?'':' disabled="true"'); ?> name="main_dir"> + <?php + if ($force_install_noedit) print '<input type="hidden" value="'.$dolibarr_main_document_root.'" name="main_dir">'; + print '<input type="text" size="60" value="'.$dolibarr_main_document_root.'"'.(empty($force_install_noedit)?'':' disabled="true"').' name="main_dir'.$force_install_noedit.'">'; + ?> </td> <td class="comment"><?php print $langs->trans("WithNoSlashAtTheEnd")."<br>"; -- GitLab