[Erp5-report] r7711 - in /erp5/trunk/bt5/erp5_payroll: ActionTemplateItem/portal_types/Acco...
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Jun 13 20:34:19 CEST 2006
Author: kevin
Date: Tue Jun 13 20:34:16 2006
New Revision: 7711
URL: http://svn.erp5.org?rev=7711&view=rev
Log:
A very alpha version of the Payroll report. Consider this as a prototype or a mockup, not a bullet-proof feature for production environment.
Added:
erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%20Transaction%20Module/
erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%20Transaction%20Module/payroll_report.xml
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport.xml
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog.xml
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_type.xml
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_year.xml
Modified:
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport.xml
erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
erp5/trunk/bt5/erp5_payroll/bt/change_log
erp5/trunk/bt5/erp5_payroll/bt/template_action_path_list
Added: erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%20Transaction%20Module/payroll_report.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%2520Transaction%2520Module/payroll_report.xml?rev=7711&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%20Transaction%20Module/payroll_report.xml (added)
+++ erp5/trunk/bt5/erp5_payroll/ActionTemplateItem/portal_types/Accounting%20Transaction%20Module/payroll_report.xml Tue Jun 13 20:34:16 2006
@@ -1,0 +1,89 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.CMFCore.ActionInformation</string>
+ <string>ActionInformation</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>action</string> </key>
+ <value>
+ <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+ </value>
+ </item>
+ <item>
+ <key> <string>category</string> </key>
+ <value> <string>object_report</string> </value>
+ </item>
+ <item>
+ <key> <string>condition</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>icon</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>payroll_report</string> </value>
+ </item>
+ <item>
+ <key> <string>permissions</string> </key>
+ <value>
+ <tuple>
+ <string>View</string>
+ </tuple>
+ </value>
+ </item>
+ <item>
+ <key> <string>priority</string> </key>
+ <value> <float>25.0</float> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string>Payroll Report</string> </value>
+ </item>
+ <item>
+ <key> <string>visible</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+ <record id="2" aka="AAAAAAAAAAI=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.CMFCore.Expression</string>
+ <string>Expression</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>text</string> </key>
+ <value> <string>string:${object_url}/AccountingTransactionModule_viewPayrollReportDialog</string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Modified: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport.xml?rev=7711&r1=7710&r2=7711&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport.xml (original)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport.xml Tue Jun 13 20:34:16 2006
@@ -70,128 +70,116 @@
<key> <string>_body</string> </key>
<value> <string encoding="cdata"><![CDATA[
+"""\n
+ WARNING: Please don\'t use this report as model.\n
+ This report is a quick and dirty mockup, a protoype\n
+ not intended to be used in production environment.\n
+"""\n
+\n
import DateTime\n
-portal_catalog = context.getPortalObject().portal_catalog\n
-\n
-query = {\n
- "portal_type" : "Pay Sheet Transaction",\n
- "simulation_state" : ["confirmed", "stopped", "delivered", "draft", "planned"],\n
- "delivery.stop_date" : ">2004-12-31",\n
- "delivery.start_date" : "<2005-12-31",\n
- "sort_on" : ("delivery.start_date", "ASC")\n
-}\n
-\n
-if 0 :\n
- print portal_catalog(src__ = 1, **query)\n
- return printed\n
+portal = context.getPortalObject()\n
+portal_catalog = portal.portal_catalog\n
+N_ = portal.Base_translateString\n
+\n
+year = int(year)\n
+\n
+query = { \'portal_type\' : \'Pay Sheet Transaction\'\n
+ , \'simulation_state\' : [\'confirmed\', \'stopped\', \'delivered\']\n
+ , \'delivery.stop_date\' : \'>%s-12-31\' % (year - 1)\n
+ , \'delivery.start_date\': \'<%s-12-31\' % (year)\n
+ , \'sort_on\' : (\'delivery.start_date\', \'ASC\')\n
+ }\n
+\n
+# if 0:\n
+# print portal_catalog(src__ = 1, **query)\n
+# return printed\n
\n
\n
# DATA GATHERING part\n
\n
paysheet_par_person = {}\n
\n
-for ps in portal_catalog( **query ) :\n
+for ps in portal_catalog(**query):\n
ps = ps.getObject()\n
# Quick hack to fix some problems on a local site\n
# if ps.getStopDate()<DateTime.DateTime("2006-01-01"):\n
# print "<a href=\\"%s\\">%s</a> candidate to be updated (%s -> %s)<br>" % (ps.getPath(),ps.getDestinationSection(),ps.getSource(),ps.getDestination())\n
# #ps.setSource(ps.getSourceSection())\n
# #ps.setDestination(ps.getDestinationSection())\n
- if not paysheet_par_person.has_key(ps.getDestinationSection()) :\n
+ if not paysheet_par_person.has_key(ps.getDestinationSection()):\n
paysheet_par_person[ps.getDestinationSection()] = []\n
paysheet_par_person[ps.getDestinationSection()].append(ps)\n
\n
gathered_data = {}\n
\n
-for p, paysheets in paysheet_par_person.items() :\n
+for p, paysheets in paysheet_par_person.items():\n
gathered_data[p] = {}\n
- for paysheet in paysheets :\n
+ for paysheet in paysheets:\n
start_month = paysheet.start_date.month() - 1\n
- if not gathered_data[p].has_key(start_month) :\n
+ if not gathered_data[p].has_key(start_month):\n
gathered_data[p][start_month] = {}\n
- if gathered_data[p][start_month].has_key("salary") :\n
- if not gathered_data[p][start_month].has_key("duplicates") :\n
+ if gathered_data[p][start_month].has_key("salary"):\n
+ if not gathered_data[p][start_month].has_key("duplicates"):\n
gathered_data[p][start_month]["duplicates"] = []\n
gathered_data[p][start_month]["duplicates"].append(paysheet)\n
else :\n
- # get the taxable salary\n
+ # Get paysheet details\n
ps_details = paysheet.PaySheetTransaction_getDetails()\n
salary_value = ps_details[salary_type]\n
- # Round the value the same way it is printed by PaySheetTransaction_viewPaySheetTransactionAsPDF.\n
- # In fact the rounding must be done by PaySheetTransaction_getDetails to homogenize the value in the paysheet module.\n
+ # Render the value the same way it is printed by PaySheetTransaction_viewPaySheetTransactionAsPDF.\n
gathered_data[p][start_month]["salary"] = float(\'%.2f\' % salary_value)\n
gathered_data[p][start_month]["url"] = paysheet.getPath()\n
gathered_data[p][start_month]["state"] = paysheet.getSimulationState()\n
\n
-# DISPLAY part\n
-\n
-print """\n
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n
- "DTD/xhtml1-strict.dtd">\n
-<html>\n
-<head>\n
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />\n
-<title>R\xc3\xa9capitulatif des salaires bruts</title>\n
+# Sort by person name\n
+sorted_data = {}\n
+for person_path, paysheet_dict in gathered_data.items():\n
+ person_title = context.restrictedTraverse(person_path).getTitle()\n
+ sorted_data[(person_path, person_title)] = paysheet_dict\n
+items = sorted_data.items()\n
+items.sort(lambda x, y: cmp(x[0][1], y[0][1]))\n
+gathered_data = [item for item in items]\n
+\n
+\n
+# REPORT part\n
+# TODO: separate the rendering part and the logical part\n
+# TODO: use true ERP5 report\n
+\n
+print """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">\n
+<html><head>\n
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>\n
+<title>%s</title>\n
<style>\n
-a {text-decoration : none;}\n
-a:hover {text-decoration : underline;}\n
-\n
-.warning {color: #f00;}\n
-.warning a:link {color: #f00;}\n
-.warning a:visited {color: #f00;}\n
-.warning a:hover {color: #f00;}\n
-\n
-table {\n
- border-collapse : collapse;\n
-}\n
-th, td {\n
- border : 1px solid #CCC;\n
-}\n
-\n
-td {\n
- text-align : right;\n
-}\n
-\n
-th.total {\n
- background : #999;\n
-}\n
-\n
-th.error {\n
- background : #F00;\n
-}\n
+a {text-decoration: none}\n
+a:hover {text-decoration: underline}\n
+.warning,\n
+.warning a:link,\n
+.warning a:visited,\n
+.warning a:hover {color: #f00}\n
+table {border-collapse: collapse}\n
+th, td {border: 1px solid #ccc}\n
+td {text-align: right}\n
+th.total {background: #999}\n
+th.error {background: #f00}\n
</style>\n
-</head>\n
-<body>"""\n
-\n
-print "<h1>Annual %s Report</h1>" % (salary_type.replace(\'_\', \' \').title())\n
-print "<h2>Fiscal year 2005</h2>"\n
-\n
-print """\n
-<table>\n
-<tr>\n
-<th></th>\n
-<th>janvier</th>\n
-<th>fevrier</th>\n
-<th>mars</th>\n
-<th>avril</th>\n
-<th>mai</th>\n
-<th>juin</th>\n
-<th>juillet</th>\n
-<th>aout</th>\n
-<th>septembre</th>\n
-<th>october</th>\n
-<th>novembre</th>\n
-<th>decembre</th>\n
-<th class="total">Total</th>\n
-</tr>\n
-"""\n
+</head><body>""" % (N_(\'Payroll Report\'))\n
+\n
+print "<h1>%s</h1>" % N_("Annual ${report_type} Report", mapping={\'report_type\': unicode(salary_type.replace(\'_\', \' \').title(), \'utf8\')})\n
+\n
+print "<h2>%s</h2>" % N_("Fiscal year ${year}", mapping={\'year\': unicode(str(year), \'utf8\')})\n
+\n
+print "<table><tr><th></th>"\n
+month_list = [\'January\', \'February\', \'March\', \'April\', \'May\', \'June\', \'July\', \'August\', \'September\', \'October\', \'November\', \'December\']\n
+for month in month_list:\n
+ print "<th>%s</th>" % (N_(month))\n
+print "<th class=\'total\'>%s</th></tr>" % (N_(\'Total\'))\n
\n
total = 0\n
monthly_total = {}\n
\n
-for person_path, person_dict in gathered_data.items() :\n
+for ((person_path, person_title), person_dict) in gathered_data:\n
person_total = 0\n
- print "<tr><td><a href=\\"%s\\">%s</a></td>" % (person_path, context.restrictedTraverse(person_path).getTitle())\n
+ print "<tr><td><a href=\\"%s\\">%s</a></td>" % (person_path, person_title)\n
for month in range(12) :\n
print "<td>"\n
if person_dict.has_key(month) :\n
@@ -208,24 +196,20 @@
print "<td>%s</td></tr>" % person_total\n
total += person_total\n
\n
-print "<th class=\\"total\\">Total</th>"\n
+print "<th class=\'total\'>%s</th>" % (N_(\'Total\'))\n
check_total = 0\n
-for month in range(12) :\n
+for month in range(12):\n
print "<td>"\n
- if monthly_total.has_key(month) :\n
+ if monthly_total.has_key(month):\n
print monthly_total[month]\n
check_total += monthly_total[month]\n
print "</td>"\n
\n
-print "<th class=\\""\n
-if check_total != total :\n
+print "<th class=\'"\n
+if check_total != total:\n
print "error"\n
-print \'\\">%s</th>\' % total\n
-print """\n
-</table>\n
-</body>\n
-</html>\n
-"""\n
+print "\'>%s</th>" % total\n
+print "</table></body></html>"\n
\n
return printed\n
@@ -243,14 +227,8 @@
<value> <string>Script (Python):/nexedi/portal_skins/erp5_payroll/AccountingTransactionModule_viewAnnualSalaryReport</string> </value>
</item>
<item>
- <key> <string>_owner</string> </key>
- <value>
- <none/>
- </value>
- </item>
- <item>
<key> <string>_params</string> </key>
- <value> <string>salary_type="gross_salary"</string> </value>
+ <value> <string>year, salary_type="gross_salary"</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
@@ -270,19 +248,23 @@
<dictionary>
<item>
<key> <string>co_argcount</string> </key>
- <value> <int>1</int> </value>
+ <value> <int>2</int> </value>
</item>
<item>
<key> <string>co_varnames</string> </key>
<value>
<tuple>
+ <string>year</string>
<string>salary_type</string>
<string>_print_</string>
<string>_print</string>
<string>DateTime</string>
<string>_getattr_</string>
<string>context</string>
+ <string>portal</string>
<string>portal_catalog</string>
+ <string>N_</string>
+ <string>int</string>
<string>query</string>
<string>paysheet_par_person</string>
<string>_getiter_</string>
@@ -298,13 +280,23 @@
<string>ps_details</string>
<string>salary_value</string>
<string>float</string>
+ <string>sorted_data</string>
+ <string>person_path</string>
+ <string>paysheet_dict</string>
+ <string>person_title</string>
+ <string>items</string>
+ <string>append</string>
+ <string>$append0</string>
+ <string>item</string>
+ <string>unicode</string>
+ <string>str</string>
+ <string>month_list</string>
+ <string>month</string>
<string>total</string>
<string>monthly_total</string>
- <string>person_path</string>
<string>person_dict</string>
<string>person_total</string>
<string>range</string>
- <string>month</string>
<string>dup_ps</string>
<string>check_total</string>
</tuple>
Added: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport.xml?rev=7711&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport.xml (added)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport.xml Tue Jun 13 20:34:16 2006
@@ -1,0 +1,161 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.PythonScripts.PythonScript</string>
+ <string>PythonScript</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>Python_magic</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>Script_magic</string> </key>
+ <value> <int>3</int> </value>
+ </item>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_bind_names</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>_asgns</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>name_container</string> </key>
+ <value> <string>container</string> </value>
+ </item>
+ <item>
+ <key> <string>name_context</string> </key>
+ <value> <string>context</string> </value>
+ </item>
+ <item>
+ <key> <string>name_m_self</string> </key>
+ <value> <string>script</string> </value>
+ </item>
+ <item>
+ <key> <string>name_subpath</string> </key>
+ <value> <string>traverse_subpath</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>_body</string> </key>
+ <value> <string encoding="cdata"><![CDATA[
+
+REPORT_SCRIPT = "AccountingTransactionModule_viewAnnualSalaryReport"\n
+\n
+request = context.REQUEST\n
+\n
+year = request[\'report_year\']\n
+type = request[\'report_type\']\n
+\n
+context.REQUEST.RESPONSE.redirect("%s/%s?year=%s&salary_type=%s" % ( context.getPath()\n
+ , REPORT_SCRIPT\n
+ , year\n
+ , type\n
+ ))\n
+
+
+]]></string> </value>
+ </item>
+ <item>
+ <key> <string>_code</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_filepath</string> </key>
+ <value> <string>Script (Python):/nexedi/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReport</string> </value>
+ </item>
+ <item>
+ <key> <string>_params</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>errors</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_code</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>co_argcount</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>co_varnames</string> </key>
+ <value>
+ <tuple>
+ <string>REPORT_SCRIPT</string>
+ <string>_getattr_</string>
+ <string>context</string>
+ <string>request</string>
+ <string>_getitem_</string>
+ <string>year</string>
+ <string>type</string>
+ </tuple>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_defaults</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>AccountingTransactionModule_viewPayrollReport</string> </value>
+ </item>
+ <item>
+ <key> <string>warnings</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Added: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog.xml?rev=7711&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog.xml (added)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog.xml Tue Jun 13 20:34:16 2006
@@ -1,0 +1,144 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.ERP5Form.Form</string>
+ <string>ERP5Form</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_bind_names</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>_asgns</string> </key>
+ <value>
+ <dictionary/>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>_objects</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ <item>
+ <key> <string>action</string> </key>
+ <value> <string>AccountingTransactionModule_viewPayrollReport</string> </value>
+ </item>
+ <item>
+ <key> <string>encoding</string> </key>
+ <value> <string>UTF-8</string> </value>
+ </item>
+ <item>
+ <key> <string>enctype</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>group_list</string> </key>
+ <value>
+ <list>
+ <string>Default</string>
+ <string>left</string>
+ <string>bottom</string>
+ <string>diabled</string>
+ </list>
+ </value>
+ </item>
+ <item>
+ <key> <string>groups</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>Default</string> </key>
+ <value>
+ <list>
+ <string>my_report_year</string>
+ <string>my_report_type</string>
+ </list>
+ </value>
+ </item>
+ <item>
+ <key> <string>bottom</string> </key>
+ <value>
+ <list/>
+ </value>
+ </item>
+ <item>
+ <key> <string>diabled</string> </key>
+ <value>
+ <list/>
+ </value>
+ </item>
+ <item>
+ <key> <string>left</string> </key>
+ <value>
+ <list/>
+ </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>AccountingTransactionModule_viewPayrollReportDialog</string> </value>
+ </item>
+ <item>
+ <key> <string>method</string> </key>
+ <value> <string>POST</string> </value>
+ </item>
+ <item>
+ <key> <string>name</string> </key>
+ <value> <string>AccountingTransactionModule_viewPayrollReportDialog</string> </value>
+ </item>
+ <item>
+ <key> <string>pt</string> </key>
+ <value> <string>form_dialog</string> </value>
+ </item>
+ <item>
+ <key> <string>row_length</string> </key>
+ <value> <int>4</int> </value>
+ </item>
+ <item>
+ <key> <string>stored_encoding</string> </key>
+ <value> <string>UTF-8</string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string>Payroll Report</string> </value>
+ </item>
+ <item>
+ <key> <string>unicode_mode</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>update_action</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Added: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_type.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_type.xml?rev=7711&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_type.xml (added)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_type.xml Tue Jun 13 20:34:16 2006
@@ -1,0 +1,301 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.Formulator.StandardFields</string>
+ <string>RadioField</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>my_report_type</string> </value>
+ </item>
+ <item>
+ <key> <string>message_values</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>external_validator_failed</string> </key>
+ <value> <string>The input failed the external validator.</string> </value>
+ </item>
+ <item>
+ <key> <string>required_not_found</string> </key>
+ <value> <string>Input is required but no input given.</string> </value>
+ </item>
+ <item>
+ <key> <string>unknown_selection</string> </key>
+ <value> <string>You selected an item that was not in the list.</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>overrides</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</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> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>hidden</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>items</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>orientation</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>unicode</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>tales</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</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> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>hidden</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>items</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>orientation</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>unicode</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>values</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value> <string>gross_salary</string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</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>
+ <tuple>
+ <string>Gross Salary (default)</string>
+ <string>gross_salary</string>
+ </tuple>
+ <tuple>
+ <string>Net Salary</string>
+ <string>net_salary</string>
+ </tuple>
+ <tuple>
+ <string>Taxable Net Salary</string>
+ <string>taxable_net_salary</string>
+ </tuple>
+ <tuple>
+ <string>Employee Share</string>
+ <string>total_employee_share</string>
+ </tuple>
+ <tuple>
+ <string>Taxable Employee Share</string>
+ <string>total_taxable_employee_share</string>
+ </tuple>
+ <tuple>
+ <string>Employer Share</string>
+ <string>total_employer_share</string>
+ </tuple>
+ <tuple>
+ <string>Ceiling Salary</string>
+ <string>ceiling_salary</string>
+ </tuple>
+ <tuple>
+ <string>CSG Salary</string>
+ <string>csg_salary</string>
+ </tuple>
+ <tuple>
+ <string>Slice A Salary</string>
+ <string>slice_a_salary</string>
+ </tuple>
+ <tuple>
+ <string>Slice B Salary</string>
+ <string>slice_b_salary</string>
+ </tuple>
+ <tuple>
+ <string>Slice C Salary</string>
+ <string>slice_c_salary</string>
+ </tuple>
+ </list>
+ </value>
+ </item>
+ <item>
+ <key> <string>orientation</string> </key>
+ <value> <string>vertical</string> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string>Report Type</string> </value>
+ </item>
+ <item>
+ <key> <string>unicode</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Added: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_year.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_year.xml?rev=7711&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_year.xml (added)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/AccountingTransactionModule_viewPayrollReportDialog/my_report_year.xml Tue Jun 13 20:34:16 2006
@@ -1,0 +1,279 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.Formulator.StandardFields</string>
+ <string>IntegerField</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>my_report_year</string> </value>
+ </item>
+ <item>
+ <key> <string>message_values</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>external_validator_failed</string> </key>
+ <value> <string>The input failed the external validator.</string> </value>
+ </item>
+ <item>
+ <key> <string>integer_out_of_range</string> </key>
+ <value> <string>The integer you entered was out of range.</string> </value>
+ </item>
+ <item>
+ <key> <string>not_integer</string> </key>
+ <value> <string>You did not enter an integer.</string> </value>
+ </item>
+ <item>
+ <key> <string>required_not_found</string> </key>
+ <value> <string>Input is required but no input given.</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>overrides</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>display_maxwidth</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>display_width</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>end</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>extra</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>hidden</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>start</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>tales</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value>
+ <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+ </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>display_maxwidth</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>display_width</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>end</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>extra</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>hidden</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>start</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ <item>
+ <key> <string>values</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>alternate_name</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>css_class</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>default</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>description</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>display_maxwidth</string> </key>
+ <value> <int>4</int> </value>
+ </item>
+ <item>
+ <key> <string>display_width</string> </key>
+ <value> <int>4</int> </value>
+ </item>
+ <item>
+ <key> <string>editable</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>enabled</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>end</string> </key>
+ <value> <int>9999</int> </value>
+ </item>
+ <item>
+ <key> <string>external_validator</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>extra</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>hidden</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>required</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>start</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string>Report Year</string> </value>
+ </item>
+ <item>
+ <key> <string>whitespace_preserve</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+ <record id="2" aka="AAAAAAAAAAI=">
+ <pickle>
+ <tuple>
+ <tuple>
+ <string>Products.Formulator.TALESField</string>
+ <string>TALESMethod</string>
+ </tuple>
+ <none/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>_text</string> </key>
+ <value> <string>python: here.portal_preferences.getPreferredAccountingTransactionAtDate().year()</string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Modified: erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml?rev=7711&r1=7710&r2=7711&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml (original)
+++ erp5/trunk/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml Tue Jun 13 20:34:16 2006
@@ -85,8 +85,8 @@
object_list = []\n
\n
# get all Pay Sheet Line\n
-gross_salary = 0.0\n
-net_salary = 0.0\n
+gross_salary = 0.0\n
+net_salary = 0.0\n
for object in context.objectValues():\n
if object.getPortalType()==\'Pay Sheet Line\':\n
# get the gross salary\n
@@ -105,6 +105,53 @@
\n
total_employee_share = r_(gross_salary - net_salary)\n
\n
+\n
+# Get the CSG salary\n
+# This is only used for report\n
+csg_salary = r_(0.97 * gross_salary)\n
+\n
+# Calculate the ceiling salary\n
+# This is only used for report\n
+ceiling_salary = 0.0\n
+ceiling_salary_list = { 2003 : 2432.0\n
+ , 2004 : 2476.0\n
+ , 2005 : 2516.0\n
+ , 2006 : 2589.0\n
+ }\n
+# the default ceiling salary is the last one\n
+paysheet_year = context.getStartDate().year()\n
+ceiling_salary_available_years = ceiling_salary_list.keys()\n
+if paysheet_year not in ceiling_salary_available_years:\n
+ paysheet_year = ceiling_salary_available_years[-1]\n
+salary_limit = ceiling_salary_list[paysheet_year]\n
+# limited salary = salaire plafonnee\n
+if gross_salary < salary_limit:\n
+ ceiling_salary = gross_salary\n
+else:\n
+ ceiling_salary = salary_limit\n
+\n
+# Get the list of all slice the employee fall in\n
+# This is only used for report\n
+slice_a_salary = 0.0\n
+slice_b_salary = 0.0\n
+slice_c_salary = 0.0\n
+# "Char" slice type\n
+slice_a_value = salary_limit\n
+slice_b_value = salary_limit * 4\n
+slice_c_value = salary_limit * 8\n
+if gross_salary < slice_a_value:\n
+ slice_a_salary = gross_salary\n
+else:\n
+ slice_a_salary = slice_a_value\n
+ if gross_salary < slice_b_value:\n
+ slice_b_salary = float(gross_salary) - float(slice_a_value)\n
+ else:\n
+ slice_b_salary = slice_b_value\n
+ if gross_salary < slice_c_value:\n
+ slice_c_salary = float(gross_salary) - float(slice_b_value)\n
+ else:\n
+ slice_c_salary = slice_c_value\n
+\n
# Sort the list by id since lines are already ordered by id.\n
object_list.sort(lambda x, y: cmp(int(x.getId()), int(y.getId())))\n
for pay_sheet_line in object_list:\n
@@ -115,6 +162,7 @@
if not variation in range_variation: # Extra checking because\n
# get VariationCategoryList returns\n
# the same 1 items 2 times\n
+ # This is normally no longer true, I fix this bug years ago (!)\n
range_variation += [variation]\n
for range in range_variation:\n
pay_sheet_dict = {}\n
@@ -132,11 +180,13 @@
# Hack not to display prime and ser\n
if cell_total_price != 0 or cell.getResourceId() not in (\'primes\', \'retenue_maladie\'):\n
if category.find(\'employee_share\') >= 0:\n
- pay_sheet_dict[\'base\'] = -cell_quantity # change the sign for the beautification effect\n
+ pay_sheet_dict[\'base\'] = -cell_quantity # change the sign to beautify\n
pay_sheet_dict[\'employee_share\'] = -cell_total_price\n
pay_sheet_dict[\'employee_share_rate\'] = cell_price * 100\n
# here we decide if a resource is taxable\n
- if str(pay_sheet_line.getResource())[-14:] == \'non_deductible\' or str(pay_sheet_line.getResource())[-4:] == \'crds\' or str(pay_sheet_line.getResource())[-7:] == \'taxable\':\n
+ if str(pay_sheet_line.getResource())[-14:] == \'non_deductible\' or \\\n
+ str(pay_sheet_line.getResource())[-4:] == \'crds\' or \\\n
+ str(pay_sheet_line.getResource())[-7:] == \'taxable\':\n
pay_sheet_dict[\'taxable\'] = \'yes\'\n
elif str(pay_sheet_line.getResource())[-10:] == \'deductible\':\n
pay_sheet_dict[\'taxable\'] = \'no\'\n
@@ -182,6 +232,11 @@
# initialize every yearly variable\n
yearly_net_salary = 0.0\n
yearly_gross_salary = 0.0\n
+yearly_csg_salary = 0.0\n
+yearly_ceiling_salary = 0.0\n
+yearly_slice_a_salary = 0.0\n
+yearly_slice_b_salary = 0.0\n
+yearly_slice_c_salary = 0.0\n
yearly_employee_share = 0.0\n
yearly_employer_share = 0.0\n
yearly_taxable_net_salary = 0.0\n
@@ -222,6 +277,11 @@
# sum of yearly values\n
yearly_net_salary = r_(yearly_net_salary + r_(old_ps[\'net_salary\']))\n
yearly_gross_salary = r_(yearly_gross_salary + r_(old_ps[\'gross_salary\']))\n
+ yearly_csg_salary = r_(yearly_csg_salary + r_(old_ps[\'csg_salary\']))\n
+ yearly_ceiling_salary = r_(yearly_ceiling_salary + r_(old_ps[\'ceiling_salary\']))\n
+ yearly_slice_a_salary = r_(yearly_slice_a_salary + r_(old_ps[\'slice_a_salary\']))\n
+ yearly_slice_b_salary = r_(yearly_slice_b_salary + r_(old_ps[\'slice_b_salary\']))\n
+ yearly_slice_c_salary = r_(yearly_slice_c_salary + r_(old_ps[\'slice_c_salary\']))\n
yearly_employee_share = r_(yearly_employee_share + r_(old_ps[\'total_employee_share\']))\n
yearly_employer_share = r_(yearly_employer_share + r_(old_ps[\'total_employer_share\']))\n
yearly_taxable_net_salary = r_(yearly_taxable_net_salary + r_(old_ps[\'taxable_net_salary\']))\n
@@ -229,6 +289,11 @@
# save the total share values in the exported dict\n
details[\'net_salary\'] = net_salary\n
details[\'gross_salary\'] = gross_salary\n
+details[\'csg_salary\'] = csg_salary\n
+details[\'ceiling_salary\'] = ceiling_salary\n
+details[\'slice_a_salary\'] = slice_a_salary\n
+details[\'slice_b_salary\'] = slice_b_salary\n
+details[\'slice_c_salary\'] = slice_c_salary\n
details[\'paysheet_categories\'] = paysheet_cat\n
details[\'total_employee_share\'] = total_employee_share\n
details[\'total_employer_share\'] = total_employer_share\n
@@ -238,6 +303,11 @@
# don\'t forget to add the current values to the yearly sum\n
details[\'yearly_net_salary\'] = r_(yearly_net_salary + r_(details[\'net_salary\']))\n
details[\'yearly_gross_salary\'] = r_(yearly_gross_salary + r_(details[\'gross_salary\']))\n
+details[\'yearly_csg_salary\'] = r_(yearly_csg_salary + r_(details[\'csg_salary\']))\n
+details[\'yearly_ceiling_salary\'] = r_(yearly_ceiling_salary + r_(details[\'ceiling_salary\']))\n
+details[\'yearly_slice_a_salary\'] = r_(yearly_slice_a_salary + r_(details[\'slice_a_salary\']))\n
+details[\'yearly_slice_b_salary\'] = r_(yearly_slice_b_salary + r_(details[\'slice_b_salary\']))\n
+details[\'yearly_slice_c_salary\'] = r_(yearly_slice_c_salary + r_(details[\'slice_c_salary\']))\n
details[\'yearly_employee_share\'] = r_(yearly_employee_share + r_(details[\'total_employee_share\']))\n
details[\'yearly_employer_share\'] = r_(yearly_employer_share + r_(details[\'total_employer_share\']))\n
details[\'yearly_taxable_net_salary\'] = r_(yearly_taxable_net_salary + r_(details[\'taxable_net_salary\']))\n
@@ -256,12 +326,6 @@
<item>
<key> <string>_filepath</string> </key>
<value> <string>Script (Python):/nexedi/portal_skins/erp5_payroll/PaySheetTransaction_getDetails</string> </value>
- </item>
- <item>
- <key> <string>_owner</string> </key>
- <value>
- <none/>
- </value>
</item>
<item>
<key> <string>_params</string> </key>
@@ -306,6 +370,20 @@
<string>object</string>
<string>cell</string>
<string>total_employee_share</string>
+ <string>csg_salary</string>
+ <string>ceiling_salary</string>
+ <string>ceiling_salary_list</string>
+ <string>paysheet_year</string>
+ <string>ceiling_salary_available_years</string>
+ <string>_getitem_</string>
+ <string>salary_limit</string>
+ <string>slice_a_salary</string>
+ <string>slice_b_salary</string>
+ <string>slice_c_salary</string>
+ <string>slice_a_value</string>
+ <string>slice_b_value</string>
+ <string>slice_c_value</string>
+ <string>float</string>
<string>pay_sheet_line</string>
<string>variation_list</string>
<string>range_variation</string>
@@ -318,7 +396,6 @@
<string>cell_price</string>
<string>cell_quantity</string>
<string>cell_total_price</string>
- <string>_getitem_</string>
<string>str</string>
<string>None</string>
<string>key</string>
@@ -330,6 +407,11 @@
<string>paysheet_transactions</string>
<string>yearly_net_salary</string>
<string>yearly_gross_salary</string>
+ <string>yearly_csg_salary</string>
+ <string>yearly_ceiling_salary</string>
+ <string>yearly_slice_a_salary</string>
+ <string>yearly_slice_b_salary</string>
+ <string>yearly_slice_c_salary</string>
<string>yearly_employee_share</string>
<string>yearly_employer_share</string>
<string>yearly_taxable_net_salary</string>
Modified: erp5/trunk/bt5/erp5_payroll/bt/change_log
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/bt/change_log?rev=7711&r1=7710&r2=7711&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/bt/change_log (original)
+++ erp5/trunk/bt5/erp5_payroll/bt/change_log Tue Jun 13 20:34:16 2006
@@ -1,3 +1,6 @@
+2006-06-13 Kevin
+* Add a very alpha version of the Payroll report.
+
2006-06-12 Kevin
* Update maintainer list.
* Re-order tabs thanks to priorities.
Modified: erp5/trunk/bt5/erp5_payroll/bt/template_action_path_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_payroll/bt/template_action_path_list?rev=7711&r1=7710&r2=7711&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_payroll/bt/template_action_path_list (original)
+++ erp5/trunk/bt5/erp5_payroll/bt/template_action_path_list Tue Jun 13 20:34:16 2006
@@ -1,3 +1,4 @@
+Accounting Transaction Module | payroll_report
Pay Sheet Cell | history
Pay Sheet Cell | metadata
Pay Sheet Cell | print_pdf
More information about the Erp5-report
mailing list