From 90c019e36f9deb2158b2b65def8d9c63e641dc17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Calonne?= <aurel@nexedi.com> Date: Mon, 3 Jan 2011 10:18:13 +0000 Subject: [PATCH] pay sheet model lines can vary on multiple base applications and generate cell ranges which is a combination of different base application, update asCellRange script for this case git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@41939 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../erp5_payroll/PaySheetLine_asCellRange.xml | 29 ++++++++++++++----- .../PaySheetModelLine_asCellRange.xml | 14 ++++++++- bt5/erp5_payroll/bt/revision | 2 +- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_asCellRange.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_asCellRange.xml index 55cf7aa882..4df7d80e2b 100644 --- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_asCellRange.xml +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_asCellRange.xml @@ -57,14 +57,29 @@ cell_range = []\n if resource is not None:\n base_category_list = resource.getVariationBaseCategoryList()\n for base_category in base_category_list:\n - if matrixbox == 1:\n - # XXX matrixbox is right_display (not as listfield) => invert display and value in item\n - cell_range.append(map(lambda x: (x[1],x[0]), \n - context.getVariationCategoryItemList(base_category_list=\\\n - (base_category,) ) ) )\n + if base_category == "base_application":\n + base_application_variation_dict = {}\n + variation_list = context.getVariationCategoryList(base_category_list=(base_category,))\n + for variation in variation_list:\n + # We split at the sublevel of base_application/base_amount/payroll/XXX\n + base_variation = \'/\'.join(variation.split(\'/\')[:4])\n + base_application_variation_dict.setdefault(base_variation, []) \n + base_application_variation_dict[base_variation].append(variation)\n +\n + for v in base_application_variation_dict.values():\n + if matrixbox == 1:\n + cell_range.append(map(lambda x: (x[1],x[0]), v))\n + else:\n + cell_range.append(v)\n else:\n - cell_range.append(context.getVariationCategoryList(base_category_list=\\\n - (base_category,)))\n + if matrixbox == 1:\n + # XXX matrixbox is right_display (not as listfield) => invert display and value in item\n + cell_range.append(map(lambda x: (x[1],x[0]), \n + context.getVariationCategoryItemList(base_category_list=\\\n + (base_category,) ) ) )\n + else:\n + cell_range.append(context.getVariationCategoryList(base_category_list=\\\n + (base_category,)))\n \n cell_range = filter(lambda x: x != [], cell_range )\n \n diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetModelLine_asCellRange.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetModelLine_asCellRange.xml index 558323a059..8f776efd0f 100644 --- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetModelLine_asCellRange.xml +++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetModelLine_asCellRange.xml @@ -110,7 +110,19 @@ else:\n variation_base_category_list = context.getVariationBaseCategoryList()\n variation_base_category_list.sort()\n for base_category in variation_base_category_list:\n - list_of_category_list.append(\\\n + if base_category == "base_application":\n + base_application_variation_dict = {}\n + variation_list = context.getVariationCategoryList(base_category_list=(base_category,))\n + for variation in variation_list:\n + # We split at the sublevel of base_application/base_amount/payroll/XXX\n + base_variation = \'/\'.join(variation.split(\'/\')[:4])\n + base_application_variation_dict.setdefault(base_variation, []) \n + base_application_variation_dict[base_variation].append(variation)\n +\n + for v in base_application_variation_dict.values():\n + list_of_category_list.append(v)\n + else:\n + list_of_category_list.append(\\\n context.getVariationCategoryList(base_category_list=base_category))\n return list_of_category_list\n \n diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision index f27ce70ac9..db08d2acf8 100644 --- a/bt5/erp5_payroll/bt/revision +++ b/bt5/erp5_payroll/bt/revision @@ -1 +1 @@ -574 +575 -- 2.30.9