Browse Source

Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into 11.0

Conflicts:
	htdocs/accountancy/class/accountancyexport.class.php
Laurent Destailleur 5 years ago
parent
commit
7ad827f212

+ 4 - 2
htdocs/accountancy/class/accountancyexport.class.php

@@ -32,6 +32,8 @@
  */
 
 require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
+
 
 /**
  * Manage the different format accountancy export
@@ -742,10 +744,10 @@ class AccountancyExport
 			print $line->label_operation.$separator;
 
 			// FEC:Debit
-			print price2num($line->debit).$separator;
+			print price2fec($line->debit).$separator;
 
 			// FEC:Credit
-			print price2num($line->credit).$separator;
+			print price2fec($line->credit).$separator;
 
 			// FEC:EcritureLet
 			print $line->lettering_code.$separator;

+ 0 - 1
htdocs/core/lib/functions.lib.php

@@ -4605,7 +4605,6 @@ function price2num($amount, $rounding = '', $alreadysqlnb = 0)
 	return $amount;
 }
 
-
 /**
  * Output a dimension with best unit
  *

+ 29 - 0
htdocs/core/lib/functions2.lib.php

@@ -2613,3 +2613,32 @@ function convertBackOfficeMediasLinksToPublicLinks($notetoshow)
     $notetoshow=preg_replace('/src="[a-zA-Z0-9_\/\-\.]*(viewimage\.php\?modulepart=medias[^"]*)"/', 'src="'.$urlwithroot.'/\1"', $notetoshow);
     return $notetoshow;
 }
+
+/**
+ *		Function to format a value into a defined format for French administration (no thousand separator & decimal separator force to ',' with two decimals)
+ *		Function used into accountancy FEC export
+ *
+ *		@param	float		$amount			Amount to format
+ *		@return	string					Chain with formatted upright
+ *		@see	price2num()				Format a numeric into a price for FEC files
+ */
+function price2fec($amount)
+{
+	global $conf;
+
+	// Clean parameters
+	if (empty($amount)) $amount=0;	// To have a numeric value if amount not defined or = ''
+	$amount = (is_numeric($amount) ? $amount : 0); // Check if amount is numeric, for example, an error occured when amount value = o (letter) instead 0 (number)
+
+	// Output decimal number by default
+	$nbdecimal = (empty($conf->global->ACCOUNTING_FEC_DECIMAL_LENGTH) ? 2 : $conf->global->ACCOUNTING_FEC_DECIMAL_LENGTH);
+
+	// Output separators by default
+	$dec = (empty($conf->global->ACCOUNTING_FEC_DECIMAL_SEPARATOR) ? ',' : $conf->global->ACCOUNTING_FEC_DECIMAL_SEPARATOR);
+	$thousand = (empty($conf->global->ACCOUNTING_FEC_THOUSAND_SEPARATOR) ? '' : $conf->global->ACCOUNTING_FEC_THOUSAND_SEPARATOR);
+
+	// Format number
+	$output = number_format($amount, $nbdecimal, $dec, $thousand);
+
+	return $output;
+}