Fix: Numbering for terre

This commit is contained in:
Laurent Destailleur 2008-07-08 22:18:58 +00:00
parent fda9eb1c5b
commit 1c43e655dc

View File

@ -120,16 +120,17 @@ class mod_facture_terre extends ModeleNumRefFactures
else $prefix=$this->prefixinvoice;
// D'abord on récupère la valeur max (réponse immédiate car champ indéxé)
$fayymm='';
$sql = "SELECT MAX(facnumber)";
$posindice=8;
$sql = "SELECT MAX(facnumber+SUBSTRING(facnumber,".$posindice.")) as ref";
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$prefix."%'";
$resql=$db->query($sql);
if ($resql)
{
$row = $db->fetch_row($resql);
if ($row) $fayymm = substr($row[0],0,6);
$obj = $db->fetch_object($resql);
if ($obj) $max = $obj->ref;
else $max=0;
}
else
{
@ -137,26 +138,6 @@ class mod_facture_terre extends ModeleNumRefFactures
return -1;
}
// Si champ respectant le modèle a été trouvée
if (eregi('^'.$prefix.'[0-9][0-9][0-9][0-9]',$fayymm))
{
// Recherche rapide car restreint par un like sur champ indexé
$posindice=8;
$sql = "SELECT MAX(0+SUBSTRING(facnumber,".$posindice."))";
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$fayymm."%'";
$resql=$db->query($sql);
if ($resql)
{
$row = $db->fetch_row($resql);
$max = $row[0];
}
}
else
{
$max=0;
}
//$date=time();
$date=$facture->date;
$yymm = strftime("%y%m",$date);