mirror of
https://gitlab.com/sonalarora/tra_backend.git
synced 2025-12-18 10:49:11 +02:00
add new module
This commit is contained in:
64
hr_payroll_community/models/hr_contract.py
Normal file
64
hr_payroll_community/models/hr_contract.py
Normal file
@@ -0,0 +1,64 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class HrContract(models.Model):
|
||||
"""
|
||||
Employee contract based on the visa, work permits
|
||||
allows to configure different Salary structure
|
||||
"""
|
||||
_inherit = 'hr.contract'
|
||||
_description = 'Employee Contract'
|
||||
|
||||
struct_id = fields.Many2one('hr.payroll.structure', string='Salary Structure')
|
||||
schedule_pay = fields.Selection([
|
||||
('monthly', 'Monthly'),
|
||||
('quarterly', 'Quarterly'),
|
||||
('semi-annually', 'Semi-annually'),
|
||||
('annually', 'Annually'),
|
||||
('weekly', 'Weekly'),
|
||||
('bi-weekly', 'Bi-weekly'),
|
||||
('bi-monthly', 'Bi-monthly'),
|
||||
], string='Scheduled Pay', index=True, default='monthly',
|
||||
help="Defines the frequency of the wage payment.")
|
||||
resource_calendar_id = fields.Many2one(required=True, help="Employee's working schedule.")
|
||||
hra = fields.Monetary(string='HRA', tracking=True, help="House rent allowance.")
|
||||
travel_allowance = fields.Monetary(string="Travel Allowance", help="Travel allowance")
|
||||
da = fields.Monetary(string="DA", help="Dearness allowance")
|
||||
meal_allowance = fields.Monetary(string="Meal Allowance", help="Meal allowance")
|
||||
medical_allowance = fields.Monetary(string="Medical Allowance", help="Medical allowance")
|
||||
other_allowance = fields.Monetary(string="Other Allowance", help="Other allowances")
|
||||
|
||||
def get_all_structures(self):
|
||||
"""
|
||||
@return: the structures linked to the given contracts, ordered by hierachy (parent=False first,
|
||||
then first level children and so on) and without duplicata
|
||||
"""
|
||||
structures = self.mapped('struct_id')
|
||||
if not structures:
|
||||
return []
|
||||
# YTI TODO return browse records
|
||||
return list(set(structures._get_parent_structure().ids))
|
||||
|
||||
def get_attribute(self, code, attribute):
|
||||
return self.env['hr.contract.advantage.template'].search([('code', '=', code)], limit=1)[attribute]
|
||||
|
||||
def set_attribute_value(self, code, active):
|
||||
for contract in self:
|
||||
if active:
|
||||
value = self.env['hr.contract.advantage.template'].search([('code', '=', code)], limit=1).default_value
|
||||
contract[code] = value
|
||||
else:
|
||||
contract[code] = 0.0
|
||||
|
||||
|
||||
class HrContractAdvandageTemplate(models.Model):
|
||||
_name = 'hr.contract.advantage.template'
|
||||
_description = "Employee's Advantage on Contract"
|
||||
|
||||
name = fields.Char('Name', required=True)
|
||||
code = fields.Char('Code', required=True)
|
||||
lower_bound = fields.Float('Lower Bound', help="Lower bound authorized by the employer for this advantage")
|
||||
upper_bound = fields.Float('Upper Bound', help="Upper bound authorized by the employer for this advantage")
|
||||
default_value = fields.Float('Default value for this advantage')
|
||||
Reference in New Issue
Block a user