From fe5533d1c37444031539d2d8aaa7aa4c95a2513f Mon Sep 17 00:00:00 2001
From: Juanjo Menent <jmenent@2byte.es>
Date: Fri, 16 Jan 2015 17:41:56 +0100
Subject: [PATCH] Fix: PostgreSQL compatibilty

---
 .../class/bonprelevement.class.php            | 46 +++++++++----------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php
index 4fe098b8706..7f0b693391e 100644
--- a/htdocs/compta/prelevement/class/bonprelevement.class.php
+++ b/htdocs/compta/prelevement/class/bonprelevement.class.php
@@ -890,31 +890,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 sql=".$sql, 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";
-- 
GitLab