New: Amélioration de la gestion des erreurs sur la génération des factures.

Fix: register_globals=off sur la page config facture et constantes autres.
New: Toutes les contantes de config en rapport avec le module facture (FAC_) ont été sorties de la page "autres" et placées dans la page config du module facture.
This commit is contained in:
Laurent Destailleur 2004-07-25 13:12:15 +00:00
parent 23e18edfc0
commit d6b11b2848
10 changed files with 283 additions and 82 deletions

View File

@ -32,37 +32,40 @@ print_titre("Configuration autre (Dolibarr version ".DOL_VERSION.")");
//print_r(get_defined_constants()); //print_r(get_defined_constants());
print "<br>\n"; print "<br>\n";
print '<table class="noborder" cellpadding="3" cellspacing="0" width="100%">';
print '<TR class="liste_titre">';
print '<TD>Nom</TD>';
print '<TD>Valeur</TD>';
print '<TD>Type</TD>';
print '<TD>Note</TD>';
print "<TD>Action</TD>";
print "</TR>\n";
$form = new Form($db);
$typeconst=array('yesno','texte','chaine'); $typeconst=array('yesno','texte','chaine');
if ($_POST["action"] == 'update' || $_POST["action"] == 'add')
if ($HTTP_POST_VARS["action"] == 'update' || $HTTP_POST_VARS["action"] == 'add')
{ {
if (! dolibarr_set_const($db, $HTTP_POST_VARS["constname"],$HTTP_POST_VARS["constvalue"],$typeconst[$HTTP_POST_VARS["consttype"]],1,isset($HTTP_POST_VARS["constnote"])?$HTTP_POST_VARS["constnote"]:'')); if (! dolibarr_set_const($db, $_POST["constname"],$_POST["constvalue"],$typeconst[$_POST["consttype"]],1,isset($_POST["constnote"])?$_POST["constnote"]:''));
{ {
print $db->error(); print $db->error();
} }
} }
if ($_GET["action"] == 'delete') if ($_GET["action"] == 'delete')
{ {
if (! dolibarr_del_const($db, $HTTP_POST_VARS["constname"])); if (! dolibarr_del_const($db, $_GET["rowid"]));
{ {
print $db->error(); print $db->error();
} }
} }
print '<table class="noborder" cellpadding="2" cellspacing="0" width="100%">';
print '<tr class="liste_titre">';
print '<td>Nom</td>';
print '<td>Valeur</td>';
print '<td>Type</td>';
print '<td>Note</td>';
print "<td>Action</td>";
print "</tr>\n";
# Affiche lignes des constantes
$form = new Form($db);
if ($all==1){ if ($all==1){
$sql = "SELECT rowid, name, value, type, note FROM llx_const ORDER BY name ASC"; $sql = "SELECT rowid, name, value, type, note FROM llx_const ORDER BY name ASC";
}else{ }else{
@ -80,7 +83,7 @@ if ($result)
$obj = $db->fetch_object( $i); $obj = $db->fetch_object( $i);
$var=!$var; $var=!$var;
print '<form action="'.$PHP_SELF.'" method="POST">'; print '<form action="const.php" method="POST">';
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="rowid" value="'.$rowid.'">'; print '<input type="hidden" name="rowid" value="'.$rowid.'">';
print '<input type="hidden" name="constname" value="'.$obj->name.'">'; print '<input type="hidden" name="constname" value="'.$obj->name.'">';
@ -96,7 +99,7 @@ if ($result)
} }
elseif ($obj->type == 'texte') elseif ($obj->type == 'texte')
{ {
print '<textarea name="constvalue" cols="35" rows="5" wrap="soft">'; print '<textarea name="constvalue" cols="35" rows="4" wrap="soft">';
print $obj->value; print $obj->value;
print "</textarea>\n"; print "</textarea>\n";
print '</td><td>'; print '</td><td>';
@ -113,16 +116,18 @@ if ($result)
print '<input type="text" size="15" name="constnote" value="'.stripslashes(nl2br($obj->note)).'">'; print '<input type="text" size="15" name="constnote" value="'.stripslashes(nl2br($obj->note)).'">';
print '</td><td>'; print '</td><td>';
print '<input type="Submit" value="Update" name="Button"> &nbsp; '; print '<input type="Submit" value="Update" name="Button"> &nbsp; ';
print '<a href="'.$PHP_SELF.'?rowid='.$obj->rowid.'&action=delete">'.img_delete().'</a>'; print '<a href="const.php?rowid='.$obj->rowid.'&action=delete">'.img_delete().'</a>';
print "</td></tr>\n"; print "</td></tr>\n";
print '</form>'; print '</form>';
$i++; $i++;
} }
} }
$var=!$var;
print '<form action="'.$PHP_SELF.'" method="POST">';
# Affiche ligne d'ajout
$var=!$var;
print '<form action="const.php" method="POST">';
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
print "<tr $bc[$var] class=value><td><input type=\"text\" size=\"15\" name=\"constname\" value=\"\"></td>\n"; print "<tr $bc[$var] class=value><td><input type=\"text\" size=\"15\" name=\"constname\" value=\"\"></td>\n";
@ -143,6 +148,8 @@ print '</form>';
print '</tr>'; print '</tr>';
print '</table>'; print '</table>';
$db->close(); $db->close();

View File

@ -24,20 +24,6 @@ require("./pre.inc.php");
if (!$user->admin) if (!$user->admin)
accessforbidden(); accessforbidden();
/*
if ($HTTP_POST_VARS["action"] == 'update')
{
dolibarr_set_const($db, "FAC_PDF_INTITULE2",$HTTP_POST_VARS["nom2"]);
dolibarr_set_const($db, "FAC_PDF_INTITULE",$HTTP_POST_VARS["nom"]);
dolibarr_set_const($db, "FAC_PDF_ADRESSE",$HTTP_POST_VARS["adresse"]);
dolibarr_set_const($db, "FAC_PDF_TEL",$HTTP_POST_VARS["tel"]);
dolibarr_set_const($db, "FAC_PDF_FAX",$HTTP_POST_VARS["fax"]);
dolibarr_set_const($db, "FAC_PDF_SIREN",$HTTP_POST_VARS["siren"]);
dolibarr_set_const($db, "FAC_PDF_SIRET",$HTTP_POST_VARS["siret"]);
Header("Location: facture.php");
}
*/
$facture_addon_var = FACTURE_ADDON; $facture_addon_var = FACTURE_ADDON;
$facture_addon_var_pdf = FACTURE_ADDON_PDF; $facture_addon_var_pdf = FACTURE_ADDON_PDF;
@ -45,6 +31,9 @@ $facture_rib_number_var = FACTURE_RIB_NUMBER;
$facture_chq_number_var = FACTURE_CHQ_NUMBER; $facture_chq_number_var = FACTURE_CHQ_NUMBER;
$facture_tva_option = FACTURE_TVAOPTION; $facture_tva_option = FACTURE_TVAOPTION;
$typeconst=array('yesno','texte','chaine');
if ($_GET["action"] == 'set') if ($_GET["action"] == 'set')
{ {
if (dolibarr_set_const($db, "FACTURE_ADDON",$_GET["value"])) $facture_addon_var = $_GET["value"]; if (dolibarr_set_const($db, "FACTURE_ADDON",$_GET["value"])) $facture_addon_var = $_GET["value"];
@ -65,25 +54,44 @@ if ($_POST["action"] == 'settvaoption')
{ {
if (dolibarr_set_const($db, "FACTURE_TVAOPTION",$_POST["optiontva"])) $facture_tva_option = $_POST["optiontva"]; if (dolibarr_set_const($db, "FACTURE_TVAOPTION",$_POST["optiontva"])) $facture_tva_option = $_POST["optiontva"];
} }
if ($_POST["action"] == 'update' || $_POST["action"] == 'add')
{
if (! dolibarr_set_const($db, $_POST["constname"],$_POST["constvalue"],$typeconst[$_POST["consttype"]],0,isset($_POST["constnote"])?$_POST["constnote"]:''));
{
print $db->error();
}
}
if ($_GET["action"] == 'delete')
{
if (! dolibarr_del_const($db, $_GET["rowid"]));
{
print $db->error();
}
}
llxHeader(); llxHeader();
$dir = "../includes/modules/facture/"; $dir = "../includes/modules/facture/";
print_titre("Configuration du module Factures"); print_titre("Configuration du module Factures");
/* /*
* Module numérotation * Module numérotation
*/ */
print "<br>"; print "<br>";
print_titre("Module de numérotation des factures"); print_titre("Module de numérotation des factures");
print '<table class="noborder" cellpadding="3" cellspacing="0" width=\"100%\">'; print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">';
print '<TR class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>Nom</td>'; print '<td>Nom</td>';
print '<td>Description</td>'; print '<td>Description</td>';
print '<td align="center" width="60">Activé</td>'; print '<td align="center" width="60">Activé</td>';
print '<td width="80">&nbsp;</td>'; print '<td width="80">&nbsp;</td>';
print "</TR>\n"; print "</tr>\n";
clearstatcache(); clearstatcache();
@ -130,7 +138,7 @@ print '</table>';
print '<br>'; print '<br>';
print_titre("Modèles de facture pdf"); print_titre("Modèles de facture pdf");
print '<table class="noborder" cellpadding="3" cellspacing="0" width=\"100%\">'; print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>Nom</td>'; print '<td>Nom</td>';
print '<td>Description</td>'; print '<td>Description</td>';
@ -189,7 +197,8 @@ print '</table>';
print '<br>'; print '<br>';
print_titre( "Mode de règlement à afficher sur les factures"); print_titre( "Mode de règlement à afficher sur les factures");
print '<table class="noborder" cellpadding="3" cellspacing="0" width=\"100%\">'; print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">';
$var=True;
print '<form action="facture.php" method="post">'; print '<form action="facture.php" method="post">';
print '<input type="hidden" name="action" value="setribchq">'; print '<input type="hidden" name="action" value="setribchq">';
@ -197,11 +206,11 @@ print '<tr class="liste_titre">';
print '<td>Mode règlement à proposer</td>'; print '<td>Mode règlement à proposer</td>';
print '<td align="right"><input type="submit" value="Modifier"></td>'; print '<td align="right"><input type="submit" value="Modifier"></td>';
print "</tr>\n"; print "</tr>\n";
print '<tr '.$bc[True].'>'; $var=!$var;
print '<tr '.$bc[$var].'>';
print "<td>Proposer paiement par RIB sur le compte</td>"; print "<td>Proposer paiement par RIB sur le compte</td>";
print "<td>"; print "<td>";
$sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_account where clos = 0"; $sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_account where clos = 0";
$var=True;
if ($db->query($sql)) if ($db->query($sql))
{ {
$num = $db->num_rows(); $num = $db->num_rows();
@ -230,8 +239,8 @@ if ($db->query($sql))
} }
} }
print "</td></tr>"; print "</td></tr>";
$var=!$var;
print '<tr '.$bc[False].'>'; print '<tr '.$bc[$var].'>';
print "<td>Proposer paiement par chèque à l'ordre et adresse du titulaire du compte</td>"; print "<td>Proposer paiement par chèque à l'ordre et adresse du titulaire du compte</td>";
print "<td>"; print "<td>";
$sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_account where clos = 0"; $sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_account where clos = 0";
@ -267,20 +276,6 @@ if ($db->query($sql))
print "</td></tr>"; print "</td></tr>";
print "</form>"; print "</form>";
print "</table>"; print "</table>";
$db->close();
/*
* Repertoire
*/
print '<br>';
print_titre("Chemins d'accés aux documents");
print '<table class="noborder" cellpadding="3" cellspacing="0" width=\"100%\">';
print '<tr class="liste_titre">';
print '<td>Nom</td><td>Valeur</td>';
print "</tr>\n";
print '<tr '.$bc[True].'><td width=\"140\">Répertoire</td><td>'.FAC_OUTPUTDIR.'</td></tr>';
print "</table>";
/* /*
@ -289,19 +284,107 @@ print "</table>";
print '<br>'; print '<br>';
print_titre("Options fiscales de facturation de la TVA"); print_titre("Options fiscales de facturation de la TVA");
print '<table class="noborder" cellpadding="3" cellspacing="0" width=\"100%\">'; print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">';
print '<form action="facture.php" method="post">'; print '<form action="facture.php" method="post">';
print '<input type="hidden" name="action" value="settvaoption">'; print '<input type="hidden" name="action" value="settvaoption">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>Option</td><td>Description</td>'; print '<td>Option</td><td>Description</td>';
print '<td align="right"><input type="submit" value="Modifier"></td>'; print '<td align="right"><input type="submit" value="Modifier"></td>';
print "</tr>\n"; print "</tr>\n";
print "<tr ".$bc[True]."><td width=\"140\"><input type=\"radio\" name=\"optiontva\" value=\"reel\"".($facture_tva_option != "franchise"?" checked":"")."> Option réel</td>"; $var=True;
$var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><input type=\"radio\" name=\"optiontva\" value=\"reel\"".($facture_tva_option != "franchise"?" checked":"")."> Option réel</td>";
print "<td colspan=\"2\">L'option 'réel' est la plus courante. Elle est à destination des entreprises et professions libérales.\nChaque produits/service vendu est soumis à la TVA (Dolibarr propose le taux standard par défaut à la création d'une facture). Cette dernière est récupérée l'année suivante suite à la déclaration TVA pour les produits/services achetés et est reversée à l'état pour les produits/services vendus.</td></tr>\n"; print "<td colspan=\"2\">L'option 'réel' est la plus courante. Elle est à destination des entreprises et professions libérales.\nChaque produits/service vendu est soumis à la TVA (Dolibarr propose le taux standard par défaut à la création d'une facture). Cette dernière est récupérée l'année suivante suite à la déclaration TVA pour les produits/services achetés et est reversée à l'état pour les produits/services vendus.</td></tr>\n";
print "<tr ".$bc[False]."><td width=\"140\"><input type=\"radio\" name=\"optiontva\" value=\"franchise\"".($facture_tva_option == "franchise"?" checked":"")."> Option franchise</td>"; $var=!$var;
print "<tr ".$bc[$var]."><td width=\"140\"><input type=\"radio\" name=\"optiontva\" value=\"franchise\"".($facture_tva_option == "franchise"?" checked":"")."> Option franchise</td>";
print "<td colspan=\"2\">L'option 'franchise' est utilisée par les particuliers ou professions libérales à titre occasionnel avec de petits chiffres d'affaires.\nChaque produits/service vendu est soumis à une TVA de 0 (Dolibarr propose le taux 0 par défaut à la création d'une facture cliente). Il n'y a pas de déclaration ou récupération de TVA, et les factures qui gèrent l'option affichent la mention obligatoire \"TVA non applicable - art-293B du CGI\".</td></tr>\n"; print "<td colspan=\"2\">L'option 'franchise' est utilisée par les particuliers ou professions libérales à titre occasionnel avec de petits chiffres d'affaires.\nChaque produits/service vendu est soumis à une TVA de 0 (Dolibarr propose le taux 0 par défaut à la création d'une facture cliente). Il n'y a pas de déclaration ou récupération de TVA, et les factures qui gèrent l'option affichent la mention obligatoire \"TVA non applicable - art-293B du CGI\".</td></tr>\n";
print "</form>"; print "</form>";
print "</table>"; print "</table>";
/*
* Autres constantes
*/
print '<br>';
print_titre("Autres constantes relatives aux factures");
print '<table class="noborder" cellpadding="2" cellspacing="0" width="100%">';
print '<tr class="liste_titre">';
print '<td>Nom</td>';
print '<td>Valeur</td>';
print '<td>Type</td>';
print '<td>Note</td>';
print "<td>Action</td>";
print "</tr>\n";
# Affiche lignes des constantes
$form = new Form($db);
$exclude="'FACTURE_ADDON','FACTURE_ADDON_PDF','FACTURE_CHQ_NUMBER','FACTURE_RIB_NUMBER','FACTURE_TVAOPTION'"; # Lignes exclues car affichées précédemment
$sql = "SELECT rowid, name, value, type, note FROM llx_const ";
$sql.= "WHERE name like 'FAC%' ";
$sql.= "AND name not in ($exclude)";
$sql.= "ORDER BY name ASC";
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows();
$i = 0;
$var=True;
while ($i < $num)
{
$obj = $db->fetch_object( $i);
$var=!$var;
print '<form action="facture.php" method="POST">';
print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
print '<input type="hidden" name="constname" value="'.$obj->name.'">';
print "<tr $bc[$var] class=value><td>$obj->name</td>\n";
print '<td>';
if ($obj->type == 'yesno')
{
$form->selectyesnonum('constvalue',$obj->value);
print '</td><td>';
$form->select_array('consttype',array('yesno','texte','chaine'),0);
}
elseif ($obj->type == 'texte')
{
print '<textarea name="constvalue" cols="35" rows="4" wrap="soft">';
print $obj->value;
print "</textarea>\n";
print '</td><td>';
$form->select_array('consttype',array('yesno','texte','chaine'),1);
}
else
{
print '<input type="text" size="30" name="constvalue" value="'.stripslashes($obj->value).'">';
print '</td><td>';
$form->select_array('consttype',array('yesno','texte','chaine'),2);
}
print '</td><td>';
print '<input type="text" size="15" name="constnote" value="'.stripslashes(nl2br($obj->note)).'">';
print '</td><td>';
print '<input type="Submit" value="Update" name="Button"> &nbsp; ';
print '<a href="const.php?rowid='.$obj->rowid.'&action=delete">'.img_delete().'</a>';
print "</td></tr>\n";
print '</form>';
$i++;
}
}
print "</table>\n";
print "<br>\n";
$db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>"); llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");
?> ?>

View File

@ -58,6 +58,12 @@ function jupiter_get_num_explain()
Système de numérotation mensuel sous la forme F20030715, qui correspond à la 15ème facture du mois de Juillet 2003'; Système de numérotation mensuel sous la forme F20030715, qui correspond à la 15ème facture du mois de Juillet 2003';
} }
/*!
\brief Crée un facture sur disque en fonction du modèle de FACTURE_ADDON_PDF
\param db objet base de donnée
\param facid id de la facture à créer
*/
function facture_pdf_create($db, $facid) function facture_pdf_create($db, $facid)
{ {
@ -79,7 +85,7 @@ function facture_pdf_create($db, $facid)
} }
else else
{ {
print "Erreur"; print $obj->error();
return 0; return 0;
} }
} }

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
@ -29,6 +30,16 @@ Class pdf_adytek extends FPDF{
$this->description = "Modèle de facture avec remise et infos réglement à la mode de chez nous"; $this->description = "Modèle de facture avec remise et infos réglement à la mode de chez nous";
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
global $user; global $user;
@ -46,7 +57,8 @@ Class pdf_adytek extends FPDF{
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -197,12 +209,14 @@ Class pdf_adytek extends FPDF{
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "FAC_OUTPUTDIR non définit !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
} }
/* /*

View File

@ -1,5 +1,6 @@
<?PHP <?PHP
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2004 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
@ -29,6 +30,16 @@ Class pdf_bernique {
$this->description = "Modèle pour les factures avec plusieurs taux de tva, inclus aussi le numéro de TVA Intracommunautaire"; $this->description = "Modèle pour les factures avec plusieurs taux de tva, inclus aussi le numéro de TVA Intracommunautaire";
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
global $user; global $user;
@ -46,7 +57,8 @@ Class pdf_bernique {
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -162,12 +174,14 @@ Class pdf_bernique {
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "FAC_OUTPUTDIR non définit !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
} }
/* /*

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
@ -30,6 +31,15 @@ Class pdf_bigorneau {
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
global $user; global $user;
@ -47,7 +57,8 @@ Class pdf_bigorneau {
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -201,12 +212,14 @@ Class pdf_bigorneau {
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "FAC_OUTPUTDIR non définit !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
} }
/* /*

View File

@ -1,5 +1,6 @@
<?PHP <?PHP
/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003-2004 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
@ -29,6 +30,16 @@ Class pdf_bulot {
$this->description = "Modèle de facture avec remise et infos réglement"; $this->description = "Modèle de facture avec remise et infos réglement";
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
global $user; global $user;
@ -46,7 +57,8 @@ Class pdf_bulot {
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -166,12 +178,14 @@ Class pdf_bulot {
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "FAC_OUTPUTDIR non définit !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
} }
/* /*

View File

@ -21,13 +21,47 @@
* *
*/ */
/*! \file pdf_crabe.modules.php
\brief Classe permettant de générer lune facture au modèle Crabe
\author Laurent Destailleur
\version $Revision$
*/
Class pdf_crabe { Class pdf_crabe {
var $error='';
/*!
\brief Constructeur
\param db objet base de donnée
*/
Function pdf_crabe($db=0) Function pdf_crabe($db=0)
{ {
$this->db = $db; $this->db = $db;
$this->description = "Modèle de facture classique (Gère l'option fiscale de facturation TVA et le choix du mode de règlement à afficher)"; $this->description = "Modèle de facture classique (Gère l'option fiscale de facturation TVA et le choix du mode de règlement à afficher)";
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
/*!
\brief Fonction générant la facture sur le disque
\param facid id de la facture à générer
\remarks Variables utilisées
\remarks FAC_OUTPUTDIR
\remarks FACTURE_CODEPRODUITSERVICE
\remarks FACTURE_CHQ_NUMBER
\remarks FACTURE_RIB_NUMBER
\remarks FAC_OUTPUTDIR
\return 1=ok, 0=ko
*/
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
global $user; global $user;
@ -44,7 +78,8 @@ Class pdf_crabe {
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Erreur: Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -212,13 +247,16 @@ Class pdf_crabe {
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "Erreur: FAC_OUTPUTDIR non défini !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
$this->error="Erreur: Erreur inconnue";
return 0; // Erreur par defaut return 0; // Erreur par defaut
} }
@ -302,8 +340,8 @@ Class pdf_crabe {
} }
else else
{ {
print "Erreur : ".$this->db->error()."<br>".$sql; $this->error="Echec requete SQL";
return -1; return 0;
} }
} }

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
@ -29,6 +30,14 @@ Class pdf_tourteau {
$this->description = "Modèle de facture sans remise"; $this->description = "Modèle de facture sans remise";
} }
/*!
\brief Renvoi le dernier message d'erreur de création de facture
*/
Function error()
{
return $this->error;
}
Function write_pdf_file($facid) Function write_pdf_file($facid)
{ {
@ -47,7 +56,8 @@ Class pdf_tourteau {
umask(0); umask(0);
if (! mkdir($dir, 0755)) if (! mkdir($dir, 0755))
{ {
print "Impossible de créer $dir !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
@ -253,12 +263,14 @@ Class pdf_tourteau {
} }
else else
{ {
print "Erreur : le répertoire $dir n'existe pas !"; $this->error="Erreur: Le répertoire '$dir' n'existe pas et Dolibarr n'a pu le créer.";
return 0;
} }
} }
else else
{ {
print "FAC_OUTPUTDIR non définit !"; $this->error="Erreur: FAC_OUTPUTDIR non défini !";
return 0;
} }
} }
/* /*

View File

@ -122,13 +122,13 @@ function dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $not
/*! /*!
\brief effacement d'une constante dans la base de données \brief effacement d'une constante dans la base de données
\param db base de données \param db base de données
\param name nom de la constante \param name nom ou rowid de la constante
\remarks retourne 0 pour raté, 1 pour réussi \remarks retourne 0 pour raté, 1 pour réussi
*/ */
function dolibarr_del_const($db, $name) function dolibarr_del_const($db, $name)
{ {
$sql = "DELETE FROM llx_const WHERE name='$name'"; $sql = "DELETE FROM llx_const WHERE name='$name' or rowid='$name'";
if ($db->query($sql)) if ($db->query($sql))
{ {