[16.0][REF] l10n_br_fiscal: extrair icms_cst_id do _compute_tax_fields#45
Draft
antoniospneto wants to merge 1 commit into16.0from
Draft
[16.0][REF] l10n_br_fiscal: extrair icms_cst_id do _compute_tax_fields#45antoniospneto wants to merge 1 commit into16.0from
antoniospneto wants to merge 1 commit into16.0from
Conversation
566c53e to
d1a9aec
Compare
…x_fields O campo icms_cst_id era ao mesmo tempo computado e dependência de _compute_tax_fields. Isso causava dois problemas: 1. Edição manual do CST se perdia ao alterar qualquer outro campo (price_unit, icmsfcp_tax_id, etc) que disparasse o compute. 2. Potencial dupla execução quando o compute alterava o CST e o ORM detectava mudança na própria dependência. Solução: extrair icms_cst_id para compute próprio _compute_icms_cst_id com dependências mínimas (fiscal_tax_ids, fiscal_operation_line_id). Usa fiscal_tax_ids (não icms_tax_id) como dependência para evitar ciclo: _compute_tax_fields escreve icms_tax_id, que dispararia _compute_icms_cst_id, que escreve icms_cst_id, que dispararia _compute_tax_fields novamente. icms_cst_id permanece no @api.depends de _compute_tax_fields para que desoneração e FCP continuem recomputando quando o CST mudar.
d1a9aec to
8aaeee3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Resumo
Extrai o campo
icms_cst_iddo mega-compute_compute_tax_fieldspara um compute próprio_compute_icms_cst_idcom dependências mínimas.Problema
O campo
icms_cst_idera ao mesmo tempo computado e dependência de_compute_tax_fields, causando:price_unit,icmsfcp_tax_id, etc)Solução
_compute_icms_cst_idcom@api.depends("fiscal_tax_ids", "fiscal_operation_line_id")fiscal_tax_ids(nãoicms_tax_id) como dependência para evitar ciclo de computesicms_cst_idpermanece no@api.dependsde_compute_tax_fieldspara que desoneração e FCP continuem recomputando quando o CST mudaricms_cst_idde_prepare_fields_icmse_prepare_fields_icmssn(dead code)Cenários validados
price_unit→ CST preservadoicms_tax_idmanualmente → CST recomputado do novo tax_compute_tax_fieldsroda com o novo CST para relief/FCPPlano de testes
inv test -m l10n_br_fiscal— 0 failed, 0 errorsinv test -m l10n_br_account— 0 failed, 0 errors