mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-02-20 13:46:52 +01:00
Fix: Some errors on generating delivery and sending receipts
This commit is contained in:
parent
f92c05ec38
commit
22e20cea21
|
|
@ -67,10 +67,16 @@ if ($_GET["action"] == 'specimen')
|
|||
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=expedition&file=SPECIMEN.pdf");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$obj->error.'</div>';
|
||||
dolibarr_syslog($obj->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$langs->trans("ErrorModuleNotFound").'</div>';
|
||||
dolibarr_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,10 +74,16 @@ if ($_GET["action"] == 'specimen')
|
|||
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=livraison&file=SPECIMEN.pdf");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$obj->error.'</div>';
|
||||
dolibarr_syslog($obj->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$langs->trans("ErrorModuleNotFound").'</div>';
|
||||
dolibarr_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ if ($modulepart)
|
|||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->expedition->dir_output.'/'.$original_file;
|
||||
$original_file=$conf->expedition_bon->dir_output.'/'.$original_file;
|
||||
//$sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."fichinter WHERE ref='$refname'";
|
||||
}
|
||||
|
||||
|
|
@ -230,7 +230,7 @@ if ($modulepart)
|
|||
{
|
||||
$accessallowed=1;
|
||||
}
|
||||
$original_file=$conf->livraison->dir_output.'/'.$original_file;
|
||||
$original_file=$conf->livraison_bon->dir_output.'/'.$original_file;
|
||||
//$sqlprotectagainstexternals = "SELECT fk_soc as fk_soc FROM ".MAIN_DB_PREFIX."fichinter WHERE ref='$refname'";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -662,6 +662,8 @@ class Expedition extends CommonObject
|
|||
{
|
||||
global $user,$langs;
|
||||
|
||||
dolibarr_syslog("Expedition::initAsSpecimen");
|
||||
|
||||
// Charge tableau des id de société socids
|
||||
$socids = array();
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10";
|
||||
|
|
|
|||
|
|
@ -684,7 +684,7 @@ else
|
|||
if ($conf->expedition_bon->enabled)
|
||||
{
|
||||
$expeditionref = sanitize_string($expedition->ref);
|
||||
$filedir = $conf->expedition->dir_output . "/" .$expeditionref;
|
||||
$filedir = $conf->expedition_bon->dir_output . "/" .$expeditionref;
|
||||
|
||||
$urlsource = $_SERVER["PHP_SELF"]."?id=".$expedition->id;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2005-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005 Regis Houssin <regis@dolibarr.fr>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
|
@ -20,32 +20,32 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/expedition/mods/pdf/pdf_expedition_dorade.modules.php
|
||||
\ingroup expedition
|
||||
\brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Merou
|
||||
\version $Id$
|
||||
*/
|
||||
\file htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php
|
||||
\ingroup expedition
|
||||
\brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Merou
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT."/expedition/mods/pdf/ModelePdfExpedition.class.php";
|
||||
require_once DOL_DOCUMENT_ROOT."/contact.class.php";
|
||||
|
||||
/**
|
||||
\class pdf_expedition_dorade
|
||||
\brief Classe permettant de générer les borderaux envoi au modèle Merou
|
||||
*/
|
||||
\class pdf_expedition_dorade
|
||||
\brief Classe permettant de générer les borderaux envoi au modèle Merou
|
||||
*/
|
||||
|
||||
Class pdf_expedition_merou extends ModelePdfExpedition
|
||||
{
|
||||
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_expedition_merou($db=0)
|
||||
{
|
||||
global $conf,$langs,$mysoc;
|
||||
{
|
||||
global $conf,$langs,$mysoc;
|
||||
|
||||
$this->db = $db;
|
||||
$this->name = "Merou";
|
||||
|
|
@ -57,35 +57,35 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
|element->commande,source->external,code->DESTINATAIRE \n
|
||||
";
|
||||
|
||||
$this->type = 'pdf';
|
||||
$this->page_largeur = 148.5;
|
||||
$this->page_hauteur = 210;
|
||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||
|
||||
$this->option_logo = 1; // Affiche logo
|
||||
|
||||
// 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->type = 'pdf';
|
||||
$this->page_largeur = 148.5;
|
||||
$this->page_hauteur = 210;
|
||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||
|
||||
$this->option_logo = 1; // Affiche logo
|
||||
|
||||
// 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 Fonction générant le document sur le disque
|
||||
* \param obj Objet expedition à générer (ou id si ancienne methode)
|
||||
* \return int 1=ok, 0=ko
|
||||
*/
|
||||
/**
|
||||
* \brief Fonction générant le document sur le disque
|
||||
* \param obj Objet expedition à générer (ou id si ancienne methode)
|
||||
* \return int 1=ok, 0=ko
|
||||
*/
|
||||
function write_file(&$obj, $outputlangs='')
|
||||
{
|
||||
global $user,$conf,$langs;
|
||||
|
||||
|
||||
if (! is_object($outputlangs)) $outputlangs=$langs;
|
||||
$outputlangs->load("main");
|
||||
$outputlangs->load("companies");
|
||||
$outputlangs->load("bills");
|
||||
$outputlangs->load("propal");
|
||||
$outputlangs->load("products");
|
||||
$outputlangs->load("sendings");
|
||||
$outputlangs->load("companies");
|
||||
$outputlangs->load("bills");
|
||||
$outputlangs->load("propal");
|
||||
$outputlangs->load("products");
|
||||
$outputlangs->load("sendings");
|
||||
|
||||
$outputlangs->setPhpLang();
|
||||
|
||||
|
|
@ -93,40 +93,40 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
$this->expe = $obj;
|
||||
|
||||
//Verification de la configuration
|
||||
if ($conf->expedition->dir_output)
|
||||
{
|
||||
if ($conf->expedition_bon->dir_output)
|
||||
{
|
||||
//Creation du Client
|
||||
$soc = new Societe($this->db);
|
||||
$soc->fetch($this->expe->commande->socid);
|
||||
|
||||
|
||||
//Creation de l expediteur
|
||||
$this->expediteur = $soc;
|
||||
//Creation du destinataire
|
||||
$this->destinataire = new Contact($this->db);
|
||||
// $pdf->expe->commande->fetch($pdf->commande->id);
|
||||
//print_r($pdf->expe);
|
||||
// $pdf->expe->commande->fetch($pdf->commande->id);
|
||||
//print_r($pdf->expe);
|
||||
$idcontact = $this->expe->commande->getIdContact('external','DESTINATAIRE');
|
||||
$this->destinataire->fetch($idcontact[0]);
|
||||
|
||||
|
||||
//Creation du livreur
|
||||
$idcontact = $this->expe->commande->getIdContact('internal','LIVREUR');
|
||||
$this->livreur = new User($this->db,$idcontact[0]);
|
||||
if ($idcontact[0]) $this->livreur->fetch();
|
||||
|
||||
|
||||
|
||||
// Définition de $dir et $file
|
||||
if ($this->expe->specimen)
|
||||
{
|
||||
$dir = $conf->expedition->dir_output;
|
||||
$dir = $conf->expedition_bon->dir_output;
|
||||
$file = $dir . "/SPECIMEN.pdf";
|
||||
}
|
||||
else
|
||||
{
|
||||
$expref = sanitize_string($this->expe->ref);
|
||||
$dir = $conf->expedition->dir_output . "/" . $expref;
|
||||
$dir = $conf->expedition_bon->dir_output . "/" . $expref;
|
||||
$file = $dir . "/" . $expref . ".pdf";
|
||||
}
|
||||
|
||||
|
||||
if (! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
|
|
@ -135,21 +135,21 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Si le dossier existe
|
||||
if (file_exists($dir))
|
||||
{
|
||||
// Initialisation Bon vierge
|
||||
// Initialisation Bon vierge
|
||||
$pdf = new FPDI_Protection('l','mm',$this->format);
|
||||
|
||||
// Protection et encryption du pdf
|
||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||
{
|
||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||
}
|
||||
|
||||
// Protection et encryption du pdf
|
||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||
{
|
||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||
}
|
||||
|
||||
$pdf->Open();
|
||||
$pdf->AddPage();
|
||||
|
|
@ -191,19 +191,19 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
$pdf->rect(20+3, $curY+1, 3, 3);
|
||||
//Insertion de la reference du produit
|
||||
$pdf->SetXY (30, $curY );
|
||||
$pdf->SetFont('Arial','B', 7);
|
||||
$pdf->SetFont('Arial','B', 7);
|
||||
$pdf->MultiCell(20, 5, $Prod->ref, 0, 'L', 0);
|
||||
//Insertion du libelle
|
||||
$pdf->SetFont('Arial','', 7);
|
||||
$pdf->SetFont('Arial','', 7);
|
||||
$pdf->SetXY (50, $curY );
|
||||
$pdf->MultiCell(130, 5, $Prod->libelle, 0, 'L', 0);
|
||||
//Insertion de la quantite
|
||||
$pdf->SetFont('Arial','', 7);
|
||||
$pdf->SetFont('Arial','', 7);
|
||||
$pdf->SetXY (180, $curY );
|
||||
$pdf->MultiCell(20, 5, $Produits[$i]->qty, 0, 'L', 0);
|
||||
//Generation de la page 2
|
||||
$curY += 4;
|
||||
$nexY = $curY;
|
||||
$nexY = $curY;
|
||||
if ($nexY > ($tab_top+$tab_height-10) && $i < $nblignes - 1){
|
||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
||||
$this->_pagefoot($pdf);
|
||||
|
|
@ -223,26 +223,26 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
$pdf->Close();
|
||||
|
||||
$pdf->Output($file);
|
||||
|
||||
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorConstantNotDefined","EXP_OUTPUTDIR");
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorConstantNotDefined","EXP_OUTPUTDIR");
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0;
|
||||
}
|
||||
$this->error=$outputlangs->transnoentities("ErrorUnknown");
|
||||
return 0;
|
||||
}
|
||||
$this->error=$outputlangs->transnoentities("ErrorUnknown");
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0; // Erreur par defaut
|
||||
return 0; // Erreur par defaut
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -252,10 +252,10 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
|
||||
|
||||
$pdf->SetFont('Arial','B',8);
|
||||
$pdf->SetXY(10,$tab_top);
|
||||
$pdf->MultiCell(10,5,"LS",0,'C',1);
|
||||
|
|
@ -295,32 +295,32 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
function _pagehead(&$pdf, $exp)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
|
||||
$tab4_top = 60;
|
||||
$tab4_hl = 6;
|
||||
$tab4_sl = 4;
|
||||
$ligne = 2;
|
||||
|
||||
//*********************LOGO****************************
|
||||
$logo=$conf->societe->dir_logos.'/'.$this->emetteur->logo;
|
||||
if ($this->emetteur->logo)
|
||||
{
|
||||
if (is_readable($logo))
|
||||
{
|
||||
$pdf->Image($logo,10, 5, 0, 24);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdf->SetTextColor(200,0,0);
|
||||
$pdf->SetFont('Arial','B',8);
|
||||
$pdf->MultiCell(100, 3, $langs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
|
||||
$pdf->MultiCell(100, 3, $langs->transnoentities("ErrorGoToModuleSetup"), 0, 'L');
|
||||
}
|
||||
}
|
||||
else if(defined("MAIN_INFO_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM)
|
||||
{
|
||||
$pdf->MultiCell(100, 4, MAIN_INFO_SOCIETE_NOM, 0, 'L');
|
||||
}
|
||||
$logo=$conf->societe->dir_logos.'/'.$this->emetteur->logo;
|
||||
if ($this->emetteur->logo)
|
||||
{
|
||||
if (is_readable($logo))
|
||||
{
|
||||
$pdf->Image($logo,10, 5, 0, 24);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdf->SetTextColor(200,0,0);
|
||||
$pdf->SetFont('Arial','B',8);
|
||||
$pdf->MultiCell(100, 3, $langs->transnoentities("ErrorLogoFileNotFound",$logo), 0, 'L');
|
||||
$pdf->MultiCell(100, 3, $langs->transnoentities("ErrorGoToModuleSetup"), 0, 'L');
|
||||
}
|
||||
}
|
||||
else if(defined("MAIN_INFO_SOCIETE_NOM") && FAC_PDF_SOCIETE_NOM)
|
||||
{
|
||||
$pdf->MultiCell(100, 4, MAIN_INFO_SOCIETE_NOM, 0, 'L');
|
||||
}
|
||||
|
||||
//*********************Entete****************************
|
||||
//Nom du Document
|
||||
|
|
@ -332,7 +332,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
//Num Expedition
|
||||
$Yoff = $Yoff+7;
|
||||
$Xoff = 140;
|
||||
// $pdf->rect($Xoff, $Yoff, 85, 8);
|
||||
// $pdf->rect($Xoff, $Yoff, 85, 8);
|
||||
$pdf->SetXY($Xoff,$Yoff);
|
||||
$pdf->SetFont('Arial','',8);
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
|
|
@ -340,7 +340,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
//$this->Code39($Xoff+43, $Yoff+1, $this->expe->ref,$ext = true, $cks = false, $w = 0.4, $h = 4, $wide = true);
|
||||
//Num Commande
|
||||
$Yoff = $Yoff+4;
|
||||
// $pdf->rect($Xoff, $Yoff, 85, 8);
|
||||
// $pdf->rect($Xoff, $Yoff, 85, 8);
|
||||
$pdf->SetXY($Xoff,$Yoff);
|
||||
$pdf->SetFont('Arial','',8);
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
|
|
@ -365,49 +365,49 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
$pdf->SetXY($blSocX,$blSocY+3);
|
||||
$pdf->MultiCell($blSocW, 3, FAC_PDF_ADRESSE, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("FAC_PDF_ADRESSE2")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX,$blSocY+6);
|
||||
$pdf->MultiCell($blSocW, 3, FAC_PDF_ADRESSE2, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("FAC_PDF_TEL")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX,$blSocY+10);
|
||||
$pdf->MultiCell($blSocW, 3, "Tel : " . FAC_PDF_TEL, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("FAC_PDF_MEL")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX,$blSocY+13);
|
||||
$pdf->MultiCell(40, 3, "Email : " . FAC_PDF_MEL, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("FAC_PDF_FAX")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX,$blSocY+16);
|
||||
$pdf->MultiCell(40, 3, "Fax : " . FAC_PDF_FAX, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("MAIN_INFO_SIRET")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX2,$blSocY+10);
|
||||
$pdf->MultiCell($blSocW, 3, "SIRET : " . MAIN_INFO_SIRET, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("MAIN_INFO_APE")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX2,$blSocY+13);
|
||||
$pdf->MultiCell($blSocW, 3, "APE : " . MAIN_INFO_APE, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
if (defined("MAIN_INFO_TVAINTRA")){
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->SetXY($blSocX2,$blSocY+16);
|
||||
$pdf->MultiCell($blSocW, 3, "ICOMM : " . MAIN_INFO_TVAINTRA, '' , 'L');
|
||||
}
|
||||
|
||||
|
||||
//Date Expedition
|
||||
$Yoff = $Yoff+7;
|
||||
$pdf->SetXY($blSocX,$blSocY+20);
|
||||
|
|
@ -455,7 +455,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition
|
|||
$pdf->SetXY($blExpX,$Yoff+$blSocY);
|
||||
$pdf->SetFont('Arial','',7);
|
||||
$pdf->MultiCell($blW,3, "Tel : ".$this->expediteur->tel, 0, 'L');
|
||||
|
||||
|
||||
/**********************************/
|
||||
//Emplacement Informations Destinataire (Contact livraison)
|
||||
/**********************************/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2005-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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
|
||||
|
|
@ -19,63 +19,63 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
|
||||
\ingroup expedition
|
||||
\brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Rouget
|
||||
\version $Id$
|
||||
*/
|
||||
\file htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php
|
||||
\ingroup expedition
|
||||
\brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Rouget
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT."/expedition/mods/pdf/ModelePdfExpedition.class.php";
|
||||
|
||||
|
||||
/**
|
||||
\class pdf_expedition_dorade
|
||||
\brief Classe permettant de générer les borderaux envoi au modèle Rouget
|
||||
*/
|
||||
\class pdf_expedition_dorade
|
||||
\brief Classe permettant de générer les borderaux envoi au modèle Rouget
|
||||
*/
|
||||
|
||||
Class pdf_expedition_rouget extends ModelePdfExpedition
|
||||
{
|
||||
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_expedition_rouget($db=0)
|
||||
{
|
||||
global $conf,$langs,$mysoc;
|
||||
global $conf,$langs,$mysoc;
|
||||
|
||||
$this->db = $db;
|
||||
$this->name = "rouget";
|
||||
$this->description = "Modèle simple.";
|
||||
|
||||
$this->type = 'pdf';
|
||||
$this->page_largeur = 210;
|
||||
$this->page_hauteur = 297;
|
||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||
$this->marge_gauche=10;
|
||||
$this->marge_droite=10;
|
||||
$this->marge_haute=10;
|
||||
$this->marge_basse=10;
|
||||
|
||||
$this->option_logo = 0;
|
||||
$this->type = 'pdf';
|
||||
$this->page_largeur = 210;
|
||||
$this->page_hauteur = 297;
|
||||
$this->format = array($this->page_largeur,$this->page_hauteur);
|
||||
$this->marge_gauche=10;
|
||||
$this->marge_droite=10;
|
||||
$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->option_logo = 0;
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* \param pdf Objet PDF
|
||||
* \param exp Objet expedition
|
||||
* \param showadress 0=non, 1=oui
|
||||
* \param outputlang Objet lang cible
|
||||
*/
|
||||
function _pagehead(&$pdf, $exp, $showadress=1, $outputlangs)
|
||||
* \param pdf Objet PDF
|
||||
* \param exp Objet expedition
|
||||
* \param showadress 0=non, 1=oui
|
||||
* \param outputlang Objet lang cible
|
||||
*/
|
||||
function _pagehead(&$pdf, $exp, $showadress=1, $outputlangs)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
if ($conf->barcode->enabled)
|
||||
{
|
||||
$posx=105;
|
||||
|
|
@ -84,69 +84,69 @@ Class pdf_expedition_rouget extends ModelePdfExpedition
|
|||
{
|
||||
$posx=$this->marge_gauche+3;
|
||||
}
|
||||
|
||||
|
||||
$pdf->Rect($this->marge_gauche, $this->marge_haute, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 30);
|
||||
|
||||
|
||||
if ($this->barcode->enabled)
|
||||
{
|
||||
$pdf->Code39($this->marge_gauche+3, $this->marge_haute+3, $this->expe->ref);
|
||||
}
|
||||
|
||||
$pdf->SetDrawColor(128,128,128);
|
||||
|
||||
$pdf->SetDrawColor(128,128,128);
|
||||
|
||||
$pdf->SetFont('Arial','', 14);
|
||||
$pdf->Text($posx, 16, $outputlangs->transnoentities("SendingSheet")); // Bordereau expedition
|
||||
$pdf->Text($posx, 22, $outputlangs->transnoentities("Ref") ." : ".$this->expe->ref);
|
||||
$pdf->Text($posx, 28, $outputlangs->transnoentities("Date")." : ".dolibarr_print_date($this->expe->date,"%d %b %Y"));
|
||||
$pdf->Text($posx, 34, $outputlangs->transnoentities("Page")." : ".$pdf->PageNo() ."/{nb}", 0);
|
||||
|
||||
|
||||
if ($this->barcode->enabled)
|
||||
{
|
||||
$pdf->Code39($this->marge_gauche+3, 44, $this->expe->commande->ref);
|
||||
}
|
||||
|
||||
|
||||
$pdf->SetFont('Arial','', 14);
|
||||
$pdf->Text($posx, 48, $outputlangs->transnoentities("Order"));
|
||||
$pdf->Text($posx, 54, $outputlangs->transnoentities("Ref") ." : ".$this->expe->commande->ref);
|
||||
$pdf->Text($posx, 60, $outputlangs->transnoentities("Date")." : ".dolibarr_print_date($this->expe->commande->date,"%d %b %Y"));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Fonction générant le document sur le disque
|
||||
* \param obj Objet expedition à générer (ou id si ancienne methode)
|
||||
* \return int 1=ok, 0=ko
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Fonction générant le document sur le disque
|
||||
* \param obj Objet expedition à générer (ou id si ancienne methode)
|
||||
* \return int 1=ok, 0=ko
|
||||
*/
|
||||
function write_file(&$obj, $outputlangs='')
|
||||
{
|
||||
global $user,$conf,$langs;
|
||||
|
||||
|
||||
if (! is_object($outputlangs)) $outputlangs=$langs;
|
||||
$outputlangs->load("main");
|
||||
$outputlangs->load("companies");
|
||||
$outputlangs->load("bills");
|
||||
$outputlangs->load("propal");
|
||||
$outputlangs->load("products");
|
||||
$outputlangs->load("companies");
|
||||
$outputlangs->load("bills");
|
||||
$outputlangs->load("propal");
|
||||
$outputlangs->load("products");
|
||||
|
||||
$outputlangs->setPhpLang();
|
||||
|
||||
if ($conf->expedition->dir_output)
|
||||
if ($conf->expedition_bon->dir_output)
|
||||
{
|
||||
$this->expe = $obj;
|
||||
|
||||
|
||||
// Définition de $dir et $file
|
||||
if ($this->expe->specimen)
|
||||
{
|
||||
$dir = $conf->expedition->dir_output;
|
||||
$dir = $conf->expedition_bon->dir_output;
|
||||
$file = $dir . "/SPECIMEN.pdf";
|
||||
}
|
||||
else
|
||||
{
|
||||
$expref = sanitize_string($this->expe->ref);
|
||||
$dir = $conf->expedition->dir_output . "/" . $expref;
|
||||
$dir = $conf->expedition_bon->dir_output . "/" . $expref;
|
||||
$file = $dir . "/" . $expref . ".pdf";
|
||||
}
|
||||
|
||||
|
||||
if (! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
|
|
@ -155,41 +155,41 @@ Class pdf_expedition_rouget extends ModelePdfExpedition
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists($dir))
|
||||
{
|
||||
$pdf=new ModelePdfExpedition();
|
||||
|
||||
if (file_exists($dir))
|
||||
{
|
||||
$pdf=new ModelePdfExpedition();
|
||||
//$this = new ModelePdfExpedition();
|
||||
//$this->expe = &$this->expe;
|
||||
|
||||
|
||||
$pdf->Open();
|
||||
$pdf->AliasNbPages();
|
||||
$pdf->AddPage();
|
||||
|
||||
|
||||
$pdf->SetTitle($this->expe->ref);
|
||||
$pdf->SetSubject($langs->transnoentities("Sending"));
|
||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||
//$this->pdf->SetAuthor($user->fullname);
|
||||
|
||||
$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right
|
||||
$pdf->SetAutoPageBreak(1,0);
|
||||
|
||||
$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right
|
||||
$pdf->SetAutoPageBreak(1,0);
|
||||
|
||||
$this->_pagehead($pdf,$this->exp,0,$outputlangs);
|
||||
|
||||
|
||||
$pdf->SetFont('Arial','', 14);
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
|
||||
$tab_top = 90;
|
||||
|
||||
$tab_top = 90;
|
||||
$height_note = 200;
|
||||
$pdf->Rect($this->marge_gauche, 80, $this->page_largeur-$this->marge_gauche-$this->marge_droite, 210);
|
||||
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note);
|
||||
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_note);
|
||||
if ($this->barcode->enabled)
|
||||
{
|
||||
$this->posxdesc=$this->marge_gauche+35;
|
||||
$this->posxdesc=$this->marge_gauche+35;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->posxdesc=$this->marge_gauche+1;
|
||||
$this->posxdesc=$this->marge_gauche+1;
|
||||
}
|
||||
$this->tableau_top = 80;
|
||||
|
||||
|
|
@ -205,74 +205,74 @@ Class pdf_expedition_rouget extends ModelePdfExpedition
|
|||
for ($i = 0 ; $i < sizeof($this->expe->lignes) ; $i++)
|
||||
{
|
||||
$curY = $this->tableau_top + 14 + ($i * 7);
|
||||
|
||||
|
||||
if ($this->barcode->enabled)
|
||||
{
|
||||
$pdf->i25($this->marge_gauche+3, ($curY - 2), "000000".$this->expe->lignes[$i]->fk_product, 1, 8);
|
||||
}
|
||||
|
||||
// Description de la ligne produit
|
||||
$libelleproduitservice=dol_htmlentitiesbr($this->expe->lignes[$i]->description,1);
|
||||
if ($this->expe->lignes[$i]->description&&$this->expe->lignes[$i]->description!=$com->lignes[$i]->libelle)
|
||||
{
|
||||
if ($libelleproduitservice) $libelleproduitservice.="<br>";
|
||||
$libelleproduitservice.=dol_htmlentitiesbr($this->expe->lignes[$i]->description,1);
|
||||
}
|
||||
// Si ligne associée à un code produit
|
||||
if ($this->expe->lignes[$i]->fk_product)
|
||||
{
|
||||
$prodser = new Product($this->db);
|
||||
$prodser->fetch($this->expe->lignes[$i]->fk_product);
|
||||
|
||||
// Description de la ligne produit
|
||||
$libelleproduitservice=dol_htmlentitiesbr($this->expe->lignes[$i]->description,1);
|
||||
if ($this->expe->lignes[$i]->description&&$this->expe->lignes[$i]->description!=$com->lignes[$i]->libelle)
|
||||
{
|
||||
if ($libelleproduitservice) $libelleproduitservice.="<br>";
|
||||
$libelleproduitservice.=dol_htmlentitiesbr($this->expe->lignes[$i]->description,1);
|
||||
}
|
||||
// Si ligne associée à un code produit
|
||||
if ($this->expe->lignes[$i]->fk_product)
|
||||
{
|
||||
$prodser = new Product($this->db);
|
||||
$prodser->fetch($this->expe->lignes[$i]->fk_product);
|
||||
|
||||
// On ajoute la ref
|
||||
if ($prodser->ref)
|
||||
if ($prodser->ref)
|
||||
{
|
||||
$prefix_prodserv = "";
|
||||
if($prodser->isservice())
|
||||
$prefix_prodserv = $outputlangs->transnoentities("Service")." ";
|
||||
else
|
||||
$prefix_prodserv = $outputlangs->transnoentities("Product")." ";
|
||||
if($prodser->isservice())
|
||||
$prefix_prodserv = $outputlangs->transnoentities("Service")." ";
|
||||
else
|
||||
$prefix_prodserv = $outputlangs->transnoentities("Product")." ";
|
||||
|
||||
$libelleproduitservice=$prefix_prodserv.$prodser->ref." - ".$libelleproduitservice;
|
||||
}
|
||||
$libelleproduitservice=$prefix_prodserv.$prodser->ref." - ".$libelleproduitservice;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
||||
|
||||
$pdf->writeHTMLCell(150, 3, $this->posxdesc, $curY, $libelleproduitservice, 0, 1);
|
||||
$pdf->writeHTMLCell(150, 3, $this->posxdesc, $curY, $libelleproduitservice, 0, 1);
|
||||
|
||||
$pdf->SetXY (160, $curY);
|
||||
$pdf->SetXY (160, $curY);
|
||||
$pdf->MultiCell(30, 3, $this->expe->lignes[$i]->qty_asked);
|
||||
|
||||
$pdf->SetXY (186, $curY);
|
||||
|
||||
$pdf->SetXY (186, $curY);
|
||||
$pdf->MultiCell(30, 3, $this->expe->lignes[$i]->qty_shipped);
|
||||
}
|
||||
$pdf->AliasNbPages();
|
||||
$pdf->AliasNbPages();
|
||||
|
||||
$pdf->Close();
|
||||
|
||||
$pdf->Close();
|
||||
|
||||
$pdf->Output($file);
|
||||
|
||||
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorConstantNotDefined","EXP_OUTPUTDIR");
|
||||
else
|
||||
{
|
||||
$this->error=$outputlangs->transnoentities("ErrorConstantNotDefined","EXP_OUTPUTDIR");
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0;
|
||||
}
|
||||
$this->error=$outputlangs->transnoentities("ErrorUnknown");
|
||||
return 0;
|
||||
}
|
||||
$this->error=$outputlangs->transnoentities("ErrorUnknown");
|
||||
$langs->setPhpLang(); // On restaure langue session
|
||||
return 0; // Erreur par defaut
|
||||
return 0; // Erreur par defaut
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -552,7 +552,7 @@ else
|
|||
*/
|
||||
|
||||
$livraisonref = sanitize_string($livraison->ref);
|
||||
$filedir = $conf->livraison->dir_output . '/' . $livraisonref;
|
||||
$filedir = $conf->livraison_bon->dir_output . '/' . $livraisonref;
|
||||
$urlsource = $_SERVER["PHP_SELF"]."?id=".$livraison->id;
|
||||
|
||||
$genallowed=$user->rights->expedition->livraison->creer;
|
||||
|
|
|
|||
|
|
@ -20,65 +20,66 @@
|
|||
* or see http://www.gnu.org/
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/livraison/mods/pdf/pdf_sirocco.modules.php
|
||||
\ingroup livraison
|
||||
\brief Fichier de la classe permettant de générer les bons de livraison au modèle Sirocco
|
||||
\version $Id$
|
||||
*/
|
||||
/**
|
||||
\file htdocs/livraison/mods/pdf/pdf_sirocco.modules.php
|
||||
\ingroup livraison
|
||||
\brief Fichier de la classe permettant de générer les bons de livraison au modèle Sirocco
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT."/livraison/mods/modules_livraison.php");
|
||||
|
||||
|
||||
/**
|
||||
\class pdf_sirocco
|
||||
\brief Classe permettant de générer les bons de livraison au modèle Sirocco
|
||||
*/
|
||||
\class pdf_sirocco
|
||||
\brief Classe permettant de générer les bons de livraison au modèle Sirocco
|
||||
*/
|
||||
|
||||
class pdf_sirocco extends ModelePDFDeliveryOrder
|
||||
{
|
||||
|
||||
/** \brief Constructeur
|
||||
\param db handler accès base de donnée
|
||||
*/
|
||||
function pdf_sirocco($db=0)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->name = "sirocco";
|
||||
$this->description = "Modèle de bon de livraison simple";
|
||||
/** \brief Constructeur
|
||||
\param db handler accès base de donnée
|
||||
*/
|
||||
function pdf_sirocco($db=0)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->name = "sirocco";
|
||||
$this->description = "Modèle de bon de livraison simple";
|
||||
|
||||
// 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);
|
||||
// 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->error = "";
|
||||
}
|
||||
|
||||
$this->error = "";
|
||||
}
|
||||
|
||||
/** \brief Renvoi dernière erreur
|
||||
\return string Dernière erreur
|
||||
*/
|
||||
function pdferror()
|
||||
{
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Fonction générant le bon de livraison sur le disque
|
||||
\param delivery Object livraison à générer
|
||||
\return int 1=ok, 0=ko
|
||||
*/
|
||||
function write_file($delivery)
|
||||
{
|
||||
|
||||
/** \brief Renvoi dernière erreur
|
||||
* \return string Dernière erreur
|
||||
*/
|
||||
function pdferror()
|
||||
{
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\brief Fonction générant le bon de livraison sur le disque
|
||||
\param delivery Object livraison à générer
|
||||
\param outputlangs Output language
|
||||
\return int 1 if OK, <=0 if KO
|
||||
*/
|
||||
function write_file($delivery,$outputlangs='')
|
||||
{
|
||||
global $user,$conf,$langs;
|
||||
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
$langs->load("products");
|
||||
$langs->load("deliveries");
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
$langs->load("products");
|
||||
$langs->load("deliveries");
|
||||
|
||||
if ($conf->livraison_bon->dir_output)
|
||||
{
|
||||
|
|
@ -93,287 +94,285 @@ class pdf_sirocco extends ModelePDFDeliveryOrder
|
|||
{
|
||||
dolibarr_print_error($db,$delivery->error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$deliveryref = sanitize_string($delivery->ref);
|
||||
$dir = $conf->livraison->dir_output;
|
||||
$dir = $conf->livraison_bon->dir_output;
|
||||
if (! eregi('specimen',$deliveryref)) $dir.= "/" . $deliveryref;
|
||||
$file = $dir . "/" . $deliveryref . ".pdf";
|
||||
|
||||
if (! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
{
|
||||
$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (! file_exists($dir))
|
||||
{
|
||||
if (create_exdir($dir) < 0)
|
||||
{
|
||||
$this->error=$langs->transnoentities("ErrorCanNotCreateDir",$dir);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists($dir))
|
||||
{
|
||||
// Protection et encryption du pdf
|
||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||
{
|
||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdf=new FPDI('P','mm',$this->format);
|
||||
}
|
||||
|
||||
$pdf->Open();
|
||||
$pdf->AddPage();
|
||||
|
||||
$pdf->SetTitle($delivery->ref);
|
||||
$pdf->SetSubject($langs->transnoentities("DeliveryOrder"));
|
||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||
$pdf->SetAuthor($user->fullname);
|
||||
|
||||
$this->_pagehead($pdf, $delivery);
|
||||
|
||||
/*
|
||||
*/
|
||||
$tab_top = 100;
|
||||
$tab_height = 140;
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
$pdf->SetFillColor(220,220,220);
|
||||
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Arial','', 10);
|
||||
|
||||
$pdf->SetXY (10, $tab_top + 10 );
|
||||
|
||||
$iniY = $pdf->GetY();
|
||||
$curY = $pdf->GetY();
|
||||
$nexY = $pdf->GetY();
|
||||
$nblignes = sizeof($delivery->lignes);
|
||||
|
||||
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||
{
|
||||
|
||||
$curY = $nexY;
|
||||
|
||||
$pdf->SetXY (30, $curY );
|
||||
|
||||
$pdf->MultiCell(100, 5, $delivery->lignes[$i]->desc, 0, 'J', 0);
|
||||
|
||||
$nexY = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY (10, $curY );
|
||||
|
||||
$pdf->MultiCell(20, 5, $delivery->lignes[$i]->ref, 0, 'C');
|
||||
|
||||
$pdf->SetXY (133, $curY );
|
||||
$pdf->MultiCell(10, 5, $delivery->lignes[$i]->tva_tx, 0, 'C');
|
||||
|
||||
$pdf->SetXY (145, $curY );
|
||||
$pdf->MultiCell(10, 5, $delivery->lignes[$i]->qty, 0, 'C');
|
||||
|
||||
$pdf->SetXY (156, $curY );
|
||||
$pdf->MultiCell(18, 5, price($delivery->lignes[$i]->price), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $curY );
|
||||
$total = price($delivery->lignes[$i]->price * $delivery->lignes[$i]->qty);
|
||||
$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);
|
||||
$pdf->AddPage();
|
||||
$nexY = $iniY;
|
||||
$this->_pagehead($pdf, $delivery);
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Arial','', 10);
|
||||
}
|
||||
}
|
||||
|
||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
||||
/*
|
||||
*
|
||||
*/
|
||||
$tab2_top = 241;
|
||||
$tab2_lh = 7;
|
||||
$tab2_height = $tab2_lh * 4;
|
||||
|
||||
$pdf->SetFont('Arial','', 11);
|
||||
|
||||
$pdf->Rect(132, $tab2_top, 68, $tab2_height);
|
||||
|
||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*3), 200, $tab2_top + $tab2_height - ($tab2_lh*3) );
|
||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*2), 200, $tab2_top + $tab2_height - ($tab2_lh*2) );
|
||||
$pdf->line(132, $tab2_top + $tab2_height - $tab2_lh, 200, $tab2_top + $tab2_height - $tab2_lh );
|
||||
|
||||
$pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + 0);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalHT"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("Discount"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh*2);
|
||||
$pdf->MultiCell(42, $tab2_lh, "Total HT après remise", 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh*3);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalVAT"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + ($tab2_lh*4));
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalTTC"), 1, 'R', 1);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + 0);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ht + $delivery->remise), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->remise), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh*2);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ht), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh*3);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_tva), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + ($tab2_lh*4));
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ttc), 1, 'R', 1);
|
||||
|
||||
|
||||
$pdf->Output($file);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$langs->transnoentities("ErrorConstantNotDefined","LIVRAISON_OUTPUTDIR");
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
$file = $dir . "/" . $deliveryref . ".pdf";
|
||||
|
||||
if (file_exists($dir))
|
||||
{
|
||||
// Protection et encryption du pdf
|
||||
if ($conf->global->PDF_SECURITY_ENCRYPTION)
|
||||
{
|
||||
$pdf=new FPDI_Protection('P','mm',$this->format);
|
||||
$pdfrights = array('print'); // Ne permet que l'impression du document
|
||||
$pdfuserpass = ''; // Mot de passe pour l'utilisateur final
|
||||
$pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini
|
||||
$pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass);
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdf=new FPDI('P','mm',$this->format);
|
||||
}
|
||||
|
||||
$pdf->Open();
|
||||
$pdf->AddPage();
|
||||
|
||||
$pdf->SetTitle($delivery->ref);
|
||||
$pdf->SetSubject($langs->transnoentities("DeliveryOrder"));
|
||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||
$pdf->SetAuthor($user->fullname);
|
||||
|
||||
$this->_pagehead($pdf, $delivery);
|
||||
|
||||
/*
|
||||
*/
|
||||
$tab_top = 100;
|
||||
$tab_height = 140;
|
||||
/*
|
||||
*
|
||||
*/
|
||||
|
||||
$pdf->SetFillColor(220,220,220);
|
||||
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Arial','', 10);
|
||||
|
||||
$pdf->SetXY (10, $tab_top + 10 );
|
||||
|
||||
$iniY = $pdf->GetY();
|
||||
$curY = $pdf->GetY();
|
||||
$nexY = $pdf->GetY();
|
||||
$nblignes = sizeof($delivery->lignes);
|
||||
|
||||
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||
{
|
||||
|
||||
$curY = $nexY;
|
||||
|
||||
$pdf->SetXY (30, $curY );
|
||||
|
||||
$pdf->MultiCell(100, 5, $delivery->lignes[$i]->desc, 0, 'J', 0);
|
||||
|
||||
$nexY = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY (10, $curY );
|
||||
|
||||
$pdf->MultiCell(20, 5, $delivery->lignes[$i]->ref, 0, 'C');
|
||||
|
||||
$pdf->SetXY (133, $curY );
|
||||
$pdf->MultiCell(10, 5, $delivery->lignes[$i]->tva_tx, 0, 'C');
|
||||
|
||||
$pdf->SetXY (145, $curY );
|
||||
$pdf->MultiCell(10, 5, $delivery->lignes[$i]->qty, 0, 'C');
|
||||
|
||||
$pdf->SetXY (156, $curY );
|
||||
$pdf->MultiCell(18, 5, price($delivery->lignes[$i]->price), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $curY );
|
||||
$total = price($delivery->lignes[$i]->price * $delivery->lignes[$i]->qty);
|
||||
$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);
|
||||
$pdf->AddPage();
|
||||
$nexY = $iniY;
|
||||
$this->_pagehead($pdf, $delivery);
|
||||
$pdf->SetTextColor(0,0,0);
|
||||
$pdf->SetFont('Arial','', 10);
|
||||
}
|
||||
}
|
||||
|
||||
$this->_tableau($pdf, $tab_top, $tab_height, $nexY);
|
||||
/*
|
||||
*
|
||||
*/
|
||||
$tab2_top = 241;
|
||||
$tab2_lh = 7;
|
||||
$tab2_height = $tab2_lh * 4;
|
||||
|
||||
$pdf->SetFont('Arial','', 11);
|
||||
|
||||
$pdf->Rect(132, $tab2_top, 68, $tab2_height);
|
||||
|
||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*3), 200, $tab2_top + $tab2_height - ($tab2_lh*3) );
|
||||
$pdf->line(132, $tab2_top + $tab2_height - ($tab2_lh*2), 200, $tab2_top + $tab2_height - ($tab2_lh*2) );
|
||||
$pdf->line(132, $tab2_top + $tab2_height - $tab2_lh, 200, $tab2_top + $tab2_height - $tab2_lh );
|
||||
|
||||
$pdf->line(174, $tab2_top, 174, $tab2_top + $tab2_height);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + 0);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalHT"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("Discount"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh*2);
|
||||
$pdf->MultiCell(42, $tab2_lh, "Total HT après remise", 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + $tab2_lh*3);
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalVAT"), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (132, $tab2_top + ($tab2_lh*4));
|
||||
$pdf->MultiCell(42, $tab2_lh, $langs->transnoentities("TotalTTC"), 1, 'R', 1);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + 0);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ht + $delivery->remise), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->remise), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh*2);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ht), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + $tab2_lh*3);
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_tva), 0, 'R', 0);
|
||||
|
||||
$pdf->SetXY (174, $tab2_top + ($tab2_lh*4));
|
||||
$pdf->MultiCell(26, $tab2_lh, price($delivery->total_ttc), 1, 'R', 1);
|
||||
|
||||
|
||||
$pdf->Output($file);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* \brief Affiche la grille des lignes de propales
|
||||
* \param pdf objet PDF
|
||||
*/
|
||||
/**
|
||||
* \brief Affiche la grille des lignes de propales
|
||||
* \param pdf objet PDF
|
||||
*/
|
||||
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
||||
{
|
||||
global $langs,$conf;
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
{
|
||||
global $langs,$conf;
|
||||
$langs->load("main");
|
||||
$langs->load("bills");
|
||||
|
||||
$pdf->SetFont('Arial','',11);
|
||||
|
||||
$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(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, $nexY - $tab_top);
|
||||
$pdf->Rect(10, $tab_top, 190, $tab_height);
|
||||
$pdf->SetFont('Arial','',11);
|
||||
|
||||
$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(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, $nexY - $tab_top);
|
||||
$pdf->Rect(10, $tab_top, 190, $tab_height);
|
||||
|
||||
|
||||
$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);
|
||||
$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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* \brief Affiche en-tête propale
|
||||
* \param pdf objet PDF
|
||||
* \param fac objet propale
|
||||
* \param showadress 0=non, 1=oui
|
||||
*/
|
||||
/*
|
||||
* \brief Affiche en-tête propale
|
||||
* \param pdf objet PDF
|
||||
* \param fac objet propale
|
||||
* \param showadress 0=non, 1=oui
|
||||
*/
|
||||
function _pagehead(&$pdf, $delivery)
|
||||
{
|
||||
{
|
||||
global $langs;
|
||||
$langs->load("deliveries");
|
||||
$pdf->SetXY(10,5);
|
||||
if (defined("MAIN_INFO_SOCIETE_NOM"))
|
||||
{
|
||||
$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->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"))
|
||||
{
|
||||
}
|
||||
if (defined("FAC_PDF_TEL"))
|
||||
{
|
||||
$pdf->SetFont('Arial','',10);
|
||||
$pdf->MultiCell(76, 5, "Tél : ".FAC_PDF_TEL);
|
||||
}
|
||||
if (defined("MAIN_INFO_SIREN"))
|
||||
{
|
||||
}
|
||||
if (defined("MAIN_INFO_SIREN"))
|
||||
{
|
||||
$pdf->SetFont('Arial','',10);
|
||||
$pdf->MultiCell(76, 5, "SIREN : ".MAIN_INFO_SIREN);
|
||||
}
|
||||
|
||||
if (defined("FAC_PDF_INTITULE2"))
|
||||
{
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user