From 19a4da0c41c9bc6009277ce53d1c140319c6efff Mon Sep 17 00:00:00 2001
From: Fabien Morin <fabien@nexedi.com>
Date: Thu, 29 Jan 2009 09:33:45 +0000
Subject: [PATCH] check for the slices only if there is a salary_range category
 defined on the cell, else quantity=base_application. This permit to use
 negative amount in the paysheet wtih line wich have no slices

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@25359 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 ...etTransaction_defaultCalculationScript.xml | 21 ++++++++++---------
 bt5/erp5_payroll/bt/revision                  |  2 +-
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_defaultCalculationScript.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_defaultCalculationScript.xml
index cd8712fde0..eb253da2fc 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_defaultCalculationScript.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_defaultCalculationScript.xml
@@ -78,8 +78,7 @@ else:\n
 \n
 if base_amount_dict:\n
   # get the application amount for this cell\n
-  model_line = cell.getParentValue()\n
-  for base in model_line.getBaseApplicationList():\n
+  for base in cell.getBaseApplicationList():\n
     if base_amount_dict.has_key(base):\n
       base_application += base_amount_dict[base][tax_category]\n
 \n
@@ -87,7 +86,7 @@ if base_amount_dict:\n
 salary_range_list = cell.getVariationCategoryList(\\\n
     base_category_list=\'salary_range\')\n
 if len(salary_range_list):\n
-  salary_range = salary_range_list[0] # a slice can have only one salary_range\n
+  salary_range = salary_range_list[0] # a cell can have only one salary_range\n
                                       # category\n
 else:\n
   salary_range = None\n
@@ -104,14 +103,16 @@ if salary_range:\n
     model_slice_min = cell.getQuantityRangeMin()\n
     model_slice_max = cell.getQuantityRangeMax()\n
 \n
+  if not quantity and base_application-model_slice_min>0:\n
+    if base_application <= model_slice_max:\n
+      quantity = base_application-model_slice_min\n
+    elif model_slice_max:\n
+      quantity = model_slice_max-model_slice_min\n
+    else:\n
+      quantity = base_application\n
 \n
-if not quantity and base_application-model_slice_min>0:\n
-  if base_application <= model_slice_max:\n
-    quantity = base_application-model_slice_min\n
-  elif model_slice_max:\n
-    quantity = model_slice_max-model_slice_min\n
-  else:\n
-    quantity = base_application\n
+else:\n
+  quantity = base_application\n
 \n
 return {\'quantity\':quantity, \'price\':price}\n
 
diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision
index f64b48379f..fc72547e33 100644
--- a/bt5/erp5_payroll/bt/revision
+++ b/bt5/erp5_payroll/bt/revision
@@ -1 +1 @@
-343
\ No newline at end of file
+344
\ No newline at end of file
-- 
2.30.9