diff --git a/htdocs/comm/action/rapport/rapport.pdf.php b/htdocs/comm/action/rapport/rapport.pdf.php index a5c9858482c..cf1b6f4f991 100644 --- a/htdocs/comm/action/rapport/rapport.pdf.php +++ b/htdocs/comm/action/rapport/rapport.pdf.php @@ -79,6 +79,9 @@ class CommActionRapport global $user,$conf,$langs; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php b/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php index c5c6fa62331..329a29b2e09 100644 --- a/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php +++ b/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php @@ -80,6 +80,9 @@ Class pdf_expedition_merou extends ModelePdfExpedition global $user,$conf,$langs; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php b/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php index e0a86c566d8..1c2d5618a59 100644 --- a/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php +++ b/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php @@ -121,6 +121,9 @@ Class pdf_expedition_rouget extends ModelePdfExpedition global $user,$conf,$langs; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/fourn/commande/modules/pdf/pdf_muscadet.modules.php b/htdocs/fourn/commande/modules/pdf/pdf_muscadet.modules.php index b2495837e5b..0f6bc2b6fdd 100644 --- a/htdocs/fourn/commande/modules/pdf/pdf_muscadet.modules.php +++ b/htdocs/fourn/commande/modules/pdf/pdf_muscadet.modules.php @@ -111,6 +111,9 @@ class pdf_muscadet extends ModelePDFSuppliersOrders global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/includes/modules/commande/pdf_edison.modules.php b/htdocs/includes/modules/commande/pdf_edison.modules.php index 23282377cdc..8f955aec260 100644 --- a/htdocs/includes/modules/commande/pdf_edison.modules.php +++ b/htdocs/includes/modules/commande/pdf_edison.modules.php @@ -86,9 +86,12 @@ class pdf_edison extends ModelePDFCommandes */ function write_file($com,$outputlangs='') { - global $user,$conf,$langs,$mysco; + global $user,$conf,$langs,$mysoc; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/includes/modules/commande/pdf_einstein.modules.php b/htdocs/includes/modules/commande/pdf_einstein.modules.php index f27c218903a..0a0d4d30c31 100644 --- a/htdocs/includes/modules/commande/pdf_einstein.modules.php +++ b/htdocs/includes/modules/commande/pdf_einstein.modules.php @@ -109,6 +109,9 @@ class pdf_einstein extends ModelePDFCommandes global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/includes/modules/facture/pdf_crabe.modules.php b/htdocs/includes/modules/facture/pdf_crabe.modules.php index 692d45b3b90..398d1c0dd41 100644 --- a/htdocs/includes/modules/facture/pdf_crabe.modules.php +++ b/htdocs/includes/modules/facture/pdf_crabe.modules.php @@ -110,6 +110,9 @@ class pdf_crabe extends ModelePDFFactures global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/includes/modules/facture/pdf_huitre.modules.php b/htdocs/includes/modules/facture/pdf_huitre.modules.php index 4d3636e13c3..88b17f26b5f 100644 --- a/htdocs/includes/modules/facture/pdf_huitre.modules.php +++ b/htdocs/includes/modules/facture/pdf_huitre.modules.php @@ -94,6 +94,9 @@ class pdf_huitre extends ModelePDFFactures global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/includes/modules/facture/pdf_oursin.modules.php b/htdocs/includes/modules/facture/pdf_oursin.modules.php index a6a264c103a..7fd91c992b0 100644 --- a/htdocs/includes/modules/facture/pdf_oursin.modules.php +++ b/htdocs/includes/modules/facture/pdf_oursin.modules.php @@ -98,6 +98,9 @@ class pdf_oursin extends ModelePDFFactures global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("companies"); $outputlangs->load("bills"); diff --git a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php index 12136d10528..8a1b10f782d 100644 --- a/htdocs/includes/modules/fichinter/pdf_soleil.modules.php +++ b/htdocs/includes/modules/fichinter/pdf_soleil.modules.php @@ -83,6 +83,9 @@ class pdf_soleil extends ModelePDFFicheinter global $user,$langs,$conf,$mysoc; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php index 85ec8c16ddc..736a311696b 100644 --- a/htdocs/includes/modules/propale/pdf_propale_azur.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_azur.modules.php @@ -109,6 +109,9 @@ class pdf_propale_azur extends ModelePDFPropales global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because FPDF expect text to be encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php index f4fcc3eb30c..02f1bda6120 100644 --- a/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php +++ b/htdocs/includes/modules/propale/pdf_propale_jaune.modules.php @@ -94,6 +94,9 @@ class pdf_propale_jaune extends ModelePDFPropales global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index 51b954a85c5..ee9e7018df6 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -101,7 +101,7 @@ function unaccent_isostring($str) } /** - * \brief Nettoie chaine de caractere de caracteres speciaux + * \brief Nettoie chaine de caractere de ces caracteres speciaux * \remarks Fonction appelee par exemple pour definir un nom de fichier depuis un identifiant chaine libre * \param str String to clean * \param newstr String to replace bad chars by @@ -403,19 +403,20 @@ function dolibarr_time_plus_duree($time,$duration_value,$duration_unit) /** - * \brief Formattage de la date en fonction de la langue $conf->langage - * \param time GM Timestamps date (or 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM:SS' in server TZ) - * \param format Output date format - * "%d %b %Y", - * "%d/%m/%Y %H:%M", - * "%d/%m/%Y %H:%M:%S", - * "day", "daytext", "dayhour", "dayhourldap", "dayhourtext" - * \param to_gmt false=output string if for local server TZ users, true=output string is for GMT users - * \return string Formated date or '' if time is null + * \brief Output date in a string format according to language $conf->language + * \param time GM Timestamps date (or 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM:SS' in server TZ) + * \param format Output date format + * "%d %b %Y", + * "%d/%m/%Y %H:%M", + * "%d/%m/%Y %H:%M:%S", + * "day", "daytext", "dayhour", "dayhourldap", "dayhourtext" + * \param to_gmt false=output string if for local server TZ users, true=output string is for GMT users + * \param convtooutput true=Output string is encoded into encoding defined into $langs->charset_output. + * \return string Formated date or '' if time is null */ -function dolibarr_print_date($time,$format='',$to_gmt=false) +function dolibarr_print_date($time,$format='',$to_gmt=false,$convtooutput=true) { - global $conf; + global $conf,$langs; // Si format non defini, on prend $conf->format_date_text_short sinon %Y-%m-%d %H:%M:%S if (! $format) $format=(isset($conf->format_date_text_short) ? $conf->format_date_text_short : '%Y-%m-%d %H:%M:%S'); @@ -448,13 +449,14 @@ function dolibarr_print_date($time,$format='',$to_gmt=false) $smin = $reg[5]; $ssec = $reg[6]; - return adodb_strftime($format,dolibarr_mktime($shour,$smin,$ssec,$smonth,$sday,$syear),$to_gmt); + $ret=adodb_strftime($format,dolibarr_mktime($shour,$smin,$ssec,$smonth,$sday,$syear),$to_gmt); } else { // Date is a timestamps - return adodb_strftime($format,$time,$to_gmt); + $ret=adodb_strftime($format,$time,$to_gmt); } + return ($convtooutput?$langs->convToOuptutCharset($ret):$ret); } @@ -2794,13 +2796,13 @@ function make_substitutions($chaine,$substitutionarray) } -/* - * \brief Formate l'affichage de date de d�but et de fin - * \param date_start date de d�but - * \param date_end date de fin - * \param format format de l'affichage - * \remarks Updated by Matelli : added format paramter - * \remarks See http://matelli.fr/showcases/patchs-dolibarr/update-date-range-format.html for details +/** + * \brief Format output for start and end date + * \param date_start Start date + * \param date_end End date + * \param format Output format + * \remarks Updated by Matelli : added format paramter + * \remarks See http://matelli.fr/showcases/patchs-dolibarr/update-date-range-format.html for details */ function print_date_range($date_start,$date_end,$format = '') { @@ -2808,15 +2810,15 @@ function print_date_range($date_start,$date_end,$format = '') if ($date_start && $date_end) { - print ' ('.$langs->trans('DateFromTo',dolibarr_print_date($date_start, $format),dolibarr_print_date($date_end, $format)).')'; + print ' ('.$langs->trans('DateFromTo',dolibarr_print_date($date_start, $format, false, false),dolibarr_print_date($date_end, $format, false, false)).')'; } if ($date_start && ! $date_end) { - print ' ('.$langs->trans('DateFrom',dolibarr_print_date($date_start), $format).')'; + print ' ('.$langs->trans('DateFrom',dolibarr_print_date($date_start, $format, false, false)).')'; } if (! $date_start && $date_end) { - print ' ('.$langs->trans('DateUntil',dolibarr_print_date($date_end), $format).')'; + print ' ('.$langs->trans('DateUntil',dolibarr_print_date($date_end, $format, false, false)).')'; } } diff --git a/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php b/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php index 30925b809bc..e2dece74534 100644 --- a/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php +++ b/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php @@ -41,9 +41,14 @@ class pdf_sirocco extends ModelePDFDeliveryOrder /** \brief Constructor * \param db Database handler */ - function pdf_sirocco($db=0) + function pdf_sirocco($db) { - $this->db = $db; + global $conf,$langs,$mysoc; + + $langs->load("main"); + $langs->load("bills"); + + $this->db = $db; $this->name = "sirocco"; $this->description = "Modele de bon de réception livraison simple"; @@ -57,6 +62,10 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $this->marge_haute=10; $this->marge_basse=10; + // Recupere emmetteur + $this->emetteur=$mysoc; + if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini + $this->error = ""; } @@ -80,10 +89,16 @@ class pdf_sirocco extends ModelePDFDeliveryOrder { global $user,$conf,$langs; - $langs->load("main"); - $langs->load("bills"); - $langs->load("products"); - $langs->load("deliveries"); + if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + + $outputlangs->load("main"); + $outputlangs->load("bills"); + $outputlangs->load("products"); + $outputlangs->load("deliveries"); + + $outputlangs->setPhpLang(); if ($conf->livraison_bon->dir_output) { @@ -134,7 +149,7 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $pdf->AddPage(); $pdf->SetTitle($delivery->ref); - $pdf->SetSubject($langs->transnoentities("DeliveryOrder")); + $pdf->SetSubject($outputlangs->transnoentities("DeliveryOrder")); $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($user->fullname); @@ -158,7 +173,7 @@ class pdf_sirocco extends ModelePDFDeliveryOrder for ($i = 0 ; $i < $nblignes ; $i++) { - $curY = $nexY; + $curY = $nexY; // Description de la ligne produit $libelleproduitservice=dol_htmlentitiesbr($delivery->lignes[$i]->label,1); @@ -178,11 +193,11 @@ class pdf_sirocco extends ModelePDFDeliveryOrder if($prodser->isservice()) { // Un service peur aussi etre livre - $prefix_prodserv = $langs->transnoentities("Service")." "; + $prefix_prodserv = $outputlangs->transnoentities("Service")." "; } else { - $prefix_prodserv = $langs->transnoentities("Product")." "; + $prefix_prodserv = $outputlangs->transnoentities("Product")." "; } $libelleproduitservice=$prefix_prodserv.$prodser->ref." - ".$libelleproduitservice; } @@ -190,50 +205,50 @@ class pdf_sirocco extends ModelePDFDeliveryOrder if ($delivery->lignes[$i]->date_start && $delivery->lignes[$i]->date_end) { // Affichage duree si il y en a une - $libelleproduitservice.="
".dol_htmlentitiesbr("(".$langs->transnoentities("From")." ".dolibarr_print_date($delivery->lignes[$i]->date_start)." ".$langs->transnoentities("to")." ".dolibarr_print_date($delivery->lignes[$i]->date_end).")",1); + $libelleproduitservice.="
".dol_htmlentitiesbr("(".$outputlangs->transnoentities("From")." ".dolibarr_print_date($delivery->lignes[$i]->date_start)." ".$outputlangs->transnoentities("to")." ".dolibarr_print_date($delivery->lignes[$i]->date_end).")",1); } - - $pdf->SetXY (30, $curY ); - - $pdf->MultiCell(100, 5, $libelleproduitservice, 0, 'J', 0); - $nexY = $pdf->GetY(); + $pdf->SetXY (30, $curY ); - $pdf->SetXY (10, $curY ); + $pdf->MultiCell(100, 5, $libelleproduitservice, 0, 'J', 0); - $pdf->MultiCell(20, 5, $delivery->lignes[$i]->ref, 0, 'C'); + $nexY = $pdf->GetY(); - // \TODO Field not yet saved in database - //$pdf->SetXY (133, $curY ); - //$pdf->MultiCell(10, 5, $delivery->lignes[$i]->tva_tx, 0, 'C'); + $pdf->SetXY (10, $curY ); - $pdf->SetXY (145, $curY ); - $pdf->MultiCell(10, 5, $delivery->lignes[$i]->qty_shipped, 0, 'C'); + $pdf->MultiCell(20, 5, $delivery->lignes[$i]->ref, 0, 'C'); - // \TODO Field not yet saved in database - //$pdf->SetXY (156, $curY ); - //$pdf->MultiCell(18, 5, price($delivery->lignes[$i]->price), 0, 'R', 0); + // \TODO Field not yet saved in database + //$pdf->SetXY (133, $curY ); + //$pdf->MultiCell(10, 5, $delivery->lignes[$i]->tva_tx, 0, 'C'); - // \TODO Field not yet saved in database - //$pdf->SetXY (174, $curY ); - //$total = price($delivery->lignes[$i]->price * $delivery->lignes[$i]->qty_shipped); - //$pdf->MultiCell(26, 5, $total, 0, 'R', 0); + $pdf->SetXY (145, $curY ); + $pdf->MultiCell(10, 5, $delivery->lignes[$i]->qty_shipped, 0, 'C'); - $pdf->line(10, $curY, 200, $curY ); + // \TODO Field not yet saved in database + //$pdf->SetXY (156, $curY ); + //$pdf->MultiCell(18, 5, price($delivery->lignes[$i]->price), 0, 'R', 0); - if ($nexY > 240 && $i < $nblignes - 1) - { - $this->_tableau($pdf, $tab_top, $tab_height, $nexY); - $pdf->AddPage(); - $nexY = $iniY; - $this->_pagehead($pdf, $delivery); - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('Arial','', 10); - } + // \TODO Field not yet saved in database + //$pdf->SetXY (174, $curY ); + //$total = price($delivery->lignes[$i]->price * $delivery->lignes[$i]->qty_shipped); + //$pdf->MultiCell(26, 5, $total, 0, 'R', 0); + + $pdf->line(10, $curY, 200, $curY ); + + if ($nexY > 240 && $i < $nblignes - 1) + { + $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs); + $pdf->AddPage(); + $nexY = $iniY; + $this->_pagehead($pdf, $delivery, $outputlangs); + $pdf->SetTextColor(0,0,0); + $pdf->SetFont('Arial','', 10); + } } - $this->_tableau($pdf, $tab_top, $tab_height, $nexY); - + $this->_tableau($pdf, $tab_top, $tab_height, $nexY, $outputlangs); + $pdf->Output($file); return 1; } @@ -249,7 +264,7 @@ class pdf_sirocco extends ModelePDFDeliveryOrder * \brief Affiche la grille des lignes de propales * \param pdf objet PDF */ - function _tableau(&$pdf, $tab_top, $tab_height, $nexY) + function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $outputlangs) { global $langs,$conf; $langs->load("main"); @@ -259,17 +274,17 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $pdf->Text(30,$tab_top + 5,$langs->transnoentities("Designation")); -// $pdf->line(132, $tab_top, 132, $tab_top + $tab_height); -// $pdf->Text(134,$tab_top + 5,$langs->transnoentities("VAT")); + // $pdf->line(132, $tab_top, 132, $tab_top + $tab_height); + // $pdf->Text(134,$tab_top + 5,$langs->transnoentities("VAT")); $pdf->line(144, $tab_top, 144, $tab_top + $tab_height); $pdf->Text(147,$tab_top + 5,$langs->transnoentities("QtyShipped")); -// $pdf->line(156, $tab_top, 156, $tab_top + $tab_height); -// $pdf->Text(160,$tab_top + 5,$langs->transnoentities("PriceU")); + // $pdf->line(156, $tab_top, 156, $tab_top + $tab_height); + // $pdf->Text(160,$tab_top + 5,$langs->transnoentities("PriceU")); -// $pdf->line(174, $tab_top, 174, $tab_top + $tab_height); -// $pdf->Text(187,$tab_top + 5,$langs->transnoentities("Total")); + // $pdf->line(174, $tab_top, 174, $tab_top + $tab_height); + // $pdf->Text(187,$tab_top + 5,$langs->transnoentities("Total")); // $pdf->Rect(10, $tab_top, 190, $nexY - $tab_top); $pdf->Rect(10, $tab_top, 190, $tab_height); @@ -277,91 +292,102 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $pdf->SetTextColor(0,0,0); $pdf->SetFont('Arial','',10); -// $titre = $langs->transnoentities("AmountInCurrency",$langs->transnoentities("Currency".$conf->monnaie)); -// $pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre); + // $titre = $langs->transnoentities("AmountInCurrency",$langs->transnoentities("Currency".$conf->monnaie)); + // $pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre); } - /* + /** * \brief Affiche en-tete propale * \param pdf objet PDF * \param fac objet propale * \param showadress 0=non, 1=oui */ - function _pagehead(&$pdf, $delivery) + function _pagehead(&$pdf, $delivery, $outputlangs) { global $langs; - $langs->load("deliveries"); - $pdf->SetXY(10,5); - if (defined("MAIN_INFO_SOCIETE_NOM")) - { - $pdf->SetTextColor(0,0,200); - $pdf->SetFont('Arial','B',14); - $pdf->MultiCell(76, 8, MAIN_INFO_SOCIETE_NOM, 0, 'L'); - } - $pdf->SetTextColor(70,70,170); - if (defined("FAC_PDF_ADRESSE")) - { - $pdf->SetFont('Arial','',12); - $pdf->MultiCell(76, 5, FAC_PDF_ADRESSE); - } - if (defined("FAC_PDF_TEL")) - { - $pdf->SetFont('Arial','',10); - $pdf->MultiCell(76, 5, "Tel : ".FAC_PDF_TEL); - } - if (defined("MAIN_INFO_SIREN")) - { - $pdf->SetFont('Arial','',10); - $pdf->MultiCell(76, 5, "SIREN : ".MAIN_INFO_SIREN); - } + $outputlangs->load("deliveries"); + $pdf->SetXY(10,5); + if (defined("MAIN_INFO_SOCIETE_NOM")) + { + $pdf->SetTextColor(0,0,200); + $pdf->SetFont('Arial','B',14); + $pdf->MultiCell(76, 8, MAIN_INFO_SOCIETE_NOM, 0, 'L'); + } - if (defined("FAC_PDF_INTITULE2")) - { - $pdf->SetXY(100,5); - $pdf->SetFont('Arial','B',14); - $pdf->SetTextColor(0,0,200); - $pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R'); - } - /* - * Adresse Client - */ - $pdf->SetTextColor(0,0,0); - $pdf->SetFont('Arial','B',12); - $client = new Societe($this->db); - /* - * if a delivery address is used, use that, else use the client address - */ - if ($commande->adresse_livraison_id>0) { - $client->fetch_adresse_livraison($commande->adresse_livraison_id); - } else { - $client->fetch($delivery->socid); - } - $delivery->client = $client; + $pdf->SetTextColor(70,70,170); + if (defined("FAC_PDF_ADRESSE")) + { + $pdf->SetFont('Arial','',12); + $pdf->MultiCell(76, 5, FAC_PDF_ADRESSE); + } + if (defined("FAC_PDF_TEL")) + { + $pdf->SetFont('Arial','',10); + $pdf->MultiCell(76, 5, "Tel : ".FAC_PDF_TEL); + } + if (defined("MAIN_INFO_SIREN")) + { + $pdf->SetFont('Arial','',10); + $pdf->MultiCell(76, 5, "SIREN : ".MAIN_INFO_SIREN); + } - $pdf->SetXY(102,42); - $pdf->MultiCell(96,5, $delivery->client->nom); - $pdf->SetFont('Arial','B',11); - $pdf->SetXY(102,47); - $pdf->MultiCell(96,5, $delivery->client->adresse . "\n" . $delivery->client->cp . " " . $delivery->client->ville); - $pdf->rect(100, 40, 100, 40); + if (defined("FAC_PDF_INTITULE2")) + { + $pdf->SetXY(100,5); + $pdf->SetFont('Arial','B',14); + $pdf->SetTextColor(0,0,200); + $pdf->MultiCell(100, 10, FAC_PDF_INTITULE2, '' , 'R'); + } + /* + * Adresse Client + */ + $pdf->SetTextColor(0,0,0); + $pdf->SetFont('Arial','B',12); + $client = new Societe($this->db); + /* + * if a delivery address is used, use that, else use the client address + */ + if ($commande->adresse_livraison_id>0) + { + $client->fetch_adresse_livraison($commande->adresse_livraison_id); + } + else + { + $client->fetch($delivery->socid); + } + $delivery->client = $client; + + $pdf->SetXY(102,42); + $pdf->MultiCell(96,5, $delivery->client->nom); + $pdf->SetFont('Arial','B',11); + $pdf->SetXY(102,47); + $pdf->MultiCell(96,5, $delivery->client->adresse . "\n" . $delivery->client->cp . " " . $delivery->client->ville); + $pdf->rect(100, 40, 100, 40); - $pdf->SetTextColor(200,0,0); - $pdf->SetFont('Arial','B',12); - $pdf->Text(11, 88, $langs->transnoentities("Date")." : " . dolibarr_print_date($delivery->date_valid,"day")); - $pdf->Text(11, 94, $langs->transnoentities("DeliveryOrder")." ".$delivery->ref); - - $pdf->SetFont('Arial','B',9); - $commande = new Commande ($this->db); - if ($commande->fetch($delivery->commande_id) >0) { - $pdf->Text(11, 98, $langs->transnoentities("RefOrder")." ".$commande->ref); - } - + $pdf->SetTextColor(200,0,0); + $pdf->SetFont('Arial','B',12); + $pdf->Text(11, 88, $outputlangs->transnoentities("Date")." : " . dolibarr_print_date($delivery->date_valid,"day")); + $pdf->Text(11, 94, $outputlangs->transnoentities("DeliveryOrder")." ".$delivery->ref); + $pdf->SetFont('Arial','B',9); + $commande = new Commande ($this->db); + if ($commande->fetch($delivery->commande_id) >0) + { + $pdf->Text(11, 98, $outputlangs->transnoentities("RefOrder")." ".$commande->ref); + } } + /** + * \brief Affiche le pied de page + * \param pdf objet PDF + */ + function _pagefoot(&$pdf,$outputlangs) + { + return pdf_pagefoot($pdf,$outputlangs,'DELIVERY_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur); + } } ?> diff --git a/htdocs/livraison/mods/pdf/pdf_typhon.modules.php b/htdocs/livraison/mods/pdf/pdf_typhon.modules.php index 9a87c253dd1..b87b3b6f726 100644 --- a/htdocs/livraison/mods/pdf/pdf_typhon.modules.php +++ b/htdocs/livraison/mods/pdf/pdf_typhon.modules.php @@ -113,6 +113,9 @@ class pdf_typhon extends ModelePDFDeliveryOrder global $user,$langs,$conf; if (! is_object($outputlangs)) $outputlangs=$langs; + // Force output charset to ISO, because, FPDF expect text encoded in ISO + $outputlangs->charset_output=$outputlangs->character_set_client='ISO-8859-1'; + $outputlangs->load("main"); $outputlangs->load("dict"); $outputlangs->load("companies"); @@ -382,7 +385,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder } - /* + /** * \brief Affiche en-tete bon livraison * \param pdf objet PDF * \param fac objet propale diff --git a/htdocs/translate.class.php b/htdocs/translate.class.php index 2cba1587549..13ccc892452 100644 --- a/htdocs/translate.class.php +++ b/htdocs/translate.class.php @@ -43,8 +43,8 @@ class Translate { var $cache_labels=array(); // Cache for labels - var $charset_inputfile='ISO-8859-1'; // Codage used to encode lang files (used if CHARSET not found in file) - var $charset_output='UTF-8'; // Codage used by defaut for "trans" method output if $conf->character_set_client not defined (character_set_client in conf.php) + var $charset_inputfile='ISO-8859-1'; // Codage used by default to encode lang files (used if CHARSET not found in file) + var $charset_output='UTF-8'; // Codage used by default for "trans" method output if $conf->character_set_client not defined (character_set_client in conf.php) /** @@ -155,10 +155,12 @@ class Translate { /** - * \brief Charge en memoire le tableau de traduction pour un domaine particulier - * Si le domaine est deja charge, la fonction ne fait rien - * \param domain Nom du domain (fichier lang) a charger - * \param alt Utilise le fichier alternatif meme si fichier dans la langue est trouvee + * \brief Load in a memory array, translation key-value for a particular file. + * If data for file already loaded, do nothing. + * All data in translation array are stored in ISO-8859-1 format. + * \\TODO Store data arrays in UTF-8 format. + * \param domain File name to load (.lang file) + * \param alt Use alternate file even if file in target language is found * \return int <0 if KO, >0 if OK * \remarks tab_loaded is completed with $domain key. * Value for key is: 1:Loaded from disk, 2:Not found, 3:Loaded from cache