Fix: Meilleure gestion erreur sur la gnration 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
{
dolibarr_syslog("Erreur dans propale_pdf_create");
dolibarr_print_error($db,$obj->pdferror());
return 0;
}

View File

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

View File

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

View File

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

View File

@ -1,5 +1,6 @@
<?php
/* 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
* it under the terms of the GNU General Public License as published by
@ -21,54 +22,71 @@
*
*/
/*! \file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php
\ingroup propale
\brief Fichier de la classe permettant de générer les propales au modèle Rouge
\version $Revision$
/**
\file htdocs/includes/modules/propale/pdf_propale_rouge.modules.php
\ingroup propale
\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
{
/*! \brief Constructeur
\param db handler accès base de donnée
/*! \brief Constructeur
\param db handler accès base de donnée
*/
function pdf_propale_rouge($db=0)
{
$this->db = $db;
$this->name = "rouge";
$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)
{
global $user;
global $user,$conf;
$propale = new Propal($this->db,"",$id);
if ($propale->fetch($id))
{
if (defined("PROPALE_OUTPUTDIR"))
if ($conf->propal->dir_output)
{
$dir = PROPALE_OUTPUTDIR . "/" . $propale->ref ;
umask(0);
if (! file_exists($dir))
{
mkdir($dir, 0755);
}
$dir = $conf->propal->dir_output . "/" . $propale->ref ;
if (! file_exists($dir))
{
umask(0);
if (! mkdir($dir, 0755))
{
$this->error=$langs->trans("ErrorCanNotCreateDir",$dir);
return 0;
}
}
}
else
{
print "PROPALE_OUTPUTDIR non définit !";
$this->error=$langs->trans("ErrorConstantNotDefined","PROPALE_OUTPUTDIR");
return 0;
}
$file = $dir . "/" . $propale->ref . ".pdf";
if (file_exists($dir))
@ -203,10 +221,6 @@ class pdf_propale_rouge extends ModelePDFPropales
}
/*
*
*/
$pdf->Output($file);
return 1;
}

View File

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