diff --git a/l10n_it_fatturapa_out/data/invoice_it_template.xml b/l10n_it_fatturapa_out/data/invoice_it_template.xml index 1ef2d45bee6d..dd3e7f0a8849 100644 --- a/l10n_it_fatturapa_out/data/invoice_it_template.xml +++ b/l10n_it_fatturapa_out/data/invoice_it_template.xml @@ -170,7 +170,7 @@ e 'line' per riga di fattura (a seconda del livello in cui sono chiamati) t-call="l10n_it_fatturapa_out.account_invoice_line_it_sconto_maggiorazione" /> - diff --git a/l10n_it_reverse_charge/models/account_move.py b/l10n_it_reverse_charge/models/account_move.py index b5208036d78d..3eb7d884f729 100644 --- a/l10n_it_reverse_charge/models/account_move.py +++ b/l10n_it_reverse_charge/models/account_move.py @@ -36,6 +36,14 @@ def _compute_rc_flag(self): line.rc = is_rc rc = fields.Boolean("RC", compute="_compute_rc_flag", store=True, readonly=False) + rc_source_line_id = fields.Many2one("account.move.line", readonly=True) + + def _compute_currency_rate(self): + res = super()._compute_currency_rate() + for line in self: + if line.currency_id and line.rc_source_line_id: + line.currency_rate = line.rc_source_line_id.currency_rate + return res class AccountMove(models.Model): @@ -81,6 +89,7 @@ def rc_inv_line_vals(self, line): "price_unit": line.price_unit, "quantity": line.quantity, "discount": line.discount, + "rc_source_line_id": line.id, } def rc_inv_vals(self, partner, rc_type, lines, currency): @@ -462,6 +471,7 @@ def generate_supplier_self_invoice(self): invoice_line_vals = [] for inv_line in self.invoice_line_ids: line_vals = inv_line.copy_data()[0] + line_vals["rc_source_line_id"] = inv_line.id line_vals["move_id"] = supplier_invoice.id line_tax_ids = inv_line.tax_ids mapped_taxes = rc_type.map_tax(