Merge pull request #12911 from aspangaro/9.0_FEC

FIX: FEC export format
This commit is contained in:
Laurent Destailleur 2020-01-23 12:04:55 +01:00 committed by GitHub
commit 3a9ef7c5e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 12 deletions

View File

@ -38,6 +38,7 @@
*/ */
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/functions.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
class AccountancyExport class AccountancyExport
{ {
@ -658,9 +659,9 @@ class AccountancyExport
print $end_line; print $end_line;
foreach ( $objectLines as $line ) { foreach ( $objectLines as $line ) {
$date_creation = dol_print_date($line->date_creation, '%d%m%Y'); $date_creation = dol_print_date($line->date_creation, '%Y%m%d');
$date_doc = dol_print_date($line->doc_date, '%d%m%Y'); $date_doc = dol_print_date($line->doc_date, '%Y%m%d');
$date_valid = dol_print_date($line->date_validated, '%d%m%Y'); $date_valid = dol_print_date($line->date_validated, '%Y%m%d');
// FEC:JournalCode // FEC:JournalCode
print $line->code_journal . $separator; print $line->code_journal . $separator;
@ -696,10 +697,10 @@ class AccountancyExport
print $line->label_operation . $separator; print $line->label_operation . $separator;
// FEC:Debit // FEC:Debit
print price2num($line->debit) . $separator; print price2fec($line->debit) . $separator;
// FEC:Credit // FEC:Credit
print price2num($line->credit) . $separator; print price2fec($line->credit) . $separator;
// FEC:EcritureLet // FEC:EcritureLet
print $line->lettering_code . $separator; print $line->lettering_code . $separator;

View File

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

View File

@ -2320,9 +2320,9 @@ function getModuleDirForApiClass($module)
/* /*
* Return 2 hexa code randomly * Return 2 hexa code randomly
* *
* @param $min int Between 0 and 255 * @param int $min Between 0 and 255
* @param $max int Between 0 and 255 * @param int $max Between 0 and 255
* @return String * @return String Color string
*/ */
function random_color_part($min=0,$max=255) function random_color_part($min=0,$max=255)
{ {
@ -2332,11 +2332,40 @@ function random_color_part($min=0,$max=255)
/* /*
* Return hexadecimal color randomly * Return hexadecimal color randomly
* *
* @param $min int Between 0 and 255 * @param int $min Between 0 and 255
* @param $max int Between 0 and 255 * @param int $max Between 0 and 255
* @return String * @return String Color string
*/ */
function random_color($min=0, $max=255) function random_color($min=0, $max=255)
{ {
return random_color_part($min, $max) . random_color_part($min, $max) . random_color_part($min, $max); return random_color_part($min, $max) . random_color_part($min, $max) . random_color_part($min, $max);
} }
/**
* 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;
}