Utilisation de transnoentities au lieu de trans

This commit is contained in:
Rodolphe Quiedeville 2006-12-17 12:48:00 +00:00
parent 0237a5162e
commit 4cd3480b44
3 changed files with 1390 additions and 1393 deletions

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
@ -21,440 +21,439 @@
* $Source$ * $Source$
*/ */
/** \file htdocs/includes/modules/facture/pdf_bulot.modules.php /**
\ingroup facture \file htdocs/includes/modules/facture/pdf_bulot.modules.php
\brief Fichier de la classe permettant de générer les factures au modèle Bulot \ingroup facture
\author Laurent Destailleur \brief Fichier de la classe permettant de générer les factures au modèle Bulot
\version $Revision$ \author Laurent Destailleur
\version $Revision$
*/ */
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php"); require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php");
/**
/** \class pdf_bulot \class pdf_bulot
\brief Classe permettant de générer les factures au modèle Bulot \brief Classe permettant de générer les factures au modèle Bulot
*/ */
class pdf_bulot extends ModelePDFFactures class pdf_bulot extends ModelePDFFactures
{ {
var $emetteur; // Objet societe qui emet var $emetteur; // Objet societe qui emet
/** \brief Constructeur /**
\param db handler accès base de donnée \brief Constructeur
*/ \param db handler accès base de donnée
function pdf_bulot($db) */
{ function pdf_bulot($db)
global $conf,$langs,$mysoc; {
global $conf,$langs,$mysoc;
$langs->load("main"); $langs->load("main");
$langs->load("bills"); $langs->load("bills");
$langs->load("products"); $langs->load("products");
$this->db = $db; $this->db = $db;
$this->name = "bulot"; $this->name = "bulot";
$this->description = $langs->trans('PDFBulotDescription'); $this->description = $langs->transnoentities('PDFBulotDescription');
// Dimension page pour format A4 // Dimension page pour format A4
$this->type = 'pdf'; $this->type = 'pdf';
$this->page_largeur = 210; $this->page_largeur = 210;
$this->page_hauteur = 297; $this->page_hauteur = 297;
$this->format = array($this->page_largeur,$this->page_hauteur); $this->format = array($this->page_largeur,$this->page_hauteur);
// Recupere emmetteur // Recupere emmetteur
$this->emetteur=$mysoc; $this->emetteur=$mysoc;
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini
} }
/** /**
* \brief Fonction générant la facture sur le disque \brief Fonction générant la facture sur le disque
* \param fac Objet facture à générer (ou id si ancienne methode) \param fac Objet facture à générer (ou id si ancienne methode)
* \return int 1=ok, 0=ko \return int 1=ok, 0=ko
*/ */
function write_pdf_file($fac,$outputlangs='') function write_pdf_file($fac,$outputlangs='')
{ {
global $user,$langs,$conf; global $user,$langs,$conf;
if ($conf->facture->dir_output) if ($conf->facture->dir_output)
{ {
// Définition de l'objet $fac (pour compatibilite ascendante) // Définition de l'objet $fac (pour compatibilite ascendante)
if (! is_object($fac)) if (! is_object($fac))
{ {
$id = $fac; $id = $fac;
$fac = new Facture($this->db,"",$id); $fac = new Facture($this->db,"",$id);
$ret=$fac->fetch($id); $ret=$fac->fetch($id);
} }
// Définition de $dir et $file // Définition de $dir et $file
if ($fac->specimen) if ($fac->specimen)
{ {
$dir = $conf->facture->dir_output; $dir = $conf->facture->dir_output;
$file = $dir . "/SPECIMEN.pdf"; $file = $dir . "/SPECIMEN.pdf";
} }
else else
{ {
$facref = sanitize_string($fac->ref); $facref = sanitize_string($fac->ref);
$dir = $conf->facture->dir_output . "/" . $facref; $dir = $conf->facture->dir_output . "/" . $facref;
$file = $dir . "/" . $facref . ".pdf"; $file = $dir . "/" . $facref . ".pdf";
} }
if (! file_exists($dir)) if (! file_exists($dir))
{ {
if (create_exdir($dir) < 0) if (create_exdir($dir) < 0)
{ {
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir); $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
return 0; return 0;
} }
} }
if (file_exists($dir)) if (file_exists($dir))
{ {
// Initialisation facture vierge // Initialisation facture vierge
$pdf=new FPDF('P','mm','A4'); $pdf=new FPDF('P','mm','A4');
$pdf->Open(); $pdf->Open();
$pdf->AddPage(); $pdf->AddPage();
$this->_pagehead($pdf, $fac); $this->_pagehead($pdf, $fac);
$pdf->SetTitle($fac->ref); $pdf->SetTitle($fac->ref);
$pdf->SetSubject($langs->trans("Bill")); $pdf->SetSubject($langs->transnoentities("Bill"));
$pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetCreator("Dolibarr ".DOL_VERSION);
$pdf->SetAuthor($user->fullname); $pdf->SetAuthor($user->fullname);
$tab_top = 100; $tab_top = 100;
$tab_height = 110; $tab_height = 110;
/* /*
* *
*/ */
$pdf->SetFillColor(220,220,220); $pdf->SetFillColor(220,220,220);
$pdf->SetFont('Arial','', 9); $pdf->SetFont('Arial','', 9);
$pdf->SetXY (10, $tab_top + 10 ); $pdf->SetXY (10, $tab_top + 10 );
$iniY = $pdf->GetY(); $iniY = $pdf->GetY();
$curY = $pdf->GetY(); $curY = $pdf->GetY();
$nexY = $pdf->GetY(); $nexY = $pdf->GetY();
$nblignes = sizeof($fac->lignes); $nblignes = sizeof($fac->lignes);
for ($i = 0 ; $i < $nblignes ; $i++) for ($i = 0 ; $i < $nblignes ; $i++)
{ {
$curY = $nexY; $curY = $nexY;
$pdf->SetXY (11, $curY ); $pdf->SetXY (11, $curY );
$pdf->MultiCell(118, 5, $fac->lignes[$i]->desc, 0, 'J'); $pdf->MultiCell(118, 5, $fac->lignes[$i]->desc, 0, 'J');
$nexY = $pdf->GetY(); $nexY = $pdf->GetY();
$pdf->SetXY (133, $curY); $pdf->SetXY (133, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->tva_tx, 0, 'C'); $pdf->MultiCell(10, 5, $fac->lignes[$i]->tva_tx, 0, 'C');
$pdf->SetXY (145, $curY); $pdf->SetXY (145, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->qty, 0, 'C'); $pdf->MultiCell(10, 5, $fac->lignes[$i]->qty, 0, 'C');
$pdf->SetXY (156, $curY); $pdf->SetXY (156, $curY);
$pdf->MultiCell(18, 5, price($fac->lignes[$i]->price), 0, 'R', 0); $pdf->MultiCell(18, 5, price($fac->lignes[$i]->price), 0, 'R', 0);
$pdf->SetXY (174, $curY); $pdf->SetXY (174, $curY);
$total = price($fac->lignes[$i]->price * $fac->lignes[$i]->qty); $total = price($fac->lignes[$i]->price * $fac->lignes[$i]->qty);
$pdf->MultiCell(26, 5, $total, 0, 'R', 0); $pdf->MultiCell(26, 5, $total, 0, 'R', 0);
if ($nexY > 200 && $i < $nblignes - 1) if ($nexY > 200 && $i < $nblignes - 1)
{ {
$this->_tableau($pdf, $tab_top, $tab_height, $nexY); $this->_tableau($pdf, $tab_top, $tab_height, $nexY);
$pdf->AddPage(); $pdf->AddPage();
$nexY = $iniY; $nexY = $iniY;
$this->_pagehead($pdf, $fac); $this->_pagehead($pdf, $fac);
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','', 10); $pdf->SetFont('Arial','', 10);
} }
} }
$this->_tableau($pdf, $tab_top, $tab_height, $nexY); $this->_tableau($pdf, $tab_top, $tab_height, $nexY);
$this->_tableau_tot($pdf, $fac, $tab_top, $tab_height); $this->_tableau_tot($pdf, $fac, $tab_top, $tab_height);
$this->_tableau_compl($pdf, $fac); $this->_tableau_compl($pdf, $fac);
/* /*
* *
*/ */
if (defined("FACTURE_RIB_NUMBER")) if (defined("FACTURE_RIB_NUMBER"))
{ {
if (FACTURE_RIB_NUMBER > 0) if (FACTURE_RIB_NUMBER > 0)
{ {
$account = new Account($this->db); $account = new Account($this->db);
$account->fetch(FACTURE_RIB_NUMBER); $account->fetch(FACTURE_RIB_NUMBER);
$pdf->SetXY (10, 40); $pdf->SetXY (10, 40);
$pdf->SetFont('Arial','U',8); $pdf->SetFont('Arial','U',8);
$pdf->MultiCell(40, 4, $langs->trans("BankDetails"), 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("BankDetails"), 0, 'L', 0);
$pdf->SetFont('Arial','',8); $pdf->SetFont('Arial','',8);
$pdf->MultiCell(40, 4, $langs->trans("BankCode").' : '. $account->code_banque, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("BankCode").' : '. $account->code_banque, 0, 'L', 0);
$pdf->MultiCell(40, 4, $langs->trans("DeskCode").' : ' . $account->code_guichet, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("DeskCode").' : ' . $account->code_guichet, 0, 'L', 0);
$pdf->MultiCell(50, 4, $langs->trans("BankAccountNumber").' : ' . $account->number, 0, 'L', 0); $pdf->MultiCell(50, 4, $langs->transnoentities("BankAccountNumber").' : ' . $account->number, 0, 'L', 0);
$pdf->MultiCell(40, 4, $langs->trans("BankAccountNumberKey").' : ' . $account->cle_rib, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("BankAccountNumberKey").' : ' . $account->cle_rib, 0, 'L', 0);
$pdf->MultiCell(40, 4, $langs->trans("Residence").' : ' . $account->domiciliation, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("Residence").' : ' . $account->domiciliation, 0, 'L', 0);
$pdf->MultiCell(40, 4, $langs->trans("IbanPrefix").' : ' . $account->iban_prefix, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("IbanPrefix").' : ' . $account->iban_prefix, 0, 'L', 0);
$pdf->MultiCell(40, 4, $langs->trans("BIC").' : ' . $account->bic, 0, 'L', 0); $pdf->MultiCell(40, 4, $langs->transnoentities("BIC").' : ' . $account->bic, 0, 'L', 0);
} }
} }
/* /*
* *
* *
*/ */
$pdf->SetFont('Arial','U',12); $pdf->SetFont('Arial','U',12);
$pdf->SetXY(10, 220); $pdf->SetXY(10, 220);
$titre = $langs->trans("PaymentConditions").' : '.$fac->cond_reglement_facture; $titre = $langs->transnoentities("PaymentConditions").' : '.$fac->cond_reglement_facture;
$pdf->MultiCell(190, 5, $titre, 0, 'J'); $pdf->MultiCell(190, 5, $titre, 0, 'J');
$pdf->SetFont('Arial','',9); $pdf->SetFont('Arial','',9);
$pdf->SetXY(10, 265); $pdf->SetXY(10, 265);
$pdf->MultiCell(190, 5, $langs->trans("PrettyLittleSentence"), 0, 'J'); $pdf->MultiCell(190, 5, $langs->transnoentities("PrettyLittleSentence"), 0, 'J');
$pdf->Close(); $pdf->Close();
$pdf->Output($file); $pdf->Output($file);
return 1; return 1;
} }
else else
{ {
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir); $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
return 0; return 0;
} }
} }
else else
{ {
$this->error=$langs->trans("ErrorConstantNotDefined","FAC_OUTPUTDIR"); $this->error=$langs->transnoentities("ErrorConstantNotDefined","FAC_OUTPUTDIR");
return 0; return 0;
} }
$this->error=$langs->trans("ErrorUnknown"); $this->error=$langs->transnoentities("ErrorUnknown");
return 0; // Erreur par defaut return 0; // Erreur par defaut
} }
/** /**
* \brief Affiche tableau des versement * \brief Affiche tableau des versement
* \param pdf objet PDF * \param pdf objet PDF
* \param fac objet facture * \param fac objet facture
*/ */
function _tableau_compl(&$pdf, $fac) function _tableau_compl(&$pdf, $fac)
{ {
global $langs; global $langs;
$tab3_top = 240; $tab3_top = 240;
$tab3_height = 18; $tab3_height = 18;
$tab3_width = 60; $tab3_width = 60;
$pdf->Rect(10, $tab3_top, $tab3_width, $tab3_height); $pdf->Rect(10, $tab3_top, $tab3_width, $tab3_height);
$pdf->line(10, $tab3_top + 6, $tab3_width+10, $tab3_top + 6 ); $pdf->line(10, $tab3_top + 6, $tab3_width+10, $tab3_top + 6 );
$pdf->line(10, $tab3_top + 12, $tab3_width+10, $tab3_top + 12 ); $pdf->line(10, $tab3_top + 12, $tab3_width+10, $tab3_top + 12 );
$pdf->line(30, $tab3_top, 30, $tab3_top + $tab3_height ); $pdf->line(30, $tab3_top, 30, $tab3_top + $tab3_height );
$pdf->SetFont('Arial','',8); $pdf->SetFont('Arial','',8);
$pdf->SetXY (10, $tab3_top - 6); $pdf->SetXY (10, $tab3_top - 6);
$pdf->MultiCell(60, 6, $langs->trans("ExtraInfos"), 0, 'L', 0); $pdf->MultiCell(60, 6, $langs->transnoentities("ExtraInfos"), 0, 'L', 0);
$pdf->SetXY (10, $tab3_top ); $pdf->SetXY (10, $tab3_top );
$pdf->MultiCell(20, 6, $langs->trans("RegulatedOn"), 0, 'L', 0); $pdf->MultiCell(20, 6, $langs->transnoentities("RegulatedOn"), 0, 'L', 0);
$pdf->SetXY (10, $tab3_top + 6); $pdf->SetXY (10, $tab3_top + 6);
$pdf->MultiCell(20, 6, $langs->trans("ChequeNumber"), 0, 'L', 0); $pdf->MultiCell(20, 6, $langs->transnoentities("ChequeNumber"), 0, 'L', 0);
$pdf->SetXY (10, $tab3_top + 12); $pdf->SetXY (10, $tab3_top + 12);
$pdf->MultiCell(20, 6, $langs->trans("Bank"), 0, 'L', 0); $pdf->MultiCell(20, 6, $langs->transnoentities("Bank"), 0, 'L', 0);
} }
/** /**
* \brief Affiche le total à payer \brief Affiche le total à payer
* \param pdf objet PDF \param pdf objet PDF
* \param fac objet facture \param fac objet facture
* \param deja_regle montant deja regle \param deja_regle montant deja regle
*/
function _tableau_tot(&$pdf, $fac, $top, $height)
{
global $langs;
$langs->load("main");
$langs->load("bills");
$tab2_top = $top + $height;
$tab2_hl = 5;
$tab2_height = $tab2_hl * 4;
$pdf->SetFont('Arial','', 9);
$pdf->SetFont('Arial','', 9);
// $pdf->Rect(132, $tab2_top, 68, $tab2_height);
// $pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height);
// $pdf->line(132, $tab2_top + $tab2_height - 21, 200, $tab2_top + $tab2_height - 21 );
// $pdf->line(132, $tab2_top + $tab2_height - 14, 200, $tab2_top + $tab2_height - 14 );
// $pdf->line(132, $tab2_top + $tab2_height - 7, 200, $tab2_top + $tab2_height - 7 );
$pdf->SetXY (132, $tab2_top + 0);
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("TotalHT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + 0);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht + $fac->remise), 0, 'R', 0);
if ($fac->remise > 0)
{
$pdf->SetXY (132, $tab2_top + $tab2_hl);
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("GlobalDiscount"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl);
$pdf->MultiCell(26, $tab2_hl, price($fac->remise), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("WithDiscountTotalHT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht), 0, 'R', 0);
$index = 3;
}
else
{
$index = 1;
}
$pdf->SetXY (132, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("TotalVAT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_tva), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+1));
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("TotalTTC"), 0, 'R', 1);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+1));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc), 0, 'R', 1);
$deja_regle = $fac->getSommePaiement();
if ($deja_regle > 0)
{
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("AlreadyPayed"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell(26, $tab2_hl, price($deja_regle), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+3));
$pdf->MultiCell(42, $tab2_hl, $langs->transnoentities("RemainderToPay"), 0, 'R', 1);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+3));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc - $deja_regle), 0, 'R', 1);
}
}
/**
\brief Affiche la grille des lignes de factures
\param pdf objet PDF
*/
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
{
global $langs;
$langs->load("main");
$langs->load("bills");
$pdf->SetFont('Arial','',10);
$pdf->Text(11,$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(144, $tab_top, 144, $tab_top + $tab_height);
$pdf->Text(147,$tab_top + 5,$langs->transnoentities("Qty"));
$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->Rect(10, $tab_top, 190, $tab_height);
$pdf->line(10, $tab_top + 10, 200, $tab_top + 10 );
}
/**
\brief Affiche en-tête facture
\param pdf objet PDF
\param fac objet facture
*/
function _pagehead(&$pdf, $fac)
{
global $langs,$conf;
$langs->load("main");
$langs->load("bills");
$pdf->SetXY(10,5);
if (defined("FAC_PDF_INTITULE"))
{
$pdf->SetTextColor(0,0,200);
$pdf->SetFont('Arial','B',14);
$pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L');
}
$pdf->SetTextColor(70,70,170);
if (defined("FAC_PDF_ADRESSE"))
{
$pdf->SetFont('Arial','',12);
$pdf->MultiCell(40, 5, FAC_PDF_ADRESSE);
}
if (defined("FAC_PDF_TEL"))
{
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(40, 5, $langs->transnoentities('PhoneNumber').' : '.FAC_PDF_TEL);
}
if ($this->emetteur->profid1)
{
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(40, 5, "SIREN : ".$this->emetteur->profid1);
}
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
*/ */
function _tableau_tot(&$pdf, $fac, $top, $height) $pdf->SetTextColor(0,0,0);
{ $pdf->SetFont('Arial','B',12);
global $langs; $fac->fetch_client();
$langs->load("main"); $pdf->SetXY(102,42);
$langs->load("bills"); $pdf->MultiCell(66,5, $fac->client->nom);
$pdf->SetFont('Arial','B',11);
$pdf->SetXY(102,$pdf->GetY());
$pdf->MultiCell(66,5, $fac->client->adresse . "\n" . $fac->client->cp . " " . $fac->client->ville);
$pdf->rect(100, 40, 100, 40);
$tab2_top = $top + $height; $pdf->SetTextColor(200,0,0);
$tab2_hl = 5; $pdf->SetFont('Arial','B',14);
$tab2_height = $tab2_hl * 4; $pdf->Text(11, 88, $langs->transnoentities('Date').' : ' . strftime("%d %b %Y", $fac->date));
$pdf->SetFont('Arial','', 9); $pdf->Text(11, 94, $langs->transnoentities('Invoice').' : '.$fac->ref);
$pdf->SetFont('Arial','', 9);
// $pdf->Rect(132, $tab2_top, 68, $tab2_height); /*
// $pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height); */
$pdf->SetTextColor(0,0,0);
// $pdf->line(132, $tab2_top + $tab2_height - 21, 200, $tab2_top + $tab2_height - 21 ); $pdf->SetFont('Arial','',10);
// $pdf->line(132, $tab2_top + $tab2_height - 14, 200, $tab2_top + $tab2_height - 14 ); $titre = $langs->transnoentities("AmountInCurrency",$langs->transnoentities("Currency".$conf->monnaie));
// $pdf->line(132, $tab2_top + $tab2_height - 7, 200, $tab2_top + $tab2_height - 7 ); $pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre);
/*
$pdf->SetXY (132, $tab2_top + 0); */
$pdf->MultiCell(42, $tab2_hl, $langs->trans("TotalHT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + 0);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht + $fac->remise), 0, 'R', 0);
if ($fac->remise > 0)
{
$pdf->SetXY (132, $tab2_top + $tab2_hl);
$pdf->MultiCell(42, $tab2_hl, $langs->trans("GlobalDiscount"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl);
$pdf->MultiCell(26, $tab2_hl, price($fac->remise), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell(42, $tab2_hl, $langs->trans("WithDiscountTotalHT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht), 0, 'R', 0);
$index = 3;
}
else
{
$index = 1;
}
$pdf->SetXY (132, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell(42, $tab2_hl, $langs->trans("TotalVAT"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_tva), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+1));
$pdf->MultiCell(42, $tab2_hl, $langs->trans("TotalTTC"), 0, 'R', 1);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+1));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc), 0, 'R', 1);
$deja_regle = $fac->getSommePaiement();
if ($deja_regle > 0)
{
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell(42, $tab2_hl, $langs->trans("AlreadyPayed"), 0, 'R', 0);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell(26, $tab2_hl, price($deja_regle), 0, 'R', 0);
$pdf->SetXY (132, $tab2_top + $tab2_hl * ($index+3));
$pdf->MultiCell(42, $tab2_hl, $langs->trans("RemainderToPay"), 0, 'R', 1);
$pdf->SetXY (174, $tab2_top + $tab2_hl * ($index+3));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc - $deja_regle), 0, 'R', 1);
}
}
/*
* \brief Affiche la grille des lignes de factures
* \param pdf objet PDF
*/
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
{
global $langs;
$langs->load("main");
$langs->load("bills");
$pdf->SetFont('Arial','',10);
$pdf->Text(11,$tab_top + 5,$langs->trans("Designation"));
$pdf->line(132, $tab_top, 132, $tab_top + $tab_height);
$pdf->Text(134,$tab_top + 5,$langs->trans("VAT"));
$pdf->line(144, $tab_top, 144, $tab_top + $tab_height);
$pdf->Text(147,$tab_top + 5,$langs->trans("Qty"));
$pdf->line(156, $tab_top, 156, $tab_top + $tab_height);
$pdf->Text(160,$tab_top + 5,$langs->trans("PriceU"));
$pdf->line(174, $tab_top, 174, $tab_top + $tab_height);
$pdf->Text(187,$tab_top + 5,$langs->trans("Total"));
$pdf->Rect(10, $tab_top, 190, $tab_height);
$pdf->line(10, $tab_top + 10, 200, $tab_top + 10 );
}
/*
* \brief Affiche en-tête facture
* \param pdf objet PDF
* \param fac objet facture
*/
function _pagehead(&$pdf, $fac)
{
global $langs,$conf;
$langs->load("main");
$langs->load("bills");
$pdf->SetXY(10,5);
if (defined("FAC_PDF_INTITULE"))
{
$pdf->SetTextColor(0,0,200);
$pdf->SetFont('Arial','B',14);
$pdf->MultiCell(60, 8, FAC_PDF_INTITULE, 0, 'L');
}
$pdf->SetTextColor(70,70,170);
if (defined("FAC_PDF_ADRESSE"))
{
$pdf->SetFont('Arial','',12);
$pdf->MultiCell(40, 5, FAC_PDF_ADRESSE);
}
if (defined("FAC_PDF_TEL"))
{
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(40, 5, $langs->trans('PhoneNumber').' : '.FAC_PDF_TEL);
}
if ($this->emetteur->profid1)
{
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(40, 5, "SIREN : ".$this->emetteur->profid1);
}
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);
$fac->fetch_client();
$pdf->SetXY(102,42);
$pdf->MultiCell(66,5, $fac->client->nom);
$pdf->SetFont('Arial','B',11);
$pdf->SetXY(102,$pdf->GetY());
$pdf->MultiCell(66,5, $fac->client->adresse . "\n" . $fac->client->cp . " " . $fac->client->ville);
$pdf->rect(100, 40, 100, 40);
$pdf->SetTextColor(200,0,0);
$pdf->SetFont('Arial','B',14);
$pdf->Text(11, 88, $langs->trans('Date').' : ' . strftime("%d %b %Y", $fac->date));
$pdf->Text(11, 94, $langs->trans('Invoice').' : '.$fac->ref);
/*
*/
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10);
$titre = $langs->trans("AmountInCurrency",$langs->trans("Currency".$conf->monnaie));
$pdf->Text(200 - $pdf->GetStringWidth($titre), 98, $titre);
/*
*/
}
}
} }
?> ?>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
<?php <?php
/* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2004-2006 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Sylvain SCATTOLINI <sylvain@s-infoservices.com> * Copyright (C) 2005 Sylvain SCATTOLINI <sylvain@s-infoservices.com>
* Copyright (C) 2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -22,358 +23,356 @@
*/ */
/** /**
\file htdocs/includes/modules/facture/pdf_oursin.modules.php \file htdocs/includes/modules/facture/pdf_oursin.modules.php
\ingroup facture \ingroup facture
\brief Fichier de la classe permettant de générer les factures au modèle oursin \brief Fichier de la classe permettant de générer les factures au modèle oursin
\author Sylvain SCATTOLINI basé sur un modèle de Laurent Destailleur \author Sylvain SCATTOLINI basé sur un modèle de Laurent Destailleur
\version $Revision$ \version $Revision$
*/ */
require_once(DOL_DOCUMENT_ROOT."/product.class.php"); require_once(DOL_DOCUMENT_ROOT."/product.class.php");
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php"); require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php");
/** /**
\class pdf_oursin \class pdf_oursin
\brief Classe permettant de générer les factures au modèle oursin \brief Classe permettant de générer les factures au modèle oursin
*/ */
class pdf_oursin extends ModelePDFFactures class pdf_oursin extends ModelePDFFactures
{ {
var $emetteur; // Objet societe qui emet var $emetteur; // Objet societe qui emet
var $marges=array("g"=>10,"h"=>5,"d"=>10,"b"=>15); var $marges=array("g"=>10,"h"=>5,"d"=>10,"b"=>15);
/**
\brief Constructeur
\param db handler accès base de donnée
*/
function pdf_oursin($db)
{
global $conf,$langs,$mysoc;
$langs->load("main");
$langs->load("bills");
$langs->load("products");
$this->db = $db;
$this->name = "oursin";
$this->description = $langs->transnoentities('PDFOursinDescription');
// Dimension page pour format A4
$this->type = 'pdf';
$this->page_largeur = 210;
$this->page_hauteur = 297;
$this->format = array($this->page_largeur,$this->page_hauteur);
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION
$this->option_modereg = 1; // Gere choix mode règlement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER
$this->option_codeproduitservice = 1; // Affiche code produit-service FACTURE_CODEPRODUITSERVICE
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise')
$this->franchise=1;
// 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
}
/** /**
\brief Constructeur * \brief Fonction générant la facture sur le disque
\param db handler accès base de donnée * \param facid id de la facture à générer
*/ * \return int 1=ok, 0=ko
function pdf_oursin($db) * \remarks Variables utilisées
{ * \remarks MAIN_INFO_SOCIETE_NOM
global $conf,$langs,$mysoc; * \remarks MAIN_INFO_SOCIETE_ADRESSE
* \remarks MAIN_INFO_SOCIETE_CP
* \remarks MAIN_INFO_SOCIETE_VILLE
* \remarks MAIN_INFO_SOCIETE_TEL
* \remarks MAIN_INFO_SOCIETE_FAX
* \remarks MAIN_INFO_SOCIETE_WEB
* \remarks MAIN_INFO_SOCIETE_LOGO
* \remarks MAIN_INFO_SIRET
* \remarks MAIN_INFO_SIREN
* \remarks MAIN_INFO_RCS
* \remarks MAIN_INFO_CAPITAL
* \remarks MAIN_INFO_TVAINTRA
*/
function write_pdf_file($fac,$outputlangs='')
{
global $user,$langs,$conf;
$langs->load("main"); if (! is_object($outputlangs)) $outputlangs=$langs;
$langs->load("bills"); $outputlangs->load("main");
$langs->load("products"); $outputlangs->load("companies");
$outputlangs->load("bills");
$outputlangs->load("products");
$this->db = $db; $outputlangs->setPhpLang();
$this->name = "oursin";
$this->description = $langs->trans('PDFOursinDescription');
// Dimension page pour format A4 $langs->load("main");
$this->type = 'pdf'; $langs->load("bills");
$this->page_largeur = 210; $langs->load("products");
$this->page_hauteur = 297;
$this->format = array($this->page_largeur,$this->page_hauteur);
$this->option_logo = 1; // Affiche logo FAC_PDF_LOGO if ($conf->facture->dir_output)
$this->option_tva = 1; // Gere option tva FACTURE_TVAOPTION {
$this->option_modereg = 1; // Gere choix mode règlement FACTURE_CHQ_NUMBER, FACTURE_RIB_NUMBER // Définition de l'objet $fac (pour compatibilite ascendante)
$this->option_codeproduitservice = 1; // Affiche code produit-service FACTURE_CODEPRODUITSERVICE if (! is_object($fac))
if (defined("FACTURE_TVAOPTION") && FACTURE_TVAOPTION == 'franchise') {
$this->franchise=1; $id = $fac;
$fac = new Facture($this->db,"",$id);
$ret=$fac->fetch($id);
}
// Recupere emmetteur // Définition de $dir et $file
$this->emetteur=$mysoc; if ($fac->specimen)
if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini {
} $dir = $conf->facture->dir_output;
$file = $dir . "/SPECIMEN.pdf";
}
else
{
$facref = sanitize_string($fac->ref);
$dir = $conf->facture->dir_output . "/" . $facref;
$file = $dir . "/" . $facref . ".pdf";
}
if (! file_exists($dir))
/** {
* \brief Fonction générant la facture sur le disque if (create_exdir($dir) < 0)
* \param facid id de la facture à générer {
* \return int 1=ok, 0=ko $this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
* \remarks Variables utilisées
* \remarks MAIN_INFO_SOCIETE_NOM
* \remarks MAIN_INFO_SOCIETE_ADRESSE
* \remarks MAIN_INFO_SOCIETE_CP
* \remarks MAIN_INFO_SOCIETE_VILLE
* \remarks MAIN_INFO_SOCIETE_TEL
* \remarks MAIN_INFO_SOCIETE_FAX
* \remarks MAIN_INFO_SOCIETE_WEB
* \remarks MAIN_INFO_SOCIETE_LOGO
* \remarks MAIN_INFO_SIRET
* \remarks MAIN_INFO_SIREN
* \remarks MAIN_INFO_RCS
* \remarks MAIN_INFO_CAPITAL
* \remarks MAIN_INFO_TVAINTRA
*/
function write_pdf_file($fac,$outputlangs='')
{
global $user,$langs,$conf;
if (! is_object($outputlangs)) $outputlangs=$langs;
$outputlangs->load("main");
$outputlangs->load("companies");
$outputlangs->load("bills");
$outputlangs->load("products");
$outputlangs->setPhpLang();
$langs->load("main");
$langs->load("bills");
$langs->load("products");
if ($conf->facture->dir_output)
{
// Définition de l'objet $fac (pour compatibilite ascendante)
if (! is_object($fac))
{
$id = $fac;
$fac = new Facture($this->db,"",$id);
$ret=$fac->fetch($id);
}
// Définition de $dir et $file
if ($fac->specimen)
{
$dir = $conf->facture->dir_output;
$file = $dir . "/SPECIMEN.pdf";
}
else
{
$facref = sanitize_string($fac->ref);
$dir = $conf->facture->dir_output . "/" . $facref;
$file = $dir . "/" . $facref . ".pdf";
}
if (! file_exists($dir))
{
if (create_exdir($dir) < 0)
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
$langs->setPhpLang(); // On restaure langue session
return 0;
}
}
if (file_exists($dir))
{
// Initialisation facture vierge
$pdf=new FPDF('P','mm',$this->format);
$pdf->Open();
$pdf->AddPage();
$this->_pagehead($pdf, $fac);
$pdf->SetTitle($fac->ref);
$pdf->SetSubject($langs->trans("Invoice"));
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
$pdf->SetAuthor($user->fullname);
$pdf->SetMargins(10, 10, 10);
$pdf->SetAutoPageBreak(1,0);
$tab_top = $this->marges['h']+90;
$tab_height = 110;
$pdf->SetFillColor(220,220,220);
$pdf->SetFont('Arial','', 9);
$pdf->SetXY ($this->marges['g'], $tab_top + $this->marges['g'] );
$iniY = $pdf->GetY();
$curY = $pdf->GetY();
$nexY = $pdf->GetY();
$nblignes = sizeof($fac->lignes);
// Boucle sur les lignes de factures
for ($i = 0 ; $i < $nblignes ; $i++)
{
$curY = $nexY;
// Description produit
$codeproduitservice="";
$pdf->SetXY ($this->marges['g']+ 1, $curY );
if (defined("FACTURE_CODEPRODUITSERVICE") && FACTURE_CODEPRODUITSERVICE) {
// Affiche code produit si ligne associée à un code produit
$prodser = new Product($this->db);
$prodser->fetch($fac->lignes[$i]->produit_id);
if ($prodser->ref) {
$codeproduitservice=" - ".$langs->trans("ProductCode")." ".$prodser->ref;
}
}
if ($fac->lignes[$i]->date_start && $fac->lignes[$i]->date_end) {
// Affichage durée si il y en a une
$codeproduitservice.=" (".$langs->trans("From")." ".dolibarr_print_date($fac->lignes[$i]->date_start)." ".$langs->trans("to")." ".dolibarr_print_date($fac->lignes[$i]->date_end).")";
}
$pdf->MultiCell(108, 5, $fac->lignes[$i]->desc."$codeproduitservice", 0, 'J');
$nexY = $pdf->GetY();
// TVA
if ($this->franchise!=1)
{
$pdf->SetXY ($this->marges['g']+119, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->tva_tx, 0, 'C');
}
// Prix unitaire HT avant remise
$pdf->SetXY ($this->marges['g']+132, $curY);
$pdf->MultiCell(16, 5, price($fac->lignes[$i]->subprice), 0, 'R', 0);
// Quantit
$pdf->SetXY ($this->marges['g']+150, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->qty, 0, 'R');
// Remise sur ligne
$pdf->SetXY ($this->marges['g']+160, $curY);
if ($fac->lignes[$i]->remise_percent) {
$pdf->MultiCell(14, 5, $fac->lignes[$i]->remise_percent."%", 0, 'R');
}
// Total HT
$pdf->SetXY ($this->marges['g']+168, $curY);
$total = price($fac->lignes[$i]->price * $fac->lignes[$i]->qty);
$pdf->MultiCell(21, 5, $total, 0, 'R', 0);
if ($nexY > 200 && $i < $nblignes - 1)
{
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $fac);
$pdf->AddPage();
$nexY = $iniY;
$this->_pagehead($pdf, $fac);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','', 10);
}
}
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $fac);
$deja_regle = $fac->getSommePaiement();
$this->_tableau_tot($pdf, $fac, $deja_regle);
if ($deja_regle) {
$this->_tableau_versements($pdf, $fac);
}
/*
* Mode de règlement
*/
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER)) {
$pdf->SetXY ($this->marges['g'], 228);
$pdf->SetTextColor(200,0,0);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->trans("ErrorNoPaiementModeConfigured"),0,'L',0);
$pdf->MultiCell(90, 3, $langs->trans("ErrorCreateBankAccount"),0,'L',0);
$pdf->SetTextColor(0,0,0);
}
/*
* Propose mode règlement par CHQ
*/
if (defined("FACTURE_CHQ_NUMBER"))
{
if (FACTURE_CHQ_NUMBER > 0)
{
$account = new Account($this->db);
$account->fetch(FACTURE_CHQ_NUMBER);
$pdf->SetXY ($this->marges['g'], 225);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->trans('PaymentByChequeOrderedTo').' '.$account->proprio.' '.$langs->trans('SendTo').':',0,'L',0);
$pdf->SetXY ($this->marges['g'], 230);
$pdf->SetFont('Arial','',8);
$pdf->MultiCell(80, 3, $account->adresse_proprio, 0, 'L', 0);
}
}
/*
* Propose mode règlement par RIB
*/
if (defined("FACTURE_RIB_NUMBER"))
{
if (FACTURE_RIB_NUMBER > 0)
{
$account = new Account($this->db);
$account->fetch(FACTURE_RIB_NUMBER);
$cury=240;
$pdf->SetXY ($this->marges['g'], $cury);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->trans('PaymentByTransferOnThisBankAccount').':', 0, 'L', 0);
$cury=245;
$pdf->SetFont('Arial','B',6);
$pdf->line($this->marges['g'], $cury, $this->marges['g'], $cury+10 );
$pdf->SetXY ($this->marges['g'], $cury);
$pdf->MultiCell(18, 3, $langs->trans("BankCode"), 0, 'C', 0);
$pdf->line($this->marges['g']+18, $cury, $this->marges['g']+18, $cury+10 );
$pdf->SetXY ($this->marges['g']+18, $cury);
$pdf->MultiCell(18, 3, $langs->trans("DeskCode"), 0, 'C', 0);
$pdf->line($this->marges['g']+36, $cury, $this->marges['g']+36, $cury+10 );
$pdf->SetXY ($this->marges['g']+36, $cury);
$pdf->MultiCell(24, 3, $langs->trans("BankAccountNumber"), 0, 'C', 0);
$pdf->line($this->marges['g']+60, $cury, $this->marges['g']+60, $cury+10 );
$pdf->SetXY ($this->marges['g']+60, $cury);
$pdf->MultiCell(13, 3, $langs->trans("BankAccountNumberKey"), 0, 'C', 0);
$pdf->line($this->marges['g']+73, $cury, $this->marges['g']+73, $cury+10 );
$pdf->SetFont('Arial','',8);
$pdf->SetXY ($this->marges['g'], $cury+5);
$pdf->MultiCell(18, 3, $account->code_banque, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+18, $cury+5);
$pdf->MultiCell(18, 3, $account->code_guichet, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+36, $cury+5);
$pdf->MultiCell(24, 3, $account->number, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+60, $cury+5);
$pdf->MultiCell(13, 3, $account->cle_rib, 0, 'C', 0);
$pdf->SetXY ($this->marges['g'], $cury+15);
$pdf->MultiCell(90, 3, $langs->trans("Residence").' : ' . $account->domiciliation, 0, 'L', 0);
$pdf->SetXY ($this->marges['g'], $cury+25);
$pdf->MultiCell(90, 3, $langs->trans("IbanPrefix").' : ' . $account->iban_prefix, 0, 'L', 0);
$pdf->SetXY ($this->marges['g'], $cury+30);
$pdf->MultiCell(90, 3, $langs->trans("BIC").' : ' . $account->bic, 0, 'L', 0);
}
}
/*
* Conditions de règlements
*/
if ($fac->cond_reglement_code)
{
$pdf->SetFont('Arial','B',10);
$pdf->SetXY($this->marges['g'], 217);
$titre = $langs->trans("PaymentConditions").':';
$pdf->MultiCell(80, 5, $titre, 0, 'L');
$pdf->SetFont('Arial','',10);
$pdf->SetXY($this->marges['g']+44, 217);
$lib_condition_paiement=$outputlangs->trans("PaymentCondition".$fac->cond_reglement_code)?$outputlangs->trans("PaymentCondition".$fac->cond_reglement_code):$fac->cond_reglement;
$pdf->MultiCell(80, 5, $lib_condition_paiement,0,'L');
}
/*
* Pied de page
*/
$this->_pagefoot($pdf, $fac);
$pdf->AliasNbPages();
$pdf->Close();
$pdf->Output($file);
$langs->setPhpLang(); // On restaure langue session
return 1; // Pas d'erreur
}
else
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
$langs->setPhpLang(); // On restaure langue session
return 0;
}
}
else
{
$this->error=$langs->trans("ErrorConstantNotDefined","FAC_OUTPUTDIR");
$langs->setPhpLang(); // On restaure langue session
return 0;
}
$this->error=$langs->trans("ErrorUnknown");
$langs->setPhpLang(); // On restaure langue session $langs->setPhpLang(); // On restaure langue session
return 0; // Erreur par defaut return 0;
} }
}
if (file_exists($dir))
{
// Initialisation facture vierge
$pdf=new FPDF('P','mm',$this->format);
$pdf->Open();
$pdf->AddPage();
$this->_pagehead($pdf, $fac);
$pdf->SetTitle($fac->ref);
$pdf->SetSubject($langs->transnoentities("Invoice"));
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
$pdf->SetAuthor($user->fullname);
$pdf->SetMargins(10, 10, 10);
$pdf->SetAutoPageBreak(1,0);
$tab_top = $this->marges['h']+90;
$tab_height = 110;
$pdf->SetFillColor(220,220,220);
$pdf->SetFont('Arial','', 9);
$pdf->SetXY ($this->marges['g'], $tab_top + $this->marges['g'] );
$iniY = $pdf->GetY();
$curY = $pdf->GetY();
$nexY = $pdf->GetY();
$nblignes = sizeof($fac->lignes);
// Boucle sur les lignes de factures
for ($i = 0 ; $i < $nblignes ; $i++)
{
$curY = $nexY;
// Description produit
$codeproduitservice="";
$pdf->SetXY ($this->marges['g']+ 1, $curY );
if (defined("FACTURE_CODEPRODUITSERVICE") && FACTURE_CODEPRODUITSERVICE) {
// Affiche code produit si ligne associée à un code produit
$prodser = new Product($this->db);
$prodser->fetch($fac->lignes[$i]->produit_id);
if ($prodser->ref) {
$codeproduitservice=" - ".$langs->transnoentities("ProductCode")." ".$prodser->ref;
}
}
if ($fac->lignes[$i]->date_start && $fac->lignes[$i]->date_end) {
// Affichage durée si il y en a une
$codeproduitservice.=" (".$langs->transnoentities("From")." ".dolibarr_print_date($fac->lignes[$i]->date_start)." ".$langs->transnoentities("to")." ".dolibarr_print_date($fac->lignes[$i]->date_end).")";
}
$pdf->MultiCell(108, 5, $fac->lignes[$i]->desc."$codeproduitservice", 0, 'J');
$nexY = $pdf->GetY();
// TVA
if ($this->franchise!=1)
{
$pdf->SetXY ($this->marges['g']+119, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->tva_tx, 0, 'C');
}
// Prix unitaire HT avant remise
$pdf->SetXY ($this->marges['g']+132, $curY);
$pdf->MultiCell(16, 5, price($fac->lignes[$i]->subprice), 0, 'R', 0);
// Quantit
$pdf->SetXY ($this->marges['g']+150, $curY);
$pdf->MultiCell(10, 5, $fac->lignes[$i]->qty, 0, 'R');
// Remise sur ligne
$pdf->SetXY ($this->marges['g']+160, $curY);
if ($fac->lignes[$i]->remise_percent) {
$pdf->MultiCell(14, 5, $fac->lignes[$i]->remise_percent."%", 0, 'R');
}
// Total HT
$pdf->SetXY ($this->marges['g']+168, $curY);
$total = price($fac->lignes[$i]->price * $fac->lignes[$i]->qty);
$pdf->MultiCell(21, 5, $total, 0, 'R', 0);
if ($nexY > 200 && $i < $nblignes - 1)
{
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $fac);
$pdf->AddPage();
$nexY = $iniY;
$this->_pagehead($pdf, $fac);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','', 10);
}
}
$this->_tableau($pdf, $tab_top, $tab_height, $nexY, $fac);
$deja_regle = $fac->getSommePaiement();
$this->_tableau_tot($pdf, $fac, $deja_regle);
if ($deja_regle) {
$this->_tableau_versements($pdf, $fac);
}
/*
* Mode de règlement
*/
if ((! defined("FACTURE_CHQ_NUMBER") || ! FACTURE_CHQ_NUMBER) && (! defined("FACTURE_RIB_NUMBER") || ! FACTURE_RIB_NUMBER)) {
$pdf->SetXY ($this->marges['g'], 228);
$pdf->SetTextColor(200,0,0);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->transnoentities("ErrorNoPaiementModeConfigured"),0,'L',0);
$pdf->MultiCell(90, 3, $langs->transnoentities("ErrorCreateBankAccount"),0,'L',0);
$pdf->SetTextColor(0,0,0);
}
/*
* Propose mode règlement par CHQ
*/
if (defined("FACTURE_CHQ_NUMBER"))
{
if (FACTURE_CHQ_NUMBER > 0)
{
$account = new Account($this->db);
$account->fetch(FACTURE_CHQ_NUMBER);
$pdf->SetXY ($this->marges['g'], 225);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->transnoentities('PaymentByChequeOrderedTo').' '.$account->proprio.' '.$langs->transnoentities('SendTo').':',0,'L',0);
$pdf->SetXY ($this->marges['g'], 230);
$pdf->SetFont('Arial','',8);
$pdf->MultiCell(80, 3, $account->adresse_proprio, 0, 'L', 0);
}
}
/*
* Propose mode règlement par RIB
*/
if (defined("FACTURE_RIB_NUMBER"))
{
if (FACTURE_RIB_NUMBER > 0)
{
$account = new Account($this->db);
$account->fetch(FACTURE_RIB_NUMBER);
$cury=240;
$pdf->SetXY ($this->marges['g'], $cury);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90, 3, $langs->transnoentities('PaymentByTransferOnThisBankAccount').':', 0, 'L', 0);
$cury=245;
$pdf->SetFont('Arial','B',6);
$pdf->line($this->marges['g'], $cury, $this->marges['g'], $cury+10 );
$pdf->SetXY ($this->marges['g'], $cury);
$pdf->MultiCell(18, 3, $langs->transnoentities("BankCode"), 0, 'C', 0);
$pdf->line($this->marges['g']+18, $cury, $this->marges['g']+18, $cury+10 );
$pdf->SetXY ($this->marges['g']+18, $cury);
$pdf->MultiCell(18, 3, $langs->transnoentities("DeskCode"), 0, 'C', 0);
$pdf->line($this->marges['g']+36, $cury, $this->marges['g']+36, $cury+10 );
$pdf->SetXY ($this->marges['g']+36, $cury);
$pdf->MultiCell(24, 3, $langs->transnoentities("BankAccountNumber"), 0, 'C', 0);
$pdf->line($this->marges['g']+60, $cury, $this->marges['g']+60, $cury+10 );
$pdf->SetXY ($this->marges['g']+60, $cury);
$pdf->MultiCell(13, 3, $langs->transnoentities("BankAccountNumberKey"), 0, 'C', 0);
$pdf->line($this->marges['g']+73, $cury, $this->marges['g']+73, $cury+10 );
$pdf->SetFont('Arial','',8);
$pdf->SetXY ($this->marges['g'], $cury+5);
$pdf->MultiCell(18, 3, $account->code_banque, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+18, $cury+5);
$pdf->MultiCell(18, 3, $account->code_guichet, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+36, $cury+5);
$pdf->MultiCell(24, 3, $account->number, 0, 'C', 0);
$pdf->SetXY ($this->marges['g']+60, $cury+5);
$pdf->MultiCell(13, 3, $account->cle_rib, 0, 'C', 0);
$pdf->SetXY ($this->marges['g'], $cury+15);
$pdf->MultiCell(90, 3, $langs->transnoentities("Residence").' : ' . $account->domiciliation, 0, 'L', 0);
$pdf->SetXY ($this->marges['g'], $cury+25);
$pdf->MultiCell(90, 3, $langs->transnoentities("IbanPrefix").' : ' . $account->iban_prefix, 0, 'L', 0);
$pdf->SetXY ($this->marges['g'], $cury+30);
$pdf->MultiCell(90, 3, $langs->transnoentities("BIC").' : ' . $account->bic, 0, 'L', 0);
}
}
/*
* Conditions de règlements
*/
if ($fac->cond_reglement_code)
{
$pdf->SetFont('Arial','B',10);
$pdf->SetXY($this->marges['g'], 217);
$titre = $langs->transnoentities("PaymentConditions").':';
$pdf->MultiCell(80, 5, $titre, 0, 'L');
$pdf->SetFont('Arial','',10);
$pdf->SetXY($this->marges['g']+44, 217);
$lib_condition_paiement=$outputlangs->transnoentities("PaymentCondition".$fac->cond_reglement_code)?$outputlangs->transnoentities("PaymentCondition".$fac->cond_reglement_code):$fac->cond_reglement;
$pdf->MultiCell(80, 5, $lib_condition_paiement,0,'L');
}
/*
* Pied de page
*/
$this->_pagefoot($pdf, $fac);
$pdf->AliasNbPages();
$pdf->Close();
$pdf->Output($file);
$langs->setPhpLang(); // On restaure langue session
return 1; // Pas d'erreur
}
else
{
$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
$langs->setPhpLang(); // On restaure langue session
return 0;
}
}
else
{
$this->error=$langs->transnoentities("ErrorConstantNotDefined","FAC_OUTPUTDIR");
$langs->setPhpLang(); // On restaure langue session
return 0;
}
$this->error=$langs->transnoentities("ErrorUnknown");
$langs->setPhpLang(); // On restaure langue session
return 0; // Erreur par defaut
}
/* /*
@ -394,18 +393,18 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetFont('Arial','',8); $pdf->SetFont('Arial','',8);
$pdf->SetXY ($tab3_posx, $tab3_top - 5); $pdf->SetXY ($tab3_posx, $tab3_top - 5);
$pdf->MultiCell(60, 5, $langs->trans("PaymentsAlreadyDone"), 0, 'L', 0); $pdf->MultiCell(60, 5, $langs->transnoentities("PaymentsAlreadyDone"), 0, 'L', 0);
$pdf->Rect($tab3_posx, $tab3_top-1, $tab3_width, $tab3_height); $pdf->Rect($tab3_posx, $tab3_top-1, $tab3_width, $tab3_height);
$pdf->SetXY ($tab3_posx, $tab3_top-1 ); $pdf->SetXY ($tab3_posx, $tab3_top-1 );
$pdf->MultiCell(20, 4, $langs->trans("Payment"), 0, 'L', 0); $pdf->MultiCell(20, 4, $langs->transnoentities("Payment"), 0, 'L', 0);
$pdf->SetXY ($tab3_posx+21, $tab3_top-1 ); $pdf->SetXY ($tab3_posx+21, $tab3_top-1 );
$pdf->MultiCell(20, 4, $langs->trans("Amount"), 0, 'L', 0); $pdf->MultiCell(20, 4, $langs->transnoentities("Amount"), 0, 'L', 0);
$pdf->SetXY ($tab3_posx+41, $tab3_top-1 ); $pdf->SetXY ($tab3_posx+41, $tab3_top-1 );
$pdf->MultiCell(20, 4, $langs->trans("Type"), 0, 'L', 0); $pdf->MultiCell(20, 4, $langs->transnoentities("Type"), 0, 'L', 0);
$pdf->SetXY ($tab3_posx+60, $tab3_top-1 ); $pdf->SetXY ($tab3_posx+60, $tab3_top-1 );
$pdf->MultiCell(20, 4, $langs->trans("Ref"), 0, 'L', 0); $pdf->MultiCell(20, 4, $langs->transnoentities("Ref"), 0, 'L', 0);
$sql = "SELECT ".$this->db->pdate("p.datep")."as date, pf.amount as amount, p.fk_paiement as type, p.num_paiement as num "; $sql = "SELECT ".$this->db->pdate("p.datep")."as date, pf.amount as amount, p.fk_paiement as type, p.num_paiement as num ";
$sql.= "FROM ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."paiement_facture as pf "; $sql.= "FROM ".MAIN_DB_PREFIX."paiement as p, ".MAIN_DB_PREFIX."paiement_facture as pf ";
@ -460,7 +459,7 @@ class pdf_oursin extends ModelePDFFactures
} }
else else
{ {
$this->error=$langs->trans("ErrorSQL")." $sql"; $this->error=$langs->transnoentities("ErrorSQL")." $sql";
return 0; return 0;
} }
@ -487,13 +486,13 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetXY ($this->marges['g'], $tab2_top + 0); $pdf->SetXY ($this->marges['g'], $tab2_top + 0);
if ($this->franchise==1) if ($this->franchise==1)
{ {
$pdf->MultiCell(100, $tab2_hl, $langs->trans("VATIsNotUsedForInvoice"), 0, 'L', 0); $pdf->MultiCell(100, $tab2_hl, $langs->transnoentities("VATIsNotUsedForInvoice"), 0, 'L', 0);
} }
// Tableau total // Tableau total
$col1x=$this->marges['g']+110; $col2x=$this->marges['g']+164; $col1x=$this->marges['g']+110; $col2x=$this->marges['g']+164;
$pdf->SetXY ($col1x, $tab2_top + 0); $pdf->SetXY ($col1x, $tab2_top + 0);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalHT"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("TotalHT"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + 0); $pdf->SetXY ($col2x, $tab2_top + 0);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht + $fac->remise), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($fac->total_ht + $fac->remise), 0, 'R', 0);
@ -501,13 +500,13 @@ class pdf_oursin extends ModelePDFFactures
if ($fac->remise > 0) if ($fac->remise > 0)
{ {
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("GlobalDiscount"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("GlobalDiscount"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl);
$pdf->MultiCell(26, $tab2_hl, "-".$fac->remise_percent."%", 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, "-".$fac->remise_percent."%", 0, 'R', 0);
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("WithDiscountTotalHT"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("WithDiscountTotalHT"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ht), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($fac->total_ht), 0, 'R', 0);
@ -520,7 +519,7 @@ class pdf_oursin extends ModelePDFFactures
} }
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalVAT"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("TotalVAT"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
$pdf->MultiCell(26, $tab2_hl, price($fac->total_tva), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($fac->total_tva), 0, 'R', 0);
@ -528,7 +527,7 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+1)); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+1));
$pdf->SetTextColor(22,137,210); $pdf->SetTextColor(22,137,210);
$pdf->SetFont('Arial','B', 11); $pdf->SetFont('Arial','B', 11);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalTTC"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("TotalTTC"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+1)); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+1));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc), 0, 'R', 0);
@ -537,7 +536,7 @@ class pdf_oursin extends ModelePDFFactures
if ($deja_regle > 0) if ($deja_regle > 0)
{ {
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+2)); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("AlreadyPayed"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("AlreadyPayed"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+2)); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+2));
$pdf->MultiCell(26, $tab2_hl, price($deja_regle), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($deja_regle), 0, 'R', 0);
@ -545,7 +544,7 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+3)); $pdf->SetXY ($col1x, $tab2_top + $tab2_hl * ($index+3));
$pdf->SetTextColor(22,137,210); $pdf->SetTextColor(22,137,210);
$pdf->SetFont('Arial','B', 11); $pdf->SetFont('Arial','B', 11);
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("RemainderToPay"), 0, 'L', 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->transnoentities("RemainderToPay"), 0, 'L', 0);
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+3)); $pdf->SetXY ($col2x, $tab2_top + $tab2_hl * ($index+3));
$pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc - $deja_regle), 0, 'R', 0); $pdf->MultiCell(26, $tab2_hl, price($fac->total_ttc - $deja_regle), 0, 'R', 0);
@ -559,19 +558,19 @@ class pdf_oursin extends ModelePDFFactures
*/ */
function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $fac) function _tableau(&$pdf, $tab_top, $tab_height, $nexY, $fac)
{ {
global $langs; global $langs;
$langs->load("main"); $langs->load("main");
$langs->load("bills"); $langs->load("bills");
$pdf->line( $this->marges['g'], $tab_top+8, 210-$this->marges['d'], $tab_top+8 ); $pdf->line( $this->marges['g'], $tab_top+8, 210-$this->marges['d'], $tab_top+8 );
$pdf->line( $this->marges['g'], $tab_top + $tab_height, 210-$this->marges['d'], $tab_top + $tab_height ); $pdf->line( $this->marges['g'], $tab_top + $tab_height, 210-$this->marges['d'], $tab_top + $tab_height );
$pdf->SetFont('Arial','B',10); $pdf->SetFont('Arial','B',10);
$pdf->Text($this->marges['g']+2,$tab_top + 5, $langs->trans("Designation")); $pdf->Text($this->marges['g']+2,$tab_top + 5, $langs->transnoentities("Designation"));
if ($this->franchise!=1) $pdf->Text($this->marges['g']+120, $tab_top + 5, $langs->trans("VAT")); if ($this->franchise!=1) $pdf->Text($this->marges['g']+120, $tab_top + 5, $langs->transnoentities("VAT"));
$pdf->Text($this->marges['g']+135, $tab_top + 5,$langs->trans("PriceUHT")); $pdf->Text($this->marges['g']+135, $tab_top + 5,$langs->transnoentities("PriceUHT"));
$pdf->Text($this->marges['g']+153, $tab_top + 5, $langs->trans("Qty")); $pdf->Text($this->marges['g']+153, $tab_top + 5, $langs->transnoentities("Qty"));
$nblignes = sizeof($fac->lignes); $nblignes = sizeof($fac->lignes);
$rem=0; $rem=0;
@ -584,7 +583,7 @@ class pdf_oursin extends ModelePDFFactures
{ {
$pdf->Text($this->marges['g']+163, $tab_top + 5,'Rem.'); $pdf->Text($this->marges['g']+163, $tab_top + 5,'Rem.');
} }
$pdf->Text($this->marges['g']+175, $tab_top + 5, $langs->trans("TotalHT")); $pdf->Text($this->marges['g']+175, $tab_top + 5, $langs->transnoentities("TotalHT"));
} }
/* /*
@ -609,19 +608,19 @@ class pdf_oursin extends ModelePDFFactures
$logo=$conf->societe->dir_logos.'/'.$this->emetteur->logo; $logo=$conf->societe->dir_logos.'/'.$this->emetteur->logo;
if ($this->emetteur->logo) if ($this->emetteur->logo)
{ {
if (is_readable($logo)) if (is_readable($logo))
{ {
$taille=getimagesize($logo); $taille=getimagesize($logo);
$longueur=$taille[0]/2.835; $longueur=$taille[0]/2.835;
$pdf->Image($logo, $this->marges['g'], $this->marges['h'], 0, 24); $pdf->Image($logo, $this->marges['g'], $this->marges['h'], 0, 24);
} }
else else
{ {
$pdf->SetTextColor(200,0,0); $pdf->SetTextColor(200,0,0);
$pdf->SetFont('Arial','B',8); $pdf->SetFont('Arial','B',8);
$pdf->MultiCell(80, 3, $langs->trans("ErrorLogoFileNotFound",$logo), 0, 'L'); $pdf->MultiCell(80, 3, $langs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
$pdf->MultiCell(80, 3, $langs->trans("ErrorGoToModuleSetup"), 0, 'L'); $pdf->MultiCell(80, 3, $langs->transnoentities("ErrorGoToModuleSetup"), 0, 'L');
} }
} }
else if (defined("FAC_PDF_INTITULE")) else if (defined("FAC_PDF_INTITULE"))
{ {
@ -646,8 +645,8 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetXY($this->marges['g'],$posy+4); $pdf->SetXY($this->marges['g'],$posy+4);
// Nom emetteur // Nom emetteur
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,60);
$pdf->SetFont('Arial','B',12); $pdf->SetFont('Arial','B',12);
if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) // Prioritaire sur MAIN_INFO_SOCIETE_NOM if (defined("FAC_PDF_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM) // Prioritaire sur MAIN_INFO_SOCIETE_NOM
{ {
$pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L'); $pdf->MultiCell(80, 4, FAC_PDF_SOCIETE_NOM, 0, 'L');
@ -658,32 +657,32 @@ class pdf_oursin extends ModelePDFFactures
} }
// Caractéristiques emetteur // Caractéristiques emetteur
$pdf->SetFont('Arial','',9); $pdf->SetFont('Arial','',9);
if (defined("FAC_PDF_ADRESSE")) if (defined("FAC_PDF_ADRESSE"))
{ {
$pdf->MultiCell(80, 4, FAC_PDF_ADRESSE); $pdf->MultiCell(80, 4, FAC_PDF_ADRESSE);
} }
if (defined("FAC_PDF_TEL") && FAC_PDF_TEL) if (defined("FAC_PDF_TEL") && FAC_PDF_TEL)
{ {
$pdf->MultiCell(80, 4, $langs->trans("Phone").": ".FAC_PDF_TEL); $pdf->MultiCell(80, 4, $langs->transnoentities("Phone").": ".FAC_PDF_TEL);
} }
if (defined("FAC_PDF_MEL") && FAC_PDF_MEL) if (defined("FAC_PDF_MEL") && FAC_PDF_MEL)
{ {
$pdf->MultiCell(80, 4, $langs->trans("Email").": ".FAC_PDF_MEL); $pdf->MultiCell(80, 4, $langs->transnoentities("Email").": ".FAC_PDF_MEL);
} }
if (defined("FAC_PDF_WWW") && FAC_PDF_WWW) if (defined("FAC_PDF_WWW") && FAC_PDF_WWW)
{ {
$pdf->MultiCell(80, 4, $langs->trans("Web").": ".FAC_PDF_WWW); $pdf->MultiCell(80, 4, $langs->transnoentities("Web").": ".FAC_PDF_WWW);
} }
$pdf->SetFont('Arial','',7); $pdf->SetFont('Arial','',7);
if (defined("MAIN_INFO_SIREN") && MAIN_INFO_SIREN) if (defined("MAIN_INFO_SIREN") && MAIN_INFO_SIREN)
{ {
$pdf->MultiCell(80, 4, $langs->transcountry("ProfId1",$this->pays_code).": ".MAIN_INFO_SIREN); $pdf->MultiCell(80, 4, $langs->transcountry("ProfId1",$this->pays_code).": ".MAIN_INFO_SIREN);
} }
elseif (defined("MAIN_INFO_SIRET") && MAIN_INFO_SIRET) elseif (defined("MAIN_INFO_SIRET") && MAIN_INFO_SIRET)
{ {
$pdf->MultiCell(80, 4, $langs->transcountry("ProfId2",$this->pays_code).": ".MAIN_INFO_SIRET); $pdf->MultiCell(80, 4, $langs->transcountry("ProfId2",$this->pays_code).": ".MAIN_INFO_SIRET);
} }
@ -709,11 +708,11 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetFont('Arial','B',13); $pdf->SetFont('Arial','B',13);
$pdf->SetXY($this->marges['g'],$posy); $pdf->SetXY($this->marges['g'],$posy);
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
$pdf->MultiCell(100, 10, $langs->trans("Bill").' '.$langs->trans("Of").' '.dolibarr_print_date($fac->date,"%d %B %Y"), '' , 'L'); $pdf->MultiCell(100, 10, $langs->transnoentities("Bill").' '.$langs->transnoentities("Of").' '.dolibarr_print_date($fac->date,"%d %B %Y"), '' , 'L');
$pdf->SetFont('Arial','B',11); $pdf->SetFont('Arial','B',11);
$pdf->SetXY($this->marges['g'],$posy+6); $pdf->SetXY($this->marges['g'],$posy+6);
$pdf->SetTextColor(22,137,210); $pdf->SetTextColor(22,137,210);
$pdf->MultiCell(100, 10, $langs->trans("RefBill")." : " . $fac->ref, '', 'L'); $pdf->MultiCell(100, 10, $langs->transnoentities("RefBill")." : " . $fac->ref, '', 'L');
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
/* /*
@ -724,7 +723,7 @@ class pdf_oursin extends ModelePDFFactures
$projet = New Project($fac->db); $projet = New Project($fac->db);
$projet->fetch($fac->projetid); $projet->fetch($fac->projetid);
$pdf->SetFont('Arial','',9); $pdf->SetFont('Arial','',9);
$pdf->MultiCell(60, 4, $langs->trans("Project")." : ".$projet->title); $pdf->MultiCell(60, 4, $langs->transnoentities("Project")." : ".$projet->title);
} }
/* /*
@ -737,7 +736,7 @@ class pdf_oursin extends ModelePDFFactures
{ {
$objp = $fac->db->fetch_object(); $objp = $fac->db->fetch_object();
$pdf->SetFont('Arial','',9); $pdf->SetFont('Arial','',9);
$pdf->MultiCell(60, 4, $langs->trans("RefProposal")." : ".$objp->ref); $pdf->MultiCell(60, 4, $langs->transnoentities("RefProposal")." : ".$objp->ref);
} }
/* /*
@ -745,7 +744,7 @@ class pdf_oursin extends ModelePDFFactures
*/ */
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','',10); $pdf->SetFont('Arial','',10);
$titre = $langs->trans("AmountInCurrency",$langs->trans("Currency".$conf->monnaie)); $titre = $langs->transnoentities("AmountInCurrency",$langs->transnoentities("Currency".$conf->monnaie));
$pdf->Text(200 - $pdf->GetStringWidth($titre), 94, $titre); $pdf->Text(200 - $pdf->GetStringWidth($titre), 94, $titre);
/* /*
*/ */
@ -767,37 +766,37 @@ class pdf_oursin extends ModelePDFFactures
$footy=13; $footy=13;
$pdf->SetFont('Arial','',8); $pdf->SetFont('Arial','',8);
$ligne=""; $ligne="";
if (defined('MAIN_INFO_CAPITAL') && MAIN_INFO_CAPITAL) { if (defined('MAIN_INFO_CAPITAL') && MAIN_INFO_CAPITAL) {
$ligne=$langs->trans('LimitedLiabilityCompanyCapital').' '. MAIN_INFO_CAPITAL." ".$langs->trans("Currency".$conf->monnaie); $ligne=$langs->transnoentities('LimitedLiabilityCompanyCapital').' '. MAIN_INFO_CAPITAL." ".$langs->transnoentities("Currency".$conf->monnaie);
} }
if (defined('MAIN_INFO_SIREN') && MAIN_INFO_SIREN) { if (defined('MAIN_INFO_SIREN') && MAIN_INFO_SIREN) {
$ligne.=($ligne?" - ":"").$langs->transcountry("ProfId1",$this->emetteur->pays_code).": ".MAIN_INFO_SIREN; $ligne.=($ligne?" - ":"").$langs->transcountry("ProfId1",$this->emetteur->pays_code).": ".MAIN_INFO_SIREN;
} }
if (defined('MAIN_INFO_SIRET') && MAIN_INFO_SIRET) { if (defined('MAIN_INFO_SIRET') && MAIN_INFO_SIRET) {
$ligne.=($ligne?" - ":"").$langs->transcountry("ProfId2",$this->emetteur->pays_code).": ".MAIN_INFO_SIRET; $ligne.=($ligne?" - ":"").$langs->transcountry("ProfId2",$this->emetteur->pays_code).": ".MAIN_INFO_SIRET;
} }
if (defined('MAIN_INFO_RCS') && MAIN_INFO_RCS) { if (defined('MAIN_INFO_RCS') && MAIN_INFO_RCS) {
$ligne.=($ligne?" - ":"").$langs->transcountry("ProfId4",$this->emetteur->pays_code).": ".MAIN_INFO_RCS; $ligne.=($ligne?" - ":"").$langs->transcountry("ProfId4",$this->emetteur->pays_code).": ".MAIN_INFO_RCS;
} }
if ($ligne) { if ($ligne) {
$pdf->SetY(-$footy); $pdf->SetY(-$footy);
$pdf->MultiCell(190, 3, $ligne, 0, 'C'); $pdf->MultiCell(190, 3, $ligne, 0, 'C');
$footy-=3; $footy-=3;
} }
// Affiche le numéro de TVA intracommunautaire // Affiche le numéro de TVA intracommunautaire
if (MAIN_INFO_TVAINTRA == 'MAIN_INFO_TVAINTRA') { if (MAIN_INFO_TVAINTRA == 'MAIN_INFO_TVAINTRA') {
$pdf->SetY(-$footy); $pdf->SetY(-$footy);
$pdf->SetTextColor(200,0,0); $pdf->SetTextColor(200,0,0);
$pdf->SetFont('Arial','B',8); $pdf->SetFont('Arial','B',8);
$pdf->MultiCell(190, 3, $langs->trans("ErrorVATIntraNotConfigured"),0,'L',0); $pdf->MultiCell(190, 3, $langs->transnoentities("ErrorVATIntraNotConfigured"),0,'L',0);
$pdf->MultiCell(190, 3, $langs->trans("ErrorGoToGlobalSetup"),0,'L',0); $pdf->MultiCell(190, 3, $langs->transnoentities("ErrorGoToGlobalSetup"),0,'L',0);
$pdf->SetTextColor(0,0,0); $pdf->SetTextColor(0,0,0);
} }
elseif (MAIN_INFO_TVAINTRA != '') { elseif (MAIN_INFO_TVAINTRA != '') {
$pdf->SetY(-$footy); $pdf->SetY(-$footy);
$pdf->MultiCell(190, 3, $langs->trans("IntracommunityVATNumber")." : ".MAIN_INFO_TVAINTRA, 0, 'C'); $pdf->MultiCell(190, 3, $langs->transnoentities("IntracommunityVATNumber")." : ".MAIN_INFO_TVAINTRA, 0, 'C');
} }
$pdf->SetXY(-15,-15); $pdf->SetXY(-15,-15);