46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
from odoo import _, api, fields, models
|
|
|
|
|
|
class RecruitmentEmployeeBridge(models.Model):
|
|
_inherit = "recruitment.employee.bridge"
|
|
|
|
finalized_ctc = fields.Float(string="Finalized CTC", tracking=True)
|
|
offer_letter_ids = fields.One2many("offer.letter", "bridge_id", string="Offer Letters")
|
|
current_offer_letter_id = fields.Many2one(
|
|
"offer.letter",
|
|
string="Current Offer Letter",
|
|
compute="_compute_current_offer_letter",
|
|
store=True,
|
|
)
|
|
offer_release_status = fields.Selection(
|
|
selection=[
|
|
("requested", "Requested"),
|
|
("sent", "Sent to Candidate"),
|
|
("accepted", "Accepted"),
|
|
("rejected", "Rejected"),
|
|
("expired", "Expired"),
|
|
],
|
|
string="Offer Status",
|
|
related="current_offer_letter_id.state",
|
|
readonly=True,
|
|
store=False,
|
|
)
|
|
|
|
@api.depends("offer_letter_ids", "offer_letter_ids.create_date", "offer_letter_ids.state")
|
|
def _compute_current_offer_letter(self):
|
|
for bridge in self:
|
|
offer_letters = bridge.offer_letter_ids.sorted(
|
|
key=lambda offer: (offer.create_date or fields.Datetime.from_string("1970-01-01 00:00:00"), offer.id)
|
|
)
|
|
bridge.current_offer_letter_id = offer_letters[-1] if offer_letters else False
|
|
|
|
def action_open_current_offer(self):
|
|
self.ensure_one()
|
|
return {
|
|
"type": "ir.actions.act_window",
|
|
"name": _("Offer Letter"),
|
|
"res_model": "offer.letter",
|
|
"view_mode": "form",
|
|
"res_id": self.current_offer_letter_id.id,
|
|
}
|