Skip to content

Commit

Permalink
trabalho em andamento
Browse files Browse the repository at this point in the history
  • Loading branch information
antoniospneto committed Dec 7, 2024
1 parent a8b8483 commit 941edf2
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
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 @@ -325,6 +325,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 @@ -536,4 +549,4 @@ def _onchange_fiscal_tax_ids(self):
user_type=user_type, fiscal_operation=self.fiscal_operation_id
)

return result
return result #
15 changes: 14 additions & 1 deletion l10n_br_sale_stock/tests/test_sale_stock.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,12 @@ def test_picking_sale_order_product_and_service(self):
# a copia entre os objetos é testada tanto no stock.move acima
# quanto na account.move.line abaixo
"uom_id",
# O campo 'display_type' difere entre 'sale.order.line' e
# 'account.move.line' para produtos: é False em 'sale.order.line' e
# "product" em 'account.move.line'
"display_type",
"sequence",
"analytic_precision", # verificar se tem importancia
# Ao chamar o _onchange_product_id_fiscal no stock.move o
# partner_id usado no mapeamento é o do objeto, nesse teste
# 'Akretion Aluminio - SP' por ser o Endereço de Entrega
Expand Down Expand Up @@ -245,6 +251,14 @@ def test_picking_sale_order_product_and_service(self):
"Field %s failed to transfer from "
"sale.order.line to account.move.line" % field,
)
# Assert específico para 'display_type'
if sale_order_line.display_type is False:
self.assertEqual(
invoice_lines.display_type,
"product",
"Esperado 'display_type' como 'product' em account.move.line quando"
"é False em sale.order.line",
)

for inv_line in invoice_lines:
if inv_line.product_id == sale_order_line.product_id:
Expand Down Expand Up @@ -340,7 +354,6 @@ def test_ungrouping_pickings_partner_shipping_different(self):
picking and 3 moves per picking, the 3 has the same Partner to
Invoice but one has Partner to Shipping so shouldn't be grouping.
"""

sale_order_1 = self.env.ref("l10n_br_sale_stock.main_so_l10n_br_sale_stock_1")
sale_order_1.action_confirm()
picking = sale_order_1.picking_ids
Expand Down

0 comments on commit 941edf2

Please sign in to comment.