-
-
Notifications
You must be signed in to change notification settings - Fork 249
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+IMP] l10n_br_sale_stock: Inform Fields that should not be used from Sale 'prepare' methods, tests #3619
[14.0][FIX+IMP] l10n_br_sale_stock: Inform Fields that should not be used from Sale 'prepare' methods, tests #3619
Conversation
Hi @renatonlima, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Simulei aqui e tudo certo, valeu @mbcosta
@mbcosta o merge do OCA/account-invoicing#1906 foi feito. Agora vc sabe porque os testes ja tinham passado aqui mesmo assim? não deveria ter dado erro até esse merge entrar? (disclaimer: não analisei) |
@mbcosta na real antes do merge de OCA/account-invoicing#1906 o metodo _get_fields_not_used_from_sale simplesmente não foi chamado (sem dar erro). Mas talvez teria sido interessante o teste dar erro com algum valor não batendo para validar que realmente o override do _get_fields_not_used_from_sale foi necessário... |
@rvalyi ao rodar os testes apenas instalando o l10n_br_account e em seguida o l10n_br_sale retorna erro ========= TEST Doc Number ===== 1 False
2025-02-12 21:48:08,952 80 INFO test odoo.addons.l10n_br_sale_stock.tests.test_sale_stock: ======================================================================
2025-02-12 21:48:08,953 80 ERROR test odoo.addons.l10n_br_sale_stock.tests.test_sale_stock: FAIL: TestSaleStock.test_generate_document_number_on_invoice_create_wizard
Traceback (most recent call last):
File "/odoo/external-src/l10n-brazil-FIX-sale_stock_allow_rem_fields_from_sale/l10n_br_sale_stock/tests/test_sale_stock.py", line 565, in test_generate_document_number_on_invoice_create_wizard
self.assertEqual(picking.document_number, invoice.document_number)
AssertionError: '1' != False Mas ao rodar os Testes da forma que o CI faz o campo vem preenchido e não ocorre o erro 2025-02-13 01:45:33,220 89 INFO odoo odoo.addons.l10n_br_sale_stock.tests.test_sale_stock: Starting TestSaleStock.test_generate_document_number_on_invoice_create_wizard ...
========= TEST Doc Number ===== 1 1
2025-02-13 01:45:44,249 89 INFO odoo odoo.addons.l10n_br_sale_stock.tests.test_sale_stock: Starting TestSaleStock.test_lucro_presumido_company ... Não entendi ainda o porque isso acontece, talvez porque ficou salvo de outro teste? Posso ver de deixar um comentário ou TODO, também pensei sobre alterar no sale_stock_picking_invoicing a ordem de atualização dos dicionários para assim os valores que vem do Picking simplesmente sobre escreverem os que vem do Sale e assim tirar a necessidade de remover os campos não usados, mas é preciso olhar com mais profundidade e analisar, porém acredito que será melhor ver isso na v16 em diante |
@mbcosta basicamente eu concordo com a mudança, apenas accredito que o teste poderia ser melhorado, mas é vdd, sendo na 14.0, melhor fazer o merge e o luxo de melhorar ficara para a v16+. |
/ocabot merge patch |
This PR looks fantastic, let's merge it! |
Congratulations, your PR was merged at 35617f1. Thanks a lot for contributing to OCA. ❤️ |
Inform Fields that should not be used from Sale 'prepare' methods, depends OCA/account-invoicing#1906
Esse PR deve resolver o problema reportado aqui #3616 , que é o programa deve usar os valores dos campos Número do Documento e Série informados no stock.picking e não no sale.order, acredito que a melhor solução para resolver isso é criando dois método que retornam os Campos que não usados dos métodos 'prepare' do Sale e como isso pode ser tanto um problema da Localização também pode acabar sendo um problema para outras Localizações ou mesmo para módulos customizados será melhor resolver a nível do sale_stock_picking_invocing ao invés de resolver apenas na Localização Brasileira, então agora basta informar qualquer campo que venha do Sale mas que não deverá ser usado para criar a Fatura herdando o método _get_fields_not_used_from_sale para os campos do sale.order ou o _get_fields_not_used_from_sale_line para os campos do sale.order.line.
Inclui um teste para esse caso, assim evitamos regressões, mas como o PR depende do OCA/account-invoicing#1906 o CI aqui vai ficar com erro até ocorrer o merge.
cc @OCA/local-brazil-maintainers @DiegoParadeda