136 lines
4.9 KiB
YAML
136 lines
4.9 KiB
YAML
-
|
|
I test "Payslip" in order to check the hr_payroll module in OpenERP
|
|
-
|
|
I create a new employee "Richard"
|
|
-
|
|
!record {model: hr.employee, id: hr_employee_richard0}:
|
|
birthday: '1984-05-01'
|
|
country_id: base.be
|
|
department_id: hr.dep_rd
|
|
gender: male
|
|
name: Richard
|
|
-
|
|
I create a salary structure for "Software Developer"
|
|
-
|
|
!record {model: hr.payroll.structure, id: hr_payroll_structure_softwaredeveloper}:
|
|
name: Salary Structure for Software Developer
|
|
code: SD
|
|
company_id: base.main_company
|
|
rule_ids:
|
|
- hr_salary_rule_houserentallowance1
|
|
- hr_salary_rule_convanceallowance1
|
|
- hr_salary_rule_professionaltax1
|
|
- hr_salary_rule_providentfund1
|
|
- hr_salary_rule_meal_voucher
|
|
- hr_salary_rule_sales_commission
|
|
-
|
|
I create a contract for "Richard"
|
|
-
|
|
!record {model: hr.contract, id: hr_contract_richard}:
|
|
date_end: !eval "(datetime.now() + timedelta(days=365)).strftime('%Y-%m-%d')"
|
|
date_start: !eval time.strftime('%Y-%m-%d')
|
|
name: Contract for Richard
|
|
wage: 5000.0
|
|
type_id: hr_contract.hr_contract_type_emp
|
|
employee_id: hr_employee_richard0
|
|
struct_id: hr_payroll_structure_softwaredeveloper
|
|
working_hours: resource.timesheet_group1
|
|
-
|
|
I create a Employee Payslip
|
|
-
|
|
!record {model: hr.payslip, id: hr_payslip_0}:
|
|
employee_id: hr_payroll.hr_employee_richard0
|
|
-
|
|
I assign the amount to Input data
|
|
-
|
|
!python {model: hr.payslip.input}: |
|
|
ids = self.search(cr, uid, [('payslip_id', '=', ref("hr_payslip_0"))])
|
|
self.write(cr, uid, ids, {'amount': 5.0})
|
|
-
|
|
I verify the payslip is in draft state
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
|
|
assert (payslip_brw.state == 'draft'), 'State not changed!'
|
|
-
|
|
I click on 'Compute Sheet' button on payslip
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
self.compute_sheet(cr, uid, [ref("hr_payslip_0")], {"lang": "en_US", "tz": False,
|
|
"active_model": "ir.ui.menu", "department_id": False, "active_ids": [ref("hr_payroll.menu_department_tree")],
|
|
"section_id": False, "active_id": ref("hr_payroll.menu_department_tree"),
|
|
})
|
|
-
|
|
Then I click on the 'Confirm' button on payslip
|
|
-
|
|
!workflow {model: hr.payslip, action: hr_verify_sheet, ref: hr_payslip_0}
|
|
-
|
|
I verify that the payslip is in done state
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
payslip_brw=self.browse(cr, uid, ref("hr_payslip_0"))
|
|
assert(payslip_brw.state == 'done'), 'State not changed!'
|
|
-
|
|
I want to check refund payslip so I click on refund button.
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
self.refund_sheet(cr, uid, [ref("hr_payslip_0")], None)
|
|
-
|
|
I check on new payslip Credit Note is checked or not.
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
payslip_obj = self.browse(cr, uid, ref("hr_payslip_0"), None)
|
|
payslip_ids = self.search(cr, uid, [('name','like','Refund: '+payslip_obj.name),('credit_note','=',True)], None)
|
|
assert payslip_ids, "Payslip not refunded!"
|
|
-
|
|
I want to generate a payslip from Payslip run.
|
|
-
|
|
!record {model: hr.payslip.run, id: hr_payslip_run_PayslipforEmployee0}:
|
|
date_end: '2011-09-30'
|
|
date_start: '2011-09-01'
|
|
name: Payslip for Employee
|
|
-
|
|
I create record for generating the payslip for this Payslip run.
|
|
-
|
|
!record {model: hr.payslip.employees, id: hr_payslip_employees0}:
|
|
employee_ids:
|
|
- hr_employee_richard0
|
|
-
|
|
I generate the payslip by clicking on Generat button wizard.
|
|
-
|
|
!python {model: hr.payslip.employees}: |
|
|
self.compute_sheet(cr, uid, [ref('hr_payslip_employees0')], context={'active_id': ref('hr_payslip_run_PayslipforEmployee0')})
|
|
-
|
|
I open Contribution Register and from there I print the Payslip Lines report.
|
|
-
|
|
!record {model: payslip.lines.contribution.register, id: payslip_lines_contribution_register0}:
|
|
date_from: '2011-09-30'
|
|
date_to: '2011-09-01'
|
|
-
|
|
I print the payslip report
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
import os
|
|
import openerp.report
|
|
from openerp import tools
|
|
data, format = openerp.report.render_report(cr, uid, [ref('hr_payslip_0')], 'hr_payroll.report_payslip', {}, {})
|
|
if tools.config['test_report_directory']:
|
|
file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslip.'+format), 'wb+').write(data)
|
|
-
|
|
I print the payslip details report
|
|
-
|
|
!python {model: hr.payslip}: |
|
|
import os
|
|
import openerp.report
|
|
from openerp import tools
|
|
data, format = openerp.report.render_report(cr, uid, [ref('hr_payslip_0')], 'hr_payroll.report_payslipdetails', {}, {})
|
|
if tools.config['test_report_directory']:
|
|
file(os.path.join(tools.config['test_report_directory'], 'hr_payroll-payslipdetails.'+format), 'wb+').write(data)
|
|
-
|
|
I print the contribution register report
|
|
-
|
|
!python {model: hr.contribution.register}: |
|
|
ctx={'model': 'hr.contribution.register', 'active_ids': [ref('hr_houserent_register')]}
|
|
from openerp.tools import test_reports
|
|
test_reports.try_report_action(cr, uid, 'action_payslip_lines_contribution_register', context=ctx, our_module='hr_payroll')
|