Fix: Try a better fix for numbering modules to be more stable when using another module

This commit is contained in:
Laurent Destailleur 2010-05-31 19:18:31 +00:00
parent e5548f75ad
commit 428738e0ef
9 changed files with 247 additions and 207 deletions

View File

@ -19,123 +19,125 @@
*/ */
/** /**
\file htdocs/includes/modules/commande/mod_commande_marbre.php \file htdocs/includes/modules/commande/mod_commande_marbre.php
\ingroup commande \ingroup commande
\brief Fichier contenant la classe du modele de num<EFBFBD>rotation de reference de commande Marbre \brief Fichier contenant la classe du modele de num<EFBFBD>rotation de reference de commande Marbre
\version $Id$ \version $Id$
*/ */
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/commande/modules_commande.php"); require_once(DOL_DOCUMENT_ROOT ."/includes/modules/commande/modules_commande.php");
/** \class mod_commande_marbre /** \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 class mod_commande_marbre extends ModeleNumRefCommandes
{ {
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefix='CO'; var $prefix='CO';
var $error=''; var $error='';
var $nom='Marbre'; var $nom='Marbre';
/** \brief Renvoi la description du modele de numerotation /** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif * \return string Texte descripif
*/ */
function info() function info()
{ {
global $langs; global $langs;
return $langs->trans("MarbreNumRefDesc",$this->prefix); return $langs->trans("MarbreNumRefDesc",$this->prefix);
} }
/** \brief Renvoi un exemple de numerotation /** \brief Renvoi un exemple de numerotation
* \return string Example * \return string Example
*/ */
function getExample() function getExample()
{ {
return $this->prefix."0501-0001"; return $this->prefix."0501-0001";
} }
/** \brief Test si les numeros deje en vigueur dans la base ne provoquent pas de /** \brief Test si les numeros deje en vigueur dans la base ne provoquent pas de
* de conflits qui empechera cette numerotation de fonctionner. * de conflits qui empechera cette numerotation de fonctionner.
* \return boolean false si conflit, true si ok * \return boolean false si conflit, true si ok
*/ */
function canBeActivated() function canBeActivated()
{ {
global $conf; 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;
}
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 /** \brief Return next value
* \param objsoc Objet third party * \param objsoc Objet third party
* \param commande Object order * \param commande Object order
* \return string Value if OK, 0 if KO * \return string Value if OK, 0 if KO
*/ */
function getNextValue($objsoc,$commande) function getNextValue($objsoc,$commande)
{ {
global $db,$conf; global $db,$conf;
// D'abord on recupere la valeur max (reponse immediate car champ indexe) // D'abord on recupere la valeur max
$posindice=8; $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"; $sql.= " FROM ".MAIN_DB_PREFIX."commande";
$sql.= " WHERE ref like '".$this->prefix."%'"; $sql.= " WHERE ref like '".$this->prefix."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
if ($obj) $max = intval($obj->max); if ($obj) $max = intval($obj->max);
else $max=0; else $max=0;
} }
else else
{ {
dol_syslog("mod_commande_marbre::getNextValue sql=".$sql); dol_syslog("mod_commande_marbre::getNextValue sql=".$sql);
return -1; return -1;
} }
//$date=time(); //$date=time();
$date=$commande->date; $date=$commande->date;
$yymm = strftime("%y%m",$date); $yymm = strftime("%y%m",$date);
$num = sprintf("%04s",$max+1); $num = sprintf("%04s",$max+1);
dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num); dol_syslog("mod_commande_marbre::getNextValue return ".$this->prefix.$yymm."-".$num);
return $this->prefix.$yymm."-".$num; return $this->prefix.$yymm."-".$num;
} }
/** \brief Return next free value /** \brief Return next free value
* \param objsoc Object third party * \param objsoc Object third party
* \param objforref Object for number to search * \param objforref Object for number to search
* \return string Next free value * \return string Next free value
*/ */
function commande_get_num($objsoc,$objforref) function commande_get_num($objsoc,$objforref)
{ {
return $this->getNextValue($objsoc,$objforref); return $this->getNextValue($objsoc,$objforref);
} }
} }
?> ?>

View File

@ -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 /** \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 * \return boolean false si conflit, true si ok
*/ */
function canBeActivated() function canBeActivated()
@ -69,9 +69,9 @@ class mod_facture_terre extends ModeleNumRefFactures
// Check invoice num // Check invoice num
$fayymm=''; $fayymm='';
$sql = "SELECT MAX(facnumber)"; $sql = "SELECT MAX(facnumber) as max";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$this->prefixinvoice."%'"; $sql.= " WHERE facnumber LIKE '".$this->prefixinvoice."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $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)) 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; return false;
} }
@ -91,7 +92,7 @@ class mod_facture_terre extends ModeleNumRefFactures
$sql = "SELECT MAX(facnumber)"; $sql = "SELECT MAX(facnumber)";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$this->prefixcreditnote."%'"; $sql.= " WHERE facnumber LIKE '".$this->prefixcreditnote."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);
@ -121,12 +122,11 @@ class mod_facture_terre extends ModeleNumRefFactures
if ($facture->type == 2) $prefix=$this->prefixcreditnote; if ($facture->type == 2) $prefix=$this->prefixcreditnote;
else $prefix=$this->prefixinvoice; 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; $posindice=8;
$sql = "SELECT MAX(SUBSTRING(facnumber FROM ".$posindice.")) as max"; // This is standard SQL
$sql = "SELECT MAX(SUBSTRING(facnumber,".$posindice.")) as max";
$sql.= " FROM ".MAIN_DB_PREFIX."facture"; $sql.= " FROM ".MAIN_DB_PREFIX."facture";
$sql.= " WHERE facnumber like '".$prefix."%'"; $sql.= " WHERE facnumber LIKE '".$prefix."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);

View File

@ -19,69 +19,69 @@
*/ */
/** /**
\file htdocs/includes/modules/fichinter/mod_pacific.php \file htdocs/includes/modules/fichinter/mod_pacific.php
\ingroup fiche intervention \ingroup fiche intervention
\brief Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific \brief Fichier contenant la classe du modele de numerotation de reference de fiche intervention Pacific
\version $Id$ \version $Id$
*/ */
require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/modules_fichinter.php"); require_once(DOL_DOCUMENT_ROOT ."/includes/modules/fichinter/modules_fichinter.php");
/** /**
\class mod_pacific * \class mod_pacific
\brief Classe du moderotation de reference de fiche intervention Pacific * \brief Classe du moderotation de reference de fiche intervention Pacific
*/ */
class mod_pacific extends ModeleNumRefFicheinter class mod_pacific extends ModeleNumRefFicheinter
{ {
var $prefix='FI'; var $prefix='FI';
var $error=''; var $error='';
/** \brief Constructeur /** \brief Constructeur
*/ */
function mod_pacific() function mod_pacific()
{ {
$this->nom = "pacific"; $this->nom = "pacific";
} }
/** \brief Renvoi la description du modele de numerotation /** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif * \return string Texte descripif
*/ */
function info() function info()
{ {
global $langs; global $langs;
$langs->load("bills"); $langs->load("bills");
return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
}
/** \brief Renvoi un exemple de numerotation return $langs->trans('PacificNumRefModelDesc1',$this->prefix);
* \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 /** \brief Renvoi un exemple de numerotation
* de conflits qui empechera cette numerotation de fonctionner. * \return string Example
* \return boolean false si conflit, true si ok */
*/ 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() function canBeActivated()
{ {
global $langs,$conf; global $langs,$conf;
$langs->load("bills"); $langs->load("bills");
$fayymm=''; $fayymm='';
$sql = "SELECT MAX(ref)"; $sql = "SELECT MAX(ref)";
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter"; $sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
$sql.= " WHERE ref like '".$this->prefix."____-%'";
$sql.= " WHERE entity = ".$conf->entity; $sql.= " WHERE entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
@ -94,54 +94,54 @@ class mod_pacific extends ModeleNumRefFicheinter
} }
else else
{ {
$this->error=$langs->trans('PacificNumRefModelError'); $langs->load("errors");
$this->error=$langs->trans('ErrorNumRefModel');
return false; return false;
} }
} }
/** \brief Renvoi prochaine valeur attribuee /** \brief Renvoi prochaine valeur attribuee
* \param objsoc Objet societe * \param objsoc Objet societe
* \param ficheinter Object ficheinter * \param ficheinter Object ficheinter
* \return string Valeur * \return string Valeur
*/ */
function getNextValue($objsoc=0,$ficheinter='') function getNextValue($objsoc=0,$object='')
{ {
global $db,$conf; global $db,$conf;
// D'abord on recupere la valeur max (reponse immediate car champ indexe) // D'abord on recupere la valeur max (reponse immediate car champ indexe)
$posindice=8; $posindice=8;
$sql = "SELECT MAX(SUBSTRING(ref FROM ".$posindice.")) as max";
$sql = "SELECT MAX(SUBSTRING(ref,".$posindice.")) as max"; $sql.= " FROM ".MAIN_DB_PREFIX."fichinter";
$sql.= " FROM ".MAIN_DB_PREFIX."fichinter"; $sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
$sql.= " WHERE ref like '".$this->prefix."%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
if ($obj) $max = intval($obj->max); if ($obj) $max = intval($obj->max);
else $max=0; else $max=0;
} }
//$date=time(); //$date=time();
$date=$ficheinter->date; $date=$object->date;
$yymm = strftime("%y%m",$date); $yymm = strftime("%y%m",$date);
$num = sprintf("%04s",$max+1); $num = sprintf("%04s",$max+1);
return $this->prefix.$yymm."-".$num; return $this->prefix.$yymm."-".$num;
} }
/** \brief Return next free value /** \brief Return next free value
* \param objsoc Object third party * \param objsoc Object third party
* \param objforref Object for number to search * \param objforref Object for number to search
* \return string Next free value * \return string Next free value
*/ */
function getNumRef($objsoc,$objforref) function getNumRef($objsoc,$objforref)
{ {
return $this->getNextValue($objsoc,$objforref); return $this->getNextValue($objsoc,$objforref);
} }
} }
?> ?>

View File

@ -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 * \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) // D'abord on recupere la valeur max (reponse immediate car champ indexe)
$posindice=8; $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.= " FROM ".MAIN_DB_PREFIX."projet";
$sql.= " WHERE ref like '".$this->prefix."%'"; $sql.= " WHERE ref like '".$this->prefix."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);

View File

@ -68,9 +68,10 @@ class mod_propale_marbre extends ModeleNumRefPropales
$pryymm=''; $pryymm='';
$sql = "SELECT MAX(ref)"; $sql = "SELECT MAX(ref) as max";
$sql.= " FROM ".MAIN_DB_PREFIX."propal"; $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); $resql=$db->query($sql);
if ($resql) if ($resql)
@ -78,13 +79,15 @@ class mod_propale_marbre extends ModeleNumRefPropales
$row = $db->fetch_row($resql); $row = $db->fetch_row($resql);
if ($row) $pryymm = substr($row[0],0,6); 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; return true;
} }
else 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; return false;
} }
} }
@ -98,12 +101,11 @@ class mod_propale_marbre extends ModeleNumRefPropales
{ {
global $db,$conf; global $db,$conf;
// D'abord on recupere la valeur max (reponse immediate car champ indexe) // D'abord on recupere la valeur max
$posindice=8; $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(SUBSTRING(ref FROM ".$posindice.")) as max"; // This is standard SQL
$sql = "SELECT MAX(0+SUBSTRING(ref FROM ".$posindice.")) as max";
$sql.= " FROM ".MAIN_DB_PREFIX."propal"; $sql.= " FROM ".MAIN_DB_PREFIX."propal";
$sql.= " WHERE ref LIKE '".$this->prefix."%'"; $sql.= " WHERE ref LIKE '".$this->prefix."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);

View File

@ -29,16 +29,16 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/supplier_order/modules_comman
/** \class mod_commande_fournisseur_muguet /** \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 class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
{ {
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = ''; var $error = '';
var $nom = 'Muguet'; var $nom = 'Muguet';
var $prefix='CF'; var $prefix='CF';
/** \brief Renvoi la description du modele de numerotation /** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif * \return string Texte descripif
*/ */
@ -64,12 +64,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
function canBeActivated() function canBeActivated()
{ {
global $conf; global $conf;
$coyymm=''; $coyymm='';
$sql = "SELECT MAX(ref)"; $sql = "SELECT MAX(ref) as max";
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur"; $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); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
@ -82,8 +83,9 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
} }
else 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.'; $langs->load("errors");
return false; $this->error=$langs->trans('ErrorNumRefModel');
return false;
} }
} }
@ -96,13 +98,13 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
{ {
global $db,$conf; global $db,$conf;
// D'abord on recupere la valeur max (reponse immediate car champ indexe) // D'abord on recupere la valeur max
$posindice=8; $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.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur";
$sql.= " WHERE ref like '".$this->prefix."%'"; $sql.= " WHERE ref like '".$this->prefix."____-%'";
$sql.= " AND entity = ".$conf->entity; $sql.= " AND entity = ".$conf->entity;
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)
{ {
@ -110,12 +112,12 @@ class mod_commande_fournisseur_muguet extends ModeleNumRefSuppliersOrders
if ($obj) $max = intval($obj->max); if ($obj) $max = intval($obj->max);
else $max=0; else $max=0;
} }
//$date=time(); //$date=time();
$date=$object->date_commande; $date=$object->date_commande;
$yymm = strftime("%y%m",$date); $yymm = strftime("%y%m",$date);
$num = sprintf("%04s",$max+1); $num = sprintf("%04s",$max+1);
return $this->prefix.$yymm."-".$num; return $this->prefix.$yymm."-".$num;
} }

View File

@ -70,3 +70,5 @@ ErrorFileIsInfectedWithAVirus=The antivirus program was not able to validate the
ErrorSpecialCharNotAllowedForField=Special characters are not allowed for field "%s" 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. 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>'). 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.

View File

@ -402,4 +402,3 @@ PDFTourteauDescription=Modèle de facture sans remise
# NumRef Modules # 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 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.

View File

@ -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) ! 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" 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. 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.