From d661750ac19d857280b2ca27d0ffae421964ac88 Mon Sep 17 00:00:00 2001 From: Arnaud Fontaine <arnaud.fontaine@nexedi.com> Date: Fri, 21 Sep 2018 12:53:18 +0900 Subject: [PATCH] erp5_accounting_l10n_fr: Make sure that FEC XML output is always the same given the same data. --- ...ansactionModule_aggregateFrenchAccountingTransactionFile.py | 3 ++- .../AccountingTransactionModule_viewComptabiliteAsFECXML.zpt | 2 +- .../AccountingTransaction_viewAsDestinationFECXML.zpt | 2 +- .../AccountingTransaction_viewAsSourceFECXML.zpt | 2 +- 4 files changed, 5 insertions(+), 4 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 09d6b04a20..9304ca0dcb 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 @@ -6,7 +6,8 @@ portal = context.getPortalObject() active_process = portal.restrictedTraverse(active_process) # XXX we need proxy role for this -result_list = active_process.getResultList() +result_list = [ result.detail.decode('zlib') for result in active_process.getResultList() ] +result_list.sort() fec_file = context.AccountingTransactionModule_viewComptabiliteAsFECXML( at_date=at_date, diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewComptabiliteAsFECXML.zpt b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewComptabiliteAsFECXML.zpt index fb1e3961ca..efe329cd3d 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewComptabiliteAsFECXML.zpt +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransactionModule_viewComptabiliteAsFECXML.zpt @@ -2,6 +2,6 @@ <comptabilite xmlns:tal="http://xml.zope.org/namespaces/tal"> <exercice> <DateCloture tal:content="python: options['at_date'].strftime('%Y-%m-%d')">20141231</DateCloture> - <tal:block tal:repeat="result options/result_list"><tal:block tal:replace="structure python: result.detail.decode('zlib')"/></tal:block> + <tal:block tal:repeat="result options/result_list"><tal:block tal:replace="structure python: result"/></tal:block> </exercice> </comptabilite> \ No newline at end of file diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsDestinationFECXML.zpt b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsDestinationFECXML.zpt index e7aa6e2682..d8f1895179 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsDestinationFECXML.zpt +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsDestinationFECXML.zpt @@ -7,7 +7,7 @@ <tal:block tal:replace="nothing"><EcritureLet></EcritureLet> <DateLet></DateLet></tal:block> <ValidDate tal:content="python: context.AccountingTransaction_getDeliverDate().strftime('%Y-%m-%d')">Modification Date</ValidDate> - <tal:block tal:repeat="line python:context.contentValues(portal_type=context.getPortalAccountingMovementTypeList())"><ligne + <tal:block tal:repeat="line python:sorted(context.contentValues(portal_type=context.getPortalAccountingMovementTypeList()), key=lambda x: (x.getDestination(), x.getQuantity()))"><ligne tal:define="account python:line.getDestinationValue(portal_type='Account')" tal:condition="python: account is not None"> <CompteNum tal:content="account/Account_getGapId">Reference Compte (Account_getGapId)</CompteNum> <CompteLib tal:content="line/Movement_getDestinationCompteLib">Translated Title Compte</CompteLib> diff --git a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsSourceFECXML.zpt b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsSourceFECXML.zpt index 7cbe9f686b..6e3e6de275 100644 --- a/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsSourceFECXML.zpt +++ b/bt5/erp5_accounting_l10n_fr/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr/AccountingTransaction_viewAsSourceFECXML.zpt @@ -7,7 +7,7 @@ <tal:block tal:replace="nothing"><EcritureLet></EcritureLet> <DateLet></DateLet></tal:block> <ValidDate tal:content="python: context.AccountingTransaction_getDeliverDate().strftime('%Y-%m-%d')">Modification Date</ValidDate> - <tal:block tal:repeat="line python:context.contentValues(portal_type=context.getPortalAccountingMovementTypeList())"><ligne + <tal:block tal:repeat="line python:sorted(context.contentValues(portal_type=context.getPortalAccountingMovementTypeList()), key=lambda x: (x.getSource(), x.getQuantity()))"><ligne tal:define="account python:line.getSourceValue(portal_type='Account')" tal:condition="python: account is not None"> <CompteNum tal:content="account/Account_getGapId">Reference Compte (Account_getGapId)</CompteNum> <CompteLib tal:content="line/Movement_getSourceCompteLib">Translated Title Compte</CompteLib> -- 2.30.9