Update FEC2 Export

This commit is contained in:
Alexandre SPANGARO 2023-04-29 08:08:03 +02:00
parent d4223c68aa
commit 6b87da93c5

View File

@ -1405,37 +1405,45 @@ class AccountancyExport
/** /**
* Export format : FEC2 * Export format : FEC2
* *
* @param array $objectLines data * @param array $objectLines data
* @return void * @param resource $exportFile [=null] File resource to export or print if null
* @return void
*/ */
public function exportFEC2($objectLines) public function exportFEC2($objectLines, $exportFile = null)
{ {
global $langs; global $langs;
$separator = "\t"; $separator = "\t";
$end_line = "\r\n"; $end_line = "\r\n";
print "JournalCode".$separator; $tab = array();
print "JournalLib".$separator; $tab[] = "JournalCode";
print "EcritureNum".$separator; $tab[] = "JournalLib";
print "EcritureDate".$separator; $tab[] = "EcritureNum";
print "CompteNum".$separator; $tab[] = "EcritureDate";
print "CompteLib".$separator; $tab[] = "CompteNum";
print "CompAuxNum".$separator; $tab[] = "CompteLib";
print "CompAuxLib".$separator; $tab[] = "CompAuxNum";
print "PieceRef".$separator; $tab[] = "CompAuxLib";
print "PieceDate".$separator; $tab[] = "PieceRef";
print "EcritureLib".$separator; $tab[] = "PieceDate";
print "Debit".$separator; $tab[] = "EcritureLib";
print "Credit".$separator; $tab[] = "Debit";
print "EcritureLet".$separator; $tab[] = "Credit";
print "DateLet".$separator; $tab[] = "EcritureLet";
print "ValidDate".$separator; $tab[] = "DateLet";
print "Montantdevise".$separator; $tab[] = "ValidDate";
print "Idevise".$separator; $tab[] = "Montantdevise";
print "DateLimitReglmt".$separator; $tab[] = "Idevise";
print "NumFacture"; $tab[] = "DateLimitReglmt";
print $end_line; $tab[] = "NumFacture";
$output = implode($separator, $tab).$end_line;
if ($exportFile) {
fwrite($exportFile, $output);
} else {
print $output;
}
foreach ($objectLines as $line) { foreach ($objectLines as $line) {
if ($line->debit == 0 && $line->credit == 0) { if ($line->debit == 0 && $line->credit == 0) {
@ -1464,74 +1472,80 @@ class AccountancyExport
$refInvoice = $invoice->ref_supplier; $refInvoice = $invoice->ref_supplier;
} }
$tab = array();
// FEC:JournalCode // FEC:JournalCode
print $line->code_journal . $separator; $tab[] = $line->code_journal;
// FEC:JournalLib // FEC:JournalLib
$labeljournal = dol_string_unaccent($langs->transnoentities($line->journal_label)); $labeljournal = dol_string_unaccent($langs->transnoentities($line->journal_label));
$labeljournal = dol_string_nospecial($labeljournal, ' '); $labeljournal = dol_string_nospecial($labeljournal, ' ');
print $labeljournal . $separator; $tab[] = $labeljournal;
// FEC:EcritureNum // FEC:EcritureNum
print $line->piece_num . $separator; $tab[] = $line->piece_num;
// FEC:EcritureDate // FEC:EcritureDate
print $date_creation . $separator; $tab[] = $date_creation;
// FEC:CompteNum // FEC:CompteNum
print length_accountg($line->numero_compte) . $separator; $tab[] = length_accountg($line->numero_compte);
// FEC:CompteLib // FEC:CompteLib
print dol_string_unaccent($line->label_compte) . $separator; $tab[] = dol_string_unaccent($line->label_compte);
// FEC:CompAuxNum // FEC:CompAuxNum
print length_accounta($line->subledger_account) . $separator; $tab[] = length_accounta($line->subledger_account);
// FEC:CompAuxLib // FEC:CompAuxLib
print dol_string_unaccent($line->subledger_label) . $separator; $tab[] = dol_string_unaccent($line->subledger_label);
// FEC:PieceRef // FEC:PieceRef
print $line->doc_ref . $separator; $tab[] = $line->doc_ref;
// FEC:PieceDate // FEC:PieceDate
print $date_document . $separator; $tab[] = $date_document;
// FEC:EcritureLib // FEC:EcritureLib
// Clean label operation to prevent problem on export with tab separator & other character // Clean label operation to prevent problem on export with tab separator & other character
$line->label_operation = str_replace(array("\t", "\n", "\r"), " ", $line->label_operation); $line->label_operation = str_replace(array("\t", "\n", "\r"), " ", $line->label_operation);
print dol_string_unaccent($line->label_operation) . $separator; $tab[] = dol_string_unaccent($line->label_operation);
// FEC:Debit // FEC:Debit
print price2fec($line->debit) . $separator; $tab[] = price2fec($line->debit);
// FEC:Credit // FEC:Credit
print price2fec($line->credit) . $separator; $tab[] = price2fec($line->credit);
// FEC:EcritureLet // FEC:EcritureLet
print $line->lettering_code . $separator; $tab[] = $line->lettering_code;
// FEC:DateLet // FEC:DateLet
print $date_lettering . $separator; $tab[] = $date_lettering;
// FEC:ValidDate // FEC:ValidDate
print $date_validation . $separator; $tab[] = $date_validation;
// FEC:Montantdevise // FEC:Montantdevise
print $line->multicurrency_amount . $separator; $tab[] = $line->multicurrency_amount;
// FEC:Idevise // FEC:Idevise
print $line->multicurrency_code . $separator; $tab[] = $line->multicurrency_code;
// FEC_suppl:DateLimitReglmt // FEC_suppl:DateLimitReglmt
print $date_limit_payment . $separator; $tab[] = $date_limit_payment;
// FEC_suppl:NumFacture // FEC_suppl:NumFacture
// Clean ref invoice to prevent problem on export with tab separator & other character // Clean ref invoice to prevent problem on export with tab separator & other character
$refInvoice = str_replace(array("\t", "\n", "\r"), " ", $refInvoice); $refInvoice = str_replace(array("\t", "\n", "\r"), " ", $refInvoice);
print dol_trunc(self::toAnsi($refInvoice), 17, 'right', 'UTF-8', 1); $tab[] = dol_trunc(self::toAnsi($refInvoice), 17, 'right', 'UTF-8', 1);
$output = implode($separator, $tab).$end_line;
print $end_line; if ($exportFile) {
fwrite($exportFile, $output);
} else {
print $output;
}
} }
} }
} }