diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index bd08331552d..4a090192ade 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -282,7 +282,6 @@ function pdf_pagehead(&$pdf,$outputlangs,$page_height) } } - /** * Add a draft watermark on PDF files * @@ -1250,7 +1249,6 @@ function pdf_getTotalQty($object,$type,$outputlangs,$hookmanager=false) return $total; } - /** * Convert a currency code into its symbol * @@ -1607,4 +1605,48 @@ function pdf_getCurrencySymbol(&$pdf, $currency_code) return $currency_sign; } +/** + * Show linked objects for PDF generation + * + * @param object $object Object + * @param Translate $outputlangs Object lang for output + * @return void + */ +function pdf_getLinkedObjects($object,$outputlangs) +{ + $linkedobjects=array(); + + $object->fetchObjectLinked(); + + foreach($object->linkedObjects as $objecttype => $objects) + { + if ($objecttype == 'propal') + { + $outputlangs->load('propal'); + $num=count($objects); + for ($i=0;$i<$num;$i++) + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefProposal"); + $linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($objects[$i]->ref); + $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DatePropal"); + $linkedobjects[$objecttype]['date_value'] = dol_print_date($objects[$i]->date,'day','',$outputlangs); + } + } + else if ($objecttype == 'commande') + { + $outputlangs->load('orders'); + $num=count($objects); + for ($i=0;$i<$num;$i++) + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder"); + $linkedobjects[$objecttype]['ref_value'] = $outputlangs->transnoentities($objects[$i]->ref) . ($objects[$i]->ref_client ? ' ('.$objects[$i]->ref_client.')' : ''); + $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate"); + $linkedobjects[$objecttype]['date_value'] = dol_print_date($objects[$i]->date,'day','',$outputlangs); + } + } + } + + return $linkedobjects; +} + ?> diff --git a/htdocs/core/modules/commande/doc/pdf_edison.modules.php b/htdocs/core/modules/commande/doc/pdf_edison.modules.php index ed649b24c62..a481ea62fba 100644 --- a/htdocs/core/modules/commande/doc/pdf_edison.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_edison.modules.php @@ -631,14 +631,37 @@ class pdf_edison extends ModelePDFCommandes $pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4)); $pdf->MultiCell(86,4, $carac_client, 0, 'L'); } + + $curY = 80; + $posy=$curY; // Date - order $pdf->SetTextColor(200,0,0); - $pdf->SetFont('','B', $default_font_size + 2); - $pdf->SetXY(11, 88); + $pdf->SetFont('','B', $default_font_size + 1); + $pdf->SetXY(11, $posy); + $posy+=6; $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Date")." : " . dol_print_date($object->date,'day',false,$outputlangs), 0, 'L'); - $pdf->SetXY(11, 94); + $pdf->SetXY(11, $posy); $pdf->MultiCell(100, 4, $outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->ref), 0, 'L'); + + + $posy+=1; + + // Add list of linked objects + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs); + 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'); + } + } } /** diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 67794b02c91..6e586244686 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -1,8 +1,8 @@ - * Copyright (C) 2005-2011 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand (Resultic) - * Copyright (C) 2010-2011 Juanjo Menent +/* Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand + * Copyright (C) 2010-2011 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 @@ -922,7 +922,25 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); $pdf->MultiCell(100, 4, $outputlangs->transnoentities("OrderDate")." : " . dol_print_date($object->date,"%d %b %Y",false,$outputlangs,true), '', 'R'); - + + $posy+=2; + + // Add list of linked objects + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs); + 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'); + } + } + if ($showaddress) { // Sender properties diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 01002ddf9f9..79193edfac6 100755 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -1,8 +1,8 @@ - * Copyright (C) 2005-2011 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand - * Copyright (C) 2010-2011 Juanjo Menent +/* Copyright (C) 2004-2012 Laurent Destailleur + * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2008 Raphael Bertrand + * Copyright (C) 2010-2011 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 @@ -1121,44 +1121,20 @@ class pdf_crabe extends ModelePDFFactures $posy+=2; - // Add list of linked orders and proposals - // TODO mutualiser - $object->fetchObjectLinked(); - - foreach($object->linkedObjects as $objecttype => $objects) - { - if ($objecttype == 'propal') - { - $outputlangs->load('propal'); - $num=count($objects); - for ($i=0;$i<$num;$i++) - { - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefProposal")." : ".$outputlangs->transnoentities($objects[$i]->ref), '', 'R'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("DatePropal")." : ".dol_print_date($objects[$i]->date,'day','',$outputlangs), '', 'R'); - } - } - else if ($objecttype == 'commande') + // Add list of linked objects + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs); + if (! empty($linkedobjects)) + { + foreach($linkedobjects as $linkedobject) { - $outputlangs->load('orders'); - $num=count($objects); - for ($i=0;$i<$num;$i++) - { - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->SetFont('','', $default_font_size - 2); - $text=$objects[$i]->ref; - if ($objects[$i]->ref_client) $text.=' ('.$objects[$i]->ref_client.')'; - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("RefOrder")." : ".$outputlangs->transnoentities($text), '', 'R'); - $posy+=3; - $pdf->SetXY($posx,$posy); - $pdf->MultiCell(100, 3, $outputlangs->transnoentities("OrderDate")." : ".dol_print_date($objects[$i]->date,'day','',$outputlangs), '', 'R'); - } - } + $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'); + } } 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 db3cc2218b6..d61dd3cdfa3 100755 --- a/htdocs/core/modules/facture/doc/pdf_oursin.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_oursin.modules.php @@ -997,44 +997,21 @@ class pdf_oursin extends ModelePDFFactures } $posy+=1; - - // Add list of linked orders and proposals - // TODO mutualiser - $object->fetchObjectLinked(); - - foreach($object->linkedObjects as $objecttype => $objects) - { - if ($objecttype == 'propal') - { - $outputlangs->load('propal'); - $num=count($objects); - for ($i=0;$i<$num;$i++) - { - $posy+=3; - $pdf->SetXY($this->marges['g'],$posy); - $pdf->SetFont('','', $default_font_size - 2); - $pdf->MultiCell(60, 3, $outputlangs->transnoentities("RefProposal")." : ".$outputlangs->transnoentities($objects[$i]->ref), '', 'L'); - $posy+=3; - $pdf->SetXY($this->marges['g'],$posy); - $pdf->MultiCell(60, 3, $outputlangs->transnoentities("DatePropal")." : ".dol_print_date($objects[$i]->date,'day','',$outputlangs), '', 'L'); - } - } - else if ($objecttype == 'commande') - { - $num=count($objects); - for ($i=0;$i<$num;$i++) - { - $posy+=3; - $pdf->SetXY($this->marges['g'],$posy); - $pdf->SetFont('','', $default_font_size - 2); - $text=$objects[$i]->ref; - if ($objects[$i]->ref_client) $text.=' ('.$objects[$i]->ref_client.')'; - $pdf->MultiCell(60, 3, $outputlangs->transnoentities("RefOrder")." : ".$outputlangs->transnoentities($text), '', 'L'); - $posy+=3; - $pdf->SetXY($this->marges['g'],$posy); - $pdf->MultiCell(60, 3, $outputlangs->transnoentities("OrderDate")." : ".dol_print_date($objects[$i]->date,'day','',$outputlangs), '', 'L'); - } - } + + // Add list of linked objects + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs); + 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'); + } } // Amount in (at tab_top - 1) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 0a710b986c4..37d509ae784 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -1,6 +1,6 @@ - * Copyright (C) 2005-2011 Regis Houssin + * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010-2012 Juanjo Menent * @@ -963,6 +963,24 @@ class pdf_azur extends ModelePDFPropales $pdf->SetTextColor(0,0,60); $pdf->MultiCell(100, 3, $outputlangs->transnoentities("CustomerCode")." : " . $outputlangs->transnoentities($object->client->code_client), '', 'R'); } + + $posy+=2; + + // Add list of linked objects + $linkedobjects = pdf_getLinkedObjects($object,$outputlangs); + 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'); + } + } if ($showaddress) {