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 = $conf->propal->dir_output . "/" . $propale->ref ;
if (! file_exists($dir))
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ;
umask(0); umask(0);
if (! file_exists($dir)) if (! mkdir($dir, 0755))
{ {
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,52 +22,69 @@
* *
*/ */
/*! \file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php /**
\ingroup propale \file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php
\brief Fichier de la classe permettant de générer les propales au modèle Rouge \ingroup propale
\version $Revision$ \brief Fichier de la classe permettant de générer les propales au modèle Rouge
\version $Revision$
*/ */
/*! \class pdf_propale_rouge /**
\brief Classe permettant de générer les propales au modèle Rouge \class pdf_propale_rouge
\brief Classe permettant de générer les propales au modèle Rouge
*/ */
class pdf_propale_rouge extends ModelePDFPropales class pdf_propale_rouge extends ModelePDFPropales
{ {
/*! \brief Constructeur /*! \brief Constructeur
\param db handler accès base de donnée \param db handler accès base de donnée
*/ */
function pdf_propale_rouge($db=0) function pdf_propale_rouge($db=0)
{ {
$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
\param id id de la propale à générer function pdferror()
{
return $this->error();
}
/**
\brief Fonction générant la propale sur le disque
\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)) {
{ umask(0);
mkdir($dir, 0755); 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 = $conf->propal->dir_output . "/" . $propale->ref ;
if (! file_exists($dir))
{ {
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ;
umask(0); umask(0);
if (! file_exists($dir)) if (! mkdir($dir, 0755))
{ {
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";