From 96391ba3351b190e12930d35946b34b4d0e81caa Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Tue, 9 Jan 2024 12:58:23 -0300 Subject: [PATCH] [FIX] l10n_br_stock_account: when create Invoice use the Partner mapping by the methods of module instead of Fiscal Dict and inform partner_shipping_id with Partner of Picking instead in the case of it's different of Partner to Invoice. --- .../wizards/stock_invoice_onshipping.py | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/l10n_br_stock_account/wizards/stock_invoice_onshipping.py b/l10n_br_stock_account/wizards/stock_invoice_onshipping.py index 769d06002879..fe00d6e66f7a 100644 --- a/l10n_br_stock_account/wizards/stock_invoice_onshipping.py +++ b/l10n_br_stock_account/wizards/stock_invoice_onshipping.py @@ -98,17 +98,34 @@ def _build_invoice_values_from_pickings(self, pickings): if picking.fiscal_operation_id and picking.fiscal_operation_id.journal_id: fiscal_vals["journal_id"] = picking.fiscal_operation_id.journal_id.id + # Necessário para o caso do Pedido de Compra criado com o Contato + # de Faturamento onde o Picking é criado com esse partner e está + # sendo necessário preencher o partner_shipping_id com esse partner + # do Picking, sem isso o uso o Partner principal do Contato + if values.get("partner_shipping_id") != values.get("partner_id"): + if not fiscal_vals.get("partner_shipping_id"): + fiscal_vals["partner_shipping_id"] = picking.partner_id.id + # Endereço de Entrega diferente do Endereço de Faturamento # so informado quando é diferente if fiscal_vals["partner_id"] != values["partner_id"]: values["partner_shipping_id"] = fiscal_vals["partner_id"] - else: - # Já no modulo stock_picking_invoicing o campo partner_shipping_id - # é informado mas para evitar ter a NFe com o Endereço de Entrega - # quando esse é o mesmo Endereço, esta sendo removido. - # TODO: Deveria ser informado mesmo quando é o mesmo? Isso não - # acontecia na v12. - del values["partner_shipping_id"] + # Necessário para manter o Partner mapeado pelo metodo + # https://github.com/OCA/account-invoicing/blob/14.0/ + # stock_picking_invoicing/models/stock_picking.py#L38 + fiscal_vals["partner_id"] = values["partner_id"] + + # TODO: Na criação da Fatura pelo Pedido de Venda o campo + # partner_shipping_id sempre vai preenchido, isso deve ser + # considerado o padrão? Ou deveria ser feito como antes aqui + # onde nos casos em que o partner_id é o mesmo que o partner_shipping_id + # o campo era apagado e assim a Fatura era criada sem o Endereço de + # Entrega + # else: + # # Já no modulo stock_picking_invoicing o campo partner_shipping_id + # # é informado mas para evitar ter a NFe com o Endereço de Entrega + # # quando esse é o mesmo Endereço, esta sendo removido. + # del values["partner_shipping_id"] # Ser for feito o update como abaixo o campo # fiscal_operation_id vai vazio