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

This commit is contained in:
Regis Houssin 2007-02-06 14:30:34 +00:00
parent 7c31b54621
commit 759c9a1b6e

View File

@ -66,7 +66,11 @@ function info()
*/ */
function getExample() function getExample()
{ {
return "FA0600001"; global $conf;
$prefix = $conf->global->FACTURE_NUM_PREFIX;
$numExample = $prefix."0600001";
return $numExample;
} }
/** \brief Renvoi prochaine valeur attribuée /** \brief Renvoi prochaine valeur attribuée
@ -79,7 +83,7 @@ function info()
global $db,$conf; global $db,$conf;
// On défini l'année fiscale // On défini l'année fiscale
$prefix='FA'; $prefix = $conf->global->FACTURE_NUM_PREFIX;
$current_month = date("n"); $current_month = date("n");
if (is_object($facture) && $facture->date) if (is_object($facture) && $facture->date)
@ -101,16 +105,17 @@ function info()
} }
// On récupère la valeur max (réponse immédiate car champ indéxé) // On récupère la valeur max (réponse immédiate car champ indéxé)
$numFigure = ($conf->global->FACTURE_NUM_QUANTIFY_METER - 1);
$fisc=$prefix.$yy; $fisc=$prefix.$yy;
$fayy=''; $fayy='';
$sql = "SELECT MAX(facnumber)"; $sql = "SELECT MAX(facnumber)";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '${fisc}%'"; if ($conf->global->FACTURE_NUM_RESTART_BEGIN_YEAR) $sql.= " WHERE facnumber like '${fisc}%'";
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
if ($row) $fayy = substr($row[0],0,4); if ($row) $fayy = substr($row[0],0,$numFigure);
} }
// Si au moins un champ respectant le modèle a été trouvée // Si au moins un champ respectant le modèle a été trouvée
@ -118,7 +123,7 @@ function info()
{ {
// Recherche rapide car restreint par un like sur champ indexé // Recherche rapide car restreint par un like sur champ indexé
$date = strftime("%Y%m", time()); $date = strftime("%Y%m", time());
$posindice=5; $posindice = $conf->global->FACTURE_NUM_QUANTIFY_METER;
$sql = "SELECT MAX(0+SUBSTRING(facnumber,$posindice))"; $sql = "SELECT MAX(0+SUBSTRING(facnumber,$posindice))";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '${fayy}%'"; $sql.= " WHERE facnumber like '${fayy}%'";
@ -134,9 +139,10 @@ function info()
$max=0; $max=0;
} }
$num = sprintf("%05s",$max+1); $arg = '%0'.$conf->global->FACTURE_NUM_QUANTIFY_METER.'s';
$num = sprintf($arg,$max+1);
return "FA$yy$num"; return "$prefix$yy$num";
} }