';
$texte.= '';
@@ -124,6 +130,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
// Get Mask value
$mask = '';
if (is_object($facture) && $facture->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
+ else if (is_object($facture) && $facture->type == 3) $mask=$conf->global->FACTURE_MERCURE_MASK_DEPOSIT;
else $mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
if (! $mask)
{
diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php
index 1b7072ebbb5..799dc1da204 100644
--- a/htdocs/core/modules/facture/mod_facture_terre.php
+++ b/htdocs/core/modules/facture/mod_facture_terre.php
@@ -32,6 +32,7 @@ class mod_facture_terre extends ModeleNumRefFactures
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $prefixinvoice='FA';
var $prefixcreditnote='AV';
+ var $prefixdeposit='AC';
var $error='';
/**
@@ -43,7 +44,7 @@ class mod_facture_terre extends ModeleNumRefFactures
{
global $langs;
$langs->load("bills");
- return $langs->trans('TerreNumRefModelDesc1',$this->prefixinvoice,$this->prefixcreditnote);
+ return $langs->trans('TerreNumRefModelDesc1',$this->prefixinvoice,$this->prefixcreditnote,$this->prefixdeposit);
}
/**
@@ -110,6 +111,27 @@ class mod_facture_terre extends ModeleNumRefFactures
$this->error=$langs->trans('ErrorNumRefModel',$max);
return false;
}
+
+ // Check deposit num
+ $fayymm='';
+
+ $posindice=8;
+ $sql = "SELECT MAX(SUBSTRING(facnumber FROM ".$posindice.")) as max"; // This is standard SQL
+ $sql.= " FROM ".MAIN_DB_PREFIX."facture";
+ $sql.= " WHERE facnumber LIKE '".$this->prefixdeposit."____-%'";
+ $sql.= " AND entity = ".$conf->entity;
+
+ $resql=$db->query($sql);
+ if ($resql)
+ {
+ $row = $db->fetch_row($resql);
+ if ($row) { $fayymm = substr($row[0],0,6); $max=$row[0]; }
+ }
+ if ($fayymm && ! preg_match('/'.$this->prefixdeposit.'[0-9][0-9][0-9][0-9]/i',$fayymm))
+ {
+ $this->error=$langs->trans('ErrorNumRefModel',$max);
+ return false;
+ }
return true;
}
@@ -127,6 +149,7 @@ class mod_facture_terre extends ModeleNumRefFactures
global $db,$conf;
if ($facture->type == 2) $prefix=$this->prefixcreditnote;
+ else if ($facture->type == 3) $prefix=$this->prefixdeposit;
else $prefix=$this->prefixinvoice;
// D'abord on recupere la valeur max
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index c1386cf33c3..4cf9ab6d37f 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -72,6 +72,7 @@ Mask=Mask
NextValue=Next value
NextValueForInvoices=Next value (invoices)
NextValueForCreditNotes=Next value (credit notes)
+NextValueForDeposit=Next value (deposit)
MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is
NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration
MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload)
diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang
index ceab52445e2..e475eaf7cf3 100644
--- a/htdocs/langs/en_US/bills.lang
+++ b/htdocs/langs/en_US/bills.lang
@@ -411,7 +411,7 @@ PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (Tem
# oursin PDF Model
PDFOursinDescription=Invoice PDF template Oursin. A complete invoice template (Template alternative)
# NumRef Modules
-TerreNumRefModelDesc1=Return numero with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
+TerreNumRefModelDesc1=Return numero with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposits where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
MarsNumRefModelDesc1=Return numero with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for proforma invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0
TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module.
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 8a0c565e8a1..de78b75f110 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -72,6 +72,7 @@ Mask=Masque
NextValue=Prochaine valeur
NextValueForInvoices=Prochaine valeur (factures)
NextValueForCreditNotes=Prochaine valeur (avoirs)
+NextValueForDeposit=Prochaine valeur (acomptes)
MustBeLowerThanPHPLimit=Remarque : Votre PHP limite la taille des envois à %s %s, quelle que soit la valeur de ce paramètre
NoMaxSizeByPHPLimit=Aucune limite configurée dans votre serveur PHP
MaxSizeForUploadedFiles=Taille maximum des fichiers envoyés (0 pour interdire l'envoi)
diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang
index 4b56bcd1b1f..ba3214dbf6d 100644
--- a/htdocs/langs/fr_FR/bills.lang
+++ b/htdocs/langs/fr_FR/bills.lang
@@ -411,7 +411,7 @@ PDFCrabeDescription=Modèle de facture PDF complet (modèle recommandé par déf
# oursin PDF Model
PDFOursinDescription=Modèle de facture PDF complet (modèle alternatif)
# 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, %syymm-nnnn pour les avoirs et %syymm-nnnn pour les acomptes où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0
MarsNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures proforma 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 déjà et est incompatible avec cet modèle de numérotation. Supprimez-la ou renommez-la pour activer ce module.