From 22e0557309c2c58272e550c42ad3555d76266ac2 Mon Sep 17 00:00:00 2001
From: Regis Houssin <regis@dolibarr.fr>
Date: Sat, 24 Oct 2009 14:33:18 +0000
Subject: [PATCH] Fix: problem when the size of the mask is identical to the
 size of the provisional reference

---
 htdocs/core/address.class.php                 |  2 +-
 .../modules/facture/modules_facture.php       | 25 +++++++++----------
 htdocs/lib/functions2.lib.php                 |  8 +++---
 3 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/htdocs/core/address.class.php b/htdocs/core/address.class.php
index 49e85e867d2..bcaa22cfd06 100644
--- a/htdocs/core/address.class.php
+++ b/htdocs/core/address.class.php
@@ -26,7 +26,7 @@
 
 /**     \class      Address
 	    \brief      Classe permettant la gestion des adresses postales
-	    \todo       Classe non utilis�e. L'impl�menter dans les objets qui g�rent des adresses
+	    \todo       Classe non utilisee. L'implementer dans les objets qui gerent des adresses
 */
 
 class Address {
diff --git a/htdocs/includes/modules/facture/modules_facture.php b/htdocs/includes/modules/facture/modules_facture.php
index 05f52ac4d1b..190cb8f7c66 100644
--- a/htdocs/includes/modules/facture/modules_facture.php
+++ b/htdocs/includes/modules/facture/modules_facture.php
@@ -260,28 +260,27 @@ function facture_meta_create($db, $facid, $message="")
 			$nblignes = sizeof($fac->lignes);
 			$client = $fac->client->nom . " " . $fac->client->adresse . " " . $fac->client->cp . " " . $fac->client->ville;
 			$meta = "REFERENCE=\"" . $fac->ref . "\"
-DATE=\"" . dol_print_date($fac->date,'') . "\"
-NB_ITEMS=\"" . $nblignes . "\"
-CLIENT=\"" . $client . "\"
-TOTAL_HT=\"" . $fac->total_ht . "\"
-TOTAL_TTC=\"" . $fac->total_ttc . "\"\n";
+			DATE=\"" . dol_print_date($fac->date,'') . "\"
+			NB_ITEMS=\"" . $nblignes . "\"
+			CLIENT=\"" . $client . "\"
+			TOTAL_HT=\"" . $fac->total_ht . "\"
+			TOTAL_TTC=\"" . $fac->total_ttc . "\"\n";
 
 			for ($i = 0 ; $i < $nblignes ; $i++)
 			{
-	  	//Pour les articles
-	  	$meta .= "ITEM_" . $i . "_QUANTITY=\"" . $fac->lignes[$i]->qty . "\"
-ITEM_" . $i . "_UNIT_PRICE=\"" . $fac->lignes[$i]->price . "\"
-ITEM_" . $i . "_TVA=\"" .$fac->lignes[$i]->tva_tx . "\"
-ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($fac->lignes[$i]->desc)) . "\"
-";
-	  }
+				//Pour les articles
+				$meta .= "ITEM_" . $i . "_QUANTITY=\"" . $fac->lignes[$i]->qty . "\"
+				ITEM_" . $i . "_UNIT_PRICE=\"" . $fac->lignes[$i]->price . "\"
+				ITEM_" . $i . "_TVA=\"" .$fac->lignes[$i]->tva_tx . "\"
+				ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($fac->lignes[$i]->desc)) . "\"
+				";
+			}
 		}
 		$fp = fopen ($file,"w");
 		fputs($fp,$meta);
 		fclose($fp);
 		if (! empty($conf->global->MAIN_UMASK))
 		@chmod($file, octdec($conf->global->MAIN_UMASK));
-
 	}
 }
 
diff --git a/htdocs/lib/functions2.lib.php b/htdocs/lib/functions2.lib.php
index 32cab7f08ad..c1f51215738 100644
--- a/htdocs/lib/functions2.lib.php
+++ b/htdocs/lib/functions2.lib.php
@@ -463,12 +463,13 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
 	$sql = "SELECT MAX(".$sqlstring.") as val";
 	$sql.= " FROM ".MAIN_DB_PREFIX.$table;
 	//		$sql.= " WHERE ".$field." not like '(%'";
-	$sql.= " WHERE ".$field." like '".$maskLike."'";
+	$sql.= " WHERE ".$field." LIKE '".$maskLike."'";
+	$sql.= " AND ".$field." NOT LIKE '%PROV%'";
 	$sql.= " AND entity = ".$conf->entity;
 	if ($where) $sql.=$where;
 	if ($sqlwhere) $sql.=' AND '.$sqlwhere;
 
-	//print $sql;
+	//print $sql.'<br>';
 	dol_syslog("functions2::get_next_value sql=".$sql, LOG_DEBUG);
 	$resql=$db->query($sql);
 	if ($resql)
@@ -507,7 +508,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
 		$maskrefclient_sql = "SELECT MAX(".$maskrefclient_sqlstring.") as val";
 		$maskrefclient_sql.= " FROM ".MAIN_DB_PREFIX.$table;
 		//$sql.= " WHERE ".$field." not like '(%'";
-		$maskrefclient_sql.= " WHERE ".$field." like '".$maskrefclient_maskLike."'";
+		$maskrefclient_sql.= " WHERE ".$field." LIKE '".$maskrefclient_maskLike."'";
+		$maskrefclient_sql.= " AND entity = ".$conf->entity;
 		if ($where) $maskrefclient_sql.=$where; //use the same optional where as general mask
 		if ($sqlwhere) $maskrefclient_sql.=' AND '.$sqlwhere; //use the same sqlwhere as general mask
 		$maskrefclient_sql.=' AND (SUBSTRING('.$field.', '.(strpos($maskwithnocode,$maskrefclient)+1).', '.strlen($maskrefclient_maskclientcode).")='".$maskrefclient_clientcode."')";
-- 
GitLab