From 4622db4ad9faf3a7139e9cc058cd6c6f33c2e242 Mon Sep 17 00:00:00 2001
From: Yusuke Muraoka <yusuke@nexedi.com>
Date: Wed, 26 Aug 2009 09:37:31 +0000
Subject: [PATCH] fix a bug the listbox of PaySheetTransaction_view could not
 get movements when variation categories are set on those lines, but no cells.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@28629 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../PaySheetTransaction_getMovementList.xml   | 27 +++++++++++++++++--
 bt5/erp5_payroll/bt/revision                  |  2 +-
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementList.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementList.xml
index feb6d30d26..59799d681d 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementList.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getMovementList.xml
@@ -98,7 +98,6 @@ for paysheet_line in paysheet_line_list:\n
   previous_share = None\n
   indice = 0\n
 \n
-  object_dict = {}\n
   if cartesian_product == [[]] or cartesian_product == []:\n
     params = {\n
                   \'base\':paysheet_line.getTotalPrice(),\n
@@ -110,6 +109,7 @@ for paysheet_line in paysheet_line_list:\n
     line_list.append(paysheet_line.asContext(**params))\n
     continue\n
 \n
+  object_dict = {}\n
   for product in cartesian_product:\n
     indice += 1\n
     share_dict = {}\n
@@ -153,6 +153,26 @@ for paysheet_line in paysheet_line_list:\n
       object_dict[slice].update(share_dict)\n
     else:\n
       object_dict[slice].update(**share_dict)\n
+\n
+  if not object_dict:\n
+    # when the variation categories are set, but no cells.\n
+    slice_title = None\n
+    salary_range_list = [category for category in paysheet_line.getVariationCategoryList()\n
+                                  if category.startswith(\'salary_range\')]\n
+    if salary_range_list:\n
+      salary_range = portal.portal_categories.restrictedTraverse(salary_range_list[0])\n
+      slice_title = salary_range.getShortTitle() or salary_range.getTitle()\n
+\n
+    params = {\n
+      \'slice\': slice_title,\n
+      \'base\': paysheet_line.getTotalPrice(),\n
+      \'base_contribution_list\': base_contribution_list,\n
+      \'base_application_list\': base_application_list,\n
+      \'service\': service is not None and\\\n
+                 service.getId() or \'\',\n
+      \'causality\': causality,}\n
+    line_list.append(paysheet_line.asContext(**params))\n
+    continue\n
 \n
 #  print pprint.pformat(object_dict)\n
 \n
@@ -266,9 +286,9 @@ return line_list\n
                             <string>cartesian_product</string>
                             <string>previous_share</string>
                             <string>indice</string>
-                            <string>object_dict</string>
                             <string>params</string>
                             <string>_apply_</string>
+                            <string>object_dict</string>
                             <string>product</string>
                             <string>_inplacevar_</string>
                             <string>share_dict</string>
@@ -281,6 +301,9 @@ return line_list\n
                             <string>_getitem_</string>
                             <string>slice</string>
                             <string>slice_title</string>
+                            <string>category</string>
+                            <string>salary_range_list</string>
+                            <string>salary_range</string>
                             <string>object_key</string>
                             <string>sortByTitleAscending</string>
                             <string>sortByTitleDescending</string>
diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision
index df2d2b6cee..9889789bab 100644
--- a/bt5/erp5_payroll/bt/revision
+++ b/bt5/erp5_payroll/bt/revision
@@ -1 +1 @@
-497
\ No newline at end of file
+499
\ No newline at end of file
-- 
2.30.9