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; else $prefix=$this->prefixinvoice;
// D'abord on récupère la valeur max (réponse immédiate car champ indéxé) // D'abord on récupère la valeur max (réponse immédiate car champ indéxé)
$fayymm=''; $posindice=8;
$sql = "SELECT MAX(facnumber)"; $sql = "SELECT MAX(facnumber+SUBSTRING(facnumber,".$posindice.")) as ref";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$prefix."%'"; $sql.= " WHERE facnumber like '".$prefix."%'";
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$row = $db->fetch_row($resql); $obj = $db->fetch_object($resql);
if ($row) $fayymm = substr($row[0],0,6); if ($obj) $max = $obj->ref;
else $max=0;
} }
else else
{ {
@ -137,26 +138,6 @@ class mod_facture_terre extends ModeleNumRefFactures
return -1; 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=time();
$date=$facture->date; $date=$facture->date;
$yymm = strftime("%y%m",$date); $yymm = strftime("%y%m",$date);