Début ajout du modèle personnalisable "tigre" avec numérotation automatique pour les codes clients et fournisseurs.
This commit is contained in:
parent
ff9c23cd12
commit
2ff6e99c03
@ -48,6 +48,8 @@ class mod_codeclient_tigre extends ModeleThirdPartyCode
|
|||||||
|
|
||||||
var $searchcode; // String de recherche
|
var $searchcode; // String de recherche
|
||||||
var $numbitcounter; // Nombre de chiffres du compteur
|
var $numbitcounter; // Nombre de chiffres du compteur
|
||||||
|
var $substrBegin;
|
||||||
|
var $substrEnd;
|
||||||
|
|
||||||
|
|
||||||
/** \brief Constructeur classe
|
/** \brief Constructeur classe
|
||||||
@ -114,7 +116,7 @@ class mod_codeclient_tigre extends ModeleThirdPartyCode
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$example = $this->getNextValue($objsoc,1)."<br>".$this->getNextValue($objsoc,2);
|
$example = $this->getNextValue($objsoc,1);//."<br>".$this->getNextValue($objsoc,2);
|
||||||
}
|
}
|
||||||
return $example;
|
return $example;
|
||||||
}
|
}
|
||||||
@ -140,6 +142,7 @@ class mod_codeclient_tigre extends ModeleThirdPartyCode
|
|||||||
|
|
||||||
// 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é)
|
||||||
$posindice = $this->numbitcounter;
|
$posindice = $this->numbitcounter;
|
||||||
|
if ($this->substrEnd > 0) $substrEnd = ',-'.$this->substrEnd;
|
||||||
$searchyy='';
|
$searchyy='';
|
||||||
$sql = "SELECT MAX(".$field.")";
|
$sql = "SELECT MAX(".$field.")";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe";
|
$sql.= " FROM ".MAIN_DB_PREFIX."societe";
|
||||||
@ -148,8 +151,11 @@ class mod_codeclient_tigre extends ModeleThirdPartyCode
|
|||||||
if ($resql)
|
if ($resql)
|
||||||
{
|
{
|
||||||
$row = $db->fetch_row($resql);
|
$row = $db->fetch_row($resql);
|
||||||
//print $row[0];
|
//print 'row='.$row[0].'<br>';
|
||||||
//if ($row) $searchyy = substr($row[0],0,-$posindice);
|
//print 'begin='.$this->substrBegin.'<br>';
|
||||||
|
//print 'end='.$this->substrEnd.'<br>';
|
||||||
|
if ($row) $count = substr($row[0],$this->substrBegin.$substrEnd);
|
||||||
|
//print 'count='.$count.'<br>';
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// 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
|
||||||
@ -200,65 +206,159 @@ class mod_codeclient_tigre extends ModeleThirdPartyCode
|
|||||||
$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
|
$mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout du jour en cours
|
$maskElement = preg_split('/[|]{1}/', $mask);
|
||||||
if (eregi('(\{d{2}\})',$mask))
|
|
||||||
|
$foundCounter = 0;
|
||||||
|
$substrBegin = 0;
|
||||||
|
$substrEnd = 0;
|
||||||
|
$maskRebuild = '';
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
for ($i = 0; $i < count($maskElement); $i++)
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('(\{d{2}\})',strftime("%d",time()),$mask);
|
// Ajout du jour en cours
|
||||||
|
if ($maskElement[$i] == '{dd}')
|
||||||
|
{
|
||||||
|
$maskRebuild .= strftime("%d",time());
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd += 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (eregi('\{d+\}',$mask) && (eregi('\{d+\}',$mask) != '{dd}'))
|
else if (eregi('\{d+\}',$mask) && (eregi('\{d+\}',$mask) != '{dd}'))
|
||||||
{
|
{
|
||||||
return -1;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout du mois en cours
|
// Ajout du mois en cours
|
||||||
if (eregi('(\{m{2}\})',$mask))
|
if ($maskElement[$i] == '{mm}')
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('(\{m{2}\})',strftime("%m",time()),$mask);
|
$maskRebuild .= strftime("%m",time());
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd += 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (eregi('\{m+\}',$mask) && (eregi('\{m+\}',$mask) != '{mm}'))
|
else if (eregi('\{m+\}',$mask) && (eregi('\{m+\}',$mask) != '{mm}'))
|
||||||
{
|
{
|
||||||
return -2;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout de l'année en cours
|
// Ajout de l'année en cours
|
||||||
if (eregi('\{a{2}\}',$mask))
|
if ($maskElement[$i] == '{aa}')
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('\{a{2}\}',substr(strftime("%Y",time()),2),$mask);
|
$maskRebuild .= substr(strftime("%Y",time()),2);
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += 2;
|
||||||
}
|
}
|
||||||
else if (eregi('\{a{4}\}',$mask))
|
else
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('\{a{4}\}',strftime("%Y",time()),$mask);
|
$substrEnd += 2;
|
||||||
}
|
}
|
||||||
else if (eregi('\{a+\}',$mask) && ((eregi('\{a+\}',$mask) != '{aa}') || (eregi('\{a+\}',$mask) != '{aaa}')))
|
}
|
||||||
|
else if ($maskElement[$i] == '{aaaa}')
|
||||||
{
|
{
|
||||||
return -3;
|
$maskRebuild .= strftime("%Y",time());
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd += 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (eregi('\{a+\}',$maskElement[$i]) && ((eregi('\{a+\}',$maskElement[$i]) != '{aa}') || (eregi('\{a+\}',$maskElement[$i]) != '{aaa}')))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajout du préfix de la société
|
// Ajout du préfix de la société
|
||||||
if (is_object($objsoc) && $objsoc->prefix_comm && eregi('\{pre\}',$mask))
|
if (is_object($objsoc) && $objsoc->prefix_comm && $maskElement[$i] == '{pre}')
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('\{pre\}',strtoupper($objsoc->prefix_comm),$mask);
|
$maskRebuild .= strtoupper($objsoc->prefix_comm);
|
||||||
|
$prefixLength = strlen($objsoc->prefix_comm);
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += $prefixLength;
|
||||||
}
|
}
|
||||||
else if (is_object($objsoc) && !$objsoc->prefix_comm && eregi('\{pre\}',$mask))
|
else
|
||||||
{
|
{
|
||||||
return -4;
|
$substrEnd += $prefixLength;
|
||||||
}
|
}
|
||||||
else if (!is_object($objsoc) && eregi('\{pre\}',$mask))
|
}
|
||||||
|
else if (is_object($objsoc) && !$objsoc->prefix_comm && $maskElement[$i] == '{pre}')
|
||||||
{
|
{
|
||||||
$mask = eregi_replace('\{pre\}','ABC',$mask);
|
$error++;
|
||||||
|
}
|
||||||
|
else if (!is_object($objsoc) && $maskElement[$i] == '{pre}')
|
||||||
|
{
|
||||||
|
$maskRebuild .= 'ABC';
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += 3;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd += 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajout des séparateurs éventuels
|
||||||
|
if (eregi('[\/-]{1}',$maskElement[$i]))
|
||||||
|
{
|
||||||
|
$maskRebuild .= $maskElement[$i];
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajout des champs libres éventuels
|
||||||
|
if (eregi('^[0-9A-Z]+$',$maskElement[$i]))
|
||||||
|
{
|
||||||
|
$maskRebuild .= $maskElement[$i];
|
||||||
|
$MaskElementLength = strlen($maskElement[$i]);
|
||||||
|
if ($foundCounter==0)
|
||||||
|
{
|
||||||
|
$substrBegin += $MaskElementLength;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$substrEnd += $MaskElementLength;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Définition du compteur
|
// Définition du compteur
|
||||||
if (eregi('\{0+\}',$mask))
|
if (eregi('\{0+\}',$maskElement[$i]))
|
||||||
{
|
{
|
||||||
preg_match('/\{0+\}/',$mask,$regs);
|
|
||||||
// Défini le nombre de chiffres du compteur
|
// Défini le nombre de chiffres du compteur
|
||||||
$this->numbitcounter = strlen(substr($regs[0],1,-1));
|
$this->numbitcounter = strlen(substr($maskElement[$i],1,-1));
|
||||||
// Permettra d'effectuer une recherche dans la table
|
// Permettra d'effectuer une recherche dans la table
|
||||||
$this->searchcode = eregi_replace('\{0{'.$this->numbitcounter.'}\}','([0-9]{'.$this->numbitcounter.'})',$mask);
|
$this->searchcode = $maskRebuild . '([0-9]{'.$this->numbitcounter.'})';
|
||||||
}
|
|
||||||
|
|
||||||
return $mask;
|
$maskRebuild .= $maskElement[$i];
|
||||||
|
$foundCounter = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->substrBegin = $substrBegin;
|
||||||
|
$this->substrEnd = $substrEnd;
|
||||||
|
//print 'begin='.$this->substrBegin.'<br>';
|
||||||
|
//print 'end='.$this->substrEnd.'<br>';
|
||||||
|
return $maskRebuild;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user