From 827410dc25cce05b5ee4a4ae8d9f041800b0cae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Fri, 31 Mar 2023 15:29:06 +0900 Subject: [PATCH] accounting_l10n_fr: fix filename of FEC.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > IX. – Le fichier des écritures comptables est nommé selon la > nomenclature suivante : > > SirenFECAAAAMMJJ, où " Siren " est le Siren du contribuable mentionné > à l'article L. 47 A et AAAAMMJJ la date de clôture de l'exercice > comptable. --- ...Module_aggregateFrenchAccountingTransactionFile.py | 11 ++++++++++- ...odule_aggregateFrenchAccountingTransactionFile.xml | 2 +- ...odule_viewFrenchAccountingTransactionFileActive.py | 1 + .../test.erp5.testAccounting_l10n_fr.py | 10 +++++++++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.py b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.py index 76275c2535..60edba1f6f 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.py +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.py @@ -26,7 +26,16 @@ if test_compta_demat_compatibility: zipbuffer = StringIO() zipfilename = at_date.strftime('FEC-%Y%m%d.zip') zipfileobj = zipfile.ZipFile(zipbuffer, 'w', compression=zipfile.ZIP_DEFLATED) -zipfileobj.writestr('FEC.xml', fec_file.encode('utf8')) +filename = 'FEC.xml' +if test_compta_demat_compatibility: + siren = '' + if section_uid_list: + siret_list = [b.getObject().getCorporateRegistrationCode() for b in portal.portal_catalog(uid=section_uid_list)] + siret_list = [siret for siret in siret_list if siret] + if len(siret_list) == 1: + siren = siret_list[0][:8] + filename = at_date.strftime('{siren}FEC%Y%m%d.xml').format(siren=siren) +zipfileobj.writestr(filename, fec_file.encode('utf8')) zipfileobj.close() attachment_list = ( diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.xml b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.xml index 83e5072630..b8c9af765a 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.xml +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_aggregateFrenchAccountingTransactionFile.xml @@ -50,7 +50,7 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>at_date, active_process, user_name, test_compta_demat_compatibility</string> </value> + <value> <string>at_date, active_process, user_name, test_compta_demat_compatibility, section_uid_list</string> </value> </item> <item> <key> <string>_proxy_roles</string> </key> diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewFrenchAccountingTransactionFileActive.py b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewFrenchAccountingTransactionFileActive.py index f7b7e2f72f..61196a4a1b 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewFrenchAccountingTransactionFileActive.py +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewFrenchAccountingTransactionFileActive.py @@ -111,4 +111,5 @@ context.activate(after_tag=(tag, aggregate_tag)).AccountingTransactionModule_agg active_process.getRelativeUrl(), user_name=user_name, test_compta_demat_compatibility=test_compta_demat_compatibility, + section_uid_list=section_uid_list, ) diff --git a/bt5/erp5_accounting_l10n_fr/TestTemplateItem/portal_components/test.erp5.testAccounting_l10n_fr.py b/bt5/erp5_accounting_l10n_fr/TestTemplateItem/portal_components/test.erp5.testAccounting_l10n_fr.py index 7395d3167a..ea42c507db 100644 --- a/bt5/erp5_accounting_l10n_fr/TestTemplateItem/portal_components/test.erp5.testAccounting_l10n_fr.py +++ b/bt5/erp5_accounting_l10n_fr/TestTemplateItem/portal_components/test.erp5.testAccounting_l10n_fr.py @@ -56,6 +56,13 @@ class TestAccounting_l10n_fr(AccountingTestCase): def afterSetUp(self): AccountingTestCase.afterSetUp(self) + # set a corporate registration code (siret) on our section organisation + # > Le numéro SIRET (ou système d'identification du répertoire des + # > établissements) identifie chaque établissement de l'entreprise. + # > Il se compose de 14 chiffres : les neuf chiffres du numéro SIREN + + # > les cinq chiffres correspondant à un numéro NIC (numéro interne de + # > classement). + self.section.setCorporateRegistrationCode('12345689 12345') # set a french gap on test accounts account_module = self.portal.account_module account_module.payable.setGap('fr/pcg/4/40/401') @@ -122,7 +129,8 @@ class TestAccounting_l10n_fr(AccountingTestCase): self.assertEqual('application/zip', content_type) data = part.get_payload(decode=True) zf = zipfile.ZipFile(StringIO(data)) - return zf.open("FEC.xml").read() + self.assertIn("12345689FEC20141231.xml", zf.namelist()) + return zf.open("12345689FEC20141231.xml").read() self.fail("Attachment not found") def test_FEC(self): -- 2.30.9