diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php
index d044e32e078fa39dedd35a9d64760a7d56a8adbf..21417483b80f2ea0046d5157b0105458f483ddd0 100644
--- a/htdocs/compta/prelevement/class/bonprelevement.class.php
+++ b/htdocs/compta/prelevement/class/bonprelevement.class.php
@@ -893,31 +893,31 @@ class BonPrelevement extends CommonObject
*/
if (!$error)
{
- $ref = "T".substr($year,-2).$month;
-
- $sql = "SELECT CAST(RIGHT(ref,2) AS SIGNED INTEGER)";
- $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons";
- $sql.= " WHERE ref LIKE '".$ref."%'";
- $sql.= " AND entity = ".$conf->entity;
- $sql.= " ORDER BY ref DESC LIMIT 1";
-
- dol_syslog(get_class($this)."::Create", LOG_DEBUG);
- $resql = $this->db->query($sql);
-
- if ($resql)
- {
- $row = $this->db->fetch_row($resql);
- }
- else
- {
- $error++;
- dol_syslog("Erreur recherche reference");
- }
-
- $ref = $ref . substr("00".($row[0]+1), -2);
+ $ref = substr($year,-2).$month;
+
+ $sql = "SELECT substring(ref from char_length(ref) - 1)";
+ $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons";
+ $sql.= " WHERE ref LIKE '%".$ref."%'";
+ $sql.= " AND entity = ".$conf->entity;
+ $sql.= " ORDER BY ref DESC LIMIT 1";
+
+ dol_syslog(get_class($this)."::Create sql=".$sql, LOG_DEBUG);
+ $resql = $this->db->query($sql);
+
+ if ($resql)
+ {
+ $row = $this->db->fetch_row($resql);
+ }
+ else
+ {
+ $error++;
+ dol_syslog("Erreur recherche reference");
+ }
- $filebonprev = $ref;
+ $ref = "T".$ref.str_pad(dol_substr("00".intval($row[0])+1),2,"0",STR_PAD_LEFT);
+ $filebonprev = $ref;
+
// Create withdraw receipt in database
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons (";
$sql.= " ref, entity, datec";