Hello all,

here is a patch for dolibarr 9.0.2 wich replace "empty" by "!= '' tests
againts fournisseurs accounts because i use "0" as prefix for theses
accounts.

i don't know if it could be used in official dolibarr sources ? if yes i
can make a pull request for that.

Éric

-- 
Éric Seigne             | CAP-REL*
eric.sei...@cap-rel.fr  | +33 (0)6 987 444 01
https://cap-rel.fr      | *Réseau Expertise Linux

diff -ru dolibarr-9.0.2/htdocs/accountancy/bookkeeping/listbyaccount.php dolibarr-9.0.2-patched/htdocs/accountancy/bookkeeping/listbyaccount.php
--- dolibarr-9.0.2/htdocs/accountancy/bookkeeping/listbyaccount.php	2018-11-05 20:20:32.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/accountancy/bookkeeping/listbyaccount.php	2019-04-23 09:43:02.287851117 +0200
@@ -350,7 +350,7 @@
 		$colspan = 9;
 		print "<tr>";
 		print '<td colspan="'.$colspan.'" style="font-weight:bold; border-bottom: 1pt solid black;">';
-		if (! empty($line->numero_compte) && $line->numero_compte != '-1') print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte);
+		if ($line->numero_compte != "" && $line->numero_compte != '-1') print length_accountg($line->numero_compte) . ' : ' . $object->get_compte_desc($line->numero_compte);
 		else print '<span class="error">'.$langs->trans("Unknown").'</span>';
 		print '</td>';
 		print '</tr>';
diff -ru dolibarr-9.0.2/htdocs/accountancy/class/bookkeeping.class.php dolibarr-9.0.2-patched/htdocs/accountancy/class/bookkeeping.class.php
--- dolibarr-9.0.2/htdocs/accountancy/class/bookkeeping.class.php	2019-02-12 13:36:31.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/accountancy/class/bookkeeping.class.php	2019-04-23 09:39:04.966776412 +0200
@@ -221,7 +221,7 @@
 		if (empty($this->credit)) $this->credit = 0;
 
 		// Check parameters
-		if (empty($this->numero_compte) || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined')
+		if (($this->numero_compte == "") || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined')
 		{
 			$langs->loadLangs(array("errors"));
 			if (in_array($this->doc_type, array('bank', 'expense_report')))
diff -ru dolibarr-9.0.2/htdocs/accountancy/class/lettering.class.php dolibarr-9.0.2-patched/htdocs/accountancy/class/lettering.class.php
--- dolibarr-9.0.2/htdocs/accountancy/class/lettering.class.php	2018-12-04 11:58:12.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/accountancy/class/lettering.class.php	2019-04-23 09:50:56.829785389 +0200
@@ -67,11 +67,11 @@
 		$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
 		$sql .= " LEFT JOIN  " . MAIN_DB_PREFIX . "bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) ";
 		$sql .= " WHERE   ( ";
-		if (! empty($object->code_compta))
+		if ($object->code_compta != "")
 			$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
-		if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur))
+		if ($object->code_compta != "" && $object->code_compta_fournisseur != "")
 			$sql .= "  OR  ";
-		if (! empty($object->code_compta_fournisseur))
+		if (! $object->code_compta_fournisseur != "")
 			$sql .= "   bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
 
 		$sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) ";
@@ -99,13 +99,13 @@
 					$sql .= " AND facf.entity = ".$conf->entity;
 					$sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") ";
 					$sql .= " AND ( ";
-					if (! empty($object->code_compta)) {
+					if ($object->code_compta != "") {
 						$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
 					}
-					if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
+					if ($object->code_compta != "" && $object->code_compta_fournisseur != "") {
 						$sql .= "  OR  ";
 					}
-					if (! empty($object->code_compta_fournisseur)) {
+					if (! $object->code_compta_fournisseur != "") {
 						$sql .= "   bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
 					}
 					$sql .= " )  ";
@@ -127,13 +127,13 @@
 						$sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3 AND entity=".$conf->entity.") ";
 						$sql .= " AND facf.entity = ".$conf->entity;
 						$sql .= " AND ( ";
-						if (! empty($object->code_compta)) {
+						if ($object->code_compta != "") {
 							$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
 						}
-						if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
+						if ($object->code_compta != "" && $object->code_compta_fournisseur != "") {
 							$sql .= "  OR  ";
 						}
-						if (! empty($object->code_compta_fournisseur)) {
+						if ($object->code_compta_fournisseur != "") {
 							$sql .= "   bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
 						}
 						$sql .= " )  ";
@@ -159,13 +159,13 @@
 					$sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") ";
 					$sql .= " AND fac.entity = ".$conf->entity;
 					$sql .= " AND ( ";
-					if (! empty($object->code_compta)) {
+					if ($object->code_compta != "") {
 						$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
 					}
-					if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
+					if ($object->code_compta != "" && $object->code_compta_fournisseur != "") {
 						$sql .= "  OR  ";
 					}
-					if (! empty($object->code_compta_fournisseur)) {
+					if ($object->code_compta_fournisseur != "") {
 						$sql .= "   bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
 					}
 					$sql .= " )  ";
@@ -187,13 +187,13 @@
 						$sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") ";
 						$sql .= " AND fac.entity = ".$conf->entity;
 						$sql .= " AND ( ";
-						if (! empty($object->code_compta)) {
+						if ($object->code_compta != "") {
 							$sql .= "  bk.subledger_account = '" . $object->code_compta . "'  ";
 						}
-						if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
+						if ($object->code_compta != "" && $object->code_compta_fournisseur != "") {
 							$sql .= "  OR  ";
 						}
-						if (! empty($object->code_compta_fournisseur)) {
+						if ($object->code_compta_fournisseur != "") {
 							$sql .= "   bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
 						}
 						$sql .= " )  ";
diff -ru dolibarr-9.0.2/htdocs/accountancy/journal/bankjournal.php dolibarr-9.0.2-patched/htdocs/accountancy/journal/bankjournal.php
--- dolibarr-9.0.2/htdocs/accountancy/journal/bankjournal.php	2019-04-23 10:40:41.322898377 +0200
+++ dolibarr-9.0.2-patched/htdocs/accountancy/journal/bankjournal.php	2019-04-23 10:40:42.258880195 +0200
@@ -217,7 +217,7 @@
 		// Set accountancy code for thirdparty
 		$compta_soc = 'NotDefined';
 		if ($lineisapurchase > 0)
-			$compta_soc = (! empty($obj->code_compta_fournisseur) ? $obj->code_compta_fournisseur : $account_supplier);
+			$compta_soc = (($obj->code_compta_fournisseur != "") ? $obj->code_compta_fournisseur : $account_supplier);
 		if ($lineisasale > 0)
 			$compta_soc = (! empty($obj->code_compta) ? $obj->code_compta : $account_customer);
 
diff -ru dolibarr-9.0.2/htdocs/accountancy/journal/purchasesjournal.php dolibarr-9.0.2-patched/htdocs/accountancy/journal/purchasesjournal.php
--- dolibarr-9.0.2/htdocs/accountancy/journal/purchasesjournal.php	2019-02-12 16:48:24.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/accountancy/journal/purchasesjournal.php	2019-04-23 09:39:04.970776499 +0200
@@ -139,7 +139,7 @@
 	$num = $db->num_rows($result);
 
 	// Variables
-	$cptfour = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined';
+	$cptfour = (! ($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "")) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined';
 	$cpttva = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined';
 
 	$i = 0;
@@ -147,7 +147,7 @@
 		$obj = $db->fetch_object($result);
 
 		// Controls
-		$compta_soc = (! empty($obj->code_compta_fournisseur)) ? $obj->code_compta_fournisseur : $cptfour;
+		$compta_soc = (! ($obj->code_compta_fournisseur == "")) ? $obj->code_compta_fournisseur : $cptfour;
 
 		$compta_prod = $obj->compte;
 		if (empty($compta_prod)) {
@@ -741,13 +741,13 @@
 	journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink);
 
 	// Button to write into Ledger
-	if (empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
+	if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
 		print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone");
 		print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
 	}
 	print '<div class="tabsAction tabsActionNoBottom">';
 	if (! empty($conf->global->ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL)) print '<input type="button" class="butAction" name="exportcsv" value="' . $langs->trans("ExportDraftJournal") . '" onclick="launch_export();" />';
-	if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1') {
+	if (($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == "") || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1') {
 		print '<input type="button" class="butActionRefused" title="'.dol_escape_htmltag($langs->trans("SomeMandatoryStepsOfSetupWereNotDone")).'" value="' . $langs->trans("WriteBookKeeping") . '" />';
 	}
 	else {
@@ -876,9 +876,10 @@
 				// Account
 				print "<td>";
 				$accountoshow = length_accounta($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER);
-				if (empty($accountoshow) || $accountoshow == 'NotDefined')
+//				print "<span> eric : $accountoshow " . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . "</span>";
+				if (($accountoshow == "") || $accountoshow == 'NotDefined')
 				{
-					print '<span class="error">'.$langs->trans("MainAccountForCustomersNotDefined").'</span>';
+					print '<span class="error">'.$langs->trans("MainAccountForSuppliersNotDefined").'</span>';
 				}
 				else print $accountoshow;
 				print '</td>';
diff -ru dolibarr-9.0.2/htdocs/compta/journal/purchasesjournal.php dolibarr-9.0.2-patched/htdocs/compta/journal/purchasesjournal.php
--- dolibarr-9.0.2/htdocs/compta/journal/purchasesjournal.php	2018-11-11 17:35:54.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/compta/journal/purchasesjournal.php	2019-04-23 09:52:00.895113646 +0200
@@ -139,7 +139,7 @@
 	{
 		$obj = $db->fetch_object($result);
 		// contrôles
-		$compta_soc = (! empty($obj->code_compta_fournisseur)?$obj->code_compta_fournisseur:$cptfour);
+		$compta_soc = (($obj->code_compta_fournisseur != "")?$obj->code_compta_fournisseur:$cptfour);
 		$compta_prod = $obj->accountancy_code_buy;
 		if (empty($compta_prod))
 		{
diff -ru dolibarr-9.0.2/htdocs/core/class/html.formaccounting.class.php dolibarr-9.0.2-patched/htdocs/core/class/html.formaccounting.class.php
--- dolibarr-9.0.2/htdocs/core/class/html.formaccounting.class.php	2018-10-31 12:35:40.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/core/class/html.formaccounting.class.php	2019-04-23 09:52:41.199948225 +0200
@@ -391,7 +391,7 @@
 		$resql = $this->db->query($sql);
 		if ($resql) {
 			while ($obj = $this->db->fetch_object($resql)) {
-				if (!empty($obj->code_compta_fournisseur)) {
+				if ($obj->code_compta_fournisseur != "") {
 					$aux_account[$obj->code_compta_fournisseur] = $obj->code_compta_fournisseur.' ('.$obj->nom.')';
 				}
 			}
diff -ru dolibarr-9.0.2/htdocs/core/lib/accounting.lib.php dolibarr-9.0.2-patched/htdocs/core/lib/accounting.lib.php
--- dolibarr-9.0.2/htdocs/core/lib/accounting.lib.php	2018-10-31 12:35:40.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/core/lib/accounting.lib.php	2019-04-23 09:39:04.970776499 +0200
@@ -23,6 +23,14 @@
  * 	\brief		Library of accountancy functions
  */
 
+function is_empty($var, $allow_false = false, $allow_ws = false) {
+  if (!isset($var) || is_null($var) || ($allow_ws == false && trim($var) == "" && !is_bool($var)) || ($allow_false === false && is_bool($var) && $var === false) || (is_array($var) && empty($var))) {
+    return true;
+  } else {
+    return false;
+  }
+}
+
 /**
  *	Prepare array with list of tabs
  *
@@ -75,12 +83,12 @@
 {
 	global $conf;
 
-	if ($account < 0 || empty($account)) return '';
+	if ($account < 0 || is_empty($account)) return '';
 
-	if (! empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $account;
+	if (! is_empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $account;
 
 	$g = $conf->global->ACCOUNTING_LENGTH_GACCOUNT;
-	if (! empty($g)) {
+	if (! is_empty($g)) {
 		// Clean parameters
 		$i = strlen($account);
 
@@ -110,12 +118,13 @@
 {
 	global $conf, $langs;
 
-	if ($accounta < 0 || empty($accounta)) return '';
+	if ($accounta < 0 || is_empty($accounta)) return '';
+
+	if (! is_empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $accounta;
 
-	if (! empty($conf->global->ACCOUNTING_MANAGE_ZERO)) return $accounta;
 
 	$a = $conf->global->ACCOUNTING_LENGTH_AACCOUNT;
-	if (! empty($a)) {
+	if (! is_empty($a)) {
 		// Clean parameters
 		$i = strlen($accounta);
 
@@ -156,11 +165,11 @@
 {
     global $langs;
 
-    if (empty($hselected)) $hselected='report';
+    if (is_empty($hselected)) $hselected='report';
 
     print "\n\n<!-- debut cartouche journal -->\n";
 
-    if(! empty($varlink)) $varlink = '?'.$varlink;
+    if(! is_empty($varlink)) $varlink = '?'.$varlink;
 
     $h=0;
     $head[$h][0] = $_SERVER["PHP_SELF"].$varlink;
diff -ru dolibarr-9.0.2/htdocs/core/modules/societe/mod_codecompta_panicum.php dolibarr-9.0.2-patched/htdocs/core/modules/societe/mod_codecompta_panicum.php
--- dolibarr-9.0.2/htdocs/core/modules/societe/mod_codecompta_panicum.php	2018-10-31 12:35:40.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/core/modules/societe/mod_codecompta_panicum.php	2019-04-23 09:55:26.595365789 +0200
@@ -96,8 +96,8 @@
 		$this->code='';
 
 		if (is_object($societe)) {
-			if ($type == 'supplier') $this->code = (! empty($societe->code_compta_fournisseur)?$societe->code_compta_fournisseur:'');
-			else $this->code = (! empty($societe->code_compta)?$societe->code_compta:'');
+			if ($type == 'supplier') $this->code = (($societe->code_compta_fournisseur!="")?$societe->code_compta_fournisseur:'');
+			else $this->code = (($societe->code_compta!="")?$societe->code_compta:'');
 		}
 
 		return 0; // return ok
diff -ru dolibarr-9.0.2/htdocs/langs/fr_FR/trips.lang dolibarr-9.0.2-patched/htdocs/langs/fr_FR/trips.lang
--- dolibarr-9.0.2/htdocs/langs/fr_FR/trips.lang	2018-10-31 12:35:44.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/langs/fr_FR/trips.lang	2019-04-23 09:39:04.974776585 +0200
@@ -49,7 +49,7 @@
 TF_ESSENCE=Carburant
 TF_HOTEL=Hôtel
 TF_TAXI=Taxi
-EX_KME=frais kilométriques
+EX_KME=IK
 EX_FUE=Carburant
 EX_HOT=Hôtel
 EX_PAR=Stationnement
diff -ru dolibarr-9.0.2/htdocs/societe/class/societe.class.php dolibarr-9.0.2-patched/htdocs/societe/class/societe.class.php
--- dolibarr-9.0.2/htdocs/societe/class/societe.class.php	2019-02-05 20:40:35.000000000 +0100
+++ dolibarr-9.0.2-patched/htdocs/societe/class/societe.class.php	2019-04-23 09:53:45.929287005 +0200
@@ -921,7 +921,7 @@
 		if (! empty($allowmodcodefournisseur) && ! empty($this->fournisseur))
 		{
 			// Attention get_codecompta peut modifier le code suivant le module utilise
-			if (empty($this->code_compta_fournisseur))
+			if ($this->code_compta_fournisseur != "")
 			{
 				$ret=$this->get_codecompta('supplier');
 				if ($ret < 0) return -1;
@@ -1077,7 +1077,7 @@
 			if ($supplier)
 			{
 				$sql .= ", code_fournisseur = ".(! empty($this->code_fournisseur)?"'".$this->db->escape($this->code_fournisseur)."'":"null");
-				$sql .= ", code_compta_fournisseur = ".(! empty($this->code_compta_fournisseur)?"'".$this->db->escape($this->code_compta_fournisseur)."'":"null");
+				$sql .= ", code_compta_fournisseur = ".(($this->code_compta_fournisseur != "")?"'".$this->db->escape($this->code_compta_fournisseur)."'":"null");
 			}
 			$sql .= ", fk_user_modif = ".($user->id > 0 ? $user->id:"null");
 			$sql .= ", fk_multicurrency = ".(int) $this->fk_multicurrency;
_______________________________________________
Dolibarr-dev mailing list
Dolibarr-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/dolibarr-dev

Répondre à