49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
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.version"
|
|
_description = "Employee Contract / Version"
|
|
|
|
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(help="Employee's working schedule.")
|
|
|
|
@api.model
|
|
def _get_whitelist_fields_from_template(self):
|
|
whitelist = super()._get_whitelist_fields_from_template()
|
|
for field_name in ("schedule_pay", "struct_id"):
|
|
if field_name not in whitelist:
|
|
whitelist.append(field_name)
|
|
return whitelist
|
|
|
|
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 duplicates
|
|
"""
|
|
# TODO: remove, too simple and not used
|
|
return self.struct_id.get_structure_with_parents()
|