From 30c7bf811bcd4689e33f4ac8372edd111dbdb298 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 2 Mar 2012 14:46:18 +0100 Subject: [PATCH] Fix: add pdf_writeLinkedObjects method --- htdocs/core/lib/pdf.lib.php | 37 ++++++++++++++++++- .../commande/doc/pdf_edison.modules.php | 19 ++-------- .../commande/doc/pdf_einstein.modules.php | 17 +-------- .../modules/facture/doc/pdf_crabe.modules.php | 17 +-------- .../facture/doc/pdf_oursin.modules.php | 17 +-------- .../modules/propale/doc/pdf_azur.modules.php | 17 +-------- 6 files changed, 46 insertions(+), 78 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index a7ce8d44c32..db504ad3584 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -661,6 +661,39 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass } } +/** + * Show linked objects for PDF generation + * + * @param PDF &$pdf Object PDF + * @param object $object Object + * @param Translate $outputlangs Object lang + * @param int $curx X + * @param int $cury Y + * @return void + */ +function pdf_writeLinkedObjects(&$pdf,$object,$outputlangs,$posx,$posy,$align,$default_font_size,$hookmanager=false) +{ + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); + if (! empty($linkedobjects)) + { + foreach($linkedobjects as $linkedobject) + { + $posy+=3; + $pdf->SetXY($posx,$posy); + $pdf->SetFont('','', $default_font_size - 2); + $pdf->MultiCell(100, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', $align); + + if (! empty($linkedobject["date_title"]) && ! empty($linkedobject["date_value"])) + { + $posy+=3; + $pdf->SetXY($posx,$posy); + $pdf->MultiCell(100, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', $align); + } + } + } + + return $pdf->getY(); +} /** * Output line description into PDF @@ -1606,7 +1639,7 @@ function pdf_getCurrencySymbol(&$pdf, $currency_code) } /** - * Show linked objects for PDF generation + * Return linked objects * * @param object $object Object * @param Translate $outputlangs Object lang for output @@ -1618,7 +1651,7 @@ function pdf_getLinkedObjects($object,$outputlangs,$hookmanager=false) $linkedobjects=array(); $object->fetchObjectLinked(); - + foreach($object->linkedObjects as $objecttype => $objects) { if ($objecttype == 'propal') diff --git a/htdocs/core/modules/commande/doc/pdf_edison.modules.php b/htdocs/core/modules/commande/doc/pdf_edison.modules.php index 52da86dab1d..438fe3307e3 100644 --- a/htdocs/core/modules/commande/doc/pdf_edison.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_edison.modules.php @@ -649,23 +649,10 @@ class pdf_edison extends ModelePDFCommandes $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->ref), 0, 'L'); - $posy+=1; + $posy+=1; - // Add list of linked objects - $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); - if (! empty($linkedobjects)) - { - foreach($linkedobjects as $linkedobject) - { - $posy+=3; - $pdf->SetXY(11,$posy); - $pdf->SetFont('','', $default_font_size + 1); - $pdf->MultiCell(100, 4, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', 'L'); - $posy+=4; - $pdf->SetXY(11,$posy); - $pdf->MultiCell(100, 4, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', 'L'); - } - } + // Show list of linked objects + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'L', $default_font_size, $hookmanager); } /** diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index adfb04c8b26..4ba7bd8ca31 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -929,21 +929,8 @@ class pdf_einstein extends ModelePDFCommandes $posy+=2; - // Add list of linked objects - $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); - if (! empty($linkedobjects)) - { - foreach($linkedobjects as $linkedobject) - { - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(100, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', 'R'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(100, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', 'R'); - } - } + // Show list of linked objects + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager); if ($showaddress) { diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index dbb41c1d80a..14a450e8491 100755 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -1125,21 +1125,8 @@ class pdf_crabe extends ModelePDFFactures $posy+=2; - // Add list of linked objects - $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); - if (! empty($linkedobjects)) - { - foreach($linkedobjects as $linkedobject) - { - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(100, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', 'R'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(100, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', 'R'); - } - } + // Show list of linked objects + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager); if ($showaddress) { diff --git a/htdocs/core/modules/facture/doc/pdf_oursin.modules.php b/htdocs/core/modules/facture/doc/pdf_oursin.modules.php index bacc6ed2dc4..07efe8f3a62 100755 --- a/htdocs/core/modules/facture/doc/pdf_oursin.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_oursin.modules.php @@ -1002,21 +1002,8 @@ class pdf_oursin extends ModelePDFFactures $posy+=1; - // Add list of linked objects - $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); - if (! empty($linkedobjects)) - { - foreach($linkedobjects as $linkedobject) - { - $posy+=3; - $pdf->SetXY($this->marges['g'],$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(60, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', 'L'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(60, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', 'L'); - } - } + // Show list of linked objects + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'L', $default_font_size, $hookmanager); // Amount in (at tab_top - 1) $pdf->SetTextColor(0,0,0); diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index fb039064dfa..0208eec114f 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -970,21 +970,8 @@ class pdf_azur extends ModelePDFPropales $posy+=2; - // Add list of linked objects - $linkedobjects = pdf_getLinkedObjects($object,$outputlangs,$hookmanager); - if (! empty($linkedobjects)) - { - foreach($linkedobjects as $linkedobject) - { - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(100, 3, $linkedobject["ref_title"].' : '.$linkedobject["ref_value"], '', 'R'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(100, 3, $linkedobject["date_title"].' : '.$linkedobject["date_value"], '', 'R'); - } - } + // Show list of linked objects + $posy = pdf_writeLinkedObjects($pdf, $object, $outputlangs, $posx, $posy, 'R', $default_font_size, $hookmanager); if ($showaddress) {