From 94b03662fa9e76571b138d42a98ff66701323dc9 Mon Sep 17 00:00:00 2001 From: metatroncubeswdev Date: Sun, 30 Aug 2026 01:31:46 -0400 Subject: [PATCH] Add salary revision letter report --- addons/mcs_simple_payroll/__init__.py | 1 + addons/mcs_simple_payroll/__manifest__.py | 2 + addons/mcs_simple_payroll/models/__init__.py | 1 + .../mcs_simple_payroll/models/hr_contract.py | 60 ++++++++++++++ .../reports/salary_revision_letter.xml | 80 +++++++++++++++++++ .../views/hr_contract_views.xml | 20 +++++ 6 files changed, 164 insertions(+) create mode 100644 addons/mcs_simple_payroll/models/__init__.py create mode 100644 addons/mcs_simple_payroll/models/hr_contract.py create mode 100644 addons/mcs_simple_payroll/reports/salary_revision_letter.xml create mode 100644 addons/mcs_simple_payroll/views/hr_contract_views.xml diff --git a/addons/mcs_simple_payroll/__init__.py b/addons/mcs_simple_payroll/__init__.py index 52539e8..efce4ad 100644 --- a/addons/mcs_simple_payroll/__init__.py +++ b/addons/mcs_simple_payroll/__init__.py @@ -1,2 +1,3 @@ +from . import models from . import hooks from .hooks import post_init_hook diff --git a/addons/mcs_simple_payroll/__manifest__.py b/addons/mcs_simple_payroll/__manifest__.py index 8e4d662..0ab6a60 100644 --- a/addons/mcs_simple_payroll/__manifest__.py +++ b/addons/mcs_simple_payroll/__manifest__.py @@ -7,6 +7,8 @@ "license": "LGPL-3", "depends": ["payroll"], "data": [ + "views/hr_contract_views.xml", + "reports/salary_revision_letter.xml", "views/hr_payslip_views.xml", ], "post_init_hook": "post_init_hook", diff --git a/addons/mcs_simple_payroll/models/__init__.py b/addons/mcs_simple_payroll/models/__init__.py new file mode 100644 index 0000000..b07b789 --- /dev/null +++ b/addons/mcs_simple_payroll/models/__init__.py @@ -0,0 +1 @@ +from . import hr_contract diff --git a/addons/mcs_simple_payroll/models/hr_contract.py b/addons/mcs_simple_payroll/models/hr_contract.py new file mode 100644 index 0000000..a5ccafa --- /dev/null +++ b/addons/mcs_simple_payroll/models/hr_contract.py @@ -0,0 +1,60 @@ +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 diff --git a/addons/mcs_simple_payroll/reports/salary_revision_letter.xml b/addons/mcs_simple_payroll/reports/salary_revision_letter.xml new file mode 100644 index 0000000..c454c00 --- /dev/null +++ b/addons/mcs_simple_payroll/reports/salary_revision_letter.xml @@ -0,0 +1,80 @@ + + + Salary Revision Letter + hr.contract + qweb-pdf + mcs_simple_payroll.report_salary_revision_letter + mcs_simple_payroll.report_salary_revision_letter + + report + True + 'Salary Revision Letter - %s - %s' % (object.employee_id.name, object.date_start) + 'Salary Revision Letter - %s - %s' % (object.employee_id.name, object.date_start) + + + + diff --git a/addons/mcs_simple_payroll/views/hr_contract_views.xml b/addons/mcs_simple_payroll/views/hr_contract_views.xml new file mode 100644 index 0000000..ad701b6 --- /dev/null +++ b/addons/mcs_simple_payroll/views/hr_contract_views.xml @@ -0,0 +1,20 @@ + + + hr.contract.form.mcs.salary.revision + hr.contract + + + +