odex30_standard/hr_holidays_public/models/hr_employee_customize.py

37 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
class HRHolidaysCustom(models.Model):
_inherit = 'hr.employee'
remaining_leaves = fields.Float(compute='_gte_balance_employee')
leaves_count = fields.Float(compute='_gte_balance_employee')
leave_line = fields.One2many(comodel_name='hr.holidays', inverse_name='employee_id',
domain=[('type', '=', 'remove'), ('state', '=', 'validate1')])
# leave_request_id = fields.Many2one('hr.holidays', string='Leave Request')
# leave_type = fields.Many2one('hr.holidays.status', string='Leave Type',
# related='leave_request_id.holiday_status_id', readonly=True)
current_leave_state = fields.Selection(selection_add=[('approved', 'Workflow'), ('refused', 'Refused')])
def _gte_balance_employee(self):
for item in self:
employee_balance = self.env['hr.holidays'].search(
[('type', '=', 'add'), ('holiday_status_id.leave_type', '=', 'annual'),
('employee_id', '=', item.id), ('check_allocation_view', '=', 'balance')],
limit=1)
item.remaining_leaves = employee_balance.remaining_leaves
item.leaves_count = employee_balance.remaining_leaves
# dynamic domain on leave_request_id , and constrain on employee if he is single
# @api.onchange('employee_id')
# def _get_leave_request_domain(self):
# self.leave_request_id = False
# record_id = self.env['hr.holidays'].search([('employee_id', '=', self.employee_id.id)])
# employee_leaves = []
# for item in record_id:
# employee_leaves.append(item.id)
# return {'domain': {'leave_request_id': [('id', 'in', employee_leaves), ('state', '=', 'validate1'),
# ('type', '=', 'remove')]}}