Début ajout d'un modèle de numérotation paramétrable

This commit is contained in:
Regis Houssin 2007-02-06 13:41:47 +00:00
parent fd9947479b
commit 7c31b54621
5 changed files with 164 additions and 4 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2006 Regis Houssin <regis.houssin@cap-networks.com> * Copyright (C) 2005-2007 Regis Houssin <regis.houssin@cap-networks.com>
* *
* 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
@ -23,7 +23,7 @@
*/ */
/** /**
\file htdocs/includes/modules/facture/neptune/orion.modules.php \file htdocs/includes/modules/facture/orion/orion.modules.php
\ingroup facture \ingroup facture
\brief Fichier contenant la classe du modèle de numérotation de référence de facture Orion \brief Fichier contenant la classe du modèle de numérotation de référence de facture Orion
\version $Revision$ \version $Revision$

View File

@ -0,0 +1,155 @@
<?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2007 Regis Houssin <regis.houssin@cap-networks.com>
*
* 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/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$
*/
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/facture/modules_facture.php");
/**
\class mod_facture_pluton
\brief Classe du modèle de numérotation de référence de facture Pluton
*/
class mod_facture_pluton extends ModeleNumRefFactures
{
/** \brief Renvoi la description du modele de numérotation
* \return string Texte descripif
*/
function info()
{
global $conf,$langs;
$langs->load("bills");
$texte = $langs->trans('PlutonNumRefModelDesc1')."<br>\n";
if ($conf->global->SOCIETE_FISCAL_MONTH_START)
{
$texte.= ' ('.$langs->trans('DefinedAndHasThisValue').' : '.$conf->global->SOCIETE_FISCAL_MONTH_START.')';
}
else
{
$texte.= ' ('.$langs->trans('IsNotDefined').')';
}
return $texte;
}
/** \brief Renvoi un exemple de numérotation
* \return string Example
*/
function getExample()
{
return "FA0600001";
}
/** \brief Renvoi prochaine valeur attribuée
* \param objsoc Objet société
* \param facture Objet facture
* \return string Valeur
*/
function getNextValue($objsoc,$facture)
{
global $db,$conf;
// On défini l'année fiscale
$prefix='FA';
$current_month = date("n");
if (is_object($facture) && $facture->date)
{
$create_month = strftime("%m",$facture->date);
}
else
{
$create_month = $current_month;
}
if($conf->global->SOCIETE_FISCAL_MONTH_START && $current_month >= $conf->global->SOCIETE_FISCAL_MONTH_START && $create_month >= $conf->global->SOCIETE_FISCAL_MONTH_START)
{
$yy = strftime("%y",mktime(0,0,0,date("m"),date("d"),date("Y")+1));
}
else
{
$yy = strftime("%y",time());
}
// On récupère la valeur max (réponse immédiate car champ indéxé)
$fisc=$prefix.$yy;
$fayy='';
$sql = "SELECT MAX(facnumber)";
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '${fisc}%'";
$resql=$db->query($sql);
if ($resql)
{
$row = $db->fetch_row($resql);
if ($row) $fayy = substr($row[0],0,4);
}
// Si au moins un champ respectant le modèle a été trouvée
if (eregi('FA[0-9][0-9]',$fayy))
{
// Recherche rapide car restreint par un like sur champ indexé
$date = strftime("%Y%m", time());
$posindice=5;
$sql = "SELECT MAX(0+SUBSTRING(facnumber,$posindice))";
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '${fayy}%'";
$resql=$db->query($sql);
if ($resql)
{
$row = $db->fetch_row($resql);
$max = $row[0];
}
}
else
{
$max=0;
}
$num = sprintf("%05s",$max+1);
return "FA$yy$num";
}
/** \brief Renvoie la référence de commande suivante non utilisée
* \param objsoc Objet société
* \param facture Objet facture
* \return string Texte descripif
*/
function getNumRef($objsoc=0,$facture)
{
return $this->getNextValue($objsoc,$facture);
}
}
?>

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2006 Regis Houssin <regis.houssin@cap-networks.com> * Copyright (C) 2005-2007 Regis Houssin <regis.houssin@cap-networks.com>
* *
* 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
@ -24,7 +24,7 @@
*/ */
/** /**
\file htdocs/includes/modules/facture/neptune/titan.modules.php \file htdocs/includes/modules/facture/titan/titan.modules.php
\ingroup facture \ingroup facture
\brief Fichier contenant la classe du modèle de numérotation de référence de facture Titan \brief Fichier contenant la classe du modèle de numérotation de référence de facture Titan
\version $Revision$ \version $Revision$

View File

@ -344,3 +344,6 @@ UranusNumRefModelDesc1=Renvoie le num
# venus # venus
VenusNumRefModelDesc1=Renvoie le numéro de facture sous la forme, FA-PREF-030202, où PREF 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 VenusNumRefModelDesc1=Renvoie le numéro de facture sous la forme, FA-PREF-030202, où PREF 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
# pluton
PlutonNumRefModelDesc1=Modèle de numérotation paramétrable - EN PHASE DE TEST !!!

View File

@ -345,3 +345,5 @@ UranusNumRefModelDesc1=Renvoie le num
# venus # venus
VenusNumRefModelDesc1=Renvoie le numéro de facture sous la forme, FA-PREF-030202, où PREF 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 VenusNumRefModelDesc1=Renvoie le numéro de facture sous la forme, FA-PREF-030202, où PREF 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
# pluton
PlutonNumRefModelDesc1=Modèle de numérotation paramétrable - EN PHASE DE TEST !!!