59 lines
2.5 KiB
XML
59 lines
2.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data noupdate="1">
|
|
|
|
<record id="hr_payroll_dashboard_warning_leaves_to_defer" model="hr.payroll.dashboard.warning">
|
|
<field name="name">Time Off To Defer</field>
|
|
<field name="country_id" eval="False"/>
|
|
<field name="evaluation_code">
|
|
leaves_to_defer = self.env['hr.leave'].search([
|
|
('payslip_state', '=', 'blocked'),
|
|
('state', '=', 'validate'),
|
|
('employee_company_id', 'in', self.env.companies.ids),
|
|
])
|
|
if leaves_to_defer:
|
|
warning_count = len(leaves_to_defer)
|
|
warning_action = 'hr_payroll_holidays.hr_leave_action_open_to_defer'
|
|
</field>
|
|
</record>
|
|
|
|
<record id="hr_payroll_dashboard_warning_leaves_no_document" model="hr.payroll.dashboard.warning">
|
|
<field name="name">Time Off Without Joined Document</field>
|
|
<field name="country_id" eval="False"/>
|
|
<field name="evaluation_code">
|
|
leaves_no_document = self.env['hr.leave'].search([
|
|
('state', 'not in', ['refuse', 'validate']),
|
|
('leave_type_support_document', '=', True),
|
|
('attachment_ids', '=', False),
|
|
('employee_company_id', 'in', self.env.companies.ids),
|
|
])
|
|
if leaves_no_document:
|
|
warning_count = len(leaves_no_document)
|
|
warning_records = leaves_no_document
|
|
</field>
|
|
</record>
|
|
|
|
<record id="hr_payroll_dashboard_warning_leaves_no_allocation" model="hr.payroll.dashboard.warning">
|
|
<field name="name">Time Off Not Related To An Allocation</field>
|
|
<field name="country_id" eval="False"/>
|
|
<field name="evaluation_code">
|
|
leaves_no_allocation_ids = []
|
|
employees = self.env['hr.employee'].search([('company_id', 'in', self.env.companies.ids)])
|
|
consumed_leaves = employees._get_consumed_leaves(leave_types=self.env['hr.leave.type'].search([
|
|
('requires_allocation', '=', True),
|
|
('allows_negative', '=', False),
|
|
]))[1]
|
|
for employee in consumed_leaves:
|
|
to_recheck_leaves_per_leave_type = consumed_leaves[employee]
|
|
for holiday_status_id in to_recheck_leaves_per_leave_type:
|
|
for end_dates in to_recheck_leaves_per_leave_type[holiday_status_id]['excess_days']:
|
|
leave_id = to_recheck_leaves_per_leave_type[holiday_status_id]['excess_days'][end_dates]['leave_id']
|
|
leaves_no_allocation_ids.append(leave_id)
|
|
if leaves_no_allocation_ids:
|
|
warning_count = len(leaves_no_allocation_ids)
|
|
warning_records = self.env['hr.leave'].search([('id', 'in', leaves_no_allocation_ids)])
|
|
</field>
|
|
</record>
|
|
</data>
|
|
</odoo>
|