[ADD]: add other files to the hr_payroll module
authorMantavya Gajjar <mga@tinyerp.com>
Sun, 6 Jun 2010 16:30:23 +0000 (22:00 +0530)
committerMantavya Gajjar <mga@tinyerp.com>
Sun, 6 Jun 2010 16:30:23 +0000 (22:00 +0530)
bzr revid: mga@tinyerp.com-20100606163023-pkf6httl19hma6nx

25 files changed:
addons/hr_payroll/hr_paroll_report.xml [new file with mode: 0755]
addons/hr_payroll/hr_payroll_data.xml [new file with mode: 0644]
addons/hr_payroll/hr_payroll_sequence.xml [new file with mode: 0644]
addons/hr_payroll/hr_payroll_wizard.xml [new file with mode: 0644]
addons/hr_payroll/hr_payroll_workflow.xml [new file with mode: 0644]
addons/hr_payroll/i18n/fr_BE.po [new file with mode: 0644]
addons/hr_payroll/i18n/hr_payroll.pot [new file with mode: 0644]
addons/hr_payroll/report/__init__.py [new file with mode: 0755]
addons/hr_payroll/report/payroll_register.rml [new file with mode: 0644]
addons/hr_payroll/report/payslip.rml [new file with mode: 0755]
addons/hr_payroll/report/report_emp_salary_structure.py [new file with mode: 0644]
addons/hr_payroll/report/report_emp_salary_structure.rml [new file with mode: 0644]
addons/hr_payroll/report/report_employees_detail.py [new file with mode: 0644]
addons/hr_payroll/report/report_employees_detail.rml [new file with mode: 0644]
addons/hr_payroll/report/report_payroll_advice.py [new file with mode: 0644]
addons/hr_payroll/report/report_payroll_advice.rml [new file with mode: 0644]
addons/hr_payroll/report/report_payroll_register.py [new file with mode: 0644]
addons/hr_payroll/report/report_payslip.py [new file with mode: 0755]
addons/hr_payroll/report/report_year_report.rml [new file with mode: 0755]
addons/hr_payroll/report/report_year_salary.py [new file with mode: 0755]
addons/hr_payroll/report/rml_parse.py [new file with mode: 0755]
addons/hr_payroll/wizard/__init__.py [new file with mode: 0755]
addons/hr_payroll/wizard/wizard_create_analytic.py [new file with mode: 0644]
addons/hr_payroll/wizard/wizard_employees_detail.py [new file with mode: 0755]
addons/hr_payroll/wizard/wizard_year_salary.py [new file with mode: 0755]

diff --git a/addons/hr_payroll/hr_paroll_report.xml b/addons/hr_payroll/hr_paroll_report.xml
new file mode 100755 (executable)
index 0000000..1355a42
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<openerp>
+       <data>
+            <report 
+               auto="False" 
+               id="salary_payslip" 
+               model="hr.payslip" 
+               name="payslip.pdf" 
+               rml="hr_payroll/report/payslip.rml" 
+               string="Employee PaySlip" />
+               
+            <report 
+               auto="False" 
+               id="payroll_advice" 
+               model="hr.payroll.advice" 
+               name="payroll.advice" 
+               rml="hr_payroll/report/report_payroll_advice.rml" 
+               string="Bank Payment Advice" />
+
+            <report 
+               auto="False" 
+               id="year_salary_report" 
+               model="hr.payslip" 
+               name="year.salary" 
+               rml="hr_payroll/report/report_year_report.rml"
+               menu = "False" 
+               string="Year Salary Report" />
+               
+       <report 
+               auto="False" 
+               id="year_payroll_register" 
+               model="hr.payroll.register" 
+               name="hr.payroll.register.sheet" 
+               rml="hr_payroll/report/payroll_register.rml"
+               menu = "True" 
+               string="Print Statement" />
+
+            <report 
+               auto="False" 
+               id="year_employees_detail" 
+               model="hr.payslip" 
+               name="employees.salary" 
+               rml="hr_payroll/report/report_employees_detail.rml"
+               menu = "False" 
+               string="Employees Salary Detail" />
+               
+       <report 
+               auto="False" 
+               id="salary_structure_register" 
+               model="hr.employee" 
+               name="salary.structure" 
+               rml="hr_payroll/report/report_emp_salary_structure.rml"
+               menu = "True" 
+               string="Print Salary Structure" />
+  
+       </data>
+</openerp>
diff --git a/addons/hr_payroll/hr_payroll_data.xml b/addons/hr_payroll/hr_payroll_data.xml
new file mode 100644 (file)
index 0000000..61bd7e6
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="HRA" model="hr.allounce.deduction.categoty">
+            <field name="code">HRA</field>
+            <field name="type">allow</field>
+            <field name="name">House Rant Allowance</field>
+        </record>
+        
+        <record id="CA" model="hr.allounce.deduction.categoty">
+            <field name="code">CA</field>
+            <field name="type">allow</field>
+            <field name="name">Convance Allowance</field>
+        </record>
+        
+        <record id="MA" model="hr.allounce.deduction.categoty">
+            <field name="code">MA</field>
+            <field name="type">allow</field>
+            <field name="name">Meducal Allowance</field>
+        </record>
+
+        <record id="TELA" model="hr.allounce.deduction.categoty">
+            <field name="code">TELA</field>
+            <field name="type">allow</field>
+            <field name="name">Telephone Allowance</field>
+        </record>
+        
+        <record id="LTA" model="hr.allounce.deduction.categoty">
+            <field name="code">LTA</field>
+            <field name="type">allow</field>
+            <field name="name">Leave Travel Allowance</field>
+        </record>
+        
+        <record id="NA" model="hr.allounce.deduction.categoty">
+            <field name="code">NA</field>
+            <field name="type">allow</field>
+            <field name="name">Newspaper Allowance</field>
+        </record>
+        
+        <record id="TA" model="hr.allounce.deduction.categoty">
+            <field name="code">TA</field>
+            <field name="type">allow</field>
+            <field name="name">Traveling Allowance</field>
+        </record>
+        
+        <record id="DA" model="hr.allounce.deduction.categoty">
+            <field name="code">DA</field>
+            <field name="type">allow</field>
+            <field name="name">Dearness Allowance</field>
+        </record>
+        
+        <record id="PF" model="hr.allounce.deduction.categoty">
+            <field name="code">PF</field>
+            <field name="type">deduct</field>
+            <field name="name">Provident Fund</field>
+        </record>
+        
+        <record id="PT" model="hr.allounce.deduction.categoty">
+            <field name="code">PT</field>
+            <field name="type">deduct</field>
+            <field name="name">Professional Tax</field>
+        </record>
+        
+        <record id="WF" model="hr.allounce.deduction.categoty">
+            <field name="code">WF</field>
+            <field name="type">deduct</field>
+            <field name="name">Welfare</field>
+        </record>
+        
+        <record id="TDS" model="hr.allounce.deduction.categoty">
+            <field name="code">TDS</field>
+            <field name="type">deduct</field>
+            <field name="name">Tax Deduct at Source</field>
+        </record>
+        
+        <record id="ESI" model="hr.allounce.deduction.categoty">
+            <field name="code">ESI</field>
+            <field name="type">deduct</field>
+            <field name="name">Employee's State Insurance</field>
+        </record>
+        
+        <record id="OTHER" model="hr.allounce.deduction.categoty">
+            <field name="code">OTHER</field>
+            <field name="type">deduct</field>
+            <field name="name">Others - Allowances / Deduction</field>
+        </record>
+    </data>
+</openerp>
diff --git a/addons/hr_payroll/hr_payroll_sequence.xml b/addons/hr_payroll/hr_payroll_sequence.xml
new file mode 100644 (file)
index 0000000..e1c27bb
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+        <record id="seq_type_salary_slip" model="ir.sequence.type">
+            <field name="name">Salary Slip</field>
+            <field name="code">salary.slip</field>
+        </record>
+        <record id="seq_salary_slip" model="ir.sequence">
+            <field name="name">Salary Slip</field>
+            <field name="code">salary.slip</field>
+            <field name="prefix">SLIP/</field>
+            <field name="padding">3</field>
+        </record>
+        
+        <record id="seq_type_salary_register" model="ir.sequence.type">
+            <field name="name">Salary Register</field>
+            <field name="code">salary.register</field>
+        </record>
+        <record id="seq_salary_register" model="ir.sequence">
+            <field name="name">Salary Register</field>
+            <field name="code">salary.register</field>
+            <field name="prefix">REG/</field>
+            <field name="padding">3</field>
+        </record>
+        
+        <record id="seq_type_payment_advice" model="ir.sequence.type">
+            <field name="name">Payment Advice</field>
+            <field name="code">payment.advice</field>
+        </record>
+        <record id="seq_payment_advice" model="ir.sequence">
+            <field name="name">Payment Advice</field>
+            <field name="code">payment.advice</field>
+            <field name="prefix">PAY/</field>
+            <field name="padding">3</field>
+        </record>
+    </data>
+</openerp>
diff --git a/addons/hr_payroll/hr_payroll_wizard.xml b/addons/hr_payroll/hr_payroll_wizard.xml
new file mode 100644 (file)
index 0000000..acc1646
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" ?>
+<openerp>
+       <data>
+        <menuitem id="menu_hr_payroll_reporting" parent="hr.menu_hr_reporting" name="Payroll"/>
+        <wizard id="wizard_print_year_salary"
+            menu="False" 
+            model="hr.payslip" 
+            name="wizard.year.salary" 
+            string="Year Salary Detail"/>
+        <menuitem  id="menu_wizard_print_year_salary"
+            icon="STOCK_PRINT"
+            action="wizard_print_year_salary"  
+            parent="menu_hr_payroll_reporting" 
+            name="Employee Year Salary"
+            type="wizard"/>
+
+        <wizard id="wizard_print_employees_detail"
+            menu="False" 
+            model="hr.payslip" 
+            name="wizard.employees.detail" 
+            string="Employees Salary Detail"/>
+        <menuitem  id="menu_wizard_print_employees_detail" 
+            icon="STOCK_PRINT"
+            action="wizard_print_employees_detail" 
+            parent="menu_hr_payroll_reporting" 
+            name="Employees Salary Detail"
+            type="wizard"/>
+
+        <wizard id="wizard_payroll_analysis"
+            menu="False" 
+            model="account.analytic.account" 
+            name="payroll.analysis" 
+            string="Create Analytic Structure"/>
+        <menuitem  id="menu_wizard_payroll_analysis" 
+            action="wizard_payroll_analysis" 
+            parent="payroll_configure" 
+            name="Create Analytic Structure"
+            type="wizard"/>
+       </data>
+</openerp>
diff --git a/addons/hr_payroll/hr_payroll_workflow.xml b/addons/hr_payroll/hr_payroll_workflow.xml
new file mode 100644 (file)
index 0000000..0e5ccfe
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="wkf" model="workflow">
+            <field name="name">hr.payslip.basic</field>
+            <field name="osv">hr.payslip</field>
+            <field name="on_create">True</field>
+        </record>
+        
+        <record id="act_new" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="flow_start">True</field>
+            <field name="name">new</field>
+        </record>
+        
+        <record id="act_draft" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">draft</field>
+            <field name="action">compute_sheet()</field>
+            <field name="split_mode">OR</field>
+            <field name="kind">function</field>
+        </record>
+        
+        <record id="act_hr_check" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">hr_check</field>
+            <field name="action">hr_check_sheet()</field>
+            <field name="kind">function</field>
+        </record>
+        
+        <record id="act_account_check" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">account_check</field>
+            <field name="action">account_check_sheet()</field>
+            <field name="kind">function</field>
+        </record>
+        
+        <record id="act_confirm" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">confirm</field>
+            <field name="action">verify_sheet()</field>
+            <field name="kind">function</field>
+        </record>
+        
+        <record id="act_cancel" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">cancel</field>
+            <field name="action">cancel_sheet()</field>
+            <field name="kind">function</field>
+        </record>
+        
+        <record id="act_done" model="workflow.activity">
+            <field name="wkf_id" ref="wkf"/>
+            <field name="name">done</field>
+            <field name="action">process_sheet()</field>
+            <field name="kind">function</field>
+            <field name="flow_stop">True</field>
+        </record>
+        
+        <record id="t1" model="workflow.transition">
+            <field name="act_from" ref="act_new"/>
+            <field name="act_to" ref="act_draft"/>
+            <field name="signal">compute_sheet</field>
+        </record>
+        
+        <record id="t2" model="workflow.transition">
+            <field name="act_from" ref="act_draft"/>
+            <field name="act_to" ref="act_hr_check"/>
+            <field name="condition">basic&gt;=10000</field>
+            <field name="signal">verify_sheet</field>
+        </record>
+        
+        <record id="t3" model="workflow.transition">
+            <field name="act_from" ref="act_hr_check"/>
+            <field name="act_to" ref="act_account_check"/>
+            <field name="signal">verify_twice_sheet</field>
+        </record>
+        
+        <record id="t4" model="workflow.transition">
+            <field name="act_from" ref="act_draft"/>
+            <field name="act_to" ref="act_account_check"/>
+            <field name="condition">basic&lt;10000</field>
+            <field name="signal">verify_sheet</field>
+        </record>
+        
+        <record id="t5" model="workflow.transition">
+            <field name="act_from" ref="act_account_check"/>
+            <field name="act_to" ref="act_confirm"/>
+            <field name="signal">final_verify_sheet</field>
+        </record>
+        
+         <record id="t6" model="workflow.transition">
+            <field name="act_from" ref="act_confirm"/>
+            <field name="act_to" ref="act_done"/>
+            <field name="signal">process_sheet</field>
+        </record>
+        
+        <record id="t7" model="workflow.transition">
+            <field name="act_from" ref="act_draft"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">cancel_sheet</field>
+        </record>
+        
+        <record id="t8" model="workflow.transition">
+            <field name="act_from" ref="act_hr_check"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">cancel_sheet</field>
+        </record>
+        
+        <record id="t9" model="workflow.transition">
+            <field name="act_from" ref="act_account_check"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">cancel_sheet</field>
+        </record>
+        
+        <record id="t10" model="workflow.transition">
+            <field name="act_from" ref="act_confirm"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">cancel_sheet</field>
+        </record>
+        
+        <record id="t11" model="workflow.transition">
+            <field name="act_from" ref="act_done"/>
+            <field name="act_to" ref="act_cancel"/>
+            <field name="signal">cancel_sheet</field>
+        </record>
+        
+        <record id="t12" model="workflow.transition">
+            <field name="act_from" ref="act_cancel"/>
+            <field name="act_to" ref="act_draft"/>
+            <field name="signal">set_to_draft</field>
+        </record>
+    </data>
+</openerp>
diff --git a/addons/hr_payroll/i18n/fr_BE.po b/addons/hr_payroll/i18n/fr_BE.po
new file mode 100644 (file)
index 0000000..a446611
--- /dev/null
@@ -0,0 +1,1435 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+#      * hr_payroll
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.6\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-11-25 13:16:10+0000\n"
+"PO-Revision-Date: 2009-11-25 13:16:10+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "E-mail Address"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "(Based on type Payroll will calculate basic salary)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,net:0
+#: field:hr.payslip,net:0
+msgid "Net Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,working_days:0
+msgid "Working Days"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "New Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Axis Bank"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,esp_account:0
+msgid "EPS Account"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,analytic_account:0
+msgid "Analytic Account for Salary Analysis"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Allowances with Basic:"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Deductions:"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,gratuity:0
+msgid "Use for Gratuity ?"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Employee No"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Salary Payment Register"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,paid:0
+msgid "Paid ? "
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report
+msgid "Year Salary Report"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Paid Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,flag:0
+msgid "D/C"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,company_id:0
+#: field:hr.payslip,company_id:0
+#: wizard_field:payroll.analysis,init,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,employee_account:0
+msgid "Employee Payable Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Details"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid ","
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "The Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Half-Pay Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,other_pay:0
+msgid "Others"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,slip_id:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip
+#: rml:payslip.pdf:0
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Calculations Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,description:hr_payroll.module_meta_information
+msgid "\n"
+"    The Payroll system - India, Manages and depends on,\n"
+"    * HR Details\n"
+"    * HR Contracts\n"
+"    * HR Payslip\n"
+"    * HR Paysheet\n"
+"    * HR Attendance\n"
+"    * HR Holidays\n"
+"    "
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: rml:salary.structure:0
+msgid "Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,account_id:0
+msgid "Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Payment From"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous / Statutory"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,register_id:0
+msgid "Register"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Next Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payroll.register,period_id:0
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,value:0
+msgid "Value"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Name of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,permit_no:0
+msgid "Work Permit No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,amount:0
+#: rml:payroll.advice:0
+msgid "Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,line_ids:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,country_id:0
+msgid "Country of Issue"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employees Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_expire:0
+msgid "Passport Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Special Allowance and Deductions for Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Un-Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,period_id:0
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Amount (in words) :"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,type:0
+msgid "Payment"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,analytic_account:0
+#: field:hr.employee.grade,account_id:0
+#: field:hr.holidays.status,analytic_account_id:0
+#: field:hr.payslip.line,analytic_account_id:0
+#: rml:salary.structure:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Expanse To"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,base:0
+msgid "Based on"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Bank"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,move_id:0
+msgid "Expanse Entries"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information
+msgid "Human Resource Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,esi_account:0
+msgid "ESI Account"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_passport
+msgid "Passport Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Employee Home Address Along with Partners !!"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,total:0
+msgid "Sub Total"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,visa_no:0
+msgid "Visa No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,from:0
+msgid "From"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,bysal:0
+msgid "By Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary
+msgid "Employee Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip
+msgid "Employee PaySlip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+msgid "Authorised Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,umo_id:0
+msgid "Unite"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Notes:"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "End Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Accounting Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Amount Information"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,passport_id:0
+#: field:hr.employee,passport_id:0
+#: view:hr.passport:0
+msgid "Passport"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,employee_id:0
+#: field:hr.payroll.advice.line,employee_id:0
+#: field:hr.payslip,employee_id:0
+#: field:hr.payslip.line,employee_id:0
+msgid "Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Start Date"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line
+msgid "Bank Advice Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,type:0
+#: field:hr.payslip.line,type:0
+#: wizard_field:payroll.analysis,init,type:0
+#: rml:salary.structure:0
+msgid "Type"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "#"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Verify Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pan_no:0
+msgid "PAN No"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_button:wizard.employees.detail,init,report:0
+#: wizard_button:wizard.year.salary,init,report:0
+msgid "Print"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Contributions Configuration"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,grows:0
+#: field:hr.payslip,grows:0
+msgid "Gross Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Payment"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,basic:0
+msgid "Basic Salary - Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "C/D"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,line_ids:0
+msgid "Employee Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,chaque_nos:0
+msgid "Chaque Nos"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary
+msgid "Year Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Fixed Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Pay Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Gross SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Partner in Home Address !!"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "For the month of"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,deduction:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,deduction:0
+#: selection:hr.payslip.line,type:0
+msgid "Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice
+msgid "Bank Advice Note"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Passport List"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,payment_id:0
+msgid "Payment Entries"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "YTD"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,expanse_id:0
+msgid "Expense"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "Fided Value"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan Installment"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete HR Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Yours Sincerely"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Allowances"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "SI. No."
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Net Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payroll.advice,state:0
+#: field:hr.payroll.register,state:0
+#: field:hr.payslip,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Salary Structure:"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail
+msgid "Employees Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_employee_grade
+msgid "Function of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Confirm Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Account Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Others:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.passport,contracts_ids:0
+msgid "Contracts"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Passport and Visa"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employee Code"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,amount_type:0
+#: field:hr.payslip.line,amount_type:0
+#: rml:salary.structure:0
+msgid "Amount Type"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,category_id:0
+#: field:hr.payslip.line,category_id:0
+#: rml:salary.structure:0
+msgid "Category"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,bank_journal_id:0
+#: field:hr.payslip,bank_journal_id:0
+msgid "Bank Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Total SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,hospital_id:0
+msgid "ESI Hospital"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,slip_ids:0
+#: view:hr.payroll.register:0
+#: field:hr.payroll.register,line_ids:0
+msgid "Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Reject"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree
+msgid "All Passports"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "Employee Name"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,salary_account:0
+msgid "Salary Account"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Percentage (%)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,register_id:0
+#: view:hr.payroll.register:0
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form
+#: model:ir.model,name:hr_payroll.model_hr_payroll_register
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register
+msgid "Payroll Register"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "For"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,journal_id:0
+#: field:hr.payslip,journal_id:0
+msgid "Expanse Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract
+msgid "Employee Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,contribute:0
+msgid "Contribe by Company ?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,working_days_per_week:0
+msgid "Working Days / Week"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,worked_days:0
+msgid "Worked Day"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete Accountant Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Title"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "On Attendance"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree
+msgid "Allowance/Deduction Heads"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Compute Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,employee_account:0
+msgid "Employee Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:year.salary:0
+msgid "Yearly Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for HR Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pf_account:0
+msgid "PF Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Compute"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: field:hr.payslip,deg_id:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Designation"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "HR Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payslip,basic_before_leaves:0
+#: rml:payslip.pdf:0
+msgid "Basic Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,code:0
+msgid "Categoty Code"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Salary Information"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line
+msgid "Allowance Deduction Categoty"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Authorized Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Allowance / Deduction Category"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+msgid "Draft Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,date:0
+#: field:hr.payroll.register,date:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Basic SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,visa_expire:0
+msgid "Visa Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Phone No."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,include_in_salary:0
+msgid "Included in Salary ?"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.expense.expense,category_id:0
+#: field:hr.holidays.status,head_id:0
+msgid "Payroll Head"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: field:hr.payroll.advice.line,advice_id:0
+msgid "Bank Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,account_id:0
+#: rml:salary.structure:0
+msgid "General Account"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,code:0
+#: field:hr.payslip.line,code:0
+#: rml:salary.structure:0
+msgid "Code"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice
+#: rml:payroll.advice:0
+msgid "Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,to:0
+msgid "To"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_button:payroll.analysis,init,process:0
+msgid "Process"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.year.salary,init,salary_on:0
+msgid "Salary On"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,number:0
+#: field:hr.payroll.register,number:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,number:0
+msgid "Number"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Contract Detail:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "General Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Paymeny Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.employee,line_ids:0
+#: view:hr.employee.grade:0
+#: field:hr.employee.grade,line_ids:0
+#: rml:salary.structure:0
+msgid "Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+#: wizard_button:payroll.analysis,init,end:0
+#: wizard_button:wizard.employees.detail,init,end:0
+#: wizard_button:wizard.year.salary,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount:0
+#: rml:salary.structure:0
+msgid "Amount / Percentage"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Current Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract Duration"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:payroll.analysis,init:0
+msgid "Process Form"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,name:0
+msgid "Passport No"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Account Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Generalities"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "for period"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Allowance / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "E-mail"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register
+msgid "Print Statement"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,line_ids:0
+msgid "Calculations"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:wizard.year.salary,init:0
+msgid "Salary Deposit Date Option?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Dynamic Computation"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee.grade,function_id:0
+#: field:hr.payslip.line,function_id:0
+msgid "Function"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Dear Sir/Madam,"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "PAN No."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,note:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pg_joining:0
+msgid "PF Join Date"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll
+msgid "Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:wizard.employees.detail,init:0
+#: wizard_view:wizard.year.salary,init:0
+msgid "Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,name:0
+msgid "Categoty Name"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis
+msgid "Create Analytic Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Address"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,property_bank_account:0
+msgid "Select Bank Account from where Salary Expanse will be Paid"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,salary_account:0
+msgid "Expanse account when Salary Expanse will be recorded"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Notes"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.payroll_configure
+msgid "Configure Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Cancel Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Advance"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Special Allowances and Deductions For Employee:"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,name:0
+#: field:hr.payroll.advice,name:0
+#: field:hr.payroll.register,name:0
+#: field:hr.payslip,name:0
+#: field:hr.payslip.line,name:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,leaves:0
+msgid "Leaved Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Statutory Information"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function
+msgid "Employee Functions"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,employee_ids:0
+#: wizard_field:wizard.year.salary,init,employee_ids:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,property_bank_account:0
+#: rml:payroll.advice:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,name:0
+msgid "Bank Account A/C"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0
+#: wizard_field:wizard.year.salary,init,fiscalyear_id:0
+msgid "Fiscal Year"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Allownce / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "Payroll Configurtion"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_issue:0
+msgid "Passport Issue Date"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,allounce:0
+#: field:hr.payslip,allounce:0
+#: selection:hr.payslip.line,type:0
+msgid "Allowance"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,holiday_days:0
+msgid "No of Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Bank Details"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Deductions"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form
+#: model:ir.ui.menu,name:hr_payroll.menu_department_tree
+msgid "Employee Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Content"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "By Sal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Net SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice
+msgid "Bank Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register
+msgid "Print Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Deductions"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payroll.advice:0
+#: rml:year.salary:0
+msgid "Total"
+msgstr ""
+
diff --git a/addons/hr_payroll/i18n/hr_payroll.pot b/addons/hr_payroll/i18n/hr_payroll.pot
new file mode 100644 (file)
index 0000000..a446611
--- /dev/null
@@ -0,0 +1,1435 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+#      * hr_payroll
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.6\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-11-25 13:16:10+0000\n"
+"PO-Revision-Date: 2009-11-25 13:16:10+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "E-mail Address"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "(Based on type Payroll will calculate basic salary)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,net:0
+#: field:hr.payslip,net:0
+msgid "Net Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,working_days:0
+msgid "Working Days"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "New Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Axis Bank"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,esp_account:0
+msgid "EPS Account"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,analytic_account:0
+msgid "Analytic Account for Salary Analysis"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Allowances with Basic:"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Deductions:"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,gratuity:0
+msgid "Use for Gratuity ?"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Employee No"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Salary Payment Register"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,paid:0
+msgid "Paid ? "
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report
+msgid "Year Salary Report"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Paid Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,flag:0
+msgid "D/C"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,company_id:0
+#: field:hr.payslip,company_id:0
+#: wizard_field:payroll.analysis,init,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,employee_account:0
+msgid "Employee Payable Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Details"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid ","
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Set to Draft"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "The Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Half-Pay Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,other_pay:0
+msgid "Others"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,slip_id:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip
+#: rml:payslip.pdf:0
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Calculations Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,description:hr_payroll.module_meta_information
+msgid "\n"
+"    The Payroll system - India, Manages and depends on,\n"
+"    * HR Details\n"
+"    * HR Contracts\n"
+"    * HR Payslip\n"
+"    * HR Paysheet\n"
+"    * HR Attendance\n"
+"    * HR Holidays\n"
+"    "
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: rml:salary.structure:0
+msgid "Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,account_id:0
+msgid "Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Payment From"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous / Statutory"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,register_id:0
+msgid "Register"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Next Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payroll.register,period_id:0
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,value:0
+msgid "Value"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Name of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,permit_no:0
+msgid "Work Permit No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,amount:0
+#: rml:payroll.advice:0
+msgid "Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,line_ids:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,country_id:0
+msgid "Country of Issue"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Warning !"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employees Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_expire:0
+msgid "Passport Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Special Allowance and Deductions for Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Un-Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,period_id:0
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Amount (in words) :"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,type:0
+msgid "Payment"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,analytic_account:0
+#: field:hr.employee.grade,account_id:0
+#: field:hr.holidays.status,analytic_account_id:0
+#: field:hr.payslip.line,analytic_account_id:0
+#: rml:salary.structure:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Expanse To"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,base:0
+msgid "Based on"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Bank"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,move_id:0
+msgid "Expanse Entries"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information
+msgid "Human Resource Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,esi_account:0
+msgid "ESI Account"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_passport
+msgid "Passport Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Employee Home Address Along with Partners !!"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,total:0
+msgid "Sub Total"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,visa_no:0
+msgid "Visa No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,from:0
+msgid "From"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,bysal:0
+msgid "By Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary
+msgid "Employee Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip
+msgid "Employee PaySlip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+msgid "Authorised Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,umo_id:0
+msgid "Unite"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Notes:"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "End Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Accounting Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Amount Information"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,passport_id:0
+#: field:hr.employee,passport_id:0
+#: view:hr.passport:0
+msgid "Passport"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,employee_id:0
+#: field:hr.payroll.advice.line,employee_id:0
+#: field:hr.payslip,employee_id:0
+#: field:hr.payslip.line,employee_id:0
+msgid "Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Start Date"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line
+msgid "Bank Advice Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,type:0
+#: field:hr.payslip.line,type:0
+#: wizard_field:payroll.analysis,init,type:0
+#: rml:salary.structure:0
+msgid "Type"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "#"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Verify Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pan_no:0
+msgid "PAN No"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_button:wizard.employees.detail,init,report:0
+#: wizard_button:wizard.year.salary,init,report:0
+msgid "Print"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Contributions Configuration"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,grows:0
+#: field:hr.payslip,grows:0
+msgid "Gross Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Payment"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,basic:0
+msgid "Basic Salary - Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "C/D"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,line_ids:0
+msgid "Employee Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,chaque_nos:0
+msgid "Chaque Nos"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary
+msgid "Year Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Fixed Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Pay Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Gross SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Partner in Home Address !!"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "For the month of"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,deduction:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,deduction:0
+#: selection:hr.payslip.line,type:0
+msgid "Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice
+msgid "Bank Advice Note"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Passport List"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,payment_id:0
+msgid "Payment Entries"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "YTD"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,expanse_id:0
+msgid "Expense"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "Fided Value"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan Installment"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete HR Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Yours Sincerely"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Allowances"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "SI. No."
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Net Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payroll.advice,state:0
+#: field:hr.payroll.register,state:0
+#: field:hr.payslip,state:0
+msgid "State"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Salary Structure:"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail
+msgid "Employees Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_employee_grade
+msgid "Function of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Confirm Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Account Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Others:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.passport,contracts_ids:0
+msgid "Contracts"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Passport and Visa"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employee Code"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,amount_type:0
+#: field:hr.payslip.line,amount_type:0
+#: rml:salary.structure:0
+msgid "Amount Type"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,category_id:0
+#: field:hr.payslip.line,category_id:0
+#: rml:salary.structure:0
+msgid "Category"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,bank_journal_id:0
+#: field:hr.payslip,bank_journal_id:0
+msgid "Bank Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Total SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,hospital_id:0
+msgid "ESI Hospital"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,slip_ids:0
+#: view:hr.payroll.register:0
+#: field:hr.payroll.register,line_ids:0
+msgid "Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Reject"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree
+msgid "All Passports"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "Employee Name"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,salary_account:0
+msgid "Salary Account"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Percentage (%)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,register_id:0
+#: view:hr.payroll.register:0
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form
+#: model:ir.model,name:hr_payroll.model_hr_payroll_register
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register
+msgid "Payroll Register"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "For"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,journal_id:0
+#: field:hr.payslip,journal_id:0
+msgid "Expanse Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract
+msgid "Employee Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,contribute:0
+msgid "Contribe by Company ?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,working_days_per_week:0
+msgid "Working Days / Week"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,worked_days:0
+msgid "Worked Day"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete Accountant Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Title"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "On Attendance"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree
+msgid "Allowance/Deduction Heads"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Compute Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,employee_account:0
+msgid "Employee Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:year.salary:0
+msgid "Yearly Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,condition:0
+msgid "Condition"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for HR Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pf_account:0
+msgid "PF Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Compute"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: field:hr.payslip,deg_id:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Designation"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "HR Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payslip,basic_before_leaves:0
+#: rml:payslip.pdf:0
+msgid "Basic Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,code:0
+msgid "Categoty Code"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Salary Information"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line
+msgid "Allowance Deduction Categoty"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Authorized Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Allowance / Deduction Category"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+msgid "Draft Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,date:0
+#: field:hr.payroll.register,date:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Basic SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,visa_expire:0
+msgid "Visa Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Phone No."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,include_in_salary:0
+msgid "Included in Salary ?"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.expense.expense,category_id:0
+#: field:hr.holidays.status,head_id:0
+msgid "Payroll Head"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: field:hr.payroll.advice.line,advice_id:0
+msgid "Bank Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,account_id:0
+#: rml:salary.structure:0
+msgid "General Account"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.holidays.status,code:0
+#: field:hr.payslip.line,code:0
+#: rml:salary.structure:0
+msgid "Code"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice
+#: rml:payroll.advice:0
+msgid "Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,to:0
+msgid "To"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_button:payroll.analysis,init,process:0
+msgid "Process"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.year.salary,init,salary_on:0
+msgid "Salary On"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,number:0
+#: field:hr.payroll.register,number:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,number:0
+msgid "Number"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Contract Detail:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "General Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Paymeny Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.employee,line_ids:0
+#: view:hr.employee.grade:0
+#: field:hr.employee.grade,line_ids:0
+#: rml:salary.structure:0
+msgid "Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+#: wizard_button:payroll.analysis,init,end:0
+#: wizard_button:wizard.employees.detail,init,end:0
+#: wizard_button:wizard.year.salary,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount:0
+#: rml:salary.structure:0
+msgid "Amount / Percentage"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Current Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract Duration"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:payroll.analysis,init:0
+msgid "Process Form"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,name:0
+msgid "Passport No"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Account Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Generalities"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "for period"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Allowance / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "E-mail"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register
+msgid "Print Statement"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,line_ids:0
+msgid "Calculations"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:wizard.year.salary,init:0
+msgid "Salary Deposit Date Option?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Dynamic Computation"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee.grade,function_id:0
+#: field:hr.payslip.line,function_id:0
+msgid "Function"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Dear Sir/Madam,"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "PAN No."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,note:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pg_joining:0
+msgid "PF Join Date"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll
+msgid "Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:wizard.employees.detail,init:0
+#: wizard_view:wizard.year.salary,init:0
+msgid "Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,name:0
+msgid "Categoty Name"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis
+msgid "Create Analytic Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Address"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,property_bank_account:0
+msgid "Select Bank Account from where Salary Expanse will be Paid"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,salary_account:0
+msgid "Expanse account when Salary Expanse will be recorded"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Notes"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.payroll_configure
+msgid "Configure Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Cancel Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Advance"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Special Allowances and Deductions For Employee:"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,name:0
+#: field:hr.payroll.advice,name:0
+#: field:hr.payroll.register,name:0
+#: field:hr.payslip,name:0
+#: field:hr.payslip.line,name:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,leaves:0
+msgid "Leaved Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Statutory Information"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function
+msgid "Employee Functions"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,employee_ids:0
+#: wizard_field:wizard.year.salary,init,employee_ids:0
+msgid "Employees"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,property_bank_account:0
+#: rml:payroll.advice:0
+msgid "Bank Account"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,name:0
+msgid "Bank Account A/C"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0
+#: wizard_field:wizard.year.salary,init,fiscalyear_id:0
+msgid "Fiscal Year"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Allownce / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "Payroll Configurtion"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_issue:0
+msgid "Passport Issue Date"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,allounce:0
+#: field:hr.payslip,allounce:0
+#: selection:hr.payslip.line,type:0
+msgid "Allowance"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,holiday_days:0
+msgid "No of Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Bank Details"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Deductions"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form
+#: model:ir.ui.menu,name:hr_payroll.menu_department_tree
+msgid "Employee Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Content"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "By Sal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Net SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice
+msgid "Bank Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register
+msgid "Print Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Deductions"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payroll.advice:0
+#: rml:year.salary:0
+msgid "Total"
+msgstr ""
+
diff --git a/addons/hr_payroll/report/__init__.py b/addons/hr_payroll/report/__init__.py
new file mode 100755 (executable)
index 0000000..c0f35b4
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    d$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import report_payslip
+import report_payroll_advice
+import report_year_salary
+import report_payroll_register
+import report_employees_detail
+import report_emp_salary_structure
\ No newline at end of file
diff --git a/addons/hr_payroll/report/payroll_register.rml b/addons/hr_payroll/report/payroll_register.rml
new file mode 100644 (file)
index 0000000..13e40b6
--- /dev/null
@@ -0,0 +1,261 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table3">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table5">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10"/>
+    <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/>
+    <paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P4" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER"/>
+    <paraStyle name="P5" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER"/>
+    <paraStyle name="P6" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P7" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/>
+    <paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/>
+    <paraStyle name="P10" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
+    <paraStyle name="P11" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
+    <paraStyle name="P13" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P14" fontName="Helvetica" fontSize="8.0" leading="10"/>
+    <paraStyle name="P15" fontName="Helvetica" fontSize="8.0" leading="10"/>
+    <paraStyle name="P16" fontName="Helvetica-Bold" fontSize="8.0" leading="10"/>
+    <paraStyle name="P17" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/>
+    <paraStyle name="P18" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="P19" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Times-Roman"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="P1">[[ repeatIn(objects, 'o') ]]</para>
+    <para style="P4">Salary Payment Register</para>
+    <para style="P5">[[o.name]]</para>
+    <para style="P2">For the month of [[get_month(o.date)]]</para>
+    <para style="P3">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="72.0,295.0,47.0,68.0" style="Table3">
+      <tr>
+        <td>
+          <para style="P6">Expanse To</para>
+        </td>
+        <td>
+          <para style="P11">[[o.journal_id.name]]</para>
+        </td>
+        <td>
+          <para style="P13">Number</para>
+        </td>
+        <td>
+          <para style="P12">[[o.number]]</para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="P13">Payment From</para>
+        </td>
+        <td>
+          <para style="P11">[[o.bank_journal_id.name]]</para>
+        </td>
+        <td>
+          <para style="P6">Date</para>
+        </td>
+        <td>
+          <para style="P12">[[o.date]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="P3">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table1">
+        <tr>
+          <td>
+            <para style="P5">#</para>
+          </td>
+          <td>
+            <para style="P6">Employee Name</para>
+          </td>
+          <td>
+            <para style="P7">Basic SAL</para>
+          </td>
+          <td>
+            <para style="P7">Others</para>
+          </td>
+          <td>
+            <para style="P7">Allowances</para>
+          </td>
+          <td>
+            <para style="P7">Gross SAL</para>
+          </td>
+          <td>
+            <para style="P7">Deduction</para>
+          </td>
+          <td>
+            <para style="P7">Net SAL</para>
+          </td>
+        </tr>
+      </blockTable>
+      <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table2">
+        <tr>
+          <td>
+            <para style="P9">[[ get_no() ]]</para>
+          </td>
+          <td>
+            <para style="P8">[[ repeatIn(o.line_ids, 'l') ]]</para>
+            <para style="P8">[[add_line(l)]]</para>
+            <para style="P8">[[ l.employee_id.name ]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.basic]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.other_pay]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.allounce]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.grows]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.deduction]]</para>
+          </td>
+          <td>
+            <para style="P10">[[l.net]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table4">
+        <tr>
+          <td>
+            <para style="P5">
+              <font color="white"> </font>
+            </para>
+          </td>
+          <td>
+            <para style="P6">Total SAL</para>
+          </td>
+          <td>
+            <para style="P7">[[get_basic()]]</para>
+          </td>
+          <td>
+            <para style="P7">[[get_other()]]</para>
+          </td>
+          <td>
+            <para style="P7">[[get_allow()]]</para>
+          </td>
+          <td>
+            <para style="P7">[[get_grows()]]</para>
+          </td>
+          <td>
+            <para style="P7">[[get_deduct()]]</para>
+          </td>
+          <td>
+            <para style="P7">[[get_net()]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="Standard">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <blockTable colWidths="241.0,241.0" style="Table5">
+      <tr>
+        <td>
+          <para style="P6">For [[company.name]],</para>
+          <para style="P6">
+            <font color="white"> </font>
+          </para>
+          <para style="P6">
+            <font color="white"> </font>
+          </para>
+          <para style="P6">
+            <font color="white"> </font>
+          </para>
+          <para style="P6">HR Manager</para>
+          <para style="P19">Authorised Signature</para>
+        </td>
+        <td>
+          <para style="P6">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="P1">
+      <font color="white"> </font>
+    </para>
+  </story>
+</document>
+
diff --git a/addons/hr_payroll/report/payslip.rml b/addons/hr_payroll/report/payslip.rml
new file mode 100755 (executable)
index 0000000..ede60a9
--- /dev/null
@@ -0,0 +1,671 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table15">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table16">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table17">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table18">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table10">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table19">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table20">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table12">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table14">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table13">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table3">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table8">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table9">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table11">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table21">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table22">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table5">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table6">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table7">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Times-Roman"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Footer" fontName="Times-Roman"/>
+    <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="12.0" leading="15" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_address" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#ffffff"/>
+    <paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Table" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_space" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
+    <blockTable colWidths="539.0" style="Table2">
+      <tr>
+        <td>
+          <para style="terp_tblheader_General_Centre">Pay Slip </para>
+          <para style="terp_default_Centre_9">For the month of [[ get_month(o) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="43.0,101.0,67.0,328.0" style="Table15">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Code</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.employee_id.sinid or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Name </para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[o.employee_id.name]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="43.0,496.0" style="Table16">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Address </para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="43.0,168.0,65.0,263.0" style="Table1">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Email</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.employee_id.work_email or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Bank Details </para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.employee_id.otherid or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="43.0,102.0,66.0,169.0,68.0,91.0" style="Table17">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Slip ID</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.number or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Bill No</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.move_id and o.move_id.name or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">PAN No</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.employee_id.pan_no or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="43.0,102.0,66.0,169.0,68.0,91.0" style="Table18">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Register</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.register_id and o.register_id.name or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Payment</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.payment_id and o.payment_id.name or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Designation </para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.employee_id.contract_ids and o.employee_id.contract_ids[0].function.name or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space"/>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="539.0" style="Table10">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Basic Salary without Leave:</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="70.0,89.0,90.0,93.0,105.0,92.0" style="Table19">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Working Days</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.working_days or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Number of Leaves</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.holiday_days or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Worked Day </para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.worked_days or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="70.0,89.0,90.0,93.0,105.0,92.0" style="Table20">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Basic Salary</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.basic_before_leaves or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Leaved Deduction</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.leaves or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">Basic Salary â€“ Leaves</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ formatLang(o.basic) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="539.0" style="Table12">
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Leave Deductions Line:</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="292.0,247.0" style="Table14">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Deductions</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_9">[[repeatIn(get_leave(o.line_ids),'ld') ]]</para>
+      <blockTable colWidths="293.0,246.0" style="Table13">
+        <tr>
+          <td>
+            <para style="terp_default_9">[[ ld.code ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_Right_9">[[ formatLang(ld.total) ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_2">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="158.0,112.0,160.0,109.0" style="Table3">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Earnings</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Deductions</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,269.0" style="Table8">
+      <tr>
+        <td>
+          <blockTable colWidths="141.0,122.0" style="Table9">
+            <tr>
+              <td>
+                <para style="terp_default_9">Basic Salary</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(o.basic) ]]</para>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <para style="terp_default_9"><font>[[repeatIn(get_earnings(o.line_ids),'a') ]]</font><font>[[ a.code or removeParentNode('tr') ]]</font></para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(a.total) ]]</para>
+              </td>
+            </tr>
+          </blockTable>
+          <para style="terp_default_2">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <section>
+            <para style="terp_default_9">[[repeatIn(get_deductions(o.line_ids),'b') ]]</para>
+            <blockTable colWidths="142.0,121.0" style="Table11">
+              <tr>
+                <td>
+                  <para style="terp_default_9">[[ b.code ]]</para>
+                </td>
+                <td>
+                  <para style="terp_default_Right_9">[[ formatLang(b.total) ]]</para>
+                </td>
+              </tr>
+            </blockTable>
+            <para style="terp_default_2">
+              <font color="white"> </font>
+            </para>
+          </section>
+          <para style="terp_default_2">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="181.0,88.0,177.0,93.0" style="Table4">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Total Earnings </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ formatLang(o.allounce + o.basic) ]] </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Total Deductions </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ formatLang(o.deduction) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,134.0,135.0" style="Table21">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Other Lines</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">Payments - [[ get_month(o) ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">Deduction -[[ get_month(o) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_9">[[repeatIn(get_others(o.line_ids),'ol') ]]</para>
+      <blockTable colWidths="269.0,134.0,135.0" style="Table22">
+        <tr>
+          <td>
+            <para style="terp_default_9">[[ ol.type in ['advance','loan','otherpay','otherdeduct','installment'] and ol.code or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_Right_9">[[ ol.type in ['advance','loan','otherpay'] and formatLang(ol.total) or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_Right_9">[[ ol.type in ['otherdeduct','installment'] and formatLang(ol.total) or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_2">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_2">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,177.0,93.0" style="Table5">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Net Amount </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ formatLang(o.net) ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="269.0,269.0" style="Table6">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Amount (in words) :</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_default_9">[[ convert(o.net,company.currency_id.name) ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_8">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,269.0" style="Table7">
+      <tr>
+        <td>
+          <para style="P1">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">Authorized Signature </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+  </story>
+</document>
diff --git a/addons/hr_payroll/report/report_emp_salary_structure.py b/addons/hr_payroll/report/report_emp_salary_structure.py
new file mode 100644 (file)
index 0000000..01dd430
--- /dev/null
@@ -0,0 +1,102 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    d$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import time
+import mx.DateTime
+from report import report_sxw
+from tools import amount_to_text_en
+
+class salary_structure_report(report_sxw.rml_parse):
+      
+    def __init__(self, cr, uid, name, context):
+          super(salary_structure_report, self).__init__(cr, uid, name, context)
+          self.localcontext.update({
+            'time': time,
+            'get_type':self.get_type,
+            'get_contract':self.get_contract,
+            'get_line_amount_type':self.get_line_amount_type,
+            'get_line_type':self.get_line_type
+          })
+          
+    def get_contract(self,emp):
+        curr_date = "'"+time.strftime("%Y-%m-%d")+"'"
+        sql_req= '''
+            SELECT c.id as id, c.wage as wage, function as function
+            FROM hr_contract c
+              LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
+              LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
+              LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
+            WHERE
+              (emp.id=%s) AND
+              (date_start <= %s) AND
+              (date_end IS NULL OR date_end >= %s)
+            LIMIT 1
+            '''%(emp.id, curr_date, curr_date)
+        self.cr.execute(sql_req)
+        contract_id = self.cr.dictfetchone()
+        if not contract_id:
+            return []
+        contract = self.pool.get('hr.contract').browse(self.cr, self.uid, [contract_id['id']])
+        return contract
+    
+    def get_type(self,type):
+        return type[0].swapcase() + type[1:] +' Salary'
+    
+    def get_line_amount_type(self,amount_type):
+        if amount_type == 'per':
+            return 'Percent(%)'
+        else:
+            return 'Fixed'
+        
+    def get_line_type(self,type):
+        if type == 'allounce':
+            return 'Allowance'
+        elif type == 'deduction':
+            return 'Deduction'
+        elif type == 'advance':
+            return 'Advance'
+        elif type == 'loan':
+            return 'Loan'
+        elif type == 'otherpay':
+            return 'Other Payment'
+        else:
+            return 'Other Deduction'
+
+report_sxw.report_sxw('report.salary.structure', 'hr.employee', 'hr_payroll/report/report_emp_salary_structure.rml', parser=salary_structure_report)   
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_payroll/report/report_emp_salary_structure.rml b/addons/hr_payroll/report/report_emp_salary_structure.rml
new file mode 100644 (file)
index 0000000..18211b2
--- /dev/null
@@ -0,0 +1,552 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table6">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table7">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table13">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table3">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table9">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table5">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table8">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table10">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table11">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table12">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Helvetica"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Footer" fontName="Times-Roman"/>
+    <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Drawing" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Header" fontName="Times-Roman"/>
+    <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
+    <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
+    <paraStyle name="Signature" fontName="Times-Roman"/>
+    <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Salutation" fontName="Times-Roman"/>
+    <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="terp_default_8">[[repeatIn(objects,'employee')]]</para>
+    <blockTable colWidths="539.0" style="Table1">
+      <tr>
+        <td>
+          <para style="terp_header_Centre">Salary Structure</para>
+          <para style="terp_header_Centre">For [[ employee.name ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_9">[[repeatIn(get_contract(employee),'cont')]]</para>
+      <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table4">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Code</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.ssnid ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Department</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.company_id and employee.company_id.name or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Bank</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.otherid or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table6">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Name</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.name ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">PAN No.</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.pan_no or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Address</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[employee.address_home_id and employee.address_home_id.name or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table7">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Designation</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ cont.function.name or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Phone No.</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.work_phone or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">E-mail</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ employee.work_email or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_space">
+        <font color="white"> </font>
+      </para>
+      <blockTable colWidths="539.0" style="Table13">
+        <tr>
+          <td>
+            <para style="P1">Contract Detail:</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table2">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Start Date</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ formatLang(cont.date_start,date=True) or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">End Date</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ formatLang(cont.date_end,date=True) or removeParentNode('para') ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Type</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ get_type(cont.wage_type_id.type) or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <blockTable colWidths="68.0,111.0,63.0,297.0" style="Table3">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Salary</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ formatLang(cont.wage) or '' ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Notes:</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ cont.notes or '' ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_space">
+        <font color="white"> </font>
+      </para>
+      <blockTable colWidths="539.0" style="Table9">
+        <tr>
+          <td>
+            <para style="P1">Salary Structure:</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <section>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+        <blockTable colWidths="34.0,116.0,40.0,67.0,44.0,109.0,70.0,59.0" style="Table5">
+          <tr>
+            <td>
+              <para style="terp_tblheader_Details">Code</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">Name</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">Amount Type</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details_Right">Amount / Percentage</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">Type</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">Category</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">General Account</para>
+            </td>
+            <td>
+              <para style="terp_tblheader_Details">Analytic Account</para>
+            </td>
+          </tr>
+        </blockTable>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+        <section>
+          <para style="terp_default_9">[[repeatIn(cont.function.line_ids,'line')]]</para>
+          <blockTable colWidths="34.0,117.0,39.0,67.0,44.0,110.0,69.0,59.0" style="Table8">
+            <tr>
+              <td>
+                <para style="terp_default_9">[[ line.code or '' ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ line.name ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ get_line_amount_type(line.amount_type) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(line.amount) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ get_line_type(line.type) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ line.category_id.name ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ line.account_id.name ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_9">[[ line.analytic_account_id and line.analytic_account_id.name or '' ]]</para>
+              </td>
+            </tr>
+          </blockTable>
+          <para style="terp_default_1">
+            <font color="white"> </font>
+          </para>
+        </section>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+      </section>
+    </section>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="539.0" style="Table10">
+      <tr>
+        <td>
+          <para style="P1">Special Allowances and Deductions For Employee:</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <blockTable colWidths="34.0,116.0,40.0,67.0,44.0,109.0,128.0" style="Table11">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Code</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Name</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Amount Type</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">Amount / Percentage</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Type</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">Category</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details">General Account</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <section>
+        <para style="terp_default_9">[[repeatIn(employee.line_ids,'line1')]]</para>
+        <blockTable colWidths="34.0,117.0,39.0,67.0,44.0,110.0,128.0" style="Table12">
+          <tr>
+            <td>
+              <para style="terp_default_9">[[ line1.code or '' ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_9">[[ line1.name ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_9">[[ get_line_amount_type(line1.amount_type) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(line1.amount) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_9">[[ get_line_type(line1.type) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_9">[[ line1.category_id.name ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_9">[[ line1.account_id.name ]]</para>
+            </td>
+          </tr>
+        </blockTable>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+      </section>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+  </story>
+</document>
diff --git a/addons/hr_payroll/report/report_employees_detail.py b/addons/hr_payroll/report/report_employees_detail.py
new file mode 100644 (file)
index 0000000..c809696
--- /dev/null
@@ -0,0 +1,235 @@
+import time
+import locale
+import datetime
+from report import report_sxw
+import time
+import pooler
+import rml_parse
+import mx.DateTime
+from mx.DateTime import RelativeDateTime, now, DateTime, localtime
+
+class employees_salary_report(rml_parse.rml_parse):
+    
+    def __init__(self, cr, uid, name, context):
+        super(employees_salary_report, self).__init__(cr, uid, name, context)
+        self.localcontext.update({
+            'time': time,
+            'get_employee' : self.get_employee,
+            'get_employee_detail' : self.get_employee_detail,
+            'cal_monthly_amt':self.cal_monthly_amt,
+            'get_periods'  : self.get_periods,
+            'get_fiscalyear' : self.get_fiscalyear,
+            'get_total' : self.get_total,
+            'get_allow':self.get_allow,
+            'get_deduct':self.get_deduct,
+            'get_other':self.get_other,
+            'get_monthly_total':self.get_monthly_total,
+        })
+        
+        self.mnths =[]
+        self.allow_list =[]
+        self.deduct_list = []
+        self.other_list = []
+        self.month_total_list =[]
+        self.curr_fiscal_year_name=''
+        self.period_ids = []
+        self.total=0.00
+    
+    def get_periods(self,form):
+        self.mnths =[]
+        fiscalyear = pooler.get_pool(self.cr.dbname).get('account.fiscalyear')
+        curr_fiscalyear_id = form['fiscalyear_id']
+        curr_fiscalyear = fiscalyear.read(self.cr,self.uid,[form['fiscalyear_id']],['date_start','date_stop'])[0]
+        
+#       Get start year-month-date and end year-month-date
+        fy = int(curr_fiscalyear['date_start'][0:4])    
+        ly = int(curr_fiscalyear['date_stop'][0:4])
+        
+        fm = int(curr_fiscalyear['date_start'][5:7])
+        lm = int(curr_fiscalyear['date_stop'][5:7])
+        no_months = (ly-fy)*12+lm-fm + 1
+        cm = fm
+        cy = fy
+
+#       Get name of the months from integer
+        mnth_name = []
+        for count in range(0,no_months):
+            m = datetime.date(cy, cm, 1).strftime('%b')
+            mnth_name.append(m)
+            self.mnths.append(str(cm)+'-'+str(cy))     
+            if cm == 12:
+                cm = 0
+                cy = ly
+            cm = cm +1
+        return [mnth_name]
+
+    def get_fiscalyear(self,fiscalyear_id):
+        fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear')
+        return fiscalyear_obj.read(self.cr,self.uid,[fiscalyear_id],['name'])[0]['name']
+
+    def get_employee(self,form):
+        result = []   
+        periods = []    
+        emp = pooler.get_pool(self.cr.dbname).get('hr.employee')     
+        emp_ids = form['employee_ids'][0][2]
+        result = emp.browse(self.cr,self.uid, emp_ids)
+        fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear_id'])
+        period_ids_l = fiscalyear_obj.period_ids
+        for period in period_ids_l:
+            periods.append(period.id)
+        self.period_ids = ','.join(map(str, periods))
+        return result
+    
+    def get_employee_detail(self,obj):
+        self.month_total_list =['Net Total (Allowances with Basic - Deductions)',0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00]
+        self.allow_list =[]
+        self.deduct_list = []
+        self.other_list = []
+        allowance_cat_ids =[]
+        deduction_cat_ids = []
+        other_cat_ids =[]
+        self.total = 0.00        
+        payment_category = self.pool.get('hr.allounce.deduction.categoty')
+        payslip = self.pool.get('hr.payslip')
+        allowance_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','allow')])
+        deduction_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','deduct')])
+        other_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','other')])
+        #for Basic Salary
+        res = []
+        res = self.cal_monthly_amt(obj.id,None)
+        self.total += res[len(res)-1]
+        basic_flag = False
+        for i in range(1,len(res)):
+            if res[i] > 0.0:
+                basic_flag = True
+        if basic_flag:
+            self.allow_list.append(res)
+        #for allowance
+        if allowance_cat_ids:
+            for allow in allowance_cat_ids:
+                 res = []
+                 res = self.cal_monthly_amt(obj.id,allow)
+                 all_flag = False
+                 for i in range(1,len(res)):
+                    if res[i] > 0.0:
+                        all_flag = True
+                 if all_flag:
+                     self.allow_list.append(res)
+                     self.total += res[len(res)-1]
+        #for Deduction
+        if deduction_cat_ids:
+            for deduct in deduction_cat_ids:
+                 res = []
+                 res = self.cal_monthly_amt(obj.id,deduct)
+                 ded_flag = False
+                 for i in range(1,len(res)):
+                    if res[i] > 0.0:
+                        ded_flag = True
+                 if ded_flag:
+                     self.deduct_list.append(res)
+                     self.total -= res[len(res)-1]
+        #for Other
+        if other_cat_ids:
+            for other in other_cat_ids:
+                 res = []
+                 res = self.cal_monthly_amt(obj.id,other)
+                 other_flag = False
+                 for i in range(1,len(res)):
+                    if res[i] > 0.0:
+                        other_flag = True
+                 if other_flag:
+                     self.other_list.append(res)
+        return None
+    
+    def cal_monthly_amt(self,emp_id,category):
+        tot = 0.0
+        cnt = 1
+        result = []
+        res ={}
+        if not category:
+            result.append('Basic Salary')
+        else:
+            category_name = self.pool.get('hr.allounce.deduction.categoty').read(self.cr, self.uid, [category],['name','type'])[0]
+            result.append(category_name['name'])
+        for mnth in self.mnths:
+            if len(mnth) != 7:
+                mnth = '0' + str(mnth)
+            query = "select id from hr_payslip where employee_id = "+str(emp_id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' and period_id in "+"("+ self.period_ids +")" +""
+            self.cr.execute(query)
+            payslip_id = self.cr.dictfetchone()
+            if payslip_id:
+                payslip_obj = self.pool.get('hr.payslip').browse(self.cr, self.uid, payslip_id['id'])
+                if not category:
+                    tot += payslip_obj.basic
+                    res[mnth] = payslip_obj.basic
+                    result.append(payslip_obj.basic)
+                    self.month_total_list[cnt] = self.month_total_list[cnt] + payslip_obj.basic
+                else:
+                    append_index = 0
+                    for line in payslip_obj.line_ids:
+                        if line.category_id.id == category:
+                            if category_name['type'] == 'allow':
+                                if res:
+                                    self.month_total_list[cnt] = self.month_total_list[cnt] + line.total
+                                    result[append_index] += line.total
+                                    tot += line.total
+                                    res[mnth] = result[append_index]
+                                else:
+                                    self.month_total_list[cnt] = self.month_total_list[cnt] + line.total
+                                    tot += line.total
+                                    res[mnth] = line.total
+                                    append_index = len(result) - 1
+                                    result.append(line.total)
+                            if category_name['type'] == 'deduct':
+                                if res:
+                                    self.month_total_list[cnt] = self.month_total_list[cnt] - line.total
+                                    result[append_index] += line.total
+                                    tot += line.total
+                                    res[mnth] = result[append_index]
+                                else:
+                                    self.month_total_list[cnt] = self.month_total_list[cnt] - line.total
+                                    tot += line.total
+                                    res[mnth] = line.total
+                                    append_index = len(result) - 1
+                                    result.append(line.total)
+                            if category_name['type'] == 'other':
+                                if res:
+                                    result[append_index] += line.total
+                                    tot += line.total
+                                    res[mnth] = result[append_index]
+                                else:
+                                    res[mnth] = line.total
+                                    result.append(res[mnth])
+                                    append_index = len(result) - 1
+                                    tot += line.total
+            else:
+                result.append(0.00)
+                res[mnth] = 0.00
+            if not res:
+                result.append(0.00)
+            res = {}
+            cnt = cnt + 1 
+        cnt = 1
+        result.append(tot)
+        tot = 0.0
+        return result
+
+    def get_allow(self):
+        return self.allow_list
+
+    def get_deduct(self):
+        return self.deduct_list
+    
+    def get_other(self):
+        return self.other_list
+    
+    def get_total(self):
+        return self.total
+    
+    def get_monthly_total(self):
+        return self.month_total_list
+    
+report_sxw.report_sxw('report.employees.salary', 'hr.payslip', 'hr_payroll/report/report_employees_detail.rml', parser=employees_salary_report)
+       
+       
+               
diff --git a/addons/hr_payroll/report/report_employees_detail.rml b/addons/hr_payroll/report/report_employees_detail.rml
new file mode 100644 (file)
index 0000000..1c3ec0e
--- /dev/null
@@ -0,0 +1,582 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="28.0" y1="28.0" width="786" height="539"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table3">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table5">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table6">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table8">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table9">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Times-Roman"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="Drawing" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Header" fontName="Times-Roman"/>
+    <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
+    <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
+    <paraStyle name="Signature" fontName="Times-Roman"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Salutation" fontName="Times-Roman"/>
+    <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Footer" fontName="Times-Roman"/>
+    <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="terp_default_8">[[ repeatIn(get_employee(data['form']), 'o') ]]</para>
+    <para style="terp_header_Centre">Employees Salary Details </para>
+    <para style="terp_default_Centre_9">For [[ get_fiscalyear(data['form']['fiscalyear_id']) ]]</para>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table2">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Employee Code</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.ssnid ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Department</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.company_id and o.company_id.name or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Bank</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.otherid or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table3">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Employee Name</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.name ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">PAN No.</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.pan_no or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Address</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[o.address_home_id and o.address_home_id.name or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table5">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Designation</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.contract_ids and o.contract_ids[0].function.name or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Phone No.</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[ o.work_phone or '' ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">E-mail Address</para>
+        </td>
+        <td>
+          <para style="terp_default_9">[[o.work_email or '' ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_8">[[ repeatIn(get_periods(data['form']),'m') ]]</para>
+      <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,54.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table4">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Title</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[0] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[1] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[2] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[3] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[4] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[5] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[6] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[7] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[8] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[9] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[10] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[11] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">Total</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <section>
+        <para style="terp_default_9">[[ get_employee_detail(o) ]]</para>
+        <para style="terp_tblheader_Details">Allowances with Basic:</para>
+        <section>
+          <para style="terp_default_9">[[ repeatIn(get_allow(),'e1') ]]</para>
+          <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table6">
+            <tr>
+              <td>
+                <para style="terp_default_9">[[ e1[0] ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[1]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[2]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[3]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[4]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[5]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[6]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[7]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[8]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[9]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[10]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[11]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e1[12]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9_Bold">[[ formatLang(e1[13]) ]]</para>
+              </td>
+            </tr>
+          </blockTable>
+          <para style="terp_default_1">
+            <font color="white"> </font>
+          </para>
+        </section>
+        <para style="terp_tblheader_Details">Deductions:</para>
+        <section>
+          <para style="terp_default_9">[[ repeatIn(get_deduct(),'e2') ]]</para>
+          <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table8">
+            <tr>
+              <td>
+                <para style="terp_default_9">[[ e2[0] ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[1]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[2]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[3]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[4]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[5]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[6]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[7]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[8]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[9]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[10]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[11]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e2[12]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9_Bold">[[ formatLang(e2[13]) ]]</para>
+              </td>
+            </tr>
+          </blockTable>
+          <para style="terp_default_1">
+            <font color="white"> </font>
+          </para>
+        </section>
+        <para style="terp_tblheader_Details">Others:</para>
+        <section>
+          <para style="terp_default_9">[[ repeatIn(get_other(),'e3') ]]</para>
+          <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table9">
+            <tr>
+              <td>
+                <para style="terp_default_9">[[ e3[0] ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[1]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[2]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[3]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[4]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[5]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[6]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[7]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[8]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[9]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[10]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[11]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9">[[ formatLang(e3[12]) ]]</para>
+              </td>
+              <td>
+                <para style="terp_default_Right_9_Bold">[[ formatLang(e3[13]) ]]</para>
+              </td>
+            </tr>
+          </blockTable>
+          <para style="terp_default_1">
+            <font color="white"> </font>
+          </para>
+        </section>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+      </section>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <blockTable colWidths="74.0,54.0,50.0,55.0,52.0,55.0,55.0,54.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table1">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">[[ get_monthly_total()[0] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[1]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[2]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[3]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[4]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[5]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[6]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[7]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[8]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[9]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[10]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[11]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[12]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right"><u>[[ formatLang(get_total()) ]]</u></para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+  </story>
+</document>
diff --git a/addons/hr_payroll/report/report_payroll_advice.py b/addons/hr_payroll/report/report_payroll_advice.py
new file mode 100644 (file)
index 0000000..d33ad5a
--- /dev/null
@@ -0,0 +1,54 @@
+import time
+import mx.DateTime
+from report import report_sxw
+from tools import amount_to_text_en
+
+class payroll_advice_report(report_sxw.rml_parse):
+    def __init__(self, cr, uid, name, context):
+        super(payroll_advice_report, self).__init__(cr, uid, name, context)
+        
+        self.total_amount = 0.00
+        self.total_bysal = 0.00
+        self.localcontext.update({
+            'time': time,
+            'get_month'   : self.get_month,
+            'convert'     : self.convert,
+            'get_detail'  : self.get_detail,
+            'get_total'   : self.get_total,
+            'get_bysal_total'   : self.get_bysal_total,
+        })
+
+    def get_month(self,input_date):
+        res = {
+               'mname':''
+               }
+        date = mx.DateTime.strptime(input_date, '%Y-%m-%d')
+        res['mname']= date.strftime('%B')+'-'+date.strftime('%Y')
+        return res
+    
+    def convert(self,amount, cur):
+        amt_en = amount_to_text_en.amount_to_text(amount,'en',cur);
+        return amt_en
+    
+    def get_bysal_total(self):
+        return self.total_bysal
+
+    def get_total(self):
+        return self.total_amount
+    
+    def get_detail(self,line_ids):
+        result =[]
+        if line_ids:
+            for l in line_ids:
+                res = {}
+                res['name'] = l.employee_id.name
+                res['acc_no'] = l.name
+                res['amount'] = l.amount
+                res['bysal'] = l.bysal
+                res['flag'] = l.flag
+                self.total_amount += l.amount
+                self.total_bysal += l.bysal
+                result.append(res)
+        return result
+    
+report_sxw.report_sxw('report.payroll.advice', 'hr.payroll.advice', 'hr_payroll/report/report_payroll_advice.rml', parser=payroll_advice_report)   
\ No newline at end of file
diff --git a/addons/hr_payroll/report/report_payroll_advice.rml b/addons/hr_payroll/report/report_payroll_advice.rml
new file mode 100644 (file)
index 0000000..00a2d59
--- /dev/null
@@ -0,0 +1,337 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table2">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table3">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table5">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table6">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table7">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Helvetica"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Footer" fontName="Times-Roman"/>
+    <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_0.30cmspace" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="4.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_8_space" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="1.0"/>
+    <paraStyle name="Drawing" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Header" fontName="Times-Roman"/>
+    <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
+    <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
+    <paraStyle name="Signature" fontName="Times-Roman"/>
+    <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Salutation" fontName="Times-Roman"/>
+    <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
+    <para style="terp_tblheader_Details_Centre">Payment Advice</para>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,269.0" style="Table1">
+      <tr>
+        <td>
+          <para style="terp_default_9">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_default_Right_9">[[ formatLang(o.date,date=True) ]]</para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">The Manager</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_default_Bold_9">Axis Bank</para>
+        </td>
+        <td>
+          <para style="terp_default_Bold_9">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_default_1">
+            <font color="white"> </font>
+          </para>
+          <para style="terp_default_9">Dear Sir/Madam,</para>
+        </td>
+        <td>
+          <para style="terp_default_9">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="539.0" style="Table2">
+      <tr>
+        <td>
+          <para style="terp_tblheader_General_Centre"><u>[[ o.name ]] for period [[ get_month(o.date)['mname'] ]]</u></para>
+        </td>
+      </tr>
+    </blockTable>
+    <blockTable colWidths="539.0" style="Table3">
+      <tr>
+        <td>
+          <para style="terp_default_9">[[ o.note ]]</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_8_space">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="61.0,166.0,84.0,82.0,111.0,35.0" style="Table4">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">SI. No.</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Name of the Employee</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">Amount</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">By Sal</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Bank Account</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">C/D</para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_8">[[ repeatIn(get_detail(o.line_ids),'line') ]]</para>
+      <blockTable colWidths="60.0,167.0,84.0,82.0,110.0,35.0" style="Table5">
+        <tr>
+          <td>
+            <para style="P1" leftIndent="15" bulletIndent="0">
+              <bullet size="8.0"><seq id="L1"/>.</bullet>
+              <font color="white"> </font>
+            </para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ line['name'] ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_Right_9">[[ formatLang(line['amount' ]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_Right_9">[[ formatLang(line['bysal']) ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ line['acc_no'] ]]</para>
+          </td>
+          <td>
+            <para style="terp_default_9">[[ line['flag'] ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="60.0,167.0,84.0,82.0,145.0" style="Table6">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">Total</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ formatLang(get_total()) ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">[[ formatLang(get_bysal_total()) ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details_Right">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_0.30cmspace">
+      <font color="white"> </font>
+    </para>
+    <blockTable colWidths="269.0,269.0" style="Table7">
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Yours Sincerely</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">For [[ company.name ]]</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <para style="terp_tblheader_Details">Authorised Signature</para>
+        </td>
+        <td>
+          <para style="terp_tblheader_Details">
+            <font color="white"> </font>
+          </para>
+        </td>
+      </tr>
+    </blockTable>
+    <para style="terp_default_9">
+      <font color="white"> </font>
+    </para>
+    <para>
+      <seqReset id="L1"/>
+    </para>
+  </story>
+</document>
diff --git a/addons/hr_payroll/report/report_payroll_register.py b/addons/hr_payroll/report/report_payroll_register.py
new file mode 100644 (file)
index 0000000..6ab5b0c
--- /dev/null
@@ -0,0 +1,72 @@
+import time
+import mx.DateTime
+from report import report_sxw
+from tools import amount_to_text_en
+
+class report_payroll_register(report_sxw.rml_parse):
+    def __init__(self, cr, uid, name, context):
+        super(report_payroll_register, self).__init__(cr, uid, name, context)
+        
+        self.total_amount = 0.00
+        self.total_bysal = 0.00
+        self.localcontext.update({
+            'time': time,
+            'get_month': self.get_month,
+            'get_no': self.get_no,
+            'get_basic':self.get_basic,
+            'get_other':self.get_other,
+            'get_allow':self.get_allow,
+            'get_grows':self.get_grows,
+            'get_deduct':self.get_deduct,
+            'get_net':self.get_net,
+            'add_line':self.add_line,
+        })
+        self.no = 0
+        self.basic = 0.0
+        self.other = 0.0
+        self.allow = 0.0
+        self.grows = 0.0
+        self.deduct = 0.0
+        self.net = 0.0
+    
+    def add_line(self, line):
+        self.basic += line.basic
+        self.other += line.other_pay
+        self.allow += line.allounce
+        self.grows += line.grows
+        self.deduct += line.deduction
+        self.net += line.net
+        
+    def get_basic(self):
+        return self.basic
+    
+    def get_other(self):
+        return self.other
+        
+    def get_allow(self):
+        return self.allow
+        
+    def get_grows(self):
+        return self.grows
+    
+    def get_deduct(self):
+        return self.deduct
+        
+    def get_net(self):
+        return self.net
+        
+    def get_month(self, indate):
+        new_date = mx.DateTime.strptime(indate, '%Y-%m-%d')
+        out_date = new_date.strftime('%B')+'-'+new_date.strftime('%Y')
+        return out_date
+
+    def get_no(self):
+        self.no += 1
+        return self.no
+        
+report_sxw.report_sxw(
+    'report.hr.payroll.register.sheet', 
+    'hr.payroll.register', 
+    'hr_payroll/report/payroll_register.rml', 
+    parser=report_payroll_register
+)   
diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py
new file mode 100755 (executable)
index 0000000..7895178
--- /dev/null
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    d$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import time
+import mx.DateTime
+from report import report_sxw
+from tools import amount_to_text_en
+
+class payslip_report(report_sxw.rml_parse):
+      
+      def __init__(self, cr, uid, name, context):
+         super(payslip_report, self).__init__(cr, uid, name, context)
+         self.localcontext.update({
+            'convert'     : self.convert, 
+            'get_month'   : self.get_month,
+            'get_earnings': self.get_earnings,
+            'get_deductions':self.get_deductions,
+            'get_leave':self.get_leave,
+            'get_others':self.get_others,
+          })
+
+      def convert(self,amount, cur):
+          amt_en = amount_to_text_en.amount_to_text(amount,'en',cur)
+          return amt_en
+      
+      def get_others(self,obj):
+          res = []
+          ids = []
+          for id in range(len(obj)):
+              if obj[id].category_id.type == 'other' and obj[id].type != 'leaves':
+                 ids.append(obj[id].id)
+          payslip_line = self.pool.get('hr.payslip.line')
+          if len(ids):
+              res = payslip_line.browse(self.cr, self.uid, ids)
+          return res
+          
+      def get_leave(self,obj):
+          res = []
+          ids = []
+          for id in range(len(obj)):
+              if obj[id].type == 'leaves':
+                 ids.append(obj[id].id)
+          payslip_line = self.pool.get('hr.payslip.line')
+          if len(ids):
+              res = payslip_line.browse(self.cr, self.uid, ids)
+          return res
+      
+      def get_earnings(self,obj):
+          res = []
+          ids = []
+          for id in range(len(obj)):
+              if obj[id].category_id.type == 'allow' and obj[id].type != 'leaves':
+                 ids.append(obj[id].id)
+          payslip_line = self.pool.get('hr.payslip.line')
+          if len(ids):
+              res = payslip_line.browse(self.cr, self.uid, ids)
+          return res
+
+      def get_deductions(self,obj):
+          res = []
+          ids = []
+          for id in range(len(obj)):
+              if obj[id].category_id.type == 'deduct' and obj[id].type != 'leaves':
+                 ids.append(obj[id].id)
+          payslip_line = self.pool.get('hr.payslip.line')
+          if len(ids):
+              res = payslip_line.browse(self.cr, self.uid, ids)
+          return res
+
+      def get_month(self,obj):
+           res = {
+                    'mname':''
+                 }
+           date = mx.DateTime.strptime(obj.date, '%Y-%m-%d')
+           res['mname']= date.strftime('%B')+"-"+date.strftime('%Y')
+           return res['mname']
+
+report_sxw.report_sxw('report.payslip.pdf', 'hr.payslip', 'hr_payroll/report/payslip.rml', parser=payslip_report)   
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_payroll/report/report_year_report.rml b/addons/hr_payroll/report/report_year_report.rml
new file mode 100755 (executable)
index 0000000..74c6d34
--- /dev/null
@@ -0,0 +1,298 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+  <template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20">
+    <pageTemplate id="first">
+      <frame id="first" x1="28.0" y1="28.0" width="786" height="539"/>
+    </pageTemplate>
+  </template>
+  <stylesheet>
+    <blockTableStyle id="Standard_Outline">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table4">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/>
+      <lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table1">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/>
+      <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/>
+    </blockTableStyle>
+    <blockTableStyle id="Table6">
+      <blockAlignment value="LEFT"/>
+      <blockValign value="TOP"/>
+    </blockTableStyle>
+    <initialize>
+      <paraStyle name="all" alignment="justify"/>
+    </initialize>
+    <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Standard" fontName="Times-Roman"/>
+    <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Text body" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="List" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Index" fontName="Times-Roman"/>
+    <paraStyle name="Table Contents" fontName="Times-Roman"/>
+    <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
+    <paraStyle name="Drawing" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="Header" fontName="Times-Roman"/>
+    <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/>
+    <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/>
+    <paraStyle name="Signature" fontName="Times-Roman"/>
+    <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Salutation" fontName="Times-Roman"/>
+    <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="Footer" fontName="Times-Roman"/>
+    <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+    <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+    <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+    <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/>
+  </stylesheet>
+  <images/>
+  <story>
+    <para style="terp_header_Centre">Yearly Salary Details </para>
+    <para style="terp_default_Centre_9">For [[ get_fiscalyear(data['form']['fiscalyear_id']) ]]</para>
+    <para style="terp_default_space">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="terp_default_8">[[ repeatIn(get_periods(data['form']),'m') ]]</para>
+      <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,54.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table4">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Name</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[0] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[1] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[2] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[3] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[4] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[5] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[6] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[7] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[8] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[9] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[10] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">[[ m[11] ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_Details_Right">Total</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+      <section>
+        <para style="terp_default_9">[[ repeatIn(get_employee(data['form']),'e') ]]</para>
+        <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table1">
+          <tr>
+            <td>
+              <para style="terp_default_9">[[ e[0] ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[1]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[2]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[3]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[4]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[5]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[6]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[7]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[8]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[9]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[10]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[11]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9">[[ formatLang(e[12]) ]]</para>
+            </td>
+            <td>
+              <para style="terp_default_Right_9_Bold">[[ formatLang(e[13]) ]]</para>
+            </td>
+          </tr>
+        </blockTable>
+        <para style="terp_default_1">
+          <font color="white"> </font>
+        </para>
+      </section>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_1">
+      <font color="white"> </font>
+    </para>
+    <section>
+      <para style="P1">[[ repeatIn(get_months_tol(),'t') ]]</para>
+      <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,56.0,55.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table6">
+        <tr>
+          <td>
+            <para style="terp_tblheader_Details">Total</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[1]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[2]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[3]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[4]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[5]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[6]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[7]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[8]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[9]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[10]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[11]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(t[12]) ]]</para>
+          </td>
+          <td>
+            <para style="terp_tblheader_General_Right">[[ formatLang(get_total()) ]]</para>
+          </td>
+        </tr>
+      </blockTable>
+      <para style="terp_default_1">
+        <font color="white"> </font>
+      </para>
+    </section>
+    <para style="terp_default_8">
+      <font color="white"> </font>
+    </para>
+  </story>
+</document>
diff --git a/addons/hr_payroll/report/report_year_salary.py b/addons/hr_payroll/report/report_year_salary.py
new file mode 100755 (executable)
index 0000000..1866ef7
--- /dev/null
@@ -0,0 +1,113 @@
+import time
+import locale
+import datetime
+from report import report_sxw
+import time
+import pooler
+import rml_parse
+import mx.DateTime
+from mx.DateTime import RelativeDateTime, now, DateTime, localtime
+
+class year_salary_report(rml_parse.rml_parse):
+    
+    def __init__(self, cr, uid, name, context):
+        super(year_salary_report, self).__init__(cr, uid, name, context)
+        self.localcontext.update({
+            'time': time,
+            'get_employee' : self.get_employee,
+            'get_periods'  : self.get_periods,
+            'get_months_tol' : self.get_months_tol,
+            'get_fiscalyear' : self.get_fiscalyear,
+            'get_total' : self.get_total,
+        })
+        
+        self.mnths =[]
+        self.mnths_tol = []
+        self.curr_fiscal_year_name=''
+        self.total=0.0
+        
+    def get_periods(self,form):
+        fiscalyear = pooler.get_pool(self.cr.dbname).get('account.fiscalyear')
+        curr_fiscalyear_id = form['fiscalyear_id']
+        curr_fiscalyear = fiscalyear.read(self.cr,self.uid,[form['fiscalyear_id']],['date_start','date_stop'])[0]
+        
+#       Get start year-month-date and end year-month-date
+        fy = int(curr_fiscalyear['date_start'][0:4])    
+        ly = int(curr_fiscalyear['date_stop'][0:4])
+        
+        fm = int(curr_fiscalyear['date_start'][5:7])
+        lm = int(curr_fiscalyear['date_stop'][5:7])
+        no_months = (ly-fy)*12+lm-fm + 1
+        cm = fm
+        cy = fy
+
+#       Get name of the months from integer
+        mnth_name = []
+        for count in range(0,no_months):
+            m = datetime.date(cy, cm, 1).strftime('%b')
+            mnth_name.append(m)
+            self.mnths.append(str(cm)+'-'+str(cy))     
+            if cm == 12:
+                cm = 0
+                cy = ly
+            cm = cm +1
+        return [mnth_name]
+
+    def get_fiscalyear(self,fiscalyear_id):
+        fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear')
+        return fiscalyear_obj.read(self.cr,self.uid,[fiscalyear_id],['name'])[0]['name']
+
+            
+    def get_employee(self,form):
+        ls1=[]        
+        ls = []
+        periods = []
+        tol_mnths=['Total',0,0,0,0,0,0,0,0,0,0,0,0]     
+        emp = pooler.get_pool(self.cr.dbname).get('hr.employee')     
+        emp_ids = form['employee_ids'][0][2]
+        empll  = emp.browse(self.cr,self.uid, emp_ids)
+        fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear_id'])
+        period_ids_l = fiscalyear_obj.period_ids
+        for period in period_ids_l:
+            periods.append(period.id)
+        periods_ids = ','.join(map(str, periods))
+        cnt = 1
+        for emp_id in empll:        
+            ls1.append(emp_id.name)
+            tol = 0.0
+            for mnth in self.mnths:
+                if len(mnth) != 7:
+                    mnth = '0' + str(mnth)
+                query = "select net from hr_payslip where employee_id = "+str(emp_id.id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' and period_id in "+"("+ periods_ids +")" +""
+                self.cr.execute(query)
+                sal = self.cr.fetchall()
+                try:
+                    ls1.append(sal[0][0])
+                except:
+                    ls1.append(0) 
+                try:                    
+                    tol += sal[0][0]
+                    tol_mnths[cnt] = tol_mnths[cnt] + sal[0][0]
+                except:
+                    tol += 0 
+                cnt = cnt + 1  
+            cnt = 1          
+            ls1.append(tol)
+            ls.append(ls1)
+            ls1 = []
+        self.mnths_tol.append(tol_mnths)
+        return ls
+    
+    def get_months_tol(self):
+        return self.mnths_tol
+        
+    def get_total(self):
+        for item in self.mnths_tol:
+            for count in range(1,len(item)):
+              self.total += item[count]
+        return self.total
+    
+report_sxw.report_sxw('report.year.salary', 'hr.payslip', 'hr_payroll/report/report_year_report.rml', parser=year_salary_report)
+       
+       
+               
diff --git a/addons/hr_payroll/report/rml_parse.py b/addons/hr_payroll/report/rml_parse.py
new file mode 100755 (executable)
index 0000000..beeb6de
--- /dev/null
@@ -0,0 +1,162 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    $Id$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from report import report_sxw
+import xml.dom.minidom
+import os, time
+import osv
+import re
+import tools
+import pooler
+import re
+import sys
+
+
+class rml_parse(report_sxw.rml_parse):
+    def __init__(self, cr, uid, name, context):
+        super(rml_parse, self).__init__(cr, uid, name, context=None)
+        self.localcontext.update({
+            'comma_me': self.comma_me,
+            'format_date': self._get_and_change_date_format_for_swiss,
+            'strip_name' : self._strip_name,
+            'explode_name' : self._explode_name,
+        })
+
+    def comma_me(self,amount):
+        #print "#" + str(amount) + "#"
+        if not amount:
+            amount = 0.0
+        if  type(amount) is float :
+            amount = str('%.2f'%amount)
+        else :
+            amount = str(amount)
+        if (amount == '0'):
+             return ' '
+        orig = amount
+        new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount)
+        if orig == new:
+            return new
+        else:
+            return self.comma_me(new)
+    def _ellipsis(self, string, maxlen=100, ellipsis = '...'):
+        ellipsis = ellipsis or ''
+        try:
+            return string[:maxlen - len(ellipsis) ] + (ellipsis, '')[len(string) < maxlen]
+        except Exception, e:
+            return False
+    def _strip_name(self, name, maxlen=50):
+        return self._ellipsis(name, maxlen, '...')
+
+    def _get_and_change_date_format_for_swiss (self,date_to_format):
+        date_formatted=''
+        if date_to_format:
+            date_formatted = strptime (date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y')
+        return date_formatted
+
+    def _explode_name(self,chaine,length):
+        # We will test if the size is less then account
+        full_string = ''
+        if (len(str(chaine)) <= length):
+            return chaine
+        #
+        else:
+            chaine = unicode(chaine,'utf8').encode('iso-8859-1')
+            rup = 0
+            for carac in chaine:
+                rup = rup + 1
+                if rup == length:
+                    full_string = full_string + '\n'
+                    full_string = full_string + carac
+                    rup = 0
+                else:
+                    full_string = full_string + carac
+
+        return full_string
+
+    def makeAscii(self,str):
+        try:
+            Stringer = str.encode("utf-8")
+        except UnicodeDecodeError:
+            try:
+                Stringer = str.encode("utf-16")
+            except UnicodeDecodeError:
+                print "UTF_16 Error"
+                Stringer = str
+            else:
+                return Stringer
+        else:
+            return Stringer
+        return Stringer
+    
+    def explode_this(self,chaine,length):
+        #chaine = self.repair_string(chaine)
+        chaine = rstrip(chaine)
+        ast = list(chaine)
+        i = length
+        while i <= len(ast):
+            ast.insert(i,'\n')
+            i = i + length
+        chaine = str("".join(ast))
+        return chaine
+    
+    def repair_string(self,chaine):
+        ast = list(chaine)
+        UnicodeAst = []
+        _previouslyfound = False
+        i = 0
+        #print str(ast)
+        while i < len(ast):
+            elem = ast[i]
+            try:
+                Stringer = elem.encode("utf-8")
+            except UnicodeDecodeError:
+                to_reencode = elem + ast[i+1]
+                print str(to_reencode)
+                Good_char = to_reencode.decode('utf-8')
+                UnicodeAst.append(Good_char)
+                i += i +2
+            else:
+                UnicodeAst.append(elem)
+                i += i + 1
+        return "".join(UnicodeAst)
+
+    def ReencodeAscii(self,str):
+        print sys.stdin.encoding
+        try:
+            Stringer = str.decode("ascii")
+        except UnicodeEncodeError:
+            print "REENCODING ERROR"
+            return str.encode("ascii")
+        except UnicodeDecodeError:
+            print "DECODING ERROR"
+            return str.encode("ascii")
+
+        else:
+            print Stringer
+            return Stringer
+
+    def _add_header(self, node, header=1):
+        if header==2:
+            rml_head =  self.rml_header2
+        else:
+            rml_head =  self.rml_header
+        rml_head =  rml_head.replace('<pageGraphics>','''<pageGraphics> <image x="10" y="26cm" height="770.0" width="1120.0" >[[company.logo]] </image> ''')
+        return True
diff --git a/addons/hr_payroll/wizard/__init__.py b/addons/hr_payroll/wizard/__init__.py
new file mode 100755 (executable)
index 0000000..453998a
--- /dev/null
@@ -0,0 +1,3 @@
+import wizard_year_salary
+import wizard_employees_detail
+import wizard_create_analytic
diff --git a/addons/hr_payroll/wizard/wizard_create_analytic.py b/addons/hr_payroll/wizard/wizard_create_analytic.py
new file mode 100644 (file)
index 0000000..371b0a2
--- /dev/null
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    d$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import wizard
+import pooler
+
+class wizard_create_analytics(wizard.interface):
+    '''
+    OpenERP Wizard
+    '''
+    form = '''<?xml version="1.0"?>
+    <form string="Process Form">
+        <field name="company_id"/>
+        <newline/>
+        <field name="type"/>
+    </form>'''
+
+    fields = {
+        'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company'},
+        'type': {'string':'Type', 'type':'selection', 'selection':[('bydeg','By Employee Function'), ('byallded','By Allownce / Deduction')]}
+    }
+
+    def _get_defaults(self, cr, user, data, context):
+        #TODO : initlize required data
+        
+        
+        return data['form'] 
+
+    def _do_duplicate(self, cr, uid, data, context):
+        pool = pooler.get_pool(cr.dbname)
+        account_pool = pool.get('account.analytic.account')
+        func_pool = pool.get('hr.employee.grade')
+        ad_pool = pool.get('hr.allounce.deduction.categoty')
+        
+        tpy = data['form']['type']
+        company = data['form']['company_id']
+        
+        function_ids = func_pool.search(cr, uid, [])
+        ad_ids = ad_pool.search(cr, uid, [])
+        
+        if tpy == 'bydeg':
+            for function in func_pool.browse(cr, uid, function_ids):
+                res = {
+                    'name':function.name,
+                    'company_id':company
+                }
+                fid = account_pool.create(cr, uid, res)
+                res = {
+                    'name':'Basic Salary',
+                    'company_id':company,
+                    'parent_id': fid
+                }
+                account_pool.create(cr, uid, res)
+                for ad in ad_pool.browse(cr, uid, ad_ids):
+                    res = {
+                        'name':ad.name,
+                        'company_id':company,
+                        'parent_id': fid
+                    }
+                    account_pool.create(cr, uid, res)
+                    
+                    
+            
+        elif tpy == 'byallded':
+            res = {
+                'name':'Basic Salary',
+                'company_id':company
+            }
+            adid = account_pool.create(cr, uid, res)
+            for function in func_pool.browse(cr, uid, function_ids):
+                res = {
+                    'name':function.name,
+                    'company_id':company,
+                    'parent_id': adid
+                }
+                account_pool.create(cr, uid, res)
+            
+            for ad in ad_pool.browse(cr, uid, ad_ids):
+                res = {
+                    'name':ad.name,
+                    'company_id':company,
+                }
+                adid = account_pool.create(cr, uid, res)
+                for function in func_pool.browse(cr, uid, function_ids):
+                    res = {
+                        'name':function.name,
+                        'company_id':company,
+                        'parent_id': adid
+                    }
+                    account_pool.create(cr, uid, res)
+            
+        return {}
+    
+    states = {
+        'init': {
+            'actions': [_get_defaults],
+            'result': {'type': 'form', 'arch': form, 'fields': fields, 'state': (('end', 'Cancel'), ('process', 'Process'))},
+        },
+        'process': {
+            'actions': [_do_duplicate],
+            'result': {'type': 'state', 'state': 'end'},
+        },
+    }
+wizard_create_analytics('payroll.analysis')
diff --git a/addons/hr_payroll/wizard/wizard_employees_detail.py b/addons/hr_payroll/wizard/wizard_employees_detail.py
new file mode 100755 (executable)
index 0000000..707a428
--- /dev/null
@@ -0,0 +1,60 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    $Id$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import wizard
+import datetime
+import pooler
+import time
+import netsvc
+
+form='''<?xml version="1.0"?>
+<form string="Year Salary">
+    <field name="fiscalyear_id" select="1" colspan="2"/>
+    <newline/>
+    <field name="employee_ids" colspan="2"/>
+    <newline/>
+</form>'''
+fields = {    
+    'fiscalyear_id':{'string': 'Fiscal Year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True },
+    'employee_ids':{'string':'Employees', 'type':'many2many','relation':'hr.employee','required':True},
+       }
+
+class wizard_print(wizard.interface):
+    def _get_defaults(self, cr, uid, data, context={}):
+        fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
+        data['form']['fiscalyear_id'] = fiscalyear_obj.find(cr, uid)
+        return data['form']
+
+    states={
+        'init':{
+            'actions':[_get_defaults],
+            'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel','gtk-cancel'),('report','Print','gtk-print')]}
+        },
+        'report':{
+            'actions':[],
+            'result':{'type':'print', 'report':'employees.salary', 'state':'end'}
+        }
+    }
+wizard_print('wizard.employees.detail')
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/hr_payroll/wizard/wizard_year_salary.py b/addons/hr_payroll/wizard/wizard_year_salary.py
new file mode 100755 (executable)
index 0000000..efab169
--- /dev/null
@@ -0,0 +1,69 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution    
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    $Id$
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU General Public License as published by
+#    the Free Software Foundation, either version 3 of the License, or
+#    (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import wizard
+import datetime
+import pooler
+import time
+import netsvc
+
+form='''<?xml version="1.0"?>
+<form string="Year Salary">
+    <field name="fiscalyear_id" select="1" colspan="2"/>
+    <newline/>
+    <field name="employee_ids" colspan="2"/>
+    <newline/>
+    <separator string="Salary Deposit Date Option?" colspan="2"/>
+    <newline/>
+    <field name="salary_on"/>
+</form>'''
+fields = {    
+    'fiscalyear_id':{'string': 'Fiscal Year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True },
+    'employee_ids':{'string':'Employees', 'type':'many2many','relation':'hr.employee','required':True},
+    'salary_on':{
+        'string':"Salary On",
+        'type':'selection',
+        'selection':[('current_month','Current Month Date'),('next_month','Next Month Date')],
+        'default': lambda *a:'current_month'
+    },
+       }
+
+class wizard_print(wizard.interface):
+    def _get_defaults(self, cr, uid, data, context={}):
+        fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear')
+        data['form']['fiscalyear_id'] = fiscalyear_obj.find(cr, uid)
+        return data['form']
+
+    states={
+        'init':{
+            'actions':[_get_defaults],
+            'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel','gtk-cancel'),('report','Print','gtk-print')]}
+        },
+        'report':{
+            'actions':[],
+            'result':{'type':'print', 'report':'year.salary', 'state':'end'}
+        }
+    }
+wizard_print('wizard.year.salary')
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+