From 29b8ebb779c3de61447e485d485d3a9727c3c04e Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 24 Jun 2024 11:24:22 +0200 Subject: [PATCH] account_usability: add invoice currency signed fields Show these fields as optional in tree view without sum=1 --- account_usability/models/account_move.py | 31 ++++++++++++++++++++++++ account_usability/views/account_move.xml | 8 ++++++ 2 files changed, 39 insertions(+) diff --git a/account_usability/models/account_move.py b/account_usability/models/account_move.py index 10abad4..479d858 100644 --- a/account_usability/models/account_move.py +++ b/account_usability/models/account_move.py @@ -52,6 +52,37 @@ class AccountMove(models.Model): string="Dispute", tracking=True, ) + # Having amounts in invoice currency can be useful in tree view of invoices + # We add those fields with optional="hide" + amount_untaxed_invoice_currency_signed = fields.Monetary( + compute="_compute_amount_invoice_currency_signed", store=True, + string="Untaxed Amount Invoice Currency Signed") + amount_tax_invoice_currency_signed = fields.Monetary( + compute="_compute_amount_invoice_currency_signed", store=True, + string="Tax Invoice Currency Signed") + amount_total_invoice_currency_signed = fields.Monetary( + compute="_compute_amount_invoice_currency_signed", store=True, + string="Total Invoice Currency Signed") + amount_residual_invoice_currency_signed = fields.Monetary( + compute="_compute_amount_invoice_currency_signed", store=True, + string="Amount Due Invoice Currency Signed") + + @api.depends('amount_untaxed', 'amount_tax', 'amount_total', 'amount_residual', 'move_type') + def _compute_amount_invoice_currency_signed(self): + for move in self: + amount_untaxed_invoice_currency_signed = move.amount_untaxed + amount_tax_invoice_currency_signed = move.amount_tax + amount_total_invoice_currency_signed = move.amount_total + amount_residual_invoice_currency_signed = move.amount_residual + if move.move_type in ('out_refund', 'in_refund'): + amount_untaxed_invoice_currency_signed *= -1 + amount_tax_invoice_currency_signed *= -1 + amount_total_invoice_currency_signed *= -1 + amount_residual_invoice_currency_signed *= -1 + move.amount_untaxed_invoice_currency_signed = amount_untaxed_invoice_currency_signed + move.amount_tax_invoice_currency_signed = amount_tax_invoice_currency_signed + move.amount_total_invoice_currency_signed = amount_total_invoice_currency_signed + move.amount_residual_invoice_currency_signed = amount_residual_invoice_currency_signed @api.depends("line_ids", "line_ids.blocked") def _compute_blocked(self): diff --git a/account_usability/views/account_move.xml b/account_usability/views/account_move.xml index e35648c..0c5481c 100644 --- a/account_usability/views/account_move.xml +++ b/account_usability/views/account_move.xml @@ -67,6 +67,14 @@ show + + + + + + +