[18.0][FIX] l10n_br_fiscal: fix tax_framework synchronization with partner#4344
[18.0][FIX] l10n_br_fiscal: fix tax_framework synchronization with partner#4344EdnilsonMonteiro wants to merge 1 commit intoOCA:18.0from
Conversation
|
Hi @renatonlima, @rvalyi, |
|
@EdnilsonMonteiro vé que deu warnings nos tests e agora na 18.0 a CI não aceita warning nos logs... Deve ser fácil resolver (tem que fazer amend se resolver não novos commits). Eu não parei para analisar ainda mas o @CristianoMafraJunior fez uma outra proposta para resolver o problema com base_address_extended #4331 (não sei se estaria certo apenas tou mencionando). |
bc82c71 to
eec7f13
Compare
|
Boa noite, @rvalyi. Corrigi os warnings, mas como as mudanças acabaram adicionando coisas que os testes não cobriam, creio que o codecov deu uma diferença. |
|
Valeu @EdnilsonMonteiro obrigado por reportar o problema e buscar resolve-lo, por favor você pode verificar se a alteração proposta no PR resolve o problema que você está buscando corrigir aqui, o problema pode estar relacionado ao uso de um método que passou a ser obsoleto a partir da v17. |
|
@mbcosta Boa tarde! Testei a alteração do PR #4379 e ela resolve o problema da issue #4328 de acordos com meus testes (relacionada ao base_address_extended e à mudança para _get_view). Entretanto, a issue #4213 (o bug do domain em PIS/COFINS) é de natureza diferente. Ela ocorre devido à dificuldade do XML em resolver o parent.tax_framework em certas condições de visualização. A solução via _compute_tax_domains ataca esse ponto, movendo a lógica do domínio para o servidor (Python), o que garante que o filtro funcione independentemente da profundidade da view. Portanto, creio que o PR #4379 corrigiu corretamente uma das issues, mas a outra ainda é precisa. Se necessário, altero o código deste PR para tratar apenas da issue #4213. |
|
Valeu @EdnilsonMonteiro obrigado pelo retorno e explicação, realmente você está certo o problema do Domain persiste, o tax_framework é um campo compute portanto não existe na tabela, é possível forçar a gravação com um store=True, eu até testei mas não resolveu (talvez seja alguma mudança sobre como acessar um campo parent, não sei), então por enquanto parece que a sua proposta é a mais próxima da solução, acredito que você pode considerar em extrair partes desse PR em novos PRs:
Com isso esse PR vai passar a ter apenas as alterações referentes a criação desses campos Domain. Outro ponto o padrão dos Títulos dos PRs é similar com os commits (a diferença é que o commit não vai a versão) ,nesse caso onde está res_company, deveria estar o(s) nome(s) do(s) modulo(s), por exemplo: [18.0][FIX] l10n_br_base, l10n_br_fiscal: fix tax_framework synchronization with partner E caso você considere extrair a parte referente ao l10n_br_base vai ficar apenas: [18.0][FIX] l10n_br_fiscal: fix tax_framework synchronization with partner Porque você no PR criou campos para fazer o Domain ao invés de usar o método _search como você comentou no Issue #4213 ? Teve algum erro? Parece que usar o _search é a uma solução melhor, ou não? |
e1d749b to
0d0e7e7
Compare
|
Boa noite, @mbcosta! Eu optei por usar os campos domain ao invés do _search porque me pareceu a solução com melhor manutenibilidade e também eficiência do código. Se eu altero o _search, sempre que for buscar algum imposto do modelo este mesmo trecho de código irá ser executado novamente(gerando overhead). Adicionando somente um campos para fazer o domain eu limito estas buscas apenas para a tela de configurações fiscais da empresa. Já limpei o PR, removi as alterações da l10n_br_base. O PR #4379 resolveu com sucesso o erro que estava ocorrendo, por isso acho desnecessário alteração nesse quesito. |
Correção das issues #4213 e #4328.
base_address_extendednão estavam sendo tratados nores_company.pydo módulol10n_br_base.parent.tax_frameworkque não encontrava o verdadeiro campo na tabelares_partner. Foram criadas variáveis simples para computar no Python ao invés do XML qual vai ser a estrutura do domain para fazer o filtro. Assim foi possível obter acesso ao valor detax_frameworke poder fazer o filtro do domain corretamente no XML inserindo a variável com o domain pronto.