[14.0][REF] l10n_br_sale_stock: Adaptando o modulo para ter compatibilidade com o Caso Internacional ou sem Operação Fiscal #2862
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adapted l10n_sale_stock to make module compatible with international case or without Fiscal Operation.
Adaptando o modulo l10n_br_sale_stock para ter compatibilidade com o Caso Internacional ou sem Operação Fiscal, esse PR apesar de simples vai ter um erro
Traceback (most recent call last):
File "/odoo/external-src/l10n-brazil-REF-adapt_sale_stock_module_to_international_case-3/l10n_br_sale_stock/tests/test_sale_stock.py", line 264, in test_picking_sale_order_product_and_service
"sale.order.line to account.move.line" % field,
AssertionError: l10n_br_fiscal.operation.line(4,) != l10n_br_fiscal.operation.line(2,) : Field fiscal_operation_line_id failed to transfer from sale.order.line to account.move.line
O erro ocorre na validação que é feita nos Testes se os campos na Linha do Pedido de Vendas estão com os mesmos valores na Linha da Fatura criada a partir do Picking, o problema é que a Linha de Operação Fiscal está diferente, isso acontece porque ao refatorar os testes do l10n_br_sale_stock para usar os métodos Commom do l10n_br_stock_account https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_stock_account/tests/common.py para reduzir código o método onchange_product_id_fiscal é chamado https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_stock_account/tests/common.py#L25 e ao mapear a Linha de Operação Fiscal usando o partner_id do stock.picking que é o partner_shipping_id da sale.order traz outro valor, o teste pode ser feito na tela com os Dados de Demonstração
Se por algum motivo o onchange é chamado, por exemplo alterando a Operação Fiscal para Bonificação e depois voltando para Venda a Linha de Operação Fiscal que era Revenda Não Contribuinte passa para Revenda
Isso também pode ser visto diretamente no Pedido de Venda, onde esse problema do método que mapea/identifica a Linha de Operação Fiscal a ser usada sempre usar o partner_id do objeto pode ser visto, porque ao alterar o partner_invoice_id nada acontece, sendo que o Partner desse campo é o que deve ser usado para criar a Fatura
mas ao alterar o partner_id aí tem um onchange sendo chamado que atualiza as linhas com a Linha de Operação Fiscal e altera para Revenda
Por isso esse PR depende da solução proposta no PR #2849 ou de alguma outra solução já que esse caso de uso onde o partner_id do objeto é diferente do Partner a ser usado no Faturamento ou devido o método address_get retornar outro Partner ou no caso de Vendas onde existe um campo partner_invoice_id que pode ser diferente do partner_id a identificação da Linha de Operação Fiscal pode ser diferente.
cc @renatonlima @rvalyi @marcelsavegnago @mileo