from odoo import fields, models class HrContract(models.Model): _inherit = "hr.contract" mcs_salary_revision_state = fields.Selection( [ ("draft", "Draft"), ("sent", "Sent"), ("signed", "Signed"), ("archived", "Archived"), ], string="Salary Letter Status", default="draft", tracking=True, ) mcs_salary_revision_sent_date = fields.Date( string="Letter Sent Date", tracking=True ) mcs_salary_revision_signed_date = fields.Date( string="Letter Signed Date", tracking=True ) mcs_salary_revision_notes = fields.Text(string="Salary Revision Notes") def action_mcs_generate_salary_revision_letter(self): today = fields.Date.context_today(self) for contract in self: if contract.mcs_salary_revision_state == "draft": contract.write( { "mcs_salary_revision_state": "sent", "mcs_salary_revision_sent_date": today, } ) return self.env.ref( "mcs_simple_payroll.action_report_salary_revision_letter" ).report_action(self) def action_mcs_mark_salary_letter_sent(self): self.write( { "mcs_salary_revision_state": "sent", "mcs_salary_revision_sent_date": fields.Date.context_today(self), } ) return True def action_mcs_mark_salary_letter_signed(self): self.write( { "mcs_salary_revision_state": "signed", "mcs_salary_revision_signed_date": fields.Date.context_today(self), } ) return True def action_mcs_archive_salary_letter(self): self.write({"mcs_salary_revision_state": "archived"}) return True