l10n-brazil icon indicating copy to clipboard operation
l10n-brazil copied to clipboard

[14.0][FIX] l10n_br_account : Não criar linhas do tipo Seção, Notas e Adiantamentos/'down payments' nos Documentos Fiscais Brasileiros

Open mbcosta opened this issue 9 months ago • 5 comments

NFe don't validate Section, Note or DownPayments lines.

Nas linhas da NFe não validar linhas do tipo Seção, Notas e Adiantamentos/'down payments', PR simples para evitar a mensagem de erro ao chamar o método action_post quando alguma dessa linhas estão presentes

l10n_br_nfe/models/document.py", line 807, in _check_product_default_code f"The product {line.product_id.display_name} " odoo.exceptions.ValidationError: The product False must have a default code or the product codeline field (nfe40_cProd) should be filled.

Pelo código isso está sendo feito em outros casos, mas é preciso ver outros erros como

File "l10n_br_nfe/models/document_line.py", line 503, in export_fields_nfe_40_icms self.nfe40_choice_icms.replace("nfe40", "") AttributeError: 'bool' object has no attribute 'replace'

e se essas Linhas devem ser apagadas, bloqueadas ou mantidas de alguma forma já que não vão estar na NFe, portanto esse PR resolve apenas uma parte do problema.

O teste pode ser feito com Pedido de Vendas que tem linhas de Seção, Nota e Adiantamentos, no PR https://github.com/OCA/l10n-brazil/pull/2955 foram incluído dados de demonstração e testes com esses casos

cc @rvalyi @renatonlima @marcelsavegnago @mileo

mbcosta avatar Apr 26 '24 20:04 mbcosta

@mbcosta, penso que essas linhas não deveriam ser salvas no modelo fiscal_document_line será que não é melhor filtrar isso antes, aqui nesse bloco? pois aqui é onde eliminamos as coisas inuteis que não devem ser uma linha fiscal. https://github.com/OCA/l10n-brazil/blob/02c4fc36aac8b94db8aa90625b291142295d0002/l10n_br_account/models/account_move_line.py#L223-L231

Acho que daria para adicionar no if a condição para o line.display_type se estiver preenchido não criar a linha fiscal.

antoniospneto avatar May 01 '24 17:05 antoniospneto

@mbcosta, penso que essas linhas não deveriam ser salvas no modelo fiscal_document_line será que não é melhor filtrar isso antes, aqui nesse bloco? pois aqui é onde eliminamos as coisas inuteis que não devem ser uma linha fiscal. https://github.com/OCA/l10n-brazil/blob/02c4fc36aac8b94db8aa90625b291142295d0002/l10n_br_account/models/account_move_line.py#L223-L231

Acho que daria para adicionar no if a condição para o line.display_type se estiver preenchido não criar a linha fiscal.

concordo

rvalyi avatar May 01 '24 17:05 rvalyi

valeu @antoniospneto @rvalyi pela revisão, realmente como o Antônio comentou o melhor e após a criação das linhas apagar as de tipo Seção, Nota e de Adiantamentos no Documentos Fiscais Brasileiros como já é feito em outros casos, dessa forma além da NFe isso vai ocorrer para todos os outros documentos, eu alterei a lógica da parte do código que apaga essas linhas para que o "for" seja feito apenas nas linhas que serão apagadas usando o filtered, parece ser mais eficiente.

Para remover a linha de Adiantamentos/"Down Payments" usei "fiscal_quantity < 0.0" inicialmente pelo o que vi apenas nesse caso isso ocorre porém se existir outro isso pode ser revisto, caso alguém saiba é importante identificar para evitar erros.

O caso de Adiantamentos/"Down Payments" precisa ser analisado, porque ao remover a Linha no Documento Fiscal o "Valor Total" da Fatura/account.move fica diferente do Documento fiscal/l10n_br_fiscal.document, é preciso ver o que é necessário e como deve ser feito esse processo usando os Documentos Fiscais Brasileiros, mas acredito que isso deve ser visto em outro PR, segue imagens sobre:

Pedido de Vendas image

Fatura image

Documento Fiscal image

image

mbcosta avatar May 04 '24 16:05 mbcosta

@mbcosta, penso que essas linhas não deveriam ser salvas no modelo fiscal_document_line será que não é melhor filtrar isso antes, aqui nesse bloco? pois aqui é onde eliminamos as coisas inuteis que não devem ser uma linha fiscal. https://github.com/OCA/l10n-brazil/blob/02c4fc36aac8b94db8aa90625b291142295d0002/l10n_br_account/models/account_move_line.py#L223-L231

Acho que daria para adicionar no if a condição para o line.display_type se estiver preenchido não criar a linha fiscal.

concordo

https://github.com/OCA/l10n-brazil/pull/3064

marcelsavegnago avatar May 06 '24 18:05 marcelsavegnago

@mbcosta vc consegue confirmar se #3064 já mata esse problema?

rvalyi avatar May 08 '24 16:05 rvalyi

Valeu @marcelsavegnago @rvalyi o PR do Marcel resolve

encerrando por ter solução em outro PR

mbcosta avatar May 10 '24 20:05 mbcosta

valeu @mbcosta . Se liga porem que esse PR do @marcelsavegnago criou uma regressão grave com as notas de varias linhas Ele ta arrumando no ultimo PR, o fix vai sair ja ja. Mas cuidado com esse PR dele de 3 dias atrás até la...

rvalyi avatar May 10 '24 20:05 rvalyi

valeu @rvalyi , fiz apenas um teste simples de verificar se o Documento Fiscal estava com essas linhas quando existiam na Fatura, obrigado por avisar

mbcosta avatar May 10 '24 20:05 mbcosta