From 6deec1cb381b5007e2da357e775ea815f4eb9d6d Mon Sep 17 00:00:00 2001
From: Kevin Deldycke <kevin@nexedi.com>
Date: Thu, 26 Oct 2006 10:30:59 +0000
Subject: [PATCH] Fix some UI and fields name. Calculate taxable grand total on
 printing.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10957 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../Pay%20Sheet%20Line/quantity.xml           |  2 +-
 .../portal_types/Pay%20Sheet%20Line/view.xml  |  2 +-
 .../portal_types/Pay%20Sheet%20Line.xml       |  2 +-
 .../erp5_payroll/PaySheetLine_view/my_id.xml  |  2 +-
 .../PaySheetLine_view/my_resource_title.xml   | 68 ++++++++++++-
 .../PaySheetTransaction_getDetails.xml        | 95 +++++++++++--------
 .../PaySheetTransaction_view/listbox.xml      |  2 +-
 .../listbox.xml                               | 49 ++--------
 .../listbox_description.xml                   |  2 +-
 bt5/erp5_payroll/bt/revision                  |  2 +-
 10 files changed, 132 insertions(+), 94 deletions(-)

diff --git a/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/quantity.xml b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/quantity.xml
index 74d2be1805..d5bd191c22 100644
--- a/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/quantity.xml
+++ b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/quantity.xml
@@ -58,7 +58,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Pay Sheet Cells</string> </value>
+            <value> <string>Cells</string> </value>
         </item>
         <item>
             <key> <string>visible</string> </key>
diff --git a/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/view.xml b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/view.xml
index 860371f3d9..5ad39fd67c 100644
--- a/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/view.xml
+++ b/bt5/erp5_payroll/ActionTemplateItem/portal_types/Pay%20Sheet%20Line/view.xml
@@ -58,7 +58,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Pay Sheet Line View</string> </value>
+            <value> <string>View</string> </value>
         </item>
         <item>
             <key> <string>visible</string> </key>
diff --git a/bt5/erp5_payroll/PortalTypeTemplateItem/portal_types/Pay%20Sheet%20Line.xml b/bt5/erp5_payroll/PortalTypeTemplateItem/portal_types/Pay%20Sheet%20Line.xml
index afb445001a..e3997337c8 100644
--- a/bt5/erp5_payroll/PortalTypeTemplateItem/portal_types/Pay%20Sheet%20Line.xml
+++ b/bt5/erp5_payroll/PortalTypeTemplateItem/portal_types/Pay%20Sheet%20Line.xml
@@ -112,7 +112,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string></string> </value>
+            <value> <string>Pay Sheet Line</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_id.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_id.xml
index c32afd1dfa..a97b310ee0 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_id.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_id.xml
@@ -215,7 +215,7 @@
                 </item>
                 <item>
                     <key> <string>editable</string> </key>
-                    <value> <int>1</int> </value>
+                    <value> <int>0</int> </value>
                 </item>
                 <item>
                     <key> <string>editable_expression</string> </key>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_resource_title.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_resource_title.xml
index 90e0b2fd66..0e2e633934 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_resource_title.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetLine_view/my_resource_title.xml
@@ -245,6 +245,14 @@
             <key> <string>values</string> </key>
             <value>
               <dictionary>
+                <item>
+                    <key> <string>allow_creation</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>allow_jump</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
                 <item>
                     <key> <string>alternate_name</string> </key>
                     <value> <string></string> </value>
@@ -255,7 +263,17 @@
                 </item>
                 <item>
                     <key> <string>catalog_index</string> </key>
-                    <value> <string>relative_url</string> </value>
+                    <value> <string>title</string> </value>
+                </item>
+                <item>
+                    <key> <string>columns</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>container_getter_id</string> </key>
+                    <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>css_class</string> </key>
@@ -313,29 +331,61 @@
                     <key> <string>extra</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
                 <item>
                     <key> <string>hidden</string> </key>
                     <value> <int>0</int> </value>
                 </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
                 <item>
                     <key> <string>jump_method</string> </key>
                     <value> <string>Base_jumpToRelatedDocument</string> </value>
                 </item>
+                <item>
+                    <key> <string>list_method</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>max_length</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>not_viewable</string> </key>
                     <value> <int>0</int> </value>
                 </item>
+                <item>
+                    <key> <string>parameter_list</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
                 <item>
                     <key> <string>portal_type</string> </key>
                     <value>
                       <list>
                         <tuple>
-                          <string>Service</string>
-                          <string>Service</string>
+                          <string>Payroll Service</string>
+                          <string>Payroll Service</string>
                         </tuple>
                       </list>
                     </value>
@@ -352,9 +402,19 @@
                     <key> <string>required</string> </key>
                     <value> <int>0</int> </value>
                 </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>sort</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
                 <item>
                     <key> <string>title</string> </key>
-                    <value> <string>Social Service</string> </value>
+                    <value> <string>Payroll Service</string> </value>
                 </item>
                 <item>
                     <key> <string>truncate</string> </key>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
index 2eddb90983..ab81581359 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
@@ -121,7 +121,7 @@ def getGroup(group_id):\n
   return None\n
 \n
 \n
-def getGroupSubLineIdList(group_id=None):\n
+def getGroupSublineIdList(group_id=None):\n
   """\n
     This method get the list of subline IDs for a given group.\n
   """\n
@@ -136,10 +136,10 @@ def getGroupSubLineIdList(group_id=None):\n
 \n
 \n
 def sublineExist(group_id, subline_id):\n
-  return (groupExist(group_id) and subline_id not in [\'\', None] and subline_id in getGroupSubLineIdList(group_id)) and True or False\n
+  return (groupExist(group_id) and subline_id not in [\'\', None] and subline_id in getGroupSublineIdList(group_id)) and True or False\n
 \n
 \n
-def getSubLine(group_id, subline_id):\n
+def getSubline(group_id, subline_id):\n
   """\n
     This method get subline content based on its ID\n
   """\n
@@ -155,7 +155,7 @@ def updateSubLine(group_id, subline_id, property, value):\n
   """\n
     This method update a subline property.\n
   """\n
-  subline = getSubLine(group_id, subline_id)\n
+  subline = getSubline(group_id, subline_id)\n
   if subline != None:\n
     subline[property] = value\n
     return\n
@@ -195,7 +195,9 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
       subline_id = "%s/%s" % (service.getId(), salary_range.getId())\n
 \n
       # Here we decide if a Pay Sheet Line is taxable or not, according its payroll service\n
-      # TODO: use a \'taxable\' category to test this in a more generic way\n
+      # TODO: This is a hack, because the code below contain hard-coded IDs. To make this a\n
+      #       little bit more generic, an idea could be to use a \'taxable\' category to test\n
+      #       this in a more generic way.\n
       service_id = service.getId()\n
       taxable = False\n
       if service_id.endswith(\'non_deductible\') or \\\n
@@ -230,13 +232,13 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
 \n
 \n
 ##############################################################################\n
-# Fill the \'details\' dict with cell and calculated datas.\n
-# Here there is some specific code that must be modified to generic one.\n
+# Fill the \'details\' dict with cells and calculated datas.\n
+# There is some specific code here that must be transformed to generic one.\n
 ##############################################################################\n
 \n
 # Get Precision and precise rounding methods\n
-precision = context.getResourceValue().getQuantityPrecision()\n
-r_ = lambda x: context.Base_getRoundValue(x, precision)\n
+currency_precision = context.getResourceValue().getQuantityPrecision()\n
+r_ = lambda x: context.Base_getRoundValue(x, currency_precision)\n
 \n
 # Scan each pay sheet line and save it in the right place in the data structure\n
 for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
@@ -301,8 +303,8 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
 \n
     ### Default/Standard line group handling\n
     else:\n
-      cell_rate  = cell.getPrice()\n
-      cell_base  = - cell.getQuantity() # Change sign for beauty\n
+      cell_rate = cell.getPrice()\n
+      cell_base = - cell.getQuantity() # Change sign for beauty\n
       # BUG: why cell.getTotalPrice() use the method from Amount instead of the one defined in Movement class ?\n
       cell_share = r_(cell_base * cell_rate)\n
 \n
@@ -321,7 +323,7 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
         updateSubLine( group_id   = cell_group_id\n
                      , subline_id = cell_subline_id\n
                      , property   = \'%s_rate\' % share_type\n
-                     , value      = \'%.3f %%\' % r_(cell_rate * 100.0) # The "%.3f" format is arbitrary. "3" was choose because there is no rate with precision above 3. Feel Free to update this format if required.\n
+                     , value      = r_(cell_rate * 100.0)\n
                      )\n
         updateSubLine( group_id   = cell_group_id\n
                      , subline_id = cell_subline_id\n
@@ -338,6 +340,11 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
         total_employee_share = r_(total_employee_share + cell_share)\n
       elif share_type == \'employer\':\n
         total_employer_share = r_(total_employer_share + cell_share)\n
+\n
+      # Create taxable salary\n
+      subline = getSubline(group_id=cell_group_id, subline_id=cell_subline_id)\n
+      if subline != None and subline.has_key(\'taxable\') and subline[\'taxable\'] == True and subline[\'employee_share\'] != None:\n
+        taxable_net_salary = r_(taxable_net_salary + subline[\'employee_share\'])\n
 \n
 \n
 \n
@@ -349,7 +356,7 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
 \n
 details[\'totals\'][\'gross_salary\']           = gross_salary\n
 details[\'totals\'][\'net_salary\']             = net_salary\n
-details[\'totals\'][\'taxable_net_salary\']     = taxable_net_salary\n
+details[\'totals\'][\'taxable_net_salary\']     = r_(net_salary + taxable_net_salary)\n
 details[\'totals\'][\'total_employer_share\']   = total_employer_share\n
 details[\'totals\'][\'total_employee_share\']   = total_employee_share\n
 details[\'totals\'][\'total_addendum\']         = total_addendum\n
@@ -361,36 +368,41 @@ details[\'totals\'][\'total_employee_payment\'] = r_(net_salary + total_addendum
 # Transform every float value to a string representation according the currency.\n
 ##############################################################################\n
 \n
-# There is 2 kind of numbers to format: rates and amounts.\n
-rate_propertie_list   = [\'employer_rate\', \'employee_rate\']\n
-amount_propertie_list = [\'base\', \'employer_share\', \'employee_share\']\n
-\n
 # The "three decimals" format is arbitrary. "3" was choose because there is no rate with\n
-# precision above 3. Feel free to update dynamiccaly this format if required.\n
+# currency_precision above 3. Feel free to update dynamiccaly this format if required.\n
 RATE_PRECISION = 3\n
 \n
+# There is 2 kind of numbers to format: rates and amounts.\n
+money_format = {\'precision\': currency_precision}  #IDEA: put currency symbol as suffix ?\n
+rate_format  = {\'precision\': RATE_PRECISION, \'suffix\': "%"}\n
+property_format_dict = { \'base\'          : money_format\n
+                       , \'employer_rate\' : rate_format\n
+                       , \'employer_share\': money_format\n
+                       , \'employee_rate\' : rate_format\n
+                       , \'employee_share\': money_format\n
+                       }\n
+\n
 # Format each "normal" lines\n
 for group_id in getPSLGroupIdList():\n
-  for subline_id in getGroupSubLineIdList(group_id=group_id):\n
-    subline = getSubLine(group_id=group_id, subline_id=subline_id)\n
+  for subline_id in getGroupSublineIdList(group_id=group_id):\n
+    subline = getSubline(group_id=group_id, subline_id=subline_id)\n
     for (property, value) in subline.items():\n
-      if same_type(value, 1.0) or same_type(value, 1):\n
-        new_value = None\n
-        if property in rate_propertie_list:\n
-          new_value = (\'%.\' + str(RATE_PRECISION) + \'f\') % value\n
-        elif property in amount_propertie_list:\n
-          new_value = (\'%.\' + str(precision) + \'f\') % value\n
-        if new_value != None:\n
-          updateSubLine( group_id   = group_id\n
-                       , subline_id = subline_id\n
-                       , property   = property\n
-                       , value      = new_value\n
-                       )\n
+      if property_format_dict.has_key(property) and same_type(value, 1.0) or same_type(value, 1):\n
+        format = property_format_dict[property]\n
+        precision = format[\'precision\']\n
+        new_value = (\'%.\' + str(precision) + \'f\') % value\n
+        if format.has_key(\'prefix\'): new_value = \'%s %s\' % (format[\'prefix\'], new_value)\n
+        if format.has_key(\'suffix\'): new_value = \'%s %s\' % (new_value, format[\'suffix\'])\n
+        updateSubLine( group_id   = group_id\n
+                     , subline_id = subline_id\n
+                     , property   = property\n
+                     , value      = new_value\n
+                     )\n
 \n
 # Format totals\n
 for (key, value) in details[\'totals\'].items():\n
   if same_type(value, 1.0) or same_type(value, 1):\n
-    details[\'totals\'][key] = (\'%.\' + str(precision) + \'f\') % value\n
+    details[\'totals\'][key] = (\'%.\' + str(currency_precision) + \'f\') % value\n
 \n
 \n
 return details\n
@@ -458,9 +470,9 @@ return details\n
                             <string>groupExist</string>
                             <string>getGroup</string>
                             <string>None</string>
-                            <string>getGroupSubLineIdList</string>
+                            <string>getGroupSublineIdList</string>
                             <string>sublineExist</string>
-                            <string>getSubLine</string>
+                            <string>getSubline</string>
                             <string>updateSubLine</string>
                             <string>_getiter_</string>
                             <string>psl</string>
@@ -483,7 +495,7 @@ return details\n
                             <string>new_subline</string>
                             <string>groups</string>
                             <string>old_group</string>
-                            <string>precision</string>
+                            <string>currency_precision</string>
                             <string>r_</string>
                             <string>cell</string>
                             <string>tax_category_path</string>
@@ -496,15 +508,18 @@ return details\n
                             <string>cell_rate</string>
                             <string>cell_base</string>
                             <string>cell_share</string>
-                            <string>rate_propertie_list</string>
-                            <string>amount_propertie_list</string>
-                            <string>RATE_PRECISION</string>
                             <string>subline</string>
+                            <string>RATE_PRECISION</string>
+                            <string>money_format</string>
+                            <string>rate_format</string>
+                            <string>property_format_dict</string>
                             <string>property</string>
                             <string>value</string>
                             <string>same_type</string>
-                            <string>new_value</string>
+                            <string>format</string>
+                            <string>precision</string>
                             <string>str</string>
+                            <string>new_value</string>
                             <string>key</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_view/listbox.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_view/listbox.xml
index 5e1d1e9925..7ef68ee418 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_view/listbox.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_view/listbox.xml
@@ -343,7 +343,7 @@
                         </tuple>
                         <tuple>
                           <string>description</string>
-                          <string>Comment</string>
+                          <string>Description</string>
                         </tuple>
                         <tuple>
                           <string>resource_title</string>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox.xml
index b5181936d4..20959ba3e8 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox.xml
@@ -316,44 +316,7 @@
                 <item>
                     <key> <string>all_columns</string> </key>
                     <value>
-                      <list>
-                        <tuple>
-                          <string>service_title</string>
-                          <string>Contribution</string>
-                        </tuple>
-                        <tuple>
-                          <string>salary_range_title</string>
-                          <string>Base Type</string>
-                        </tuple>
-                        <tuple>
-                          <string>base</string>
-                          <string>Base Value</string>
-                        </tuple>
-                        <tuple>
-                          <string>employer_share</string>
-                          <string>Employer Share</string>
-                        </tuple>
-                        <tuple>
-                          <string>employee_share</string>
-                          <string>Employee Share</string>
-                        </tuple>
-                        <tuple>
-                          <string>description</string>
-                          <string>Comment</string>
-                        </tuple>
-                        <tuple>
-                          <string>service_id</string>
-                          <string>Service ID</string>
-                        </tuple>
-                        <tuple>
-                          <string>salary_range</string>
-                          <string>Salary Range</string>
-                        </tuple>
-                        <tuple>
-                          <string>tax_category</string>
-                          <string>Tax Category</string>
-                        </tuple>
-                      </list>
+                      <list/>
                     </value>
                 </item>
                 <item>
@@ -405,7 +368,7 @@
                         </tuple>
                         <tuple>
                           <string>description</string>
-                          <string>Comment</string>
+                          <string>Description</string>
                         </tuple>
                         <tuple>
                           <string>service_id</string>
@@ -476,19 +439,19 @@
                         </tuple>
                         <tuple>
                           <string>description</string>
-                          <string>Comment</string>
+                          <string>Description</string>
                         </tuple>
                         <tuple>
                           <string>service_id</string>
-                          <string>Service ID</string>
+<string></string>
                         </tuple>
                         <tuple>
                           <string>salary_range</string>
-                          <string>Salary Range</string>
+<string></string>
                         </tuple>
                         <tuple>
                           <string>tax_category</string>
-                          <string>Tax Category</string>
+<string></string>
                         </tuple>
                       </list>
                     </value>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox_description.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox_description.xml
index cb6162bfe1..ddda088e0e 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox_description.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPreview/listbox_description.xml
@@ -243,7 +243,7 @@
                 </item>
                 <item>
                     <key> <string>title</string> </key>
-                    <value> <string>Comment</string> </value>
+                    <value> <string>Description</string> </value>
                 </item>
                 <item>
                     <key> <string>truncate</string> </key>
diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision
index 9d07aa0df5..2702ba3d43 100644
--- a/bt5/erp5_payroll/bt/revision
+++ b/bt5/erp5_payroll/bt/revision
@@ -1 +1 @@
-111
\ No newline at end of file
+115
\ No newline at end of file
-- 
2.30.9