Gestion d'affichage de specimen sur propale
This commit is contained in:
parent
8d8add0018
commit
4aeb30dd08
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 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>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
|||||||
@ -110,7 +110,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la propale sur le disque
|
\brief Fonction générant la propale sur le disque
|
||||||
\param id Id de la propale à générer
|
\param propale Objet propal
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
\remarks Variables utilisées
|
\remarks Variables utilisées
|
||||||
\remarks MAIN_INFO_SOCIETE_NOM
|
\remarks MAIN_INFO_SOCIETE_NOM
|
||||||
@ -127,24 +127,32 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
\remarks MAIN_INFO_CAPITAL
|
\remarks MAIN_INFO_CAPITAL
|
||||||
\remarks MAIN_INFO_TVAINTRA
|
\remarks MAIN_INFO_TVAINTRA
|
||||||
*/
|
*/
|
||||||
function write_pdf_file($id)
|
function write_pdf_file($propale)
|
||||||
{
|
{
|
||||||
global $user,$langs,$conf;
|
global $user,$conf,$langs;
|
||||||
|
|
||||||
$langs->load("main");
|
|
||||||
$langs->load("bills");
|
|
||||||
$langs->load("products");
|
|
||||||
$langs->load("propal");
|
|
||||||
|
|
||||||
if ($conf->propal->dir_output)
|
if ($conf->propal->dir_output)
|
||||||
{
|
{
|
||||||
$prop = new Propal($this->db,"",$id);
|
// Définition de l'objet $propale (pour compatibilite ascendante)
|
||||||
$ret=$prop->fetch($id);
|
if (! is_object($propale))
|
||||||
$nblignes = sizeof($prop->lignes);
|
{
|
||||||
|
$id = $propale;
|
||||||
|
$propale = new Propal($this->db,"",$id);
|
||||||
|
$ret=$propale->fetch($id);
|
||||||
|
}
|
||||||
|
|
||||||
$propref = sanitize_string($prop->ref);
|
// Définition de $dir et $file
|
||||||
|
if ($propale->specimen)
|
||||||
|
{
|
||||||
|
$dir = $conf->propal->dir_output;
|
||||||
|
$file = $dir . "/SPECIMEN.pdf";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$propref = sanitize_string($propale->ref);
|
||||||
$dir = $conf->propal->dir_output . "/" . $propref;
|
$dir = $conf->propal->dir_output . "/" . $propref;
|
||||||
$file = $dir . "/" . $propref . ".pdf";
|
$file = $dir . "/" . $propref . ".pdf";
|
||||||
|
}
|
||||||
|
|
||||||
if (! file_exists($dir))
|
if (! file_exists($dir))
|
||||||
{
|
{
|
||||||
@ -164,7 +172,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
|
|
||||||
$pdf->SetDrawColor(128,128,128);
|
$pdf->SetDrawColor(128,128,128);
|
||||||
|
|
||||||
$pdf->SetTitle($prop->ref);
|
$pdf->SetTitle($propale->ref);
|
||||||
$pdf->SetSubject($langs->trans("Bill"));
|
$pdf->SetSubject($langs->trans("Bill"));
|
||||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||||
$pdf->SetAuthor($user->fullname);
|
$pdf->SetAuthor($user->fullname);
|
||||||
@ -175,13 +183,13 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
// Positionne $this->atleastonediscount si on a au moins une remise
|
// Positionne $this->atleastonediscount si on a au moins une remise
|
||||||
for ($i = 0 ; $i < $nblignes ; $i++)
|
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||||
{
|
{
|
||||||
if ($prop->lignes[$i]->remise_percent)
|
if ($propale->lignes[$i]->remise_percent)
|
||||||
{
|
{
|
||||||
$this->atleastonediscount++;
|
$this->atleastonediscount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_pagehead($pdf, $prop);
|
$this->_pagehead($pdf, $propale);
|
||||||
|
|
||||||
// Affiches lignes
|
// Affiches lignes
|
||||||
$pagenb = 1;
|
$pagenb = 1;
|
||||||
@ -190,13 +198,13 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$tab_height = 110;
|
$tab_height = 110;
|
||||||
|
|
||||||
// Affiche notes
|
// Affiche notes
|
||||||
if ($prop->note_public)
|
if ($propale->note_public)
|
||||||
{
|
{
|
||||||
$tab_top = 88;
|
$tab_top = 88;
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
||||||
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
$pdf->SetXY ($this->posxdesc-1, $tab_top);
|
||||||
$pdf->MultiCell(190, 3, $prop->note_public, 0, 'J');
|
$pdf->MultiCell(190, 3, $propale->note_public, 0, 'J');
|
||||||
$nexY = $pdf->GetY();
|
$nexY = $pdf->GetY();
|
||||||
$height_note=$nexY-$tab_top;
|
$height_note=$nexY-$tab_top;
|
||||||
|
|
||||||
@ -222,18 +230,18 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$curY = $nexY;
|
$curY = $nexY;
|
||||||
|
|
||||||
// Description de la ligne produit
|
// Description de la ligne produit
|
||||||
$libelleproduitservice=$prop->lignes[$i]->libelle;
|
$libelleproduitservice=$propale->lignes[$i]->libelle;
|
||||||
if ($prop->lignes[$i]->desc&&$prop->lignes[$i]->desc!=$prop->lignes[$i]->libelle)
|
if ($propale->lignes[$i]->desc&&$propale->lignes[$i]->desc!=$propale->lignes[$i]->libelle)
|
||||||
{
|
{
|
||||||
if ($libelleproduitservice) $libelleproduitservice.="\n";
|
if ($libelleproduitservice) $libelleproduitservice.="\n";
|
||||||
$libelleproduitservice.=$prop->lignes[$i]->desc;
|
$libelleproduitservice.=$propale->lignes[$i]->desc;
|
||||||
}
|
}
|
||||||
// Si ligne associée à un code produit
|
// Si ligne associée à un code produit
|
||||||
if ($prop->lignes[$i]->product_id)
|
if ($propale->lignes[$i]->product_id)
|
||||||
{
|
{
|
||||||
$prodser = new Product($this->db);
|
$prodser = new Product($this->db);
|
||||||
|
|
||||||
$prodser->fetch($prop->lignes[$i]->product_id);
|
$prodser->fetch($propale->lignes[$i]->product_id);
|
||||||
if ($prodser->ref)
|
if ($prodser->ref)
|
||||||
{
|
{
|
||||||
$prefix_prodserv = "";
|
$prefix_prodserv = "";
|
||||||
@ -248,17 +256,17 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
// Ajoute description du produit
|
// Ajoute description du produit
|
||||||
if ($conf->global->PROP_ADD_PROD_DESC && !$conf->global->PRODUIT_CHANGE_PROD_DESC)
|
if ($conf->global->PROP_ADD_PROD_DESC && !$conf->global->PRODUIT_CHANGE_PROD_DESC)
|
||||||
{
|
{
|
||||||
if ($prop->lignes[$i]->product_desc&&$prop->lignes[$i]->product_desc!=$fac->lignes[$i]->libelle&&$prop->lignes[$i]->product_desc!=$prop->lignes[$i]->desc)
|
if ($propale->lignes[$i]->product_desc&&$propale->lignes[$i]->product_desc!=$propale->lignes[$i]->libelle&&$propale->lignes[$i]->product_desc!=$propale->lignes[$i]->desc)
|
||||||
{
|
{
|
||||||
if ($libelleproduitservice) $libelleproduitservice.="\n";
|
if ($libelleproduitservice) $libelleproduitservice.="\n";
|
||||||
$libelleproduitservice.=$prop->lignes[$i]->product_desc;
|
$libelleproduitservice.=$propale->lignes[$i]->product_desc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($prop->lignes[$i]->date_start && $prop->lignes[$i]->date_end)
|
if ($propale->lignes[$i]->date_start && $propale->lignes[$i]->date_end)
|
||||||
{
|
{
|
||||||
// Affichage durée si il y en a une
|
// Affichage durée si il y en a une
|
||||||
$libelleproduitservice.="\n(".$langs->trans("From")." ".dolibarr_print_date($prop->lignes[$i]->date_start)." ".$langs->trans("to")." ".dolibarr_print_date($prop->lignes[$i]->date_end).")";
|
$libelleproduitservice.="\n(".$langs->trans("From")." ".dolibarr_print_date($propale->lignes[$i]->date_start)." ".$langs->trans("to")." ".dolibarr_print_date($propale->lignes[$i]->date_end).")";
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
$pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page
|
||||||
@ -270,33 +278,33 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
|
|
||||||
// TVA
|
// TVA
|
||||||
$pdf->SetXY ($this->posxtva, $curY);
|
$pdf->SetXY ($this->posxtva, $curY);
|
||||||
$pdf->MultiCell(10, 4, ($prop->lignes[$i]->tva_tx < 0 ? '*':'').abs($prop->lignes[$i]->tva_tx), 0, 'R');
|
$pdf->MultiCell(10, 4, ($propale->lignes[$i]->tva_tx < 0 ? '*':'').abs($propale->lignes[$i]->tva_tx), 0, 'R');
|
||||||
|
|
||||||
// Prix unitaire HT avant remise
|
// Prix unitaire HT avant remise
|
||||||
$pdf->SetXY ($this->posxup, $curY);
|
$pdf->SetXY ($this->posxup, $curY);
|
||||||
$pdf->MultiCell(18, 4, price($prop->lignes[$i]->subprice), 0, 'R', 0);
|
$pdf->MultiCell(18, 4, price($propale->lignes[$i]->subprice), 0, 'R', 0);
|
||||||
|
|
||||||
// Quantité
|
// Quantit
|
||||||
$pdf->SetXY ($this->posxqty, $curY);
|
$pdf->SetXY ($this->posxqty, $curY);
|
||||||
$pdf->MultiCell(10, 4, $prop->lignes[$i]->qty, 0, 'R');
|
$pdf->MultiCell(10, 4, $propale->lignes[$i]->qty, 0, 'R');
|
||||||
|
|
||||||
// Remise sur ligne
|
// Remise sur ligne
|
||||||
$pdf->SetXY ($this->posxdiscount, $curY);
|
$pdf->SetXY ($this->posxdiscount, $curY);
|
||||||
if ($prop->lignes[$i]->remise_percent)
|
if ($propale->lignes[$i]->remise_percent)
|
||||||
{
|
{
|
||||||
$pdf->MultiCell(14, 4, $prop->lignes[$i]->remise_percent."%", 0, 'R');
|
$pdf->MultiCell(14, 4, $propale->lignes[$i]->remise_percent."%", 0, 'R');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Total HT ligne
|
// Total HT ligne
|
||||||
$pdf->SetXY ($this->postotalht, $curY);
|
$pdf->SetXY ($this->postotalht, $curY);
|
||||||
$total = price($prop->lignes[$i]->price * $prop->lignes[$i]->qty);
|
$total = price($propale->lignes[$i]->price * $propale->lignes[$i]->qty);
|
||||||
$pdf->MultiCell(23, 4, $total, 0, 'R', 0);
|
$pdf->MultiCell(23, 4, $total, 0, 'R', 0);
|
||||||
|
|
||||||
// Collecte des totaux par valeur de tva
|
// Collecte des totaux par valeur de tva
|
||||||
// dans le tableau tva["taux"]=total_tva
|
// dans le tableau tva["taux"]=total_tva
|
||||||
$tvaligne=$prop->lignes[$i]->price * $prop->lignes[$i]->qty;
|
$tvaligne=$propale->lignes[$i]->price * $propale->lignes[$i]->qty;
|
||||||
if ($prop->remise_percent) $tvaligne-=($tvaligne*$prop->remise_percent)/100;
|
if ($propale->remise_percent) $tvaligne-=($tvaligne*$propale->remise_percent)/100;
|
||||||
$this->tva[ (string)$prop->lignes[$i]->tva_tx ] += $tvaligne;
|
$this->tva[ (string)$propale->lignes[$i]->tva_tx ] += $tvaligne;
|
||||||
|
|
||||||
$nexY+=2; // Passe espace entre les lignes
|
$nexY+=2; // Passe espace entre les lignes
|
||||||
|
|
||||||
@ -312,7 +320,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
// Nouvelle page
|
// Nouvelle page
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
$pagenb++;
|
$pagenb++;
|
||||||
$this->_pagehead($pdf, $prop, 0);
|
$this->_pagehead($pdf, $propale, 0);
|
||||||
|
|
||||||
$nexY = $tab_top_newpage + 8;
|
$nexY = $tab_top_newpage + 8;
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
@ -339,7 +347,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
|
|
||||||
$deja_regle = "";
|
$deja_regle = "";
|
||||||
|
|
||||||
$posy=$this->_tableau_tot($pdf, $prop, $deja_regle, $bottomlasttab);
|
$posy=$this->_tableau_tot($pdf, $propale, $deja_regle, $bottomlasttab);
|
||||||
|
|
||||||
if ($deja_regle) {
|
if ($deja_regle) {
|
||||||
$this->_tableau_versements($pdf, $fac, $posy);
|
$this->_tableau_versements($pdf, $fac, $posy);
|
||||||
@ -437,7 +445,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
/*
|
/*
|
||||||
* Conditions de règlements
|
* Conditions de règlements
|
||||||
*/
|
*/
|
||||||
if ($prop->cond_reglement_code)
|
if ($propale->cond_reglement_code)
|
||||||
{
|
{
|
||||||
$pdf->SetFont('Arial','B',8);
|
$pdf->SetFont('Arial','B',8);
|
||||||
$pdf->SetXY($this->marge_gauche, 217);
|
$pdf->SetXY($this->marge_gauche, 217);
|
||||||
@ -445,7 +453,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell(80, 5, $titre, 0, 'L');
|
$pdf->MultiCell(80, 5, $titre, 0, 'L');
|
||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
$pdf->SetXY(50, 217);
|
$pdf->SetXY(50, 217);
|
||||||
$lib_condition_paiement=$langs->trans("PaymentCondition".$prop->cond_reglement_code)?$langs->trans("PaymentCondition".$prop->cond_reglement_code):$prop->cond_reglement;
|
$lib_condition_paiement=$langs->trans("PaymentCondition".$propale->cond_reglement_code)?$langs->trans("PaymentCondition".$propale->cond_reglement_code):$propale->cond_reglement;
|
||||||
$pdf->MultiCell(80, 5, $lib_condition_paiement,0,'L');
|
$pdf->MultiCell(80, 5, $lib_condition_paiement,0,'L');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,6 +480,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$this->error=$langs->trans("ErrorConstantNotDefined","PROP_OUTPUTDIR");
|
$this->error=$langs->trans("ErrorConstantNotDefined","PROP_OUTPUTDIR");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->error=$langs->trans("ErrorUnknown");
|
$this->error=$langs->trans("ErrorUnknown");
|
||||||
return 0; // Erreur par defaut
|
return 0; // Erreur par defaut
|
||||||
}
|
}
|
||||||
@ -483,7 +492,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
* \param deja_regle Montant deja regle
|
* \param deja_regle Montant deja regle
|
||||||
* \return y Position pour suite
|
* \return y Position pour suite
|
||||||
*/
|
*/
|
||||||
function _tableau_tot(&$pdf, $prop, $deja_regle, $posy)
|
function _tableau_tot(&$pdf, $propale, $deja_regle, $posy)
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$langs->load("main");
|
$langs->load("main");
|
||||||
@ -510,22 +519,22 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalHT"), 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalHT"), 0, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + 0);
|
$pdf->SetXY ($col2x, $tab2_top + 0);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($prop->total_ht + $prop->remise), 0, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($propale->total_ht + $propale->remise), 0, 'R', 1);
|
||||||
|
|
||||||
// Remise globale
|
// Remise globale
|
||||||
if ($prop->remise > 0)
|
if ($propale->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', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("GlobalDiscount"), 0, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, "-".$prop->remise_percent."%", 0, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, "-".$propale->remise_percent."%", 0, 'R', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2);
|
$pdf->SetXY ($col1x, $tab2_top + $tab2_hl * 2);
|
||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, "Total HT après remise", 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, "Total HT après remise", 0, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * 2);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($prop->total_ht), 0, 'R', 0);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($propale->total_ht), 0, 'R', 0);
|
||||||
|
|
||||||
$index = 2;
|
$index = 2;
|
||||||
}
|
}
|
||||||
@ -558,7 +567,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalVAT"), 0, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalVAT"), 0, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($prop->total_tva), 0, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($propale->total_tva), 0, 'R', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
$useborder=0;
|
$useborder=0;
|
||||||
@ -570,7 +579,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalTTC"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("TotalTTC"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($prop->total_ttc), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($propale->total_ttc), $useborder, 'R', 1);
|
||||||
$pdf->SetFont('Arial','', 9);
|
$pdf->SetFont('Arial','', 9);
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
|
|
||||||
@ -591,7 +600,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("RemainderToPay"), $useborder, 'L', 1);
|
$pdf->MultiCell($col2x-$col1x, $tab2_hl, $langs->trans("RemainderToPay"), $useborder, 'L', 1);
|
||||||
|
|
||||||
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
$pdf->SetXY ($col2x, $tab2_top + $tab2_hl * $index);
|
||||||
$pdf->MultiCell($largcol2, $tab2_hl, price($prop->total_ttc - $deja_regle), $useborder, 'R', 1);
|
$pdf->MultiCell($largcol2, $tab2_hl, price($propale->total_ttc - $deja_regle), $useborder, 'R', 1);
|
||||||
$pdf->SetFont('Arial','', 9);
|
$pdf->SetFont('Arial','', 9);
|
||||||
$pdf->SetTextColor(0,0,0);
|
$pdf->SetTextColor(0,0,0);
|
||||||
}
|
}
|
||||||
@ -662,7 +671,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
* \param fac objet propale
|
* \param fac objet propale
|
||||||
* \param showadress 0=non, 1=oui
|
* \param showadress 0=non, 1=oui
|
||||||
*/
|
*/
|
||||||
function _pagehead(&$pdf, $prop, $showadress=1)
|
function _pagehead(&$pdf, $propale, $showadress=1)
|
||||||
{
|
{
|
||||||
global $langs,$conf,$mysoc;
|
global $langs,$conf,$mysoc;
|
||||||
|
|
||||||
@ -702,18 +711,18 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->SetFont('Arial','B',13);
|
$pdf->SetFont('Arial','B',13);
|
||||||
$pdf->SetXY(100,$posy);
|
$pdf->SetXY(100,$posy);
|
||||||
$pdf->SetTextColor(0,0,60);
|
$pdf->SetTextColor(0,0,60);
|
||||||
$pdf->MultiCell(100, 4, $langs->trans("Proposal")." ".$prop->ref, '' , 'R');
|
$pdf->MultiCell(100, 4, $langs->trans("Proposal")." ".$propale->ref, '' , 'R');
|
||||||
$pdf->SetFont('Arial','',12);
|
$pdf->SetFont('Arial','',12);
|
||||||
|
|
||||||
$posy+=6;
|
$posy+=6;
|
||||||
$pdf->SetXY(100,$posy);
|
$pdf->SetXY(100,$posy);
|
||||||
$pdf->SetTextColor(0,0,60);
|
$pdf->SetTextColor(0,0,60);
|
||||||
$pdf->MultiCell(100, 4, $langs->trans("Date")." : " . dolibarr_print_date($prop->date,"%d %b %Y"), '', 'R');
|
$pdf->MultiCell(100, 4, $langs->trans("Date")." : " . dolibarr_print_date($propale->date,"%d %b %Y"), '', 'R');
|
||||||
|
|
||||||
$posy+=6;
|
$posy+=6;
|
||||||
$pdf->SetXY(100,$posy);
|
$pdf->SetXY(100,$posy);
|
||||||
$pdf->SetTextColor(0,0,60);
|
$pdf->SetTextColor(0,0,60);
|
||||||
$pdf->MultiCell(100, 4, $langs->trans("DateEndPropal")." : " . dolibarr_print_date($prop->fin_validite,"%d %b %Y"), '', 'R');
|
$pdf->MultiCell(100, 4, $langs->trans("DateEndPropal")." : " . dolibarr_print_date($propale->fin_validite,"%d %b %Y"), '', 'R');
|
||||||
|
|
||||||
if ($showadress)
|
if ($showadress)
|
||||||
{
|
{
|
||||||
@ -770,7 +779,7 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
$pdf->SetFont('Arial','',8);
|
$pdf->SetFont('Arial','',8);
|
||||||
$pdf->SetXY(102,$posy-5);
|
$pdf->SetXY(102,$posy-5);
|
||||||
$pdf->MultiCell(80,5, $langs->trans("BillTo").":");
|
$pdf->MultiCell(80,5, $langs->trans("BillTo").":");
|
||||||
$prop->fetch_client();
|
$propale->fetch_client();
|
||||||
|
|
||||||
// Cadre client destinataire
|
// Cadre client destinataire
|
||||||
$pdf->rect(100, $posy, 100, $hautcadre);
|
$pdf->rect(100, $posy, 100, $hautcadre);
|
||||||
@ -778,12 +787,12 @@ class pdf_propale_azur extends ModelePDFPropales
|
|||||||
// Nom client
|
// Nom client
|
||||||
$pdf->SetXY(102,$posy+3);
|
$pdf->SetXY(102,$posy+3);
|
||||||
$pdf->SetFont('Arial','B',11);
|
$pdf->SetFont('Arial','B',11);
|
||||||
$pdf->MultiCell(106,4, $prop->client->nom, 0, 'L');
|
$pdf->MultiCell(106,4, $propale->client->nom, 0, 'L');
|
||||||
|
|
||||||
// Caractéristiques client
|
// Caractéristiques client
|
||||||
$carac_client=$prop->client->adresse;
|
$carac_client=$propale->client->adresse;
|
||||||
$carac_client.="\n".$prop->client->cp . " " . $prop->client->ville."\n";
|
$carac_client.="\n".$propale->client->cp . " " . $propale->client->ville."\n";
|
||||||
if ($prop->client->tva_intra) $carac_client.="\n".$langs->trans("VATIntraShort").': '.$prop->client->tva_intra;
|
if ($propale->client->tva_intra) $carac_client.="\n".$langs->trans("VATIntraShort").': '.$propale->client->tva_intra;
|
||||||
$pdf->SetFont('Arial','',9);
|
$pdf->SetFont('Arial','',9);
|
||||||
$pdf->SetXY(102,$posy+8);
|
$pdf->SetXY(102,$posy+8);
|
||||||
$pdf->MultiCell(86,4, $carac_client);
|
$pdf->MultiCell(86,4, $carac_client);
|
||||||
|
|||||||
@ -56,7 +56,8 @@ class pdf_propale_bleu extends ModelePDFPropales
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** \brief Renvoi dernière erreur
|
/**
|
||||||
|
\brief Renvoi dernière erreur
|
||||||
\return string Dernière erreur
|
\return string Dernière erreur
|
||||||
*/
|
*/
|
||||||
function pdferror()
|
function pdferror()
|
||||||
@ -67,21 +68,49 @@ class pdf_propale_bleu extends ModelePDFPropales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la propale sur le disque
|
\brief Fonction générant la propale sur le disque
|
||||||
\param id id de la propale à générer
|
\param propale Objet propal
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
|
\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($id)
|
function write_pdf_file($propale)
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs;
|
global $user,$conf,$langs;
|
||||||
|
|
||||||
$propale = new Propal($this->db,"",$id);
|
|
||||||
if ($propale->fetch($id))
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($conf->propal->dir_output)
|
if ($conf->propal->dir_output)
|
||||||
|
{
|
||||||
|
// Définition de l'objet $propal (pour compatibilite ascendante)
|
||||||
|
if (! is_object($propale))
|
||||||
|
{
|
||||||
|
$id = $propale;
|
||||||
|
$propale = new Propal($this->db,"",$id);
|
||||||
|
$ret=$propale->fetch($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Définition de $dir et $file
|
||||||
|
if ($propale->specimen)
|
||||||
|
{
|
||||||
|
$dir = $conf->propal->dir_output;
|
||||||
|
$file = $dir . "/SPECIMEN.pdf";
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$propref = sanitize_string($propale->ref);
|
$propref = sanitize_string($propale->ref);
|
||||||
$dir = $conf->propal->dir_output . "/" . $propref;
|
$dir = $conf->propal->dir_output . "/" . $propref;
|
||||||
|
$file = $dir . "/" . $propref . ".pdf";
|
||||||
|
}
|
||||||
|
|
||||||
if (! file_exists($dir))
|
if (! file_exists($dir))
|
||||||
{
|
{
|
||||||
@ -91,15 +120,6 @@ class pdf_propale_bleu extends ModelePDFPropales
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$propref = sanitize_string($propale->ref);
|
|
||||||
$file = $dir . "/" . $propref . ".pdf";
|
|
||||||
|
|
||||||
if (file_exists($dir))
|
if (file_exists($dir))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -67,21 +67,36 @@ class pdf_propale_jaune extends ModelePDFPropales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la propale sur le disque
|
\brief Fonction générant la propale sur le disque
|
||||||
\param id id de la propale à générer
|
\param propale Objet propal
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
function write_pdf_file($id)
|
function write_pdf_file($propale)
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs;
|
global $user,$conf,$langs;
|
||||||
|
|
||||||
$propale = new Propal($this->db,"",$id);
|
|
||||||
if ($propale->fetch($id))
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($conf->propal->dir_output)
|
if ($conf->propal->dir_output)
|
||||||
|
{
|
||||||
|
// Définition de l'objet $propal (pour compatibilite ascendante)
|
||||||
|
if (! is_object($propale))
|
||||||
|
{
|
||||||
|
$id = $propale;
|
||||||
|
$propale = new Propal($this->db,"",$id);
|
||||||
|
$ret=$propale->fetch($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Définition de $dir et $file
|
||||||
|
if ($propale->specimen)
|
||||||
|
{
|
||||||
|
$dir = $conf->propal->dir_output;
|
||||||
|
$file = $dir . "/SPECIMEN.pdf";
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$propref = sanitize_string($propale->ref);
|
$propref = sanitize_string($propale->ref);
|
||||||
$dir = $conf->propal->dir_output . "/" . $propref;
|
$dir = $conf->propal->dir_output . "/" . $propref;
|
||||||
|
$file = $dir . "/" . $propref . ".pdf";
|
||||||
|
}
|
||||||
|
|
||||||
if (! file_exists($dir))
|
if (! file_exists($dir))
|
||||||
{
|
{
|
||||||
if (create_exdir($dir) < 0)
|
if (create_exdir($dir) < 0)
|
||||||
@ -90,15 +105,6 @@ class pdf_propale_jaune extends ModelePDFPropales
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$propref = sanitize_string($propale->ref);
|
|
||||||
$file = $dir . "/" . $propref . ".pdf";
|
|
||||||
|
|
||||||
if (file_exists($dir))
|
if (file_exists($dir))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2006 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
|
||||||
* 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
|
||||||
@ -28,6 +28,7 @@
|
|||||||
\version $Revision$
|
\version $Revision$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/propal.class.php");
|
||||||
require_once(DOL_DOCUMENT_ROOT."/includes/modules/propale/modules_propale.php");
|
require_once(DOL_DOCUMENT_ROOT."/includes/modules/propale/modules_propale.php");
|
||||||
|
|
||||||
|
|
||||||
@ -69,21 +70,35 @@ class pdf_propale_rouge extends ModelePDFPropales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la propale sur le disque
|
\brief Fonction générant la propale sur le disque
|
||||||
\param id id de la propale à générer
|
\param propale Objet propal
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
function write_pdf_file($id)
|
function write_pdf_file($propale)
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs;
|
global $user,$conf,$langs;
|
||||||
|
|
||||||
$propale = new Propal($this->db,"",$id);
|
|
||||||
if ($propale->fetch($id))
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($conf->propal->dir_output)
|
if ($conf->propal->dir_output)
|
||||||
|
{
|
||||||
|
// Définition de l'objet $propal (pour compatibilite ascendante)
|
||||||
|
if (! is_object($propale))
|
||||||
|
{
|
||||||
|
$id = $propale;
|
||||||
|
$propale = new Propal($this->db,"",$id);
|
||||||
|
$ret=$propale->fetch($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Définition de $dir et $file
|
||||||
|
if ($propale->specimen)
|
||||||
|
{
|
||||||
|
$dir = $conf->propal->dir_output;
|
||||||
|
$file = $dir . "/SPECIMEN.pdf";
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$propref = sanitize_string($propale->ref);
|
$propref = sanitize_string($propale->ref);
|
||||||
$dir = $conf->propal->dir_output . "/" . $propref;
|
$dir = $conf->propal->dir_output . "/" . $propref;
|
||||||
|
$file = $dir . "/" . $propref . ".pdf";
|
||||||
|
}
|
||||||
|
|
||||||
if (! file_exists($dir))
|
if (! file_exists($dir))
|
||||||
{
|
{
|
||||||
@ -93,37 +108,22 @@ class pdf_propale_rouge extends ModelePDFPropales
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$propref = sanitize_string($propale->ref);
|
|
||||||
$file = $dir . "/" . $propref . ".pdf";
|
|
||||||
|
|
||||||
if (file_exists($dir))
|
if (file_exists($dir))
|
||||||
{
|
{
|
||||||
|
|
||||||
$pdf=new FPDF('P','mm',$this->format);
|
$pdf=new FPDF('P','mm',$this->format);
|
||||||
$pdf->Open();
|
$pdf->Open();
|
||||||
$pdf->AddPage();
|
$pdf->AddPage();
|
||||||
|
|
||||||
$pdf->SetTitle($propale->ref);
|
$pdf->SetTitle($propale->ref);
|
||||||
$pdf->SetSubject("Proposition commerciale");
|
$pdf->SetSubject($langs->trans("CommercialProposal"));
|
||||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||||
$pdf->SetAuthor($user->fullname);
|
$pdf->SetAuthor($user->fullname);
|
||||||
|
|
||||||
$this->_pagehead($pdf, $propale);
|
$this->_pagehead($pdf, $propale);
|
||||||
|
|
||||||
/*
|
|
||||||
*/
|
|
||||||
$tab_top = 100;
|
$tab_top = 100;
|
||||||
$tab_height = 140;
|
$tab_height = 140;
|
||||||
/*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
$pdf->SetFillColor(220,220,220);
|
$pdf->SetFillColor(220,220,220);
|
||||||
|
|
||||||
@ -139,7 +139,6 @@ class pdf_propale_rouge extends ModelePDFPropales
|
|||||||
|
|
||||||
for ($i = 0 ; $i < $nblignes ; $i++)
|
for ($i = 0 ; $i < $nblignes ; $i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
$curY = $nexY;
|
$curY = $nexY;
|
||||||
|
|
||||||
$pdf->SetXY (30, $curY );
|
$pdf->SetXY (30, $curY );
|
||||||
@ -234,13 +233,19 @@ class pdf_propale_rouge extends ModelePDFPropales
|
|||||||
$pdf->MultiCell(120, 5, PROP_PDF_MESSAGE);
|
$pdf->MultiCell(120, 5, PROP_PDF_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$pdf->Output($file);
|
$pdf->Output($file);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
function _tableau(&$pdf, $tab_top, $tab_height, $nexY)
|
||||||
{
|
{
|
||||||
global $langs,$conf;
|
global $langs,$conf;
|
||||||
|
|||||||
@ -68,21 +68,36 @@ class pdf_propale_vert extends ModelePDFPropales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Fonction générant la propale sur le disque
|
\brief Fonction générant la propale sur le disque
|
||||||
\param id id de la propale à générer
|
\param propale Objet propal
|
||||||
\return int 1=ok, 0=ko
|
\return int 1=ok, 0=ko
|
||||||
*/
|
*/
|
||||||
function write_pdf_file($id)
|
function write_pdf_file($propale)
|
||||||
{
|
{
|
||||||
global $user,$conf,$langs;
|
global $user,$conf,$langs;
|
||||||
|
|
||||||
$propale = new Propal($this->db,"",$id);
|
|
||||||
if ($propale->fetch($id))
|
|
||||||
{
|
|
||||||
|
|
||||||
if ($conf->propal->dir_output)
|
if ($conf->propal->dir_output)
|
||||||
|
{
|
||||||
|
// Définition de l'objet $propal (pour compatibilite ascendante)
|
||||||
|
if (! is_object($propale))
|
||||||
|
{
|
||||||
|
$id = $propale;
|
||||||
|
$propale = new Propal($this->db,"",$id);
|
||||||
|
$ret=$propale->fetch($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Définition de $dir et $file
|
||||||
|
if ($propale->specimen)
|
||||||
|
{
|
||||||
|
$dir = $conf->propal->dir_output;
|
||||||
|
$file = $dir . "/SPECIMEN.pdf";
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$propref = sanitize_string($propale->ref);
|
$propref = sanitize_string($propale->ref);
|
||||||
$dir = $conf->propal->dir_output . "/" . $propref;
|
$dir = $conf->propal->dir_output . "/" . $propref;
|
||||||
|
$file = $dir . "/" . $propref . ".pdf";
|
||||||
|
}
|
||||||
|
|
||||||
if (! file_exists($dir))
|
if (! file_exists($dir))
|
||||||
{
|
{
|
||||||
if (create_exdir($dir) < 0)
|
if (create_exdir($dir) < 0)
|
||||||
@ -91,15 +106,6 @@ class pdf_propale_vert extends ModelePDFPropales
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$propref = sanitize_string($propale->ref);
|
|
||||||
$file = $dir . "/" . $propref . ".pdf";
|
|
||||||
|
|
||||||
if (file_exists($dir))
|
if (file_exists($dir))
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user