Ajout modle de numrotation de propale avec offset

This commit is contained in:
Regis Houssin 2006-02-15 11:33:01 +00:00
parent 143628b267
commit cee931acec
3 changed files with 171 additions and 17 deletions

View File

@ -1,5 +1,6 @@
<?php
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005-2006 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
@ -52,7 +53,7 @@ class mod_commande_diamant extends ModeleNumRefCommandes
*/
function info()
{
$texte = "Renvoie le numéro sous la forme numérique CYY00001, CYY00002, CYY00003, ... où YY représente l'année. Le numéro d'incrément qui suit l'année n'est PAS remis à zéro en début d'année.<br>\n";
$texte = "Renvoie le numéro sous la forme numérique CYYNNNN, où YY représente l'année et NNNN Le numéro d'incrément. Ce dernier n'est PAS remis à zéro en début d'année.<br>\n";
$texte.= "Si la constante COMMANDE_DIAMANT_DELTA est définie, un offset est appliqué sur le compteur";
if (defined("COMMANDE_DIAMANT_DELTA"))
@ -72,13 +73,15 @@ class mod_commande_diamant extends ModeleNumRefCommandes
*/
function getExample()
{
if (defined("COMMANDE_DIAMANT_DELTA"))
if (defined("COMMANDE_DIAMANT_DELTA"))
{
return "C0400".sprintf("%02d",COMMANDE_DIAMANT_DELTA);
$y = strftime("%y",time());
$num = sprintf("%02d",COMMANDE_DIAMANT_DELTA);
return "C".$y.substr("000".$num, strlen("000".$num)-4,4);
}
else
{
return "C040001";
return "C".$y."0001";
}
}
@ -107,11 +110,11 @@ class mod_commande_diamant extends ModeleNumRefCommandes
define("COMMANDE_DIAMANT_DELTA", 0);
}
$num = $num + FACTURE_NEPTUNE_DELTA;
$num = $num + COMMANDE_NEPTUNE_DELTA;
$y = strftime("%y",time());
return 'C'.$y.substr("0000".$num, strlen("0000".$num)-5,5);
return 'C'.$y.substr("000".$num, strlen("000".$num)-4,4);
}
}
?>

View File

@ -0,0 +1,122 @@
<?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2006 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/propale/mod_propale_diamant.php
\ingroup propale
\brief Fichier contenant la classe du modèle de numérotation de référence de propale Diamant
\version $Revision$
*/
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/propale/modules_propale.php");
/** \class mod_propale_diamant
\brief Classe du modèle de numérotation de référence de propale Diamant
*/
class mod_propale_diamant 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 numérique PRYYNNNN où YY représente l'année et NNNN Le numéro d'incrément. Ce dernier n'est PAS remis à zéro en début d'année.<br>\n";
$texte.= "Si la constante PROPALE_DIAMANT_DELTA est définie, un offset est appliqué sur le compteur";
if (defined("PROPALE_DIAMANT_DELTA"))
{
$texte .= " (Définie et vaut: ".PROPALE_DIAMANT_DELTA.")";
}
else
{
$texte .= " (N'est pas définie)";
}
return $texte;
}
/** \brief Renvoi un exemple de numérotation
* \return string Example
*/
function getExample()
{
if (defined("PROPALE_DIAMANT_DELTA"))
{
$y = strftime("%y",time());
$num = sprintf("%02d",PROPALE_DIAMANT_DELTA);
return "C".$y.substr("000".$num, strlen("000".$num)-4,4);
}
else
{
return "C".$y."0001";
}
}
/** \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];
}
if (!defined("PROPALE_DIAMANT_DELTA"))
{
define("PROPALE_DIAMANT_DELTA", 0);
}
$num = $num + PROPALE_NEPTUNE_DELTA;
$y = strftime("%y",time());
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();
}
}
?>

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Regis Houssin <regis.houssin@cap-networks.com>
* Copyright (C) 2005-2006 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
@ -24,19 +24,19 @@
/**
\file htdocs/includes/modules/propale/mod_propale_ivoire.php
\file htdocs/includes/modules/propale/mod_propale_diamant.php
\ingroup propale
\brief Fichier contenant la classe du modèle de numérotation de référence de propale Ivoire
\brief Fichier contenant la classe du modèle de numérotation de référence de propale Diamant
\version $Revision$
*/
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/propale/modules_propale.php");
/** \class mod_propale_ivoire
\brief Classe du modèle de numérotation de référence de propale Ivoire
/** \class mod_propale_diamant
\brief Classe du modèle de numérotation de référence de propale Diamant
*/
class mod_propale_ivoire extends ModeleNumRefPropales
class mod_propale_diamant extends ModeleNumRefPropales
{
/** \brief Renvoi la description du modele de numérotation
@ -44,8 +44,19 @@ class mod_propale_ivoire extends ModeleNumRefPropales
*/
function info()
{
return "Renvoie le numéro sous la forme PRyynnnn où yy est l'année et nnnn un compteur sans remise à 0";
}
$texte = "Renvoie le numéro sous la forme numérique PRYYNNNN où YY représente l'année et NNNN Le numéro d'incrément. Ce dernier n'est PAS remis à zéro en début d'année.<br>\n";
$texte.= "Si la constante PROPALE_DIAMANT_DELTA est définie, un offset est appliqué sur le compteur";
if (defined("PROPALE_DIAMANT_DELTA"))
{
$texte .= " (Définie et vaut: ".PROPALE_DIAMANT_DELTA.")";
}
else
{
$texte .= " (N'est pas définie)";
}
return $texte;
}
/** \brief Renvoi un exemple de numérotation
@ -53,7 +64,18 @@ class mod_propale_ivoire extends ModeleNumRefPropales
*/
function getExample()
{
return "PR050001";
if (defined("PROPALE_DIAMANT_DELTA"))
{
$y = strftime("%y",time());
$num = sprintf("%02d",PROPALE_DIAMANT_DELTA);
return "C".$y.substr("000".$num, strlen("000".$num)-4,4);
}
else
{
return "C".$y."0001";
}
}
@ -72,10 +94,17 @@ class mod_propale_ivoire extends ModeleNumRefPropales
$num = $row[0];
}
if (!defined("PROPALE_DIAMANT_DELTA"))
{
define("PROPALE_DIAMANT_DELTA", 0);
}
$num = $num + PROPALE_NEPTUNE_DELTA;
$y = strftime("%y",time());
return "PR" . "$y" . substr("000".$num, strlen("000".$num)-4,4);
return "PR" .$y. substr("000".$num, strlen("000".$num)-4,4);
}