From b02ff590547cc08d48ecddc61a00441eee7f0f6f Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Fri, 5 Sep 2025 09:29:00 +0000 Subject: [PATCH] [IMP] commission_simple: add total base amount in view and XLSX report --- commission_simple/models/commission_result.py | 16 ++++++++++------ .../reports/commission_result_xlsx.py | 5 ++++- commission_simple/views/commission_result.xml | 4 +++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/commission_simple/models/commission_result.py b/commission_simple/models/commission_result.py index 60f016e..e6902e4 100644 --- a/commission_simple/models/commission_result.py +++ b/commission_simple/models/commission_result.py @@ -32,7 +32,10 @@ class CommissionResult(models.Model): states={'done': [('readonly', True)]}) amount_total = fields.Monetary( string='Commission Total', currency_field='company_currency_id', - compute='_compute_amount_total', store=True, tracking=True) + compute='_compute_totals', store=True, tracking=True) + base_total = fields.Monetary( + string="Commission Base Total", currency_field='company_currency_id', + compute='_compute_totals', store=True, tracking=True) state = fields.Selection([ ('draft', 'Draft'), ('done', 'Done'), @@ -44,12 +47,13 @@ class CommissionResult(models.Model): def _assign_type_selection(self): return self.env['commission.profile.assignment']._assign_type_selection() - @api.depends('line_ids.commission_amount') - def _compute_amount_total(self): - rg_res = self.env['account.move.line'].read_group([('commission_result_id', 'in', self.ids)], ['commission_result_id', 'commission_amount:sum'], ['commission_result_id']) - mapped_data = dict([(x['commission_result_id'][0], x['commission_amount']) for x in rg_res]) + @api.depends('line_ids.commission_amount', 'line_ids.commission_base') + def _compute_totals(self): + rg_res = self.env['account.move.line'].read_group([('commission_result_id', 'in', self.ids)], ['commission_result_id', 'commission_amount:sum', 'commission_base:sum'], ['commission_result_id']) + mapped_data = dict([(x['commission_result_id'][0], {'amount': x['commission_amount'], 'base': x['commission_base']}) for x in rg_res]) for rec in self: - rec.amount_total = mapped_data.get(rec.id, 0) + rec.amount_total = mapped_data.get(rec.id, {}).get('amount') + rec.base_total = mapped_data.get(rec.id, {}).get('base') def unlink(self): for result in self: diff --git a/commission_simple/reports/commission_result_xlsx.py b/commission_simple/reports/commission_result_xlsx.py index 16830d7..aef2286 100644 --- a/commission_simple/reports/commission_result_xlsx.py +++ b/commission_simple/reports/commission_result_xlsx.py @@ -34,7 +34,10 @@ class CommissionResultXlsx(models.AbstractModel): sheet.write(i, 0, _('Currency'), styles['subtitle']) sheet.write(i, 1, result.company_id.currency_id.name, styles['subtitle']) i += 1 - sheet.write(i, 0, _('Total Amount'), styles['subtitle']) + sheet.write(i, 0, _('Base Total'), styles['subtitle']) + sheet.write(i, 1, result.base_total, styles['subtitle_amount']) + i += 1 + sheet.write(i, 0, _('Amount Total'), styles['subtitle']) sheet.write(i, 1, result.amount_total, styles['subtitle_amount']) i += 3 cols = self._prepare_xlsx_cols() diff --git a/commission_simple/views/commission_result.xml b/commission_simple/views/commission_result.xml index db2c77b..9487fea 100644 --- a/commission_simple/views/commission_result.xml +++ b/commission_simple/views/commission_result.xml @@ -24,6 +24,7 @@ + @@ -48,7 +49,7 @@ - + @@ -79,6 +80,7 @@ +