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

[12.0][l10n_br_fiscal] fiscal usability #1610

Merged
merged 12 commits into from
Mar 8, 2022

Conversation

rvalyi
Copy link
Member

@rvalyi rvalyi commented Sep 1, 2021

extração (cherry-pick) de 5 commits dentro dos 24 (com 500 linhas de diff!) de #1526:

Isso não quer dizer que temos que nos limitar apenas a esses 5 commits, longe disso. Mas o que eu vi é que era facil ter consenso dos maintainers do l10n_br_fiscal, então já que copo meio cheio é melhor do que copo vazio...

@mileo eu posso entender a pressa de resolver uma situação num projeto, mas tb não deveria ser novidade para vc que ninguém na OCA inteira faz um PR de 500 linhas e 24 commits a não ser talvez que seja o proprio autor do modulo e olha la. Isso não anda em repo da OCA nenhum, não é frescura nossa não... Se vc quer velocidade, vc tem que fazer como todo mundo, mandar PRs de melhorias de umas 100-200 linhas de diff no maximo por ai.
E confiar de olho fechado no "pacote" só porque te aceitamos como committer quando no mesmo periodo vc manda umas dessas #1562 #820 #806 #1567 ou #1311 sem pena tb não da viu... Serio mesmo. Nesse PR #1526 tem muita coisa que falar ainda ta. Só que como eu falei revisar pacotão de 500 linhas ninguém é obrigado não.

Ai @mileo depois desse merge, a ideia seria que vc faz um rebase da sua branch #1526 e detona esses 5 commits de la (mas nem deveria precisar se vc apenas quiser fazer rebase depois do merge). Mas o melhor mesmo seria vc quebrar um PR desse em 4 ou 5 PRs mesmo. Assim como seu tempo, nosso tempo como revisor e maintainer é precioso...

Nota: fiz cherry-pick dos 5 commits e resolvi 2 conflitos devidos ao avanço no HEAD da 12.0 mesmo (e não a ordem desses 5 commits dentro dos 24). Porem alguns commits não tavam passando o pre-commit e optei para fazer um sexto commit manual para isso, pensando que facilitaria o rebase da branch #1526

@OCA-git-bot
Copy link
Contributor

Hi @rvalyi! Thank you very much for this contribution. As the addon you are improving does not have a declared maintainer, I take the opportunity to mention that you can consider adopting it. To do so, please read the maintainer role description, and, if interested, create a pull request to add your GitHub login to the maintainers key of the addon manifest.

@rvalyi
Copy link
Member Author

rvalyi commented Sep 1, 2021

Não vai rolar de fazer apenas cherry-pick porque esses commits não passam o pre-commit... Pessoal, o hook se chama pre-commit para rodar antes de fazer commit, não é a toa... Gosta de resolver conflitos depois? problema seu...

@rvalyi rvalyi marked this pull request as draft September 2, 2021 01:21
@rvalyi
Copy link
Member Author

rvalyi commented Sep 2, 2021

infelizmente botando o teste agora de encontrar apenas uma linha de operação fiscal valida, parece que encontramos varias em alguns testes. Vamos ter que solucionar isso... No PR #1526 não tem esse problema (mas tem muitos outros). Porem eu não pude identificar porque ainda. Ajuda bem vinda.

@rvalyi
Copy link
Member Author

rvalyi commented Sep 25, 2021

@mbcosta seu ultimo commit fez o Travis passar com os dados de demo/teste, porem o modulo purchase ainda nao carrega os dados de demo (deve ser o mesmo tipod e problema) e isso faz o Runbot dar esse warning:

2021-09-24 21:30:42,530 1576 INFO openerp_test odoo.modules.loading: Module l10n_br_purchase: loading demo
2021-09-24 21:30:42,531 1576 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/company.xml
2021-09-24 21:30:42,546 1576 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/product.xml
2021-09-24 21:30:42,677 1576 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/l10n_br_purchase.xml
2021-09-24 21:30:43,017 1576 WARNING openerp_test odoo.modules.loading: Module l10n_br_purchase demo data failed to install, installed without demo data
Traceback (most recent call last):
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 758, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 343, in _tag_function
_eval_xml(self, rec, env)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 194, in _eval_xml
return odoo.api.call_kw(model, method, args, {})
File "/home/odoo/odoo-12.0/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/odoo-12.0/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/document_fiscal_line_mixin_methods.py", line 292, in _onchange_fiscal_operation_id
product=self.product_id,
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/operation.py", line 257, in line_definition
raise UserError(_("Mais de uma linha de operação selecionada"))

@rvalyi rvalyi marked this pull request as ready for review September 27, 2021 21:17
Copy link
Contributor

@antoniospneto antoniospneto 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 Author

rvalyi commented Sep 29, 2021

@mbcosta continua com o mesmo problema com os dados de demo do l10n_br_purchase no Runbot:

2021-09-29 12:25:53,318 1591 INFO openerp_test odoo.models: Storing computed values of contract.contract.currency_id
2021-09-29 12:25:53,438 1591 INFO openerp_test odoo.models: Storing computed values of contract.line.price_gross
2021-09-29 12:25:53,806 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/data/company.xml
2021-09-29 12:25:53,821 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/views/res_company.xml
2021-09-29 12:25:53,980 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/views/contract_view.xml
2021-09-29 12:25:54,100 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/views/contract_line.xml
2021-09-29 12:25:54,178 1591 INFO openerp_test odoo.modules.loading: Module l10n_br_contract: loading demo
2021-09-29 12:25:54,178 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/demo/company.xml
2021-09-29 12:25:54,196 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_contract/demo/contract_demo.xml
2021-09-29 12:25:58,081 1591 INFO openerp_test odoo.modules.registry: module l10n_br_purchase: creating or updating database tables
2021-09-29 12:25:58,595 1591 INFO openerp_test odoo.models: Storing computed values of purchase.order.amount_price_gross
2021-09-29 12:25:58,674 1591 INFO openerp_test odoo.models: Storing computed values of purchase.order.line.price_gross
2021-09-29 12:25:59,247 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/security/ir.model.access.csv
2021-09-29 12:25:59,288 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/data/company.xml
2021-09-29 12:25:59,301 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/views/purchase_view.xml
2021-09-29 12:25:59,506 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/views/res_company_view.xml
2021-09-29 12:25:59,630 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/reports/purchase_report_views.xml
2021-09-29 12:25:59,674 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/reports/purchase_order_templates.xml
2021-09-29 12:25:59,708 1591 INFO openerp_test odoo.modules.loading: Module l10n_br_purchase: loading demo
2021-09-29 12:25:59,709 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/company.xml
2021-09-29 12:25:59,724 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/product.xml
2021-09-29 12:25:59,851 1591 INFO openerp_test odoo.modules.loading: loading l10n_br_purchase/demo/l10n_br_purchase.xml
2021-09-29 12:26:00,178 1591 WARNING openerp_test odoo.modules.loading: Module l10n_br_purchase demo data failed to install, installed without demo data
Traceback (most recent call last):
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 758, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 343, in _tag_function
_eval_xml(self, rec, env)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 194, in _eval_xml
return odoo.api.call_kw(model, method, args, {})
File "/home/odoo/odoo-12.0/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/odoo-12.0/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/document_fiscal_line_mixin_methods.py", line 292, in _onchange_fiscal_operation_id
product=self.product_id,
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/operation.py", line 257, in line_definition
raise UserError(_("Mais de uma linha de operação selecionada"))
odoo.exceptions.UserError: ('Mais de uma linha de operação selecionada', '')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/odoo/odoo-12.0/odoo/modules/loading.py", line 84, in load_demo
load_data(cr, idref, mode, kind='demo', package=package, report=report)
File "/home/odoo/odoo-12.0/odoo/modules/loading.py", line 68, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 802, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 865, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 764, in parse
exc_info[2]
File "/home/odoo/odoo-12.0/odoo/tools/pycompat.py", line 86, in reraise
raise value.with_traceback(tb)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 758, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 343, in _tag_function
_eval_xml(self, rec, env)
File "/home/odoo/odoo-12.0/odoo/tools/convert.py", line 194, in _eval_xml
return odoo.api.call_kw(model, method, args, {})
File "/home/odoo/odoo-12.0/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/odoo-12.0/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/document_fiscal_line_mixin_methods.py", line 292, in _onchange_fiscal_operation_id
product=self.product_id,
File "/home/odoo/build/OCA/l10n-brazil/l10n_br_fiscal/models/operation.py", line 257, in line_definition
raise UserError(_("Mais de uma linha de operação selecionada"))
odoo.tools.convert.ParseError: "Mais de uma linha de operação selecionada
" while parsing /home/odoo/build/OCA/l10n-brazil/l10n_br_purchase/demo/l10n_br_purchase.xml:35, near
<function model="purchase.order.line" name="_onchange_fiscal_operation_id">
<value eval="[ref('main_pl_only_products_1_2')]"/>
</function>
2021-09-29 12:26:03,638 1591 INFO openerp_test odoo.modules.registry: module l10n_br_account_payment_order: creating or updating database tables
2021-09-29 12:26:04,470 1591 INFO openerp_test odoo.models: Storing computed values of account.move.line.own_number_without_zfill

logs completos aquihttps://runbot2.odoo-community.org/runbot/static/build/3504859-1610-4b70eb/logs/job_20_test_all.txt

@mbcosta
Copy link
Contributor

mbcosta commented Feb 8, 2022

@rvalyi procurei resolver o problema nos dois últimos "commits" preenchendo o campo Tipo Fiscal do Produto na Linha de Operação Fiscal porque assim na hora de mapear o método retorna apenas um registro evitando o erro de "Mais de uma linha de operação selecionada" porém isso torna esse mapeamento especifico para um Tipo Fiscal do Produto para os outros casos se torna necessário incluir uma nova Linha de Operação Fiscal, praticamente igual a primeira apenas com Tipo Fiscal do Produto diferente, só que isso gera outro erro nos testes do l10n_br_purchase que buscam os Impostos a serem usados, porque o Nome da Linha de Operação Fiscal precisa ter o mesmo nome do CFOP https://github.com/OCA/l10n-brazil/blob/12.0/l10n_br_purchase/tests/test_l10n_br_purchase.py#L97 e os nomes das Linhas de Operação Fiscal não podem ser iguais porque existe uma restrição/constraint para não permitir nomes duplicados.

Poderíamos considerar retirar esse "raise" quando o mapeamento traz mais de uma Linha de Operação Fiscal, mas acredito que isso foi incluído pensando na situação onde o Responsável pela Parametrização Fiscal é uma pessoa e o Operador/usuário e outra que não vai saber selecionar qual a linha correta deve ser usada quando vir mais de uma, provavelmente uma forma de forçar a parametrização e evitar erros.

Também poderíamos considerar alterar o teste do l10n_br_purchase para não ter o problema, mas pelo o que entendi a principal questão a ser considerada é que em uma Linha de Operação Fiscal teria que ser possível associar mais de um Tipo Fiscal do Produto, só que para isso o campo teria que ser um "Many2many" e nesse sentido teríamos que transformar esse campo que hoje é um "Selection" em um novo Objeto, é preciso confirmar se realmente essa alteração precisa ser feita e se é possível fazer via "openupgrade" ou SQL ou se esse problema deve ser visto apenas a partir da v14 ou se o mapeamento de impostos precisa ser entendido e feito de outra forma.

cc @renatonlima

line = self.line_ids.search(
self._line_domain(company, partner, product), limit=1
)
line = self.line_ids.search(self._line_domain(company, partner, product))
Copy link
Member

Choose a reason for hiding this comment

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

Pessoal não faz muito sentido essa alteração, pode existir mais de uma linha de operação fiscal que coincida com a operação do documento fiscal, o importante é trazer sempre a regra mais especifica para a mais genérica, podemos fazer melhorias futuras mas neste PR podemos remover essa validação.

@renatonlima
Copy link
Member

Eu inclui os Commits:

Removi o commit que validava se existia mais de uma linha de operação:

@renatonlima
Copy link
Member

O travis esta verde,

cc @rvalyi @mbcosta @marcelsavegnago

@rvalyi
Copy link
Member Author

rvalyi commented Mar 8, 2022

Eu não posso aprovar meu proprio PR, porem os commits não sao meus, foi um cherry-pick de um PR do @mileo . Enfim agora que ta passando os testes eu aprovo, se mais alguém aprovar, bora fazer o merge...
cc @netosjb @felipemotter

@marcelsavegnago
Copy link
Member

/ocabot merge minor

@OCA-git-bot
Copy link
Contributor

Hey, thanks for contributing! Proceeding to merge this for you.
Prepared branch 12.0-ocabot-merge-pr-1610-by-marcelsavegnago-bump-minor, awaiting test results.

OCA-git-bot added a commit that referenced this pull request Mar 8, 2022
Signed-off-by marcelsavegnago
@OCA-git-bot
Copy link
Contributor

It looks like something changed on 12.0 in the meantime.
Let me try again (no action is required from you).
Prepared branch 12.0-ocabot-merge-pr-1610-by-marcelsavegnago-bump-minor, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit 9846d96 into OCA:12.0 Mar 8, 2022
@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at 5fb2008. Thanks a lot for contributing to OCA. ❤️

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.

8 participants