diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_holidays/wizard | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/hr_holidays/wizard')
5 files changed, 103 insertions, 0 deletions
diff --git a/addons/hr_holidays/wizard/__init__.py b/addons/hr_holidays/wizard/__init__.py new file mode 100644 index 00000000..2b891270 --- /dev/null +++ b/addons/hr_holidays/wizard/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import hr_holidays_summary_employees +from . import hr_departure_wizard diff --git a/addons/hr_holidays/wizard/hr_departure_wizard.py b/addons/hr_holidays/wizard/hr_departure_wizard.py new file mode 100644 index 00000000..784d4f3a --- /dev/null +++ b/addons/hr_holidays/wizard/hr_departure_wizard.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from datetime import datetime, timedelta + +from odoo import api, fields, models + + +class HrDepartureWizard(models.TransientModel): + _inherit = 'hr.departure.wizard' + + cancel_leaves = fields.Boolean("Cancel Future Leaves", default=True) + + def action_register_departure(self): + super(HrDepartureWizard, self).action_register_departure() + if self.cancel_leaves: + future_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee_id.id), + ('date_to', '>', self.departure_date), + ('state', 'not in', ['cancel', 'refuse'])]) + future_leaves.write({'state': 'cancel'}) diff --git a/addons/hr_holidays/wizard/hr_departure_wizard_views.xml b/addons/hr_holidays/wizard/hr_departure_wizard_views.xml new file mode 100644 index 00000000..02dd43c9 --- /dev/null +++ b/addons/hr_holidays/wizard/hr_departure_wizard_views.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <record id="hr_departure_wizard_view_form" model="ir.ui.view"> + <field name="name">hr.departure.wizard.view.form.extend3</field> + <field name="model">hr.departure.wizard</field> + <field name="inherit_id" ref="hr.hr_departure_wizard_view_form" /> + <field name="arch" type="xml"> + <xpath expr="//group[@id='date']" position="inside"> + <field name="cancel_leaves" string="Cancel all time off after this date"/> + </xpath> + </field> + </record> +</odoo> diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_employees.py b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py new file mode 100644 index 00000000..fccc9269 --- /dev/null +++ b/addons/hr_holidays/wizard/hr_holidays_summary_employees.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import time + +from odoo import api, fields, models + + +class HolidaysSummaryEmployee(models.TransientModel): + + _name = 'hr.holidays.summary.employee' + _description = 'HR Time Off Summary Report By Employee' + + date_from = fields.Date(string='From', required=True, default=lambda *a: time.strftime('%Y-%m-01')) + emp = fields.Many2many('hr.employee', 'summary_emp_rel', 'sum_id', 'emp_id', string='Employee(s)') + holiday_type = fields.Selection([ + ('Approved', 'Approved'), + ('Confirmed', 'Confirmed'), + ('both', 'Both Approved and Confirmed') + ], string='Select Time Off Type', required=True, default='Approved') + + def print_report(self): + self.ensure_one() + [data] = self.read() + data['emp'] = self.env.context.get('active_ids', []) + employees = self.env['hr.employee'].browse(data['emp']) + datas = { + 'ids': [], + 'model': 'hr.employee', + 'form': data + } + return self.env.ref('hr_holidays.action_report_holidayssummary').report_action(employees, data=datas) diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_employees_views.xml b/addons/hr_holidays/wizard/hr_holidays_summary_employees_views.xml new file mode 100644 index 00000000..b5821c5e --- /dev/null +++ b/addons/hr_holidays/wizard/hr_holidays_summary_employees_views.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + + <record id="view_hr_holidays_summary_employee" model="ir.ui.view"> + <field name="name">hr.holidays.summary.employee.form</field> + <field name="model">hr.holidays.summary.employee</field> + <field name="arch" type="xml"> + <form string="Time Off Summary"> + <group col="4" colspan="6"> + <field name="date_from"/> + <newline/> + <field name="holiday_type"/> + <newline/> + <field name="emp" invisible="True"/> + </group> + <footer> + <button name="print_report" string="Print" type="object" class="btn-primary"/> + <button string="Cancel" class="btn-secondary" special="cancel" /> + </footer> + </form> + </field> + </record> + + <record id="action_hr_holidays_summary_employee" model="ir.actions.act_window"> + <field name="name">Time Off Summary</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">hr.holidays.summary.employee</field> + <field name="view_mode">form</field> + <field name="target">new</field> + <field name="binding_model_id" ref="hr.model_hr_employee" /> + <field name="binding_type">report</field> + </record> + +</odoo> |
