From fe241cc71f474a340ddcc65fa6c733e6c31f3dbf Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 13 Sep 2021 21:12:39 +0200 Subject: [PATCH 1/3] FIX Accountancy - Format Quadra export - Missing line type C (act account) --- .../class/accountancyexport.class.php | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 9749cd91d4d..66ddd704b1b 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -516,14 +516,19 @@ class AccountancyExport } /** - * Export format : Quadratus + * Export format : Quadratus (Format ASCII) + * Format since 2015 compatible QuadraCOMPTA + * Last review for this format : 2021/09/13 Alexandre Spangaro (aspangaro@open-dsi.fr) + * + * Help : https://docplayer.fr/20769649-Fichier-d-entree-ascii-dans-quadracompta.html + * In QuadraCompta | Use menu : "Outils" > "Suivi des dossiers" > "Import ASCII(Compta)" * * @param array $TData data * @return void */ public function exportQuadratus(&$TData) { - global $conf; + global $conf, $db; $end_line = "\r\n"; @@ -536,6 +541,40 @@ class AccountancyExport $code_compta = $data->subledger_account; } + $Tab = array(); + + if (!empty($data->subledger_account)){ + $Tab['type_ligne'] = 'C'; + $Tab['num_compte'] = str_pad(self::trunc($data->subledger_account, 8), 8); + $Tab['lib_compte'] = str_pad(self::trunc($data->subledger_label, 30), 30); + $Tab['filler'] = str_repeat(' ', 59); + + if ($data->doc_type == 'customer_invoice') { + $Tab['coll_compte'] = str_pad(self::trunc($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, 8), 8); + } elseif ($data->doc_type == 'supplier_invoice') { + $Tab['coll_compte'] = str_pad(self::trunc($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, 8), 8); + } else { + $Tab['coll_compte'] = str_pad(' ', 8); + } + + $Tab['filler2'] = str_repeat(' ', 110); + $Tab['Maj'] = 2; // Maj partielle (clé alpha, intitulé, adresse, collectif, RIB) + + if ($data->doc_type == 'customer_invoice') { + $Tab['type_compte'] = 'C'; + } elseif ($data->doc_type == 'supplier_invoice') { + $Tab['coll_compte'] = 'F'; + } else { + $Tab['coll_compte'] = 'G'; + } + + $Tab['filler3'] = str_repeat(' ', 235); + + $Tab['end_line'] = $end_line; + + print implode($Tab); + } + $Tab = array(); $Tab['type_ligne'] = 'M'; $Tab['num_compte'] = str_pad(self::trunc($code_compta, 8), 8); From 6368ba9a6e1d66abd2eb98a1038569f268049bf5 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Mon, 13 Sep 2021 19:21:53 +0000 Subject: [PATCH 2/3] Fixing style errors. --- htdocs/accountancy/class/accountancyexport.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 60dbd67f201..ec1325046cb 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -543,7 +543,7 @@ class AccountancyExport $Tab = array(); - if (!empty($data->subledger_account)){ + if (!empty($data->subledger_account)) { $Tab['type_ligne'] = 'C'; $Tab['num_compte'] = str_pad(self::trunc($data->subledger_account, 8), 8); $Tab['lib_compte'] = str_pad(self::trunc($data->subledger_label, 30), 30); From 42543ba005c8ab3395390c811a94a27f8a5c49c8 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 13 Sep 2021 21:29:31 +0200 Subject: [PATCH 3/3] Add alpha key --- htdocs/accountancy/class/accountancyexport.class.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 60dbd67f201..07b641d8864 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -547,18 +547,22 @@ class AccountancyExport $Tab['type_ligne'] = 'C'; $Tab['num_compte'] = str_pad(self::trunc($data->subledger_account, 8), 8); $Tab['lib_compte'] = str_pad(self::trunc($data->subledger_label, 30), 30); - $Tab['filler'] = str_repeat(' ', 59); if ($data->doc_type == 'customer_invoice') { + $Tab['lib_alpha'] = strtoupper(str_pad('C'.self::trunc($data->subledger_label, 6), 6)); + $Tab['filler'] = str_repeat(' ', 52); $Tab['coll_compte'] = str_pad(self::trunc($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER, 8), 8); } elseif ($data->doc_type == 'supplier_invoice') { + $Tab['lib_alpha'] = strtoupper(str_pad('F'.self::trunc($data->subledger_label, 6), 6)); + $Tab['filler'] = str_repeat(' ', 52); $Tab['coll_compte'] = str_pad(self::trunc($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER, 8), 8); } else { + $Tab['filler'] = str_repeat(' ', 59); $Tab['coll_compte'] = str_pad(' ', 8); } $Tab['filler2'] = str_repeat(' ', 110); - $Tab['Maj'] = 2; // Maj partielle (clé alpha, intitulé, adresse, collectif, RIB) + $Tab['Maj'] = 2; // Partial update (alpha key, label, address, collectif, RIB) if ($data->doc_type == 'customer_invoice') { $Tab['type_compte'] = 'C';