55 lines
2.6 KiB
Python
55 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class ResConfigSettings(models.TransientModel):
|
|
_inherit = 'res.config.settings'
|
|
|
|
hr_attendance_overtime = fields.Boolean(
|
|
string="Count Extra Hours", readonly=False)
|
|
overtime_start_date = fields.Date(string="Extra Hours Starting Date", readonly=False)
|
|
overtime_company_threshold = fields.Integer(
|
|
string="Tolerance Time In Favor Of Company", readonly=False)
|
|
overtime_employee_threshold = fields.Integer(
|
|
string="Tolerance Time In Favor Of Employee", readonly=False)
|
|
hr_attendance_display_overtime = fields.Boolean(related='company_id.hr_attendance_display_overtime', readonly=False)
|
|
attendance_kiosk_mode = fields.Selection(related='company_id.attendance_kiosk_mode', readonly=False)
|
|
attendance_barcode_source = fields.Selection(related='company_id.attendance_barcode_source', readonly=False)
|
|
attendance_kiosk_delay = fields.Integer(related='company_id.attendance_kiosk_delay', readonly=False)
|
|
attendance_kiosk_url = fields.Char(related='company_id.attendance_kiosk_url')
|
|
attendance_kiosk_use_pin = fields.Boolean(related='company_id.attendance_kiosk_use_pin', readonly=False)
|
|
attendance_from_systray = fields.Boolean(related="company_id.attendance_from_systray", readonly=False)
|
|
|
|
@api.model
|
|
def get_values(self):
|
|
res = super(ResConfigSettings, self).get_values()
|
|
company = self.env.company
|
|
res.update({
|
|
'hr_attendance_overtime': company.hr_attendance_overtime,
|
|
'overtime_start_date': company.overtime_start_date,
|
|
'overtime_company_threshold': company.overtime_company_threshold,
|
|
'overtime_employee_threshold': company.overtime_employee_threshold,
|
|
})
|
|
return res
|
|
|
|
def set_values(self):
|
|
super().set_values()
|
|
company = self.env.company
|
|
# Done this way to have all the values written at the same time,
|
|
# to avoid recomputing the overtimes several times with
|
|
# invalid company configurations
|
|
fields_to_check = [
|
|
'hr_attendance_overtime',
|
|
'overtime_start_date',
|
|
'overtime_company_threshold',
|
|
'overtime_employee_threshold',
|
|
]
|
|
if any(self[field] != company[field] for field in fields_to_check):
|
|
company.write({field: self[field] for field in fields_to_check})
|
|
|
|
def regenerate_kiosk_key(self):
|
|
if self.user_has_groups("hr_attendance.group_hr_attendance_manager"):
|
|
self.company_id._regenerate_attendance_kiosk_key()
|