From 6689999b176509c8e77ab8c5910cbac973df672e Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Mon, 6 Apr 2026 11:00:20 +0700 Subject: [PATCH] feat: add action_recompute_state wrapper and update button to trigger state and payment status recalculation --- models/hr_expense_sheet.py | 5 +++++ views/hr_expense_views.xml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/models/hr_expense_sheet.py b/models/hr_expense_sheet.py index 1b0ae73..7647803 100644 --- a/models/hr_expense_sheet.py +++ b/models/hr_expense_sheet.py @@ -163,3 +163,8 @@ class HrExpenseSheet(models.Model): raise UserError(_("You cannot refuse this report because it has Posted Realizations. Revert them first.")) realizations.write({'state': 'draft'}) return super().action_refuse_expense_sheets() + + def action_recompute_state(self): + """ Public wrapper to allow triggering recompute from a button. """ + self._compute_state() + self._compute_payment_state() diff --git a/views/hr_expense_views.xml b/views/hr_expense_views.xml index bc6691d..cee25a8 100644 --- a/views/hr_expense_views.xml +++ b/views/hr_expense_views.xml @@ -148,7 +148,7 @@ draft,submit,approve,post,wait_post,done -