You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.7 KiB
57 lines
2.7 KiB
# -*- coding: utf-8 -*-
|
|
###############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Noorjahan N A (odoo@cybrosys.com)
|
|
#
|
|
# This program is under the terms of the Odoo Proprietary License v1.0
|
|
# (OPL-1) It is forbidden to publish, distribute, sublicense, or
|
|
# sell copies of the Software or modified copies of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
|
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
|
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
#
|
|
###############################################################################
|
|
from odoo import fields, models, _
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class HrLeaveLOP(models.Model):
|
|
"""Model for Time Off LOP (Loss of Pay)"""
|
|
_name = "hr.leave.lop"
|
|
_description = "Time Off LOP"
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
|
|
name = fields.Char(string="Name", help="Set a name to identify the lop",
|
|
required=True)
|
|
leave_type = fields.Selection([
|
|
('before_holiday', 'Day Before Holiday'),
|
|
('after_holiday', 'Day After Holiday'),
|
|
('between_holidays', 'Between 2 holidays')], string="Leave Type",
|
|
required=True,
|
|
help="Set type of leave to consider as lop "
|
|
"\n\n'Day Before Holiday': Choose this option if the leave day"
|
|
"falls just before a holiday, and it's considered as a loss of "
|
|
"pay."
|
|
"\n\n'Day After Holiday': Select this option if the leave day is "
|
|
"immediately following a holiday and should be considered as a "
|
|
"loss of pay."
|
|
"\n\n'Between 2 Holidays': Use this option when the leave spans "
|
|
"between two holidays, and it's treated as a loss of pay.")
|
|
deduction_amount = fields.Float(string='Deduction Amount %',
|
|
help="Percentage of daily wage to be "
|
|
"deducted", required=True)
|
|
no_of_days = fields.Integer(string='No Of Holidays',
|
|
help="No of holidays to consider",
|
|
required=True)
|
|
|
|
def copy(self, default=None):
|
|
raise ValidationError(_("Cannot duplicate a Time Off Lop!"))
|
|
return super().copy(default)
|
|
|