From 93df5fcb018da6b603575cb8025594df3fc4d9e2 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 21 Sep 2010 09:44:15 +0000 Subject: [PATCH] Works on hook integration --- htdocs/expedition/class/expedition.class.php | 2 +- htdocs/expedition/liste.php | 2 +- .../modules/commande/pdf_edison.modules.php | 10 ++- .../modules/commande/pdf_einstein.modules.php | 8 +-- .../pdf/ModelePdfExpedition.class.php | 4 +- .../pdf/pdf_expedition_merou.modules.php | 5 +- .../pdf/pdf_expedition_rouget.modules.php | 8 ++- .../modules/facture/pdf_crabe.modules.php | 8 ++- .../modules/facture/pdf_oursin.modules.php | 6 +- .../livraison/pdf/pdf_sirocco.modules.php | 6 +- .../livraison/pdf/pdf_typhon.modules.php | 6 +- .../propale/pdf_propale_azur.modules.php | 12 ++-- .../propale/pdf_propale_jaune.modules.php | 6 +- .../pdf/pdf_muscadet.modules.php | 6 +- htdocs/lib/pdf.lib.php | 71 ++++++++++--------- 15 files changed, 92 insertions(+), 68 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 88d34d4f600..708b55b5f13 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -285,7 +285,7 @@ class Expedition extends CommonObject $this->modelpdf = $obj->model_pdf; $this->expedition_method_id = $obj->fk_expedition_methode; $this->tracking_number = $obj->tracking_number; - $this->origin = $obj->origin; + $this->origin = ($obj->origin?$obj->origin:'commande'); // For compatibility $this->origin_id = $obj->origin_id; $this->trueWeight = $obj->weight; diff --git a/htdocs/expedition/liste.php b/htdocs/expedition/liste.php index d20bb659577..cd4677f984d 100644 --- a/htdocs/expedition/liste.php +++ b/htdocs/expedition/liste.php @@ -1,7 +1,7 @@ * Copyright (C) 2004-2010 Laurent Destailleur - * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005-2010 Regis Houssin * * 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 diff --git a/htdocs/includes/modules/commande/pdf_edison.modules.php b/htdocs/includes/modules/commande/pdf_edison.modules.php index f1107623f17..aaa04fbaffa 100644 --- a/htdocs/includes/modules/commande/pdf_edison.modules.php +++ b/htdocs/includes/modules/commande/pdf_edison.modules.php @@ -194,11 +194,15 @@ class pdf_edison extends ModelePDFCommandes for ($i = 0 ; $i < $nblignes ; $i++) { $curY = $nexY; + + $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs,1); - $pdf->writeHTMLCell(100, 3, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); - + pdf_getlinedesc($pdf,$object,$i,$outputlangs,100,3,30,$curY,1); + //$pdf->writeHTMLCell(100, 3, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + + $pdf->SetFont('','', 9); // On repositionne la police par defaut + $nexY = $pdf->GetY(); $ref = pdf_getlineref($object, $i, $outputlangs); diff --git a/htdocs/includes/modules/commande/pdf_einstein.modules.php b/htdocs/includes/modules/commande/pdf_einstein.modules.php index f7bc2abaf1f..d3ca51efd63 100644 --- a/htdocs/includes/modules/commande/pdf_einstein.modules.php +++ b/htdocs/includes/modules/commande/pdf_einstein.modules.php @@ -242,12 +242,12 @@ class pdf_einstein extends ModelePDFCommandes for ($i = 0 ; $i < $nblignes ; $i++) { $curY = $nexY; + + $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page // Description of product line - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); - - $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page - $pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + $curX = $this->posxdesc-1; + pdf_getlinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php b/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php index c9ed58909d2..04d2f6acf4c 100644 --- a/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php +++ b/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php @@ -1,7 +1,7 @@ - * Copyright (C) 2005-2009 Laurent Destailleur - * Copyright (C) 2005-2009 Regis Houssin + * Copyright (C) 2005-2010 Laurent Destailleur + * Copyright (C) 2005-2010 Regis Houssin * * 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 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 d838c4b55ba..e48c56f5b02 100644 --- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php @@ -205,7 +205,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition for ($i = 0 ; $i < $nblignes ; $i++) { // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object->$origin,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($pdf,$object->$origin,$i,$outputlangs); //if ($i==1) { print $object->commande->lignes[$i]->libelle.' - '.$libelleproduitservice; exit; } //Creation des cases a cocher @@ -218,7 +218,8 @@ Class pdf_expedition_merou extends ModelePdfExpedition //Insertion du libelle $pdf->SetFont('','', 7); $pdf->SetXY (50, $curY+1 ); - $pdf->writeHTMLCell(90, 3, 50, $curY+1, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 'L', 0); + $libelleproduitservice = pdf_getlinedesc($pdf,$object->$origin,$i,$outputlangs,90,3,50,$curY+1,1); + //$pdf->writeHTMLCell(90, 3, 50, $curY+1, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 'L', 0); //Insertion de la quantite commandee $pdf->SetFont('','', 7); $pdf->SetXY (140, $curY+1 ); 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 009ddfe58e8..d166a00e337 100644 --- a/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php @@ -335,12 +335,14 @@ Class pdf_expedition_rouget extends ModelePdfExpedition { $pdf->i25($this->marge_gauche+3, ($curY - 2), "000000".$object->lines[$i]->fk_product, 1, 8); } + + $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + pdf_getlinedesc($pdf,$object,$i,$outputlangs,150,3,$this->posxdesc,$curY); - $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page - $pdf->writeHTMLCell(150, 3, $this->posxdesc, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(150, 3, $this->posxdesc, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/facture/pdf_crabe.modules.php b/htdocs/includes/modules/facture/pdf_crabe.modules.php index 8715b6b6555..d8f196bca1e 100644 --- a/htdocs/includes/modules/facture/pdf_crabe.modules.php +++ b/htdocs/includes/modules/facture/pdf_crabe.modules.php @@ -250,10 +250,14 @@ class pdf_crabe extends ModelePDFFactures $curY = $nexY; // Description of product line - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page - $pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + + $curX = $this->posxdesc-1; + pdf_getlinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,3,$curX,$curY); + + //$pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/facture/pdf_oursin.modules.php b/htdocs/includes/modules/facture/pdf_oursin.modules.php index 5bf31a61f9e..1a9f8d6e2c0 100644 --- a/htdocs/includes/modules/facture/pdf_oursin.modules.php +++ b/htdocs/includes/modules/facture/pdf_oursin.modules.php @@ -214,9 +214,11 @@ class pdf_oursin extends ModelePDFFactures $curY = $nexY; // Description of product line - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + + pdf_getlinedesc($pdf,$object,$i,$outputlangs,108,3,$this->posxdesc-1,$curY+1); - $pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php index 4ff6fc1b5de..467db289e1f 100644 --- a/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php @@ -186,11 +186,13 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $curY = $nexY; // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page + + pdf_getlinedesc($pdf,$object,$i,$outputlangs,100,3,30,$curY,1); - $pdf->writeHTMLCell(100, 3, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(100, 3, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php index b8e867d46fe..aa81ad8426e 100644 --- a/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php @@ -243,11 +243,13 @@ class pdf_typhon extends ModelePDFDeliveryOrder $curY = $nexY; // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page + + pdf_getlinedesc($pdf,$object,$i,$outputlangs,108,3,$this->posxdesc-1,$curY); - $pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php index c0fc7be730f..c1cdfdd8dbd 100644 --- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2010 Laurent Destailleur * Copyright (C) 2005-2010 Regis Houssin * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010 Juanjo Menent @@ -243,14 +243,12 @@ class pdf_propale_azur extends ModelePDFPropales for ($i = 0 ; $i < $nblignes ; $i++) { $curY = $nexY; - - // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs); - + $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page - // Description - $pdf->writeHTMLCell($this->posxtva-$this->posxdesc-1, 4, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + // Description de la ligne produit + $curX = $this->posxdesc-1; + pdf_getlinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); diff --git a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php index fd9f06d0c06..e817f5bf51b 100644 --- a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php @@ -186,10 +186,12 @@ class pdf_propale_jaune extends ModelePDFPropales $curY = $nexY; // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs,1); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs,1); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page + + pdf_getlinedesc($pdf,$object,$i,$outputlangs,102,4,30,$curY,1); - $pdf->writeHTMLCell(102, 4, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(102, 4, 30, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // On repositionne la police par defaut $nexY = $pdf->GetY(); 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 ffaf0a39777..3933a6a6f95 100644 --- a/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/includes/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -233,11 +233,13 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $curY = $nexY; // Description de la ligne produit - $libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs,0,0,1); + //$libelleproduitservice=pdf_getlinedesc($object,$i,$outputlangs,0,0,1); $pdf->SetFont('','', 9); // Dans boucle pour gerer multi-page + + pdf_getlinedesc($pdf,$object,$i,$outputlangs,108,3,$this->posxdesc-1,$curY,0,0,1); - $pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + //$pdf->writeHTMLCell(108, 3, $this->posxdesc-1, $curY, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); $pdf->SetFont('','', 9); // On repositionne la police par defaut diff --git a/htdocs/lib/pdf.lib.php b/htdocs/lib/pdf.lib.php index 8c8834b3107..b156638f0b8 100644 --- a/htdocs/lib/pdf.lib.php +++ b/htdocs/lib/pdf.lib.php @@ -1,7 +1,8 @@ * Copyright (C) 2006 Rodolphe Quiedeville - * Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2010 Regis Houssin * * 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 @@ -452,22 +453,22 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass * @param hidedesc Hide description * @param issupplierline Is it a line for a supplier object ? */ -function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issupplierline=0) +function pdf_getlinedesc(&$pdf,$object,$i,$outputlangs,$w,$h,$posx,$posy,$hideref=0,$hidedesc=0,$issupplierline=0) { global $db, $conf, $langs; - $idprod=$object->lines[$i]->fk_product; - $label=$object->lines[$i]->label; if (empty($label)) $label=$object->lines[$i]->libelle; - $desc=$object->lines[$i]->desc; if (empty($desc)) $desc=$object->lines[$i]->description; - $ref_supplier=$object->lines[$i]->ref_supplier; if (empty($ref_supplier)) $ref_supplier=$object->lines[$i]->ref_fourn; // TODO Not yeld saved for supplier invoices, only supplier orders - $note=$object->lines[$i]->note; - if (!empty($object->hooks) && $object->lines[$i]->product_type == 9 && !empty($object->lines[$i]->special_code)) { - $libelleproduitservice = $object->hooks[$object->lines[$i]->special_code]->pdf_getlinedesc($object,$i,$outputlangs); + $object->hooks[$object->lines[$i]->special_code]->pdf_getlinedesc($pdf,$object,$i,$outputlangs,$w,$h,$posx,$posy); } else { + $idprod=$object->lines[$i]->fk_product; + $label=$object->lines[$i]->label; if (empty($label)) $label=$object->lines[$i]->libelle; + $desc=$object->lines[$i]->desc; if (empty($desc)) $desc=$object->lines[$i]->description; + $ref_supplier=$object->lines[$i]->ref_supplier; if (empty($ref_supplier)) $ref_supplier=$object->lines[$i]->ref_fourn; // TODO Not yeld saved for supplier invoices, only supplier orders + $note=$object->lines[$i]->note; + if ($issupplierline) $prodser = new ProductFournisseur($db); else $prodser = new Product($db); @@ -541,31 +542,35 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl $libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice; } } + + $libelleproduitservice=dol_htmlentitiesbr($libelleproduitservice,1); + + if ($object->lines[$i]->date_start || $object->lines[$i]->date_end) + { + // Show duration if exists + if ($object->lines[$i]->date_start && $object->lines[$i]->date_end) + { + $period='('.$outputlangs->transnoentitiesnoconv('DateFromTo',dol_print_date($object->lines[$i]->date_start, $format, false, $outputlangs),dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')'; + } + if ($object->lines[$i]->date_start && ! $object->lines[$i]->date_end) + { + $period='('.$outputlangs->transnoentitiesnoconv('DateFrom',dol_print_date($object->lines[$i]->date_start, $format, false, $outputlangs)).')'; + } + if (! $object->lines[$i]->date_start && $object->lines[$i]->date_end) + { + $period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')'; + } + //print '>'.$outputlangs->charset_output.','.$period; + $libelleproduitservice.="
".dol_htmlentitiesbr($period,1); + //print $libelleproduitservice; + } + + // Description + $pdf->writeHTMLCell($w, $h, $posx, $posy, $outputlangs->convToOutputCharset($libelleproduitservice), 0, 1); + + // For compatibility + return $libelleproduitservice; } - - $libelleproduitservice=dol_htmlentitiesbr($libelleproduitservice,1); - - if ($object->lines[$i]->date_start || $object->lines[$i]->date_end) - { - // Show duration if exists - if ($object->lines[$i]->date_start && $object->lines[$i]->date_end) - { - $period='('.$outputlangs->transnoentitiesnoconv('DateFromTo',dol_print_date($object->lines[$i]->date_start, $format, false, $outputlangs),dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')'; - } - if ($object->lines[$i]->date_start && ! $object->lines[$i]->date_end) - { - $period='('.$outputlangs->transnoentitiesnoconv('DateFrom',dol_print_date($object->lines[$i]->date_start, $format, false, $outputlangs)).')'; - } - if (! $object->lines[$i]->date_start && $object->lines[$i]->date_end) - { - $period='('.$outputlangs->transnoentitiesnoconv('DateUntil',dol_print_date($object->lines[$i]->date_end, $format, false, $outputlangs)).')'; - } - //print '>'.$outputlangs->charset_output.','.$period; - $libelleproduitservice.="
".dol_htmlentitiesbr($period,1); - //print $libelleproduitservice; - } - - return $libelleproduitservice; } /**