Fix: Meilleure gestion erreur sur la génération des propales PDF et correction d'erreurs.

This commit is contained in:
Laurent Destailleur 2004-12-23 17:52:48 +00:00
parent 03ed0cdddd
commit 79a694a546
6 changed files with 124 additions and 53 deletions

View File

@ -131,6 +131,7 @@ function propale_pdf_create($db, $facid, $modele='')
} }
else else
{ {
dolibarr_syslog("Erreur dans propale_pdf_create");
dolibarr_print_error($db,$obj->pdferror()); dolibarr_print_error($db,$obj->pdferror());
return 0; return 0;
} }

View File

@ -43,31 +43,45 @@ class pdf_propale_adytek extends ModelePDFPropales
$this->db = $db; $this->db = $db;
$this->name = "Adytek"; $this->name = "Adytek";
$this->description = "Modèle de proposition Adytek"; $this->description = "Modèle de proposition Adytek";
$this->error = "";
} }
/*!
function pdferror()
{
return $this->error();
}
/**
\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 id id de la propale à générer
\return int 1=ok, 0=ko
*/ */
function write_pdf_file($id) function write_pdf_file($id)
{ {
global $user; global $user,$conf;
$propale = new Propal($this->db,"",$id); $propale = new Propal($this->db,"",$id);
if ($propale->fetch($id)) if ($propale->fetch($id))
{ {
if (defined("PROPALE_OUTPUTDIR")) if ($conf->propal->dir_output)
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ; $dir = $conf->propal->dir_output . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir)) if (! file_exists($dir))
{ {
mkdir($dir, 0755); umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
} }
} }
else else
{ {
print "PROPALE_OUTPUTDIR non définit !"; $this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
} }
$file = $dir . "/" . $propale->ref . ".pdf"; $file = $dir . "/" . $propale->ref . ".pdf";

View File

@ -43,31 +43,45 @@ class pdf_propale_bleu extends ModelePDFPropales
$this->db = $db; $this->db = $db;
$this->name = "bleu"; $this->name = "bleu";
$this->description = "Modèle de propale sans remise."; $this->description = "Modèle de propale sans remise.";
$this->error = "";
} }
/*!
function pdferror()
{
return $this->error();
}
/**
\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 id id de la propale à générer
\return int 1=ok, 0=ko
*/ */
function write_pdf_file($id) function write_pdf_file($id)
{ {
global $user; global $user,$conf;
$propale = new Propal($this->db,"",$id); $propale = new Propal($this->db,"",$id);
if ($propale->fetch($id)) if ($propale->fetch($id))
{ {
if (defined("PROPALE_OUTPUTDIR")) if ($conf->propal->dir_output)
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ; $dir = $conf->propal->dir_output . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir)) if (! file_exists($dir))
{ {
mkdir($dir, 0755); umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
} }
} }
else else
{ {
print "PROPALE_OUTPUTDIR non définit !"; $this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
} }
$file = $dir . "/" . $propale->ref . ".pdf"; $file = $dir . "/" . $propale->ref . ".pdf";

View File

@ -43,31 +43,45 @@ class pdf_propale_jaune extends ModelePDFPropales
$this->db = $db; $this->db = $db;
$this->name = "Jaune"; $this->name = "Jaune";
$this->description = "Modèle de proposition Jaune"; $this->description = "Modèle de proposition Jaune";
$this->error = "";
} }
/*!
function pdferror()
{
return $this->error();
}
/**
\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 id id de la propale à générer
\return int 1=ok, 0=ko
*/ */
function write_pdf_file($id) function write_pdf_file($id)
{ {
global $user; global $user,$conf;
$propale = new Propal($this->db,"",$id); $propale = new Propal($this->db,"",$id);
if ($propale->fetch($id)) if ($propale->fetch($id))
{ {
if (defined("PROPALE_OUTPUTDIR")) if ($conf->propal->dir_output)
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ; $dir = $conf->propal->dir_output . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir)) if (! file_exists($dir))
{ {
mkdir($dir, 0755); umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
} }
} }
else else
{ {
print "PROPALE_OUTPUTDIR non définit !"; $this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
} }
$file = $dir . "/" . $propale->ref . ".pdf"; $file = $dir . "/" . $propale->ref . ".pdf";
@ -78,7 +92,7 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf=new FPDF('P','mm','A4'); $pdf=new FPDF('P','mm','A4');
$pdf->Open(); $pdf->Open();
$pdf->SetTitle($fac->ref); $pdf->SetTitle($propale->ref);
$pdf->SetSubject("Proposition commerciale"); $pdf->SetSubject("Proposition commerciale");
$pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetCreator("Dolibarr ".DOL_VERSION);
$pdf->SetAuthor($user->fullname); $pdf->SetAuthor($user->fullname);

View File

@ -1,5 +1,6 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 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
@ -21,14 +22,16 @@
* *
*/ */
/*! \file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php /**
\file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php
\ingroup propale \ingroup propale
\brief Fichier de la classe permettant de générer les propales au modèle Rouge \brief Fichier de la classe permettant de générer les propales au modèle Rouge
\version $Revision$ \version $Revision$
*/ */
/*! \class pdf_propale_rouge /**
\class pdf_propale_rouge
\brief Classe permettant de générer les propales au modèle Rouge \brief Classe permettant de générer les propales au modèle Rouge
*/ */
@ -43,30 +46,45 @@ class pdf_propale_rouge extends ModelePDFPropales
$this->db = $db; $this->db = $db;
$this->name = "rouge"; $this->name = "rouge";
$this->description = "Modèle de propale par défaut"; $this->description = "Modèle de propale par défaut";
$this->error = "";
} }
/*! \brief Fonction générant la propale sur le disque
function pdferror()
{
return $this->error();
}
/**
\brief Fonction générant la propale sur le disque
\param id id de la propale à générer \param id id de la propale à générer
\return int 1=ok, 0=ko
*/ */
function write_pdf_file($id) function write_pdf_file($id)
{ {
global $user; global $user,$conf;
$propale = new Propal($this->db,"",$id); $propale = new Propal($this->db,"",$id);
if ($propale->fetch($id)) if ($propale->fetch($id))
{ {
if (defined("PROPALE_OUTPUTDIR")) if ($conf->propal->dir_output)
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ; $dir = $conf->propal->dir_output . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir)) if (! file_exists($dir))
{ {
mkdir($dir, 0755); umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
} }
} }
else else
{ {
print "PROPALE_OUTPUTDIR non définit !"; $this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
} }
$file = $dir . "/" . $propale->ref . ".pdf"; $file = $dir . "/" . $propale->ref . ".pdf";
@ -203,10 +221,6 @@ class pdf_propale_rouge extends ModelePDFPropales
} }
/*
*
*/
$pdf->Output($file); $pdf->Output($file);
return 1; return 1;
} }

View File

@ -43,31 +43,45 @@ class pdf_propale_vert extends ModelePDFPropales
$this->db = $db; $this->db = $db;
$this->name = "vert"; $this->name = "vert";
$this->description = "Affichage de la remise par produit"; $this->description = "Affichage de la remise par produit";
$this->error = "";
} }
/*!
function pdferror()
{
return $this->error();
}
/**
\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 id id de la propale à générer
\return int 1=ok, 0=ko
*/ */
function write_pdf_file($id) function write_pdf_file($id)
{ {
global $user; global $user,$conf;
$propale = new Propal($this->db,"",$id); $propale = new Propal($this->db,"",$id);
if ($propale->fetch($id)) if ($propale->fetch($id))
{ {
if (defined("PROPALE_OUTPUTDIR")) if ($conf->propal->dir_output)
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ; $dir = $conf->propal->dir_output . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir)) if (! file_exists($dir))
{ {
mkdir($dir, 0755); umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
} }
} }
else else
{ {
print "PROPALE_OUTPUTDIR non définit !"; $this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
} }
$file = $dir . "/" . $propale->ref . ".pdf"; $file = $dir . "/" . $propale->ref . ".pdf";