Fix: Try a better fix for numbering modules to be more stable when using another module
This commit is contained in:
parent
e5548f75ad
commit
428738e0ef
@ -19,123 +19,125 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/commande/mod_commande_marbre.php
|
||||
\ingroup commande
|
||||
\brief Fichier contenant la classe du modele de num<EFBFBD>rotation de reference de commande Marbre
|
||||
\version $Id$
|
||||
*/
|
||||
\file htdocs/includes/modules/commande/mod_commande_marbre.php
|
||||
\ingroup commande
|
||||
\brief Fichier contenant la classe du modele de num<EFBFBD>rotation de reference de commande Marbre
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/commande/modules_commande.php");
|
||||
|
||||
/** \class mod_commande_marbre
|
||||
\brief Classe du modele de numerotation de reference de commande Marbre
|
||||
*/
|
||||
\brief Classe du modele de numerotation de reference de commande Marbre
|
||||
*/
|
||||
|
||||
class mod_commande_marbre extends ModeleNumRefCommandes
|
||||
{
|
||||
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
|
||||
var $prefix='CO';
|
||||
var $error='';
|
||||
var $nom='Marbre';
|
||||
|
||||
|
||||
/** \brief Renvoi la description du modele de numerotation
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info()
|
||||
{
|
||||
var $error='';
|
||||
var $nom='Marbre';
|
||||
|
||||
|
||||
/** \brief Renvoi la description du modele de numerotation
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info()
|
||||
{
|
||||
global $langs;
|
||||
return $langs->trans("MarbreNumRefDesc",$this->prefix);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi un exemple de numerotation
|
||||
* \return string Example
|
||||
*/
|
||||
function getExample()
|
||||
{
|
||||
return $this->prefix."0501-0001";
|
||||
}
|
||||
/** \brief Renvoi un exemple de numerotation
|
||||
* \return string Example
|
||||
*/
|
||||
function getExample()
|
||||
{
|
||||
return $this->prefix."0501-0001";
|
||||
}
|
||||
|
||||
|
||||
/** \brief Test si les numeros deje en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
function canBeActivated()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$coyymm='';
|
||||
|
||||
$sql = "SELECT MAX(ref)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE ref like '".$this->prefix."%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$row = $db->fetch_row($resql);
|
||||
if ($row) $coyymm = substr($row[0],0,6);
|
||||
}
|
||||
if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
|
||||
{
|
||||
$this->error='Une commande commencant par $coyymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
|
||||
return false;
|
||||
}
|
||||
/** \brief Test si les numeros deje en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
function canBeActivated()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
return true;
|
||||
}
|
||||
$coyymm='';
|
||||
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(ref) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$row = $db->fetch_row($resql);
|
||||
if ($row) $coyymm = substr($row[0],0,6);
|
||||
}
|
||||
if ($coyymm && ! preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
|
||||
{
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/** \brief Return next value
|
||||
* \param objsoc Objet third party
|
||||
* \param commande Object order
|
||||
* \return string Value if OK, 0 if KO
|
||||
*/
|
||||
function getNextValue($objsoc,$commande)
|
||||
{
|
||||
global $db,$conf;
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE ref like '".$this->prefix."%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
if ($obj) $max = intval($obj->max);
|
||||
else $max=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("mod_commande_marbre::getNextValue sql=".$sql);
|
||||
return -1;
|
||||
}
|
||||
|
||||
//$date=time();
|
||||
$date=$commande->date;
|
||||
$yymm = strftime("%y%m",$date);
|
||||
$num = sprintf("%04s",$max+1);
|
||||
|
||||
dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
|
||||
return $this->prefix.$yymm."-".$num;
|
||||
}
|
||||
* \param objsoc Objet third party
|
||||
* \param commande Object order
|
||||
* \return string Value if OK, 0 if KO
|
||||
*/
|
||||
function getNextValue($objsoc,$commande)
|
||||
{
|
||||
global $db,$conf;
|
||||
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande";
|
||||
$sql.= " WHERE ref like '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
if ($obj) $max = intval($obj->max);
|
||||
else $max=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("mod_commande_marbre::getNextValue sql=".$sql);
|
||||
return -1;
|
||||
}
|
||||
|
||||
//$date=time();
|
||||
$date=$commande->date;
|
||||
$yymm = strftime("%y%m",$date);
|
||||
$num = sprintf("%04s",$max+1);
|
||||
|
||||
dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
|
||||
return $this->prefix.$yymm."-".$num;
|
||||
}
|
||||
|
||||
|
||||
/** \brief Return next free value
|
||||
* \param objsoc Object third party
|
||||
* \param objforref Object for number to search
|
||||
* \return string Next free value
|
||||
*/
|
||||
function commande_get_num($objsoc,$objforref)
|
||||
{
|
||||
return $this->getNextValue($objsoc,$objforref);
|
||||
}
|
||||
|
||||
* \param objsoc Object third party
|
||||
* \param objforref Object for number to search
|
||||
* \return string Next free value
|
||||
*/
|
||||
function commande_get_num($objsoc,$objforref)
|
||||
{
|
||||
return $this->getNextValue($objsoc,$objforref);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@ -57,7 +57,7 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
}
|
||||
|
||||
/** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette num<EFBFBD>rotation de fonctionner.
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
function canBeActivated()
|
||||
@ -69,9 +69,9 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
// Check invoice num
|
||||
$fayymm='';
|
||||
|
||||
$sql = "SELECT MAX(facnumber)";
|
||||
$sql = "SELECT MAX(facnumber) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql.= " WHERE facnumber like '".$this->prefixinvoice."%'";
|
||||
$sql.= " WHERE facnumber LIKE '".$this->prefixinvoice."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
@ -82,7 +82,8 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
}
|
||||
if ($fayymm && ! preg_match('/'.$this->prefixinvoice.'[0-9][0-9][0-9][0-9]/i',$fayymm))
|
||||
{
|
||||
$this->error=$langs->trans('TerreNumRefModelError');
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -91,7 +92,7 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
|
||||
$sql = "SELECT MAX(facnumber)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql.= " WHERE facnumber like '".$this->prefixcreditnote."%'";
|
||||
$sql.= " WHERE facnumber LIKE '".$this->prefixcreditnote."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
@ -121,12 +122,11 @@ class mod_facture_terre extends ModeleNumRefFactures
|
||||
if ($facture->type == 2) $prefix=$this->prefixcreditnote;
|
||||
else $prefix=$this->prefixinvoice;
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ ind<6E>x<EFBFBD>)
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice=8;
|
||||
|
||||
$sql = "SELECT MAX(SUBSTRING(facnumber,".$posindice.")) as max";
|
||||
$sql = "SELECT MAX(SUBSTRING(facnumber FROM ".$posindice.")) as max"; // This is standard SQL
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
|
||||
$sql.= " WHERE facnumber like '".$prefix."%'";
|
||||
$sql.= " WHERE facnumber LIKE '".$prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
|
||||
@ -19,69 +19,69 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/fichinter/mod_pacific.php
|
||||
\ingroup fiche intervention
|
||||
\brief Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific
|
||||
\version $Id$
|
||||
*/
|
||||
\file htdocs/includes/modules/fichinter/mod_pacific.php
|
||||
\ingroup fiche intervention
|
||||
\brief Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific
|
||||
\version $Id$
|
||||
*/
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/modules_fichinter.php");
|
||||
|
||||
/**
|
||||
\class mod_pacific
|
||||
\brief Classe du moderotation de reference de fiche intervention Pacific
|
||||
*/
|
||||
|
||||
* \class mod_pacific
|
||||
* \brief Classe du moderotation de reference de fiche intervention Pacific
|
||||
*/
|
||||
class mod_pacific extends ModeleNumRefFicheinter
|
||||
{
|
||||
var $prefix='FI';
|
||||
var $error='';
|
||||
|
||||
|
||||
|
||||
|
||||
/** \brief Constructeur
|
||||
*/
|
||||
*/
|
||||
function mod_pacific()
|
||||
{
|
||||
$this->nom = "pacific";
|
||||
}
|
||||
|
||||
|
||||
/** \brief Renvoi la description du modele de numerotation
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info()
|
||||
{
|
||||
global $langs;
|
||||
/** \brief Renvoi la description du modele de numerotation
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
function info()
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$langs->load("bills");
|
||||
|
||||
return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
|
||||
}
|
||||
|
||||
/** \brief Renvoi un exemple de numerotation
|
||||
* \return string Example
|
||||
*/
|
||||
function getExample()
|
||||
{
|
||||
return $this->prefix."0501-0001";
|
||||
}
|
||||
return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
|
||||
}
|
||||
|
||||
/** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
/** \brief Renvoi un exemple de numerotation
|
||||
* \return string Example
|
||||
*/
|
||||
function getExample()
|
||||
{
|
||||
return $this->prefix."0501-0001";
|
||||
}
|
||||
|
||||
/** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
function canBeActivated()
|
||||
{
|
||||
global $langs,$conf;
|
||||
|
||||
|
||||
$langs->load("bills");
|
||||
|
||||
|
||||
$fayymm='';
|
||||
|
||||
|
||||
$sql = "SELECT MAX(ref)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
|
||||
$sql.= " WHERE ref like '".$this->prefix."____-%'";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -94,54 +94,54 @@ class mod_pacific extends ModeleNumRefFicheinter
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$langs->trans('PacificNumRefModelError');
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/** \brief Renvoi prochaine valeur attribuee
|
||||
* \param objsoc Objet societe
|
||||
* \param ficheinter Object ficheinter
|
||||
* \return string Valeur
|
||||
*/
|
||||
function getNextValue($objsoc=0,$ficheinter='')
|
||||
* \param objsoc Objet societe
|
||||
* \param ficheinter Object ficheinter
|
||||
* \return string Valeur
|
||||
*/
|
||||
function getNextValue($objsoc=0,$object='')
|
||||
{
|
||||
global $db,$conf;
|
||||
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
$posindice=8;
|
||||
|
||||
$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
|
||||
$sql.= " WHERE ref like '".$this->prefix."%'";
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
if ($obj) $max = intval($obj->max);
|
||||
else $max=0;
|
||||
}
|
||||
|
||||
//$date=time();
|
||||
$date=$ficheinter->date;
|
||||
$yymm = strftime("%y%m",$date);
|
||||
$num = sprintf("%04s",$max+1);
|
||||
|
||||
return $this->prefix.$yymm."-".$num;
|
||||
}
|
||||
|
||||
if ($resql)
|
||||
{
|
||||
$obj = $db->fetch_object($resql);
|
||||
if ($obj) $max = intval($obj->max);
|
||||
else $max=0;
|
||||
}
|
||||
|
||||
//$date=time();
|
||||
$date=$object->date;
|
||||
$yymm = strftime("%y%m",$date);
|
||||
$num = sprintf("%04s",$max+1);
|
||||
|
||||
return $this->prefix.$yymm."-".$num;
|
||||
}
|
||||
|
||||
/** \brief Return next free value
|
||||
* \param objsoc Object third party
|
||||
* \param objforref Object for number to search
|
||||
* \return string Next free value
|
||||
*/
|
||||
function getNumRef($objsoc,$objforref)
|
||||
{
|
||||
return $this->getNextValue($objsoc,$objforref);
|
||||
}
|
||||
|
||||
* \param objsoc Object third party
|
||||
* \param objforref Object for number to search
|
||||
* \return string Next free value
|
||||
*/
|
||||
function getNumRef($objsoc,$objforref)
|
||||
{
|
||||
return $this->getNextValue($objsoc,$objforref);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@ -59,6 +59,38 @@ class mod_project_simple extends ModeleNumRefProjects
|
||||
}
|
||||
|
||||
|
||||
/** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
* \return boolean false si conflit, true si ok
|
||||
*/
|
||||
function canBeActivated()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$coyymm='';
|
||||
|
||||
$sql = "SELECT MAX(ref) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet";
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$row = $db->fetch_row($resql);
|
||||
if ($row) $coyymm = substr($row[0],0,6);
|
||||
}
|
||||
if (! $coyymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$coyymm))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \brief Return next value
|
||||
@ -72,9 +104,9 @@ class mod_project_simple extends ModeleNumRefProjects
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet";
|
||||
$sql.= " WHERE ref like '".$this->prefix."%'";
|
||||
$sql.= " WHERE ref like '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
|
||||
@ -68,9 +68,10 @@ class mod_propale_marbre extends ModeleNumRefPropales
|
||||
|
||||
$pryymm='';
|
||||
|
||||
$sql = "SELECT MAX(ref)";
|
||||
$sql = "SELECT MAX(ref) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."propal";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
@ -78,13 +79,15 @@ class mod_propale_marbre extends ModeleNumRefPropales
|
||||
$row = $db->fetch_row($resql);
|
||||
if ($row) $pryymm = substr($row[0],0,6);
|
||||
}
|
||||
if (! $pryymm || preg_match('/PR[0-9][0-9][0-9][0-9]/i',$pryymm))
|
||||
|
||||
if (! $pryymm || preg_match('/'.$this->prefix.'[0-9][0-9][0-9][0-9]/i',$pryymm))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error='Une propal commencant par $pryymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -98,12 +101,11 @@ class mod_propale_marbre extends ModeleNumRefPropales
|
||||
{
|
||||
global $db,$conf;
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice=8;
|
||||
// TODO le 0+ cree une erreur sous pgsql mais est utile sous mysql si utilisation de différent module dans le passé
|
||||
$sql = "SELECT MAX(0+SUBSTRING(ref FROM ".$posindice.")) as max";
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max"; // This is standard SQL
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."propal";
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."%'";
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
$resql=$db->query($sql);
|
||||
|
||||
@ -29,16 +29,16 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/supplier_order/modules_comman
|
||||
|
||||
|
||||
/** \class mod_commande_fournisseur_muguet
|
||||
\brief Classe du modele de numerotation de reference de commande fournisseur Muguet
|
||||
*/
|
||||
* \brief Classe du modele de numerotation de reference de commande fournisseur Muguet
|
||||
*/
|
||||
class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
{
|
||||
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
|
||||
var $error = '';
|
||||
var $nom = 'Muguet';
|
||||
var $prefix='CF';
|
||||
|
||||
|
||||
|
||||
|
||||
/** \brief Renvoi la description du modele de numerotation
|
||||
* \return string Texte descripif
|
||||
*/
|
||||
@ -64,12 +64,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
function canBeActivated()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
$coyymm='';
|
||||
|
||||
$sql = "SELECT MAX(ref)";
|
||||
|
||||
$sql = "SELECT MAX(ref) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||
$sql.= " WHERE entity = ".$conf->entity;
|
||||
$sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -82,8 +83,9 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error='Une commande commencant par $coyymm existe en base et est incompatible avec cette numerotation. Supprimer la ou renommer la pour activer ce module.';
|
||||
return false;
|
||||
$langs->load("errors");
|
||||
$this->error=$langs->trans('ErrorNumRefModel');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,13 +98,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
{
|
||||
global $db,$conf;
|
||||
|
||||
// D'abord on recupere la valeur max (reponse immediate car champ indexe)
|
||||
// D'abord on recupere la valeur max
|
||||
$posindice=8;
|
||||
$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max";
|
||||
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||
$sql.= " WHERE ref like '".$this->prefix."%'";
|
||||
$sql.= " WHERE ref like '".$this->prefix."____-%'";
|
||||
$sql.= " AND entity = ".$conf->entity;
|
||||
|
||||
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -110,12 +112,12 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
|
||||
if ($obj) $max = intval($obj->max);
|
||||
else $max=0;
|
||||
}
|
||||
|
||||
|
||||
//$date=time();
|
||||
$date=$object->date_commande;
|
||||
$yymm = strftime("%y%m",$date);
|
||||
$num = sprintf("%04s",$max+1);
|
||||
|
||||
|
||||
return $this->prefix.$yymm."-".$num;
|
||||
}
|
||||
|
||||
|
||||
@ -70,3 +70,5 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
|
||||
ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s"
|
||||
WarningNoDocumentModelActivated=No model, for document generation, has been activated. A model will be choosed by default until you check your module setup.
|
||||
ErrorDatabaseParameterWrong=Database setup parameter '<b>%s</b>' has a value not compatible to use Dolibarr (must have value '<b>%s</b>').
|
||||
ErrorNumRefModel=A reference exists into database (%s) and is not compatible with this numbering rule. Remove record or renamed reference to activate this module.
|
||||
|
||||
|
||||
@ -402,4 +402,3 @@ PDFTourteauDescription=Modèle de facture sans remise
|
||||
# NumRef Modules
|
||||
|
||||
TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et %syymm-nnnn pour les avoirs où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0
|
||||
TerreNumRefModelError=Une facture commençant par $syymm existe en base et est incompatible avec cette numérotation. Supprimez la ou renommez la pour activer ce module.
|
||||
|
||||
@ -70,4 +70,5 @@ WarningsOnXLines=Alertes sur <b>%s</b> lignes sources
|
||||
ErrorFileIsInfectedWithAVirus=L'antivirus n'a pas pu valider ce fichier (il est probablement infecté par un virus) !
|
||||
ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas admis pour le champ "%s"
|
||||
WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera pris par défaut en attendant la correction de configuration du module.
|
||||
ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>').
|
||||
ErrorDatabaseParameterWrong=Le paramètre de configuration de la base de donnée '<b>%s</b>' a une valeur non compatible pour une utilisation de Dolibarr (doit avoir la valeur '<b>%s</b>').
|
||||
ErrorNumRefModel=Une référence existe en base (%s) et est incompatible avec cette numérotation. Supprimez la ligne ou renommez la référence pour activer ce module.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user