Skip to content

Commit

Permalink
trabalho em andamento
Browse files Browse the repository at this point in the history
  • Loading branch information
antoniospneto committed Sep 20, 2024
1 parent 12a8399 commit 96bea8a
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
16 changes: 16 additions & 0 deletions l10n_br_account/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,22 @@ def _compute_needed_terms(self):
amount_currency = (
invoice.amount_total - invoice.amount_ipi_value
) * sign

# Embora seja improvável que haja um caso real disso,
# estou convertendo os valores para a moeda da empresa,
# caso seja diferente da moeda da fatura, para manter a
# consistência. Os montantes brasileiros acima estão na
# moeda da fatura. Assim, o amount_currency fica na moeda
# da empresa, conforme o comportamento nativo.
amount_currency = invoice.currency_id._convert(
from_amount=amount_currency,
to_currency=invoice.company_currency_id,
company=invoice.company_id,
date=invoice.invoice_date or invoice.date,
)
amount_currency = invoice.company_id.currency_id.round(
amount_currency
)
untaxed_amount_currency = amount_currency * sign
untaxed_amount = amount_currency * sign

Expand Down
15 changes: 14 additions & 1 deletion l10n_br_account/models/account_move_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,19 @@ def changed(fname):
if line.currency_id == line.company_id.currency_id:
line.balance = amount_currency

# Os totais nas linhas foram atualizadas, mas o total da fatura
# não foi recalculado automaticamente, já que o método compute_amount
# não foi acionado após as alterações nas linhas.
# Por esse motivo, estou adicionando manualmente os campos no
# add_to_compute do account_move.
# Questão: Por que o compute_amount não foi acionado automaticamente?
# Isso ocorre apenas quando os valores são diretamente informados
# no create? Realizar um teste isolado para confirmar esse
# comportamento.
move_id = line.move_id
self.env.add_to_compute(move_id._fields["amount_total"], move_id)
self.env.add_to_compute(move_id._fields["amount_untaxed"], move_id)

after = existing()
for line in after:
if (
Expand Down Expand Up @@ -539,4 +552,4 @@ def _onchange_fiscal_tax_ids(self):
user_type=user_type, fiscal_operation=self.fiscal_operation_id
)

return result
return result #

0 comments on commit 96bea8a

Please sign in to comment.