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][IMP] l10n_br_fiscal: add operation line/product tags match #3418

Draft
wants to merge 5 commits into
base: 14.0
Choose a base branch
from

Conversation

DiegoParadeda
Copy link
Contributor

Objetivo

Este PR introduz o modelo product.tag para aprimorar a capacidade de combinação automática das linhas de operação fiscal por produto.

@OCA-git-bot
Copy link
Contributor

Hi @renatonlima,
some modules you are maintaining are being modified, check this out!

@mileo
Copy link
Member

mileo commented Oct 7, 2024

@DiegoParadeda pode implementar alguns testes e uns dados de demo?

@marcelsavegnago
Copy link
Member

marcelsavegnago commented Oct 7, 2024

De fato sinto falta de algo mais especifico para definir como filtro de operação ou linha de operação fiscal, mas será que precisamos de mais um modelo ?

@mileo
Copy link
Member

mileo commented Oct 7, 2024

De fato sinto falta de algo mais especifico para definir como filtro de operação ou linha de operação fiscal, mas será que precisamos de mais um modelo ?

Poderia sugerir alguma outra opção? Das que pensamos e não fica legal:

  • Botar mais boleanos / selections
  • Alterar a regra de fiscal definition / fiscal op line;
  • Usar o fiscal.tax.group, ou outro modelo do fiscal, mas acho que não é pra isso;

Essas tags dão mais versatilidade para casos complexos, onde existem mais de uma CFOP para a mesma operação, por exemplo a exportação com as CFOPs:

  • 7102 - Venda de mercadoria adquirida ou recebida de terceiros;
  • 7501 - Exportação de mercadorias recebidas com fim específico de exportação;

A ideia é que o usuário nunca tenha que selecionar a linha da operação manualmente.

@DiegoParadeda
Copy link
Contributor Author

De fato sinto falta de algo mais especifico para definir como filtro de operação ou linha de operação fiscal, mas será que precisamos de mais um modelo ?

@marcelsavegnago tentei usar a ideia dos marcadores (many2many) por simplicidade e praticidade apenas. Me pareceu ser a forma mais tranquila de cobrir vários casos de uso. Só queria ressaltar que o many2many na minha visão é importante.

Agora sobre o modelo em si, acho que daria pra herdar algum product.tags e colocar um campo nele exemplo "is_fiscal_tag" e usar esse modelo já existente com um domínio. Se acharem que fica melhor desse jeito posso alterar.

Copy link
Contributor

@WesleyOliveira98 WesleyOliveira98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rvalyi
Copy link
Member

rvalyi commented Oct 22, 2024

@renatonlima pode revisar?

Copy link
Member

@mileo mileo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pra mim isso já esta legal, mas o ideal é colocar testes para garantir que continua funcionando no futuro.

@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@mileo mileo marked this pull request as draft November 8, 2024 22:27
@Tiago370 Tiago370 force-pushed the product-tag branch 2 times, most recently from b9e08f4 to fc4e040 Compare November 10, 2024 21:52

# ICMS
if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:
self.assertEqual(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pode fazer um assert da taxa do ICMS ST?

@Tiago370 Tiago370 force-pushed the product-tag branch 2 times, most recently from cb467f8 to 25b5a8d Compare November 14, 2024 12:58
@Tiago370
Copy link

depend de #3422

@Tiago370 Tiago370 force-pushed the product-tag branch 2 times, most recently from cb05c65 to 4f17d7e Compare November 27, 2024 12:21

# ICMS
if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:
line.write(
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Tiago370 acho que esse write não pode estar aqui. A ideia é testar o imposto automático. Se você escrever o imposto no teste a validação perde o sentido


# ICMS
if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:
line.write(
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Tiago370 acho que esse write não pode estar aqui. A ideia é testar o imposto automático. Se você escrever o imposto no teste a validação perde o sentido

line.with_company(empresa_lucro_presumido.id)._onchange_fiscal_taxes()

self.assertTrue("Revenda" in line.fiscal_operation_line_id.name)
if "Revenda" in line.fiscal_operation_line_id.name:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O assert da cfop_id precisa acontecer independente se "Revenda" está no nome da operation line. Essa linha é desnecessária

)._onchange_fiscal_operation_line_id()
line.with_company(empresa_lucro_presumido.id)._onchange_fiscal_taxes()

self.assertTrue("Revenda" in line.fiscal_operation_line_id.name)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essa linha também é desnecessária já que esse assert já acontece algumas linhas abaixo em: "line.cfop_id.code, 6404"

@Tiago370
Copy link

Corrigido

@mileo
Copy link
Member

mileo commented Nov 27, 2024

@DiegoParadeda @Tiago370 esta pronto para revisão?

@Tiago370
Copy link

@mileo da minha parte sim.

)

# ICMS
if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:

Esse if é desnecessário

)

# ICMS
if line.product_id.icms_origin not in ICMS_ORIGIN_TAX_IMPORTED:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esse if é desnecessário

" for Venda de Contribuinte p/ Fora do Estado.",
)
self.assertEqual(
line.icmsst_tax_id.name,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Utilizar registro.name não é uma prática muito legal @Tiago370. Nesse caso você consegue pegar o XML ID do registro e garantir que o teste não vai quebrar se alguém trocar o nome do imposto

@Tiago370
Copy link

@DiegoParadeda corrigido.

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

Successfully merging this pull request may close these issues.

7 participants