open-synergy/opnsynid-hr

View on GitHub
hr_career_transition/models/hr_career_transition_type.py

Summary

Maintainability
A
0 mins
Test Coverage
# -*- coding: utf-8 -*-
# Copyright 2018 OpenSynergy Indonesia
# Copyright 2020 PT. Simetri Sinergi Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from openerp import api, fields, models


class HrCareerTransitionType(models.Model):
    _name = "hr.career_transition_type"
    _description = "Career Transition Type"

    name = fields.Char(string="Career Transition Type", required=True)
    code = fields.Char(
        string="Code",
    )
    description = fields.Text(string="Description")
    active = fields.Boolean(string="Active", default=True)
    require_reason = fields.Boolean(
        string="Require Reason",
    )
    reason_ids = fields.One2many(
        string="Reasons",
        comodel_name="hr.career_transition_type_reason",
        inverse_name="type_id",
    )
    # Config
    limit = fields.Integer(
        string="Transition Limit",
        default=0,
    )
    need_previous_contract = fields.Boolean(
        string="Need Previous Contract",
    )
    create_new_contract = fields.Boolean(
        string="Create New Contract",
    )
    # What to change
    change_company = fields.Boolean(
        string="Change Company?",
    )
    change_job_title = fields.Boolean(
        string="Change Job Title",
    )
    change_manager = fields.Boolean(
        string="Change Manager",
    )
    change_department = fields.Boolean(
        string="Change Department",
    )
    change_working_schedule = fields.Boolean(
        string="Change Working Schedule",
    )
    change_wage = fields.Boolean(
        string="Change Wage",
    )

    sequence_id = fields.Many2one(
        string="Sequence",
        comodel_name="ir.sequence",
        company_dependent=True,
    )
    confirm_grp_ids = fields.Many2many(
        string="Allowed to Confirm",
        comodel_name="res.groups",
        relation="rel_confirm_career_transition",
        column1="type_id",
        column2="group_id",
    )
    approve_grp_ids = fields.Many2many(
        string="Allowed to Approve",
        comodel_name="res.groups",
        relation="rel_approve_career_transition",
        column1="type_id",
        column2="group_id",
    )
    valid_grp_ids = fields.Many2many(
        string="Allowed to Validate",
        comodel_name="res.groups",
        relation="rel_finish_career_transition",
        column1="type_id",
        column2="group_id",
    )
    cancel_grp_ids = fields.Many2many(
        string="Allowed to Cancel",
        comodel_name="res.groups",
        relation="rel_cancel_career_transition",
        column1="type_id",
        column2="group_id",
    )
    restart_grp_ids = fields.Many2many(
        string="Allowed to Restart",
        comodel_name="res.groups",
        relation="rel_finish_career_transition",
        column1="type_id",
        column2="group_id",
    )
    restart_approval_grp_ids = fields.Many2many(
        string="Allow To Restart Approval",
        comodel_name="res.groups",
        relation="rel_restart_approval_career_transition",
        column1="type_id",
        column2="group_id",
    )

    @api.multi
    def _get_transition_limit(self, transition_reason):
        self.ensure_one()
        limit = 0
        if transition_reason:
            limit = transition_reason.limit
        else:
            limit = self.limit
        return limit