61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
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
|