Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Conversation

mbcosta
Copy link
Contributor

@mbcosta mbcosta commented Apr 26, 2024

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 #2955 foram incluído dados de demonstração e testes com esses casos

cc @rvalyi @renatonlima @marcelsavegnago @mileo

@antoniospneto
Copy link
Contributor

antoniospneto commented May 1, 2024

@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.

# Unfortunately when creating several aml there is no way to selectively avoid
# the creation of l10n_br_fiscal.document.line as it would mess the association
# of the remaining fiscal document lines with their proper aml. That's why we
# remove the useless fiscal document lines here.
for line in results:
if not line.move_id.fiscal_document_id or line.exclude_from_invoice_tab:
fiscal_line_to_delete = line.fiscal_document_line_id
line.fiscal_document_line_id = False
fiscal_line_to_delete.sudo().unlink()

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

@rvalyi
Copy link
Member

rvalyi commented May 1, 2024

@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.

# Unfortunately when creating several aml there is no way to selectively avoid
# the creation of l10n_br_fiscal.document.line as it would mess the association
# of the remaining fiscal document lines with their proper aml. That's why we
# remove the useless fiscal document lines here.
for line in results:
if not line.move_id.fiscal_document_id or line.exclude_from_invoice_tab:
fiscal_line_to_delete = line.fiscal_document_line_id
line.fiscal_document_line_id = False
fiscal_line_to_delete.sudo().unlink()

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

@mbcosta mbcosta force-pushed the 14.0-FIX_nfe_not_validate_section_note_lines branch from fd767aa to 70968ae Compare May 4, 2024 15:58
@mbcosta mbcosta changed the title [14.0][FIX] l10n_br_nfe: Nas linhas da NFe não validar linhas do tipo Seção, Notas e Adiantamentos/'down payments' [14.0][FIX] l10n_br_account : Não criar linhas do tipo Seção, Notas e Adiantamentos/'down payments' nos Documentos Fiscais Brasileiros May 4, 2024
@mbcosta
Copy link
Contributor Author

mbcosta commented May 4, 2024

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

@marcelsavegnago
Copy link
Member

@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.

# Unfortunately when creating several aml there is no way to selectively avoid
# the creation of l10n_br_fiscal.document.line as it would mess the association
# of the remaining fiscal document lines with their proper aml. That's why we
# remove the useless fiscal document lines here.
for line in results:
if not line.move_id.fiscal_document_id or line.exclude_from_invoice_tab:
fiscal_line_to_delete = line.fiscal_document_line_id
line.fiscal_document_line_id = False
fiscal_line_to_delete.sudo().unlink()

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

#3064

@rvalyi
Copy link
Member

rvalyi commented May 8, 2024

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

@mbcosta
Copy link
Contributor Author

mbcosta commented May 10, 2024

Valeu @marcelsavegnago @rvalyi o PR do Marcel resolve

encerrando por ter solução em outro PR

@mbcosta mbcosta closed this May 10, 2024
@rvalyi
Copy link
Member

rvalyi commented May 10, 2024

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...

@mbcosta
Copy link
Contributor Author

mbcosta commented May 10, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants