odoo18/addons_extensions/offer_letters/models/recruitment_employee_bridge.py

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,
}