diff --git a/htdocs/includes/modules/commande/mod_commande_emeraude.php b/htdocs/includes/modules/commande/mod_commande_emeraude.php new file mode 100644 index 00000000000..cb2c6cc4972 --- /dev/null +++ b/htdocs/includes/modules/commande/mod_commande_emeraude.php @@ -0,0 +1,108 @@ + + * Copyright (C) 2005-2006 Regis Houssin + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + * + * $Id$ + * $Source$ + * + */ + +/** + \file htdocs/includes/modules/commande/mod_commande_emeraude.php + \ingroup commande + \brief Fichier contenant la classe du modèle de numérotation de référence de commande Emeraude + \version $Revision$ +*/ + +include_once("modules_commande.php"); + + +/** + \class mod_commande_emeraude + \brief Classe du modèle de numérotation de référence de commande Emeraude +*/ + +class mod_commande_emeraude extends ModeleNumRefCommandes +{ + + /** \brief Constructeur + */ + function mod_commande_emeraude() + { + $this->nom = "Emeraude"; + } + + + /** \brief Renvoi la description du modele de numérotation + * \return string Texte descripif + */ + function info() + { + $texte = "Renvoie le numéro sous la forme CYYNNNN où YY est l'année et NNNN le numéro d'incrément qui commence à 1.
\n"; + $texte.= "L'année s'incrémente de 1 et le numéro d'incrément se remet à zero en début d'année d'exercice.
\n"; + $texte.= "Définir la variable FISCAL_MONTH_START avec le mois du début d'exercice, ex: 9 pour septembre.
\n"; + $texte.= "Dans cette exemple nous aurons au 1er septembre 2006 une commande nommée C070001.
\n"; + + if (defined("FISCAL_MONTH_START")) + { + $texte.= "FISCAL_MONTH_START est définie et vaut: ".FISCAL_MONTH_START.""; + } + else + { + $texte.= "FISCAL_MONTH_START n'est pas définie."; + } + return $texte; + } + + /** \brief Renvoi un exemple de numérotation + * \return string Example + */ + function getExample() + { + return "C060001"; + } + + + /** \brief Renvoie le prochaine numéro de référence de commande non utilisé + \param obj_soc objet société + \return string numéro de référence de commande non utilisé + */ + function commande_get_num($obj_soc=0) + { + global $db; + + $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."commande WHERE fk_statut <> 0"; + + $resql = $db->query($sql); + + if ( $resql ) + { + $row = $db->fetch_row($resql); + + $num = $row[0]; + } + $current_month = date("n"); + if($current_month >= FISCAL_MONTH_START) + $y = strftime("%y",mktime(0,0,0,date("m"),date("d"),date("Y")+1)); + else + $y = strftime("%y",time()); + + return 'C'.$y.substr("0000".($num+1),-4); + } +} +?> diff --git a/htdocs/includes/modules/facture/titan/titan.modules.php b/htdocs/includes/modules/facture/titan/titan.modules.php new file mode 100644 index 00000000000..fdd88a18ed9 --- /dev/null +++ b/htdocs/includes/modules/facture/titan/titan.modules.php @@ -0,0 +1,100 @@ + + * Copyright (C) 2004-2005 Laurent Destailleur + * Copyright (C) 2005-2006 Regis Houssin + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + * + * $Id$ + * $Source$ + * + */ + +/** + \file htdocs/includes/modules/facture/neptune/titan.modules.php + \ingroup facture + \brief Fichier contenant la classe du modèle de numérotation de référence de facture Titan + \version $Revision$ +*/ + +require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php"); + +/** + \class mod_facture_titan + \brief Classe du modèle de numérotation de référence de facture Titan +*/ +class mod_facture_titan extends ModeleNumRefFactures +{ + + /** \brief Renvoi la description du modele de numérotation + * \return string Texte descripif + */ +function info() + { + $texte = "Renvoie le numéro sous la forme FAYYNNNN où YY est l'année et NNNN le numéro d'incrément qui commence à 1.
\n"; + $texte.= "L'année s'incrémente de 1 et le numéro d'incrément se remet à zero en début d'année d'exercice.
\n"; + $texte.= "Définir la variable FISCAL_MONTH_START avec le mois du début d'exercice, ex: 9 pour septembre.
\n"; + $texte.= "Dans cette exemple nous aurons au 1er septembre 2006 une facture nommée FA070001.
\n"; + + if (defined("FISCAL_MONTH_START")) + { + $texte.= "FISCAL_MONTH_START est définie et vaut: ".FISCAL_MONTH_START.""; + } + else + { + $texte.= "FISCAL_MONTH_START n'est pas définie."; + } + return $texte; + } + + /** \brief Renvoi un exemple de numérotation + * \return string Example + */ + function getExample() + { + return "FA060001"; + } + + /** \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]; + } + + $num = $num + 1; + $current_month = date("n"); + if($current_month >= FISCAL_MONTH_START) + $y = strftime("%y",mktime(0,0,0,date("m"),date("d"),date("Y")+1)); + else + $y = strftime("%y",time()); + return "FA" . "$y" . substr("000".$num, strlen("000".$num)-4,4); + + } + +} + +?> diff --git a/htdocs/includes/modules/modSociete.class.php b/htdocs/includes/modules/modSociete.class.php index 84ad02c047c..ca4ae2cdbfa 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -76,6 +76,12 @@ class modSociete extends DolibarrModules // Constantes $this->const = array(); + + $this->const[0][0] = "FISCAL_MONTH_START"; + $this->const[0][1] = "chaine"; + $this->const[0][2] = "0"; + $this->const[0][3] = "Mettre le numéro du mois du début d\'année fiscale, ex: 9 pour septembre"; + $this->const[0][4] = 1; // Boxes $this->boxes = array(); diff --git a/htdocs/includes/modules/propale/mod_propale_emeraude.php b/htdocs/includes/modules/propale/mod_propale_emeraude.php new file mode 100644 index 00000000000..fecfa93284c --- /dev/null +++ b/htdocs/includes/modules/propale/mod_propale_emeraude.php @@ -0,0 +1,109 @@ + + * Copyright (C) 2004-2005 Laurent Destailleur + * Copyright (C) 2005-2006 Regis Houssin + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + * + * $Id$ + * $Source$ + */ + + +/** + \file htdocs/includes/modules/propale/mod_propale_emeraude.php + \ingroup propale + \brief Fichier contenant la classe du modèle de numérotation de référence de propale Emeraude + \version $Revision$ +*/ + +require_once(DOL_DOCUMENT_ROOT ."/includes/modules/propale/modules_propale.php"); + +/** \class mod_propale_emeraude + \brief Classe du modèle de numérotation de référence de propale Emeraude +*/ + +class mod_propale_emeraude extends ModeleNumRefPropales +{ + + /** \brief Renvoi la description du modele de numérotation + * \return string Texte descripif + */ + function info() + { + $texte = "Renvoie le numéro sous la forme PRYYNNNN où YY est l'année et NNNN le numéro d'incrément qui commence à 1.
\n"; + $texte.= "L'année s'incrémente de 1 et le numéro d'incrément se remet à zero en début d'année d'exercice.
\n"; + $texte.= "Définir la variable FISCAL_MONTH_START avec le mois du début d'exercice, ex: 9 pour septembre.
\n"; + $texte.= "Dans cette exemple nous aurons au 1er septembre 2006 une propale nommée PR070001.
\n"; + + if (defined("FISCAL_MONTH_START")) + { + $texte.= "FISCAL_MONTH_START est définie et vaut: ".FISCAL_MONTH_START.""; + } + else + { + $texte.= "FISCAL_MONTH_START n'est pas définie."; + } + return $texte; + } + + + /** \brief Renvoi un exemple de numérotation + * \return string Example + */ + function getExample() + { + return "PR050001"; + } + + + /** \brief Renvoi prochaine valeur attribuée + * \return string Valeur + */ + function getNextValue() + { + global $db; + + $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."propal"; + + if ( $db->query($sql) ) + { + $row = $db->fetch_row(0); + + $num = $row[0]; + } + $current_month = date("n"); + if($current_month >= FISCAL_MONTH_START) + $y = strftime("%y",mktime(0,0,0,date("m"),date("d"),date("Y")+1)); + else + $y = strftime("%y",time()); + $num = $num+1 + return "PR" . "$y" . substr("000".$num, strlen("000".$num)-4,4); + } + + + /** \brief Renvoie la référence de propale suivante non utilisée + * \param objsoc Objet société + * \return string Texte descripif + */ + function propale_get_num($objsoc=0) + { +// return $this->propale_get_num(); + return $this->getNextValue(); + } +} + +?>