123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # -*- coding: utf-8 -*-
- from openerp import api, fields, models
- from openerp.exceptions import except_orm
- class HrPayslip(models.Model):
- _inherit = 'hr.payslip'
- @api.model
- def recompute_sheet(self, values):
- payslip = self.env['hr.payslip'].browse(values)
- payslip_worked = self.env['hr.payslip.worked_days'].search([('payslip_id', '=' ,payslip.id),('code', '=', 'FALTAS')])
- days = 0
- for worked in payslip_worked:
- days = days + worked.number_of_days
- worked_days = {
- 'name': 'Faltas total',
- 'code': 'FALTAS',
- 'number_of_days': days,
- 'number_of_hours': 0,
- 'payslip_id': payslip.id,
- 'contract_id': payslip.contract_id.id,
- 'sequence': 10
- }
- line = self.env['hr.payslip.worked_days'].create(worked_days)
- payslip.compute_sheet()
- line.unlink()
- return True if payslip else False
- @api.model
- def join_payslip_faults(self, values):
- payslip = self.env['hr.payslip'].browse(values['id'])
- new_line = self.env['hr.payslip.worked_days']
- if values['faultsDays'] > 0:
- payslip_worked_days = {
- 'name': values['faultsDescri'] if values['faultsDescri'] else "Falta",
- 'code': 'FALTAS',
- 'number_of_days': values['faultsDays'],
- 'number_of_hours': 0,
- 'payslip_id': payslip.id,
- 'contract_id': payslip.contract_id.id,
- 'sequence': 10
- }
- new_line.create(payslip_worked_days)
- recompute_sheet = self.recompute_sheet(values['id'])
- return True if recompute_sheet else False
- @api.model
- def unlink_payslip_worked(self, values):
- worked_days = self.env['hr.payslip.worked_days'].search([('payslip_id', '=', values['id']),('id', '=', values['worked_id'])])
- unlink_work = worked_days.unlink()
- return True if unlink_work else False
- @api.model
- def write_payslip_worked(self, values):
- worked_days = self.env['hr.payslip.worked_days'].search([('payslip_id', '=', values['id']),('id', '=', values['worked_id'])])
- worked_update = {
- 'name': values['name'],
- 'number_of_days': values['days']
- }
- worked_days.write(worked_update)
- return True if worked_days else False
|