From a567cdeabbdfde0b48d76d804a9f6feefcb1951b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Wed, 7 Mar 2007 12:58:46 +0000 Subject: [PATCH] When selecting a payment_mode which is not a leave, display a detail of transaction for each payment mode inside the selected payment_mode git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@13261 20353a03-c40f-0410-a6d1-a30d3c3de9de --- ...lPerTransmissionSheetReportSectionList.xml | 66 ++++++++++++++++--- ...le_getPerOriginAndSheetSummaryLineList.xml | 17 +++-- bt5/erp5_accounting_l10n_fr_m9/bt/revision | 2 +- 3 files changed, 70 insertions(+), 15 deletions(-) diff --git a/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getJournalPerTransmissionSheetReportSectionList.xml b/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getJournalPerTransmissionSheetReportSectionList.xml index 0179881c31..055382f5a1 100644 --- a/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getJournalPerTransmissionSheetReportSectionList.xml +++ b/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getJournalPerTransmissionSheetReportSectionList.xml @@ -68,7 +68,9 @@ </item> <item> <key> <string>_body</string> </key> - <value> <string>"""\n + <value> <string encoding="cdata"><![CDATA[ + +"""\n """\n from Products.ERP5Form.Report import ReportSection\n request = context.REQUEST\n @@ -84,15 +86,20 @@ section_category = request[\'section_category\']\n portal_type = request[\'portal_type\']\n \n payment_mode_url = None\n +detail_per_payment_mode = 0\n +payment_mode_request_keys = dict()\n +\n if portal_type == \'Payment Transaction\':\n payment_mode = request.get(\'payment_mode\')\n if payment_mode:\n payment_mode_value = portal.portal_categories.payment_mode\\\n .restrictedTraverse(payment_mode)\n payment_mode_url = payment_mode_value.getRelativeUrl().split(\'/\', 1)[1]\n -\n + detail_per_payment_mode = len(payment_mode_value.contentValues()) > 0\n + for pm in payment_mode_value.contentValues():\n + cache_storage.setdefault(\'m9_report_per_%s\' % pm.getRelativeUrl(), {})\n + \n simulation_state = [\'delivered\']\n -\n selection_name = \'accounting_selection\'\n simtool = context.portal_simulation\n \n @@ -164,7 +171,19 @@ for brain in simtool.getMovementHistoryList(\n \n total_debit, total_credit = account.get(origin, (0, 0))\n account[origin] = ( total_debit + debit, total_credit + credit )\n - # per origin and sheet\n + \n + # per origin and sheet, detailed per payment mode\n + if detail_per_payment_mode:\n + key = \'m9_report_per_payment_mode/%s\' % mvt.getPaymentMode()\n + if key not in payment_mode_request_keys:\n + payment_mode_request_keys[key] = mvt.getPaymentModeTitle()\n + origin_cache = cache_storage[key].setdefault(brain.node_relative_url, {})\n + total_debit, total_credit = origin_cache.get(\n + (sheet, brain.node_relative_url), (0, 0))\n + origin_cache[(sheet, brain.node_relative_url)] = \\\n + ( total_debit + debit,\n + total_credit + credit )\n + # per origin and sheet, global\n origin_cache = per_origin_and_sheet_cache.setdefault(origin, {})\n total_debit, total_credit = origin_cache.get(\n (sheet, brain.node_relative_url), (0, 0))\n @@ -177,19 +196,37 @@ for brain in simtool.getMovementHistoryList(\n cache[brain.node_relative_url] = ( total_debit + debit,\n total_credit + credit )\n \n -report_section_list = [ ReportSection(\n +report_section_list = []\n +report_section_list.append(ReportSection(\n title=N_(\'Transactions\'),\n path=context.getPhysicalPath(),\n form_id=\'AccountingTransactionModule_viewPerOriginAndSheetSummary\',\n selection_name=\'accounting_transaction_module_m9_\'\n \'accounting_transaction_list_report_selection\',\n - selection_params={},\n + selection_params=dict(cache_key=\'m9_report_per_origin_and_sheet_summary\'),\n selection_columns=[(\'sheet\', \'Transmission Sheet\'),\n (\'account_id\', \'Account\'),\n (\'account_title\', \'Account Name\'),\n (\'debit\', \'Debit\'),\n (\'credit\', \'Credit\')],\n - listbox_display_mode=\'FlatListMode\', )]\n + listbox_display_mode=\'FlatListMode\', ))\n +\n +if detail_per_payment_mode:\n + for cache_key, payment_mode_title in payment_mode_request_keys.items():\n + report_section_list.append(ReportSection(\n + title=N_(\'Transactions for Payment Mode ${payment_mode_title}\',\n + mapping=dict(payment_mode_title=payment_mode_title)),\n + path=context.getPhysicalPath(),\n + level=3,\n + form_id=\'AccountingTransactionModule_viewPerOriginAndSheetSummary\',\n + selection_name=\'accounting_transaction_module_m9_\'\n + \'accounting_transaction_list_report_selection\',\n + selection_params=dict(cache_key=cache_key),\n + selection_columns=[(\'account_id\', \'Account\'),\n + (\'account_title\', \'Account Name\'),\n + (\'debit\', \'Debit\'),\n + (\'credit\', \'Credit\')],\n + listbox_display_mode=\'FlatListMode\', ))\n \n for account_class in range(1, 10):\n account_class = str(account_class)\n @@ -207,7 +244,9 @@ for account_class in range(1, 10):\n listbox_display_mode=\'FlatListMode\', ))\n \n return report_section_list\n -</string> </value> + + +]]></string> </value> </item> <item> <key> <string>_code</string> </key> @@ -271,8 +310,14 @@ return report_section_list\n <string>section_category</string> <string>portal_type</string> <string>payment_mode_url</string> + <string>detail_per_payment_mode</string> + <string>dict</string> + <string>payment_mode_request_keys</string> <string>payment_mode</string> <string>payment_mode_value</string> + <string>len</string> + <string>_getiter_</string> + <string>pm</string> <string>simulation_state</string> <string>selection_name</string> <string>simtool</string> @@ -283,7 +328,6 @@ return report_section_list\n <string>getAccountClass</string> <string>origin_id_cache</string> <string>getOriginId</string> - <string>_getiter_</string> <string>brain</string> <string>mvt</string> <string>origin</string> @@ -297,13 +341,15 @@ return report_section_list\n <string>total_debit</string> <string>total_credit</string> <string>_write_</string> + <string>key</string> <string>origin_cache</string> <string>cache</string> <string>report_section_list</string> + <string>cache_key</string> + <string>payment_mode_title</string> <string>range</string> <string>account_class</string> <string>str</string> - <string>dict</string> </tuple> </value> </item> diff --git a/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getPerOriginAndSheetSummaryLineList.xml b/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getPerOriginAndSheetSummaryLineList.xml index 17c91dd404..05ae2df1f6 100644 --- a/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getPerOriginAndSheetSummaryLineList.xml +++ b/bt5/erp5_accounting_l10n_fr_m9/SkinTemplateItem/portal_skins/erp5_accounting_l10n_fr_m9/AccountingTransactionModule_getPerOriginAndSheetSummaryLineList.xml @@ -75,7 +75,7 @@ portal = context.getPortalObject()\n total_debit = 0\n total_credit = 0\n \n -origin_cache = cache_storage[\'m9_report_per_origin_and_sheet_summary\']\n +origin_cache = cache_storage[cache_key]\n origin_list = origin_cache.keys()\n origin_list.sort()\n \n @@ -113,9 +113,15 @@ return line_list\n <none/> </value> </item> + <item> + <key> <string>_owner</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>_params</string> </key> - <value> <string>**kw</string> </value> + <value> <string>cache_key=\'m9_report_per_origin_and_sheet_summary\', **kw</string> </value> </item> <item> <key> <string>errors</string> </key> @@ -135,12 +141,13 @@ return line_list\n <dictionary> <item> <key> <string>co_argcount</string> </key> - <value> <int>0</int> </value> + <value> <int>1</int> </value> </item> <item> <key> <string>co_varnames</string> </key> <value> <tuple> + <string>cache_key</string> <string>kw</string> <string>Products.PythonScripts.standard</string> <string>Object</string> @@ -176,7 +183,9 @@ return line_list\n <item> <key> <string>func_defaults</string> </key> <value> - <none/> + <tuple> + <string>m9_report_per_origin_and_sheet_summary</string> + </tuple> </value> </item> <item> diff --git a/bt5/erp5_accounting_l10n_fr_m9/bt/revision b/bt5/erp5_accounting_l10n_fr_m9/bt/revision index 7730ef7f3e..3ca9062a11 100644 --- a/bt5/erp5_accounting_l10n_fr_m9/bt/revision +++ b/bt5/erp5_accounting_l10n_fr_m9/bt/revision @@ -1 +1 @@ -89 \ No newline at end of file +84 \ No newline at end of file -- 2.30.9