diff --git a/htdocs/admin/facture.php b/htdocs/admin/facture.php
index 54fe30b7a4c..9a16756cc60 100644
--- a/htdocs/admin/facture.php
+++ b/htdocs/admin/facture.php
@@ -19,6 +19,13 @@
* $Id$
* $Source$
*/
+
+/*! \file htdocs/admin/facture.php
+ \ingroup facture
+ \brief Page d'administration/configuration du module Facture
+ \version $Revision$
+*/
+
require("./pre.inc.php");
if (!$user->admin)
@@ -113,9 +120,15 @@ while (($file = readdir($handle))!==false)
echo "$file";
print "
\n";
- $func = $file."_get_num_explain";
+ $filebis = $file."/".$file.".modules.php";
- print $func();
+ $classname = "NumRefFactures".ucfirst($file);
+ require_once($dir.$filebis);
+
+// $func = $file."_get_num_explain";
+// print $func();
+ $obj = new $classname($db);
+ print $obj->getDesc();
print ' | ';
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index d72e3875863..d185e997c8c 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -21,6 +21,13 @@
* $Source$
*
*/
+
+/*! \file htdocs/compta/facture.php
+ \ingroup facture
+ \brief Page de création d'une facture
+ \version $Revision$
+*/
+
require("./pre.inc.php");
$user->getrights('facture');
@@ -714,7 +721,7 @@ if ($_GET["action"] == 'create')
}
else
{
- print $db->error();
+ dolibarr_print_error($db);
}
}
else
@@ -776,7 +783,7 @@ else
if ($_GET["action"] == 'valid')
{
$numfa = facture_get_num($soc);
- $html->form_confirm("facture.php?facid=$fac->id","Valider la facture","Etes-vous sûr de vouloir valider cette facture avec le numéro $numfa ?","confirm_valid");
+ $html->form_confirm("facture.php?facid=$fac->id","Valider la facture sous la référence no ".$numfa,"Etes-vous sûr de vouloir valider cette facture avec la référence no $numfa ?","confirm_valid");
}
/*
diff --git a/htdocs/includes/modules/facture/deneb/deneb.modules.php b/htdocs/includes/modules/facture/deneb/deneb.modules.php
index 95e84f15775..9b1a6b6a06c 100644
--- a/htdocs/includes/modules/facture/deneb/deneb.modules.php
+++ b/htdocs/includes/modules/facture/deneb/deneb.modules.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2004 Laurent Destailleur
*
* 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,29 +22,70 @@
*
*/
-function facture_get_num($objsoc=0)
-{
- global $db;
+/*! \file htdocs/includes/modules/facture/deneb/deneb.modules.php
+ \ingroup facture
+ \brief Fichier contenant la classe du modèle de numérotation de référence de facture Deneb
+ \version $Revision$
+*/
- $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
- if ( $db->query($sql) )
- {
- $row = $db->fetch_row(0);
-
- $num = $row[0];
+/*! \class NumRefFacturesDeneb
+ \brief Classe du modèle de numérotation de référence de facture Deneb
+*/
+class NumRefFacturesDeneb extends ModeleNumRefFactures
+{
+
+ /*! \brief Renvoie la référence de facture suivante non utilisée
+ * \param objsoc Objet société
+ * \return string Texte descripif
+ */
+ function getNumRef($objsoc=0)
+ {
+ global $db;
+
+ $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
+
+ if ( $db->query($sql) )
+ {
+ $row = $db->fetch_row(0);
+
+ $num = $row[0];
+ }
+
+ if (!defined("FACTURE_DENEB_DELTA"))
+ {
+ define("FACTURE_DENEB_DELTA", 0);
+ }
+
+ $num = $num + FACTURE_DENEB_DELTA;
+
+ $y = strftime("%y",time());
+
+ return $objsoc->prefix_comm . "-" .strftime("%d-%m-%Y", time()) . "-".$num;
}
- if (!defined("FACTURE_DENEB_DELTA"))
+
+ /*! \brief Renvoi la description du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
{
- define("FACTURE_DENEB_DELTA", 0);
+
+ $texte = '
+ Renvoie le numéro de facture sous la forme, PR-03-06-2004-15, où PR est le préfixe commercial de la société, et est suivi de la date (ici le 14 juin 2004) et d\'un compteur général. La constante FACTURE_DENEB_DELTA sert à la correction de plage. FACTURE_DENEB_DELTA ';
+
+ if (defined("FACTURE_DENEB_DELTA"))
+ {
+ $texte .= "est défini et vaut : ".FACTURE_DENEB_DELTA;
+ }
+ else
+ {
+ $texte .= "n'est pas défini";
+ }
+ return $texte;
+
}
- $num = $num + FACTURE_DENEB_DELTA;
-
- $y = strftime("%y",time());
-
- return $objsoc->prefix_comm . "-" .strftime("%d-%m-%Y", time()) . "-".$num;
}
?>
diff --git a/htdocs/includes/modules/facture/jupiter/jupiter.modules.php b/htdocs/includes/modules/facture/jupiter/jupiter.modules.php
index ddf6b36ecad..13c98c12f74 100644
--- a/htdocs/includes/modules/facture/jupiter/jupiter.modules.php
+++ b/htdocs/includes/modules/facture/jupiter/jupiter.modules.php
@@ -22,24 +22,53 @@
*
*/
-function facture_get_num($objsoc=0)
-{
- global $db;
- $prefix='F';
- $date = strftime("%Y%m", time());
- $num=0;
-
- $sql = "SELECT max(0+substring(facnumber,8)) FROM ".MAIN_DB_PREFIX."facture";
- $sql .= " WHERE facnumber like '$prefix".$date."%'";
+/*! \file htdocs/includes/modules/facture/jupiter/jupiter.modules.php
+ \ingroup facture
+ \brief Fichier contenant la classe du modèle de numérotation de référence de facture Jupiter
+ \version $Revision$
+*/
- if ( $db->query($sql) )
- {
- $row = $db->fetch_row(0);
-
- $num = $row[0];
+
+/*! \class NumRefFacturesJupiter
+ \brief Classe du modèle de numérotation de référence de facture Jupiter
+*/
+class NumRefFacturesJupiter extends ModeleNumRefFactures
+{
+
+ /*! \brief Renvoie la référence de facture suivante non utilisée
+ * \param objsoc Objet société
+ * \return string Texte descripif
+ */
+ function getNumRef($objsoc=0)
+ {
+ global $db;
+
+ $prefix='F';
+ $date = strftime("%Y%m", time());
+ $num=0;
+
+ $sql = "SELECT max(0+substring(facnumber,8)) FROM ".MAIN_DB_PREFIX."facture";
+ $sql .= " WHERE facnumber like '$prefix".$date."%'";
+
+ if ( $db->query($sql) )
+ {
+ $row = $db->fetch_row(0);
+
+ $num = $row[0];
+ }
+ $num++;
+ return "$prefix" . $date . $num;
}
- $num++;
- return "$prefix" . $date . $num;
+
+ /*! \brief Renvoi la description du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
+ {
+ return '
+ Système de numérotation mensuel sous la forme F20030715, qui correspond à la 15ème facture du mois de Juillet 2003';
+ }
+
}
?>
diff --git a/htdocs/includes/modules/facture/modules_facture.php b/htdocs/includes/modules/facture/modules_facture.php
index 7faeadf87c8..aace56e314a 100644
--- a/htdocs/includes/modules/facture/modules_facture.php
+++ b/htdocs/includes/modules/facture/modules_facture.php
@@ -1,6 +1,6 @@
- * Copyright (C) 2004 Laurent Destailleur
+ * Copyright (C) 2004 Laurent Destailleur
*
* 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
@@ -22,72 +22,92 @@
*
*/
-function deneb_get_num_explain()
+/*! \file htdocs/includes/modules/facture/modules_facture.php
+ \ingroup facture
+ \brief Fichier contenant la classe mère de generation des factures en PDF
+ et la classe mère de numérotation des factures
+ \version $Revision$
+*/
+
+require_once(DOL_DOCUMENT_ROOT."/product.class.php");
+
+
+
+/*! \class ModelePDFFactures
+ \brief Classe mère des modèles de facture
+*/
+
+class ModelePDFFactures extends FPDF
{
+ var $error='';
- $texte = '
-Renvoie le numéro de facture sous la forme, PR-03-06-2004-15, où PR est le préfixe commercial de la société, et est suivi de la date (ici le 14 juin 2004) et d\'un compteur général. La constante FACTURE_DENEB_DELTA sert à la correction de plage. FACTURE_DENEB_DELTA ';
+ /*! \brief Constructeur
+ */
+ function ModelePDFFactures()
+ {
+
+ }
- if (defined("FACTURE_DENEB_DELTA"))
+ /*!
+ \brief Renvoi le dernier message d'erreur de création de facture
+ */
+ function pdferror()
{
- $texte .= "est défini et vaut : ".FACTURE_DENEB_DELTA;
+ return $this->error;
}
- else
- {
- $texte .= "n'est pas défini";
- }
- return $texte;
}
-function venus_get_num_explain()
+
+/*! \class ModeleNumRefFactures
+ \brief Classe mère des modèles de numérotation des références de facture
+*/
+
+class ModeleNumRefFactures
{
+ var $error='';
- return '
-Renvoie le numéro de facture sous la forme, F-PR-030202, où PR est le préfixe commercial de la société, et est suivi de la date sur un format de 6 digits avec Année, Mois et Jour';
-
-}
-
-function pluton_get_num_explain()
-{
- return '
-Renvoie le numéro de facture sous une forme numérique simple, la première facture porte le numéro 1, la quinzième facture ayant le numéro 15.';
-}
-
-function neptune_get_num_explain()
-{
- $texte = '
-Identique à pluton, avec un correcteur au moyen de la constante FACTURE_NEPTUNE_DELTA.';
- if (defined("FACTURE_NEPTUNE_DELTA"))
+ /*! \brief Constructeur
+ */
+ function ModeleNumRefFactures()
{
- $texte .= "Défini et vaut : ".FACTURE_NEPTUNE_DELTA;
+
}
- else
+
+ /*! \brief Renvoi la description par defaut du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
{
- $texte .= "N'est pas défini";
+ global $langs;
+ $langs->load("bills");
+ return $langs->trans("NoDescription");
}
- return $texte;
-}
+ /*!
+ \brief Renvoi le dernier message d'erreur de création de facture
+ */
+ function numreferror()
+ {
+ return $this->error;
+ }
-function jupiter_get_num_explain()
-{
- return '
-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
+ \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)
{
+ global $langs;
+ $langs->load("bills");
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
- if (defined("FACTURE_ADDON_PDF"))
+ if (defined("FACTURE_ADDON_PDF") && FACTURE_ADDON_PDF)
{
$file = "pdf_".FACTURE_ADDON_PDF.".modules.php";
@@ -103,15 +123,56 @@ function facture_pdf_create($db, $facid)
}
else
{
- print $obj->error();
+ dolibarr_print_error($db,$obj->pdferror());
return 0;
}
}
else
{
- print "Erreur FACTURE_ADDON_PDF non définit !";
+ print $langs->trans("Error")." ".$langs->trans("Error_FACTURE_ADDON_PDF_NotDefined");
return 0;
}
}
+
+/*!
+ \brief Renvoie la référence de facture suivante non utilisé en fonction du module
+ de numérotation actif défini dans FACTURE_ADDON
+ \param soc objet societe
+ \return string reference libre pour la facture
+*/
+function facture_get_num($soc)
+{
+ global $db, $langs;
+ $langs->load("bills");
+
+ $dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
+
+ if (defined("FACTURE_ADDON") && FACTURE_ADDON)
+ {
+
+ $file = FACTURE_ADDON."/".FACTURE_ADDON.".modules.php";
+
+ $classname = "NumRefFactures".ucfirst(FACTURE_ADDON);
+ require_once($dir.$file);
+
+ $obj = new $classname();
+
+ if ( $obj->getNumRef($soc) != "")
+ {
+ return $obj->getNumRef($soc);
+ }
+ else
+ {
+ dolibarr_print_error($db,$obj->numreferror());
+ return "";
+ }
+ }
+ else
+ {
+ print $langs->trans("Error")." ".$langs->trans("Error_FACTURE_ADDON_NotDefined");
+ return "";
+ }
+}
+
?>
diff --git a/htdocs/includes/modules/facture/neptune/neptune.modules.php b/htdocs/includes/modules/facture/neptune/neptune.modules.php
index d302cc59249..92772b0d73d 100644
--- a/htdocs/includes/modules/facture/neptune/neptune.modules.php
+++ b/htdocs/includes/modules/facture/neptune/neptune.modules.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2004 Laurent Destailleur
*
* 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,30 +22,67 @@
*
*/
-function facture_get_num($objsoc=0)
-{
- global $db;
+/*! \file htdocs/includes/modules/facture/neptune/neptune.modules.php
+ \ingroup facture
+ \brief Fichier contenant la classe du modèle de numérotation de référence de facture Neptune
+ \version $Revision$
+*/
- $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
- if ( $db->query($sql) )
+/*! \class NumRefFacturesNeptune
+ \brief Classe du modèle de numérotation de référence de facture Neptune
+*/
+class NumRefFacturesNeptune extends ModeleNumRefFactures
+{
+
+ /*! \brief Renvoie la référence de facture suivante non utilisée
+ * \param objsoc Objet société
+ * \return string Texte descripif
+ */
+ function getNumRef($objsoc=0)
+ {
+ global $db;
+
+ $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
+
+ if ( $db->query($sql) )
+ {
+ $row = $db->fetch_row(0);
+
+ $num = $row[0];
+ }
+
+ if (!defined("FACTURE_NEPTUNE_DELTA"))
+ {
+ define("FACTURE_NEPTUNE_DELTA", 0);
+ }
+
+ $num = $num + FACTURE_NEPTUNE_DELTA;
+
+ $y = strftime("%y",time());
+
+ return "FA" . "$y" . substr("000".$num, strlen("000".$num)-4,4);
+
+ }
+
+ /*! \brief Renvoi la description du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
{
- $row = $db->fetch_row(0);
-
- $num = $row[0];
+ $texte = '
+ Identique à pluton, avec un correcteur au moyen de la constante FACTURE_NEPTUNE_DELTA.';
+ if (defined("FACTURE_NEPTUNE_DELTA"))
+ {
+ $texte .= "Défini et vaut : ".FACTURE_NEPTUNE_DELTA;
+ }
+ else
+ {
+ $texte .= "N'est pas défini";
+ }
+ return $texte;
}
- if (!defined("FACTURE_NEPTUNE_DELTA"))
- {
- define("FACTURE_NEPTUNE_DELTA", 0);
- }
-
- $num = $num + FACTURE_NEPTUNE_DELTA;
-
- $y = strftime("%y",time());
-
- return "FA" . "$y" . substr("000".$num, strlen("000".$num)-4,4);
-
-}
+}
?>
diff --git a/htdocs/includes/modules/facture/pluton/pluton.modules.php b/htdocs/includes/modules/facture/pluton/pluton.modules.php
index ed4507015fa..1af338e299e 100644
--- a/htdocs/includes/modules/facture/pluton/pluton.modules.php
+++ b/htdocs/includes/modules/facture/pluton/pluton.modules.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2004 Laurent Destailleur
*
* 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,23 +22,52 @@
*
*/
-function facture_get_num($objsoc=0)
-{
- global $db;
+/*! \file htdocs/includes/modules/facture/pluton/pluton.modules.php
+ \ingroup facture
+ \brief Fichier contenant la classe du modèle de numérotation de référence de facture Pluton
+ \version $Revision$
+*/
- $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
- if ( $db->query($sql) )
- {
- $row = $db->fetch_row(0);
-
- $num = $row[0];
+/*! \class NumRefFacturesPluton
+ \brief Classe du modèle de numérotation de référence de facture Pluton
+*/
+
+class NumRefFacturesPluton extends ModeleNumRefFactures
+{
+
+ /*! \brief Renvoie la référence de facture suivante non utilisée
+ * \param objsoc Objet société
+ * \return string Texte descripif
+ */
+ function getNumRef($objsoc=0)
+ {
+ global $db;
+
+ $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."facture WHERE fk_statut > 0";
+
+ if ( $db->query($sql) )
+ {
+ $row = $db->fetch_row(0);
+
+ $num = $row[0];
+ }
+
+
+ $y = strftime("%y",time());
+
+ return "FA" . "$y" . substr("000".$num, strlen("000".$num)-4,4);
+
+ }
+
+ /*! \brief Renvoi la description du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
+ {
+ return '
+ Renvoie le numéro de facture sous une forme numérique simple, la première facture porte le numéro 1, la quinzième facture ayant le numéro 15.';
}
-
-
- $y = strftime("%y",time());
-
- return "FA" . "$y" . substr("000".$num, strlen("000".$num)-4,4);
}
diff --git a/htdocs/includes/modules/facture/venus/venus.modules.php b/htdocs/includes/modules/facture/venus/venus.modules.php
index 6cce8c686f0..e6593085c04 100644
--- a/htdocs/includes/modules/facture/venus/venus.modules.php
+++ b/htdocs/includes/modules/facture/venus/venus.modules.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2004 Laurent Destailleur
*
* 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,10 +22,41 @@
*
*/
-function facture_get_num($objsoc=0)
-{
+/*! \file htdocs/includes/modules/facture/venus/venus.modules.php
+ \ingroup facture
+ \brief Fichier contenant la classe du modèle de numérotation de référence de facture Venus
+ \version $Revision$
+*/
- return "FA-" . $objsoc->prefix_comm . "-" .strftime("%y%m%d", time());
+
+/*! \class NumRefFacturesVenus
+ \brief Classe du modèle de numérotation de référence de facture Venus
+*/
+
+class NumRefFacturesVenus extends ModeleNumRefFactures
+{
+
+ /*! \brief Renvoie la référence de facture suivante non utilisée
+ * \param objsoc Objet société
+ * \return string Texte descripif
+ */
+ function getNumRef($objsoc=0)
+ {
+
+ return "FA-" . $objsoc->prefix_comm . "-" .strftime("%y%m%d", time());
+
+ }
+
+ /*! \brief Renvoi la description du modele de numérotation
+ * \return string Texte descripif
+ */
+ function getDesc()
+ {
+
+ return '
+ Renvoie le numéro de facture sous la forme, F-PR-030202, où PR est le préfixe commercial de la société, et est suivi de la date sur un format de 6 digits avec Année, Mois et Jour';
+
+ }
}
|