Update Charlemagne Export

This commit is contained in:
Alexandre SPANGARO 2023-04-29 08:24:13 +02:00
parent 3b8a4df235
commit 508e798eae

View File

@ -2131,10 +2131,11 @@ class AccountancyExport
/** /**
* Export format : Charlemagne * Export format : Charlemagne
* *
* @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 exportCharlemagne($objectLines) public function exportCharlemagne($objectLines, $exportFile = null)
{ {
global $langs; global $langs;
$langs->load('compta'); $langs->load('compta');
@ -2142,52 +2143,66 @@ class AccountancyExport
$separator = "\t"; $separator = "\t";
$end_line = "\n"; $end_line = "\n";
/* $tab = array();
* Charlemagne export need header
*/ $tab[] = $langs->transnoentitiesnoconv('Date');
print $langs->transnoentitiesnoconv('Date').$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Journal'), 6);
print self::trunc($langs->transnoentitiesnoconv('Journal'), 6).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Account'), 15);
print self::trunc($langs->transnoentitiesnoconv('Account'), 15).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('LabelAccount'), 60);
print self::trunc($langs->transnoentitiesnoconv('LabelAccount'), 60).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Piece'), 20);
print self::trunc($langs->transnoentitiesnoconv('Piece'), 20).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('LabelOperation'), 60);
print self::trunc($langs->transnoentitiesnoconv('LabelOperation'), 60).$separator; $tab[] = $langs->transnoentitiesnoconv('Amount');
print $langs->transnoentitiesnoconv('Amount').$separator; $tab[] = 'S';
print 'S'.$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Analytic').' 1', 15);
print self::trunc($langs->transnoentitiesnoconv('Analytic').' 1', 15).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 1', 60);
print self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 1', 60).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Analytic').' 2', 15);
print self::trunc($langs->transnoentitiesnoconv('Analytic').' 2', 15).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 2', 60);
print self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 2', 60).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('Analytic').' 3', 15);
print self::trunc($langs->transnoentitiesnoconv('Analytic').' 3', 15).$separator; $tab[] = self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 3', 60);
print self::trunc($langs->transnoentitiesnoconv('AnalyticLabel').' 3', 60).$separator;
print $end_line; $output = implode($separator, $tab).$end_line;
if ($exportFile) {
fwrite($exportFile, $output);
} else {
print $output;
}
foreach ($objectLines as $line) { foreach ($objectLines as $line) {
$date = dol_print_date($line->doc_date, '%Y%m%d'); $date_document = dol_print_date($line->doc_date, '%Y%m%d');
print $date.$separator; //Date
print self::trunc($line->code_journal, 6).$separator; //Journal code $tab = array();
$tab[] = $date_document; //Date
$tab[] = self::trunc($line->code_journal, 6); //Journal code
if (!empty($line->subledger_account)) { if (!empty($line->subledger_account)) {
$account = $line->subledger_account; $account = $line->subledger_account;
} else { } else {
$account = $line->numero_compte; $account = $line->numero_compte;
} }
print self::trunc($account, 15).$separator; //Account number $tab[] = self::trunc($account, 15); //Account number
print self::trunc($line->label_compte, 60).$separator; //Account label $tab[] = self::trunc($line->label_compte, 60); //Account label
print self::trunc($line->doc_ref, 20).$separator; //Piece $tab[] = self::trunc($line->doc_ref, 20); //Piece
// 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 self::trunc($line->label_operation, 60).$separator; //Operation label $tab[] = self::trunc($line->label_operation, 60); //Operation label
print price(abs($line->debit - $line->credit)).$separator; //Amount $tab[] = price(abs($line->debit - $line->credit)); //Amount
print $line->sens.$separator; //Direction $tab[] = $line->sens; //Direction
print $separator; //Analytic $tab[] = ""; //Analytic
print $separator; //Analytic $tab[] = ""; //Analytic
print $separator; //Analytic $tab[] = ""; //Analytic
print $separator; //Analytic $tab[] = ""; //Analytic
print $separator; //Analytic $tab[] = ""; //Analytic
print $separator; //Analytic $tab[] = ""; //Analytic
print $end_line;
$output = implode($separator, $tab).$end_line;
if ($exportFile) {
fwrite($exportFile, $output);
} else {
print $output;
}
} }
} }