l10n-brazil
l10n-brazil copied to clipboard
[14.0][REF][l10n_br_fiscal][l10n_br_fiscal_edi] l10n_br_fiscal_edi extraction from l10n_br_fiscal 2/2
Ainda tem alguns hacks e workarounds mas já da para ver como vai ficar... Mais explicações aqui
Hi @luismalta, @mileo, @gabrielcardoso21, @renatonlima, @mbcosta, @marcelsavegnago, some modules you are maintaining are being modified, check this out!
Pessoal, dei um rebase porque o PR do @felipemotter https://github.com/OCA/l10n-brazil/pull/3090 matou a metade dos workarounds dessa PR (ver detalhe dos commits). Nisso a extração do l10n_br_fiscal_edi ta bem facil agora...
Olá pessoal,
Há algum tempo atrás eu havia trabalhado para melhorar o suporte aos documentos fiscais principalmente os eletrônicos para implementar algumas funcionalidades faltantes como o MDE, DFE e demais eventos dos documentos fiscais, para isso é necessário primeiro fazer uma organização na estrutura base dos documentos fiscais, porque os objetos e heranças dos documentos fiscais devem, ser simplificado, eu fiz um diagrama atualmente dos objetos dos documentos fiscais:
classDiagram
FiscalDocumentEletronic <|-- FiscalDocumentWorkflow
FiscalDocument <|-- FiscalDocumentEletronic
FiscalDocumentMixin <|-- FiscalDocumentMixinFields
FiscalDocumentMoveMixin <|-- FiscalDocumentMixinMethods
FiscalDocumentMixin <|-- FiscalDocumentMixinMethods
FiscalDocument <|-- FiscalDocumentMoveMixin
FiscalDocument <|-- FiscalDocumentMixinFields
FiscalDocument <|-- MailThread
class FiscalDocumentWorkflow{
state_edoc = fields.Selection
state_fiscal = fields.Selection
cancel_reason = fields.Char
correction_reason = fields.Char()
+action_document_confirm()
+action_document_send()
+document_back2draft()
+action_document_back2draft()
+action_document_cancel()
+action_document_invalidate()
+action_document_correction()
}
class FiscalDocumentEletronic {
issuer = fields.Selection
status_code = fields.Char
status_name = fields.Char
status_description = fields.Char
authorization_event_id = fields.Many2one
authorization_date = fields.Datetime
authorization_protocol = fields.Char
send_file_id = fields.Many2one
authorization_file_id = fields.Many2one
cancel_event_id = fields.Many2one
cancel_date = fields.Datetime
cancel_protocol_number = fields.Char
cancel_file_id = fields.Many2one
invalidate_event_id = fields.Many2one
invalidate_date = fields.Datetime
invalidate_protocol_number = fields.Char
invalidate_file_id = fields.Many2one
document_version = fields.Char
is_edoc_printed = fields.Boolean
file_report_id = fields.Many2one
+serialize()
+view_xml()
+make_pdf()
+view_pdf()
}
Alguns objetos e heranças podem ser simplificados eu comecei a fazer esse trabalho aqui na branch 14.0-rfc-fiscal-document-events onde eu também fiz melhorias na gestão da comunicação com a Sefaz e suporte a outros webservice ainda não implementados no Odoo. Eu vou fazer um rebase e continuar esse trabalho.
cc @rvalyi @antoniospneto @marcelsavegnago @mileo @mbcosta
fiz um rebase. Tou agora trabalhando em mover o document_workflow.py tambem pro l10n_br_fiscal_edi e ajustando os testes. Com isso vamos poder aliviar uns 1500 linhas do l10n_br_fiscal.
Extremamente importante a gente limpar isso antes de aceitar qualquer coisas a mais no l10n_br_fiscal ou antes de botar projetos em prod na v16... Postergar de limpar a bunda sempre vai custar muito mais la na frente do que fazer agora. Os extrapolos com isso ja foram muito alem de qualquer coisa aceitavel na OCA.
cc @renatonlima @mbcosta @antoniospneto @felipemotter @marcelsavegnago
passando os testes com o document_workflow.py agora sendo parte do l10n_br_fiscal_edi. As funcionalidades foram quase todas preservadas. Tou vendo agora alguns detalhes mais cosmeticos ou para bater exactamente o mesmo test coverage....
cc @renatonlima @mbcosta @antoniospneto @felipemotter @marcelsavegnago
Eu acho que pode ser. Porem neste primeiro momento tentei fazer meio que o passo minimo ainda que extraindo o módulo, por isso nao tentei fazer melhoria nenhuma. Talvez seria melhor a gente ver com calma depois esse tipo de melhoria... Porque com certeza esse codigo no edi ta longe de ser lindo pelos padrões de hoje...
Eu acho que pode ser. Porem neste primeiro momento tentei fazer meio que o passo minimo ainda que extraindo o módulo, por isso nao tentei fazer melhoria nenhuma. Talvez seria melhor a gente ver com calma depois esse tipo de melhoria... Porque com certeza esse codigo no edi ta longe de ser lindo pelos padrões de hoje...
Entendi, certo, to testando agora em uma copia de uma base de produção, logo eu retorno com o meu feedback
valeu @antoniospneto . Na real o status_description eu tinha tirado e parece que me embananei num rebase recente e assim ele apareceu de volta. Até recentemente eu tinha uns 2 ou 3 commits a mais no PR que refletia mais detalhadamente as etapas da extração.
Porem dificultava os rebase e foi assim que me embananei. Por isso, se vc nao ver problema vou fazer o squash do seus commits dentro do commit da extração do l10n_br_fiscal_edi, assim fica algo mais transacional tb para investigar caso der algum problema la na frente. Valeu pelos testes. Vou testar de novo aqui num banco de prod tb.
@antoniospneto fiz o merge do seu PR e o merge no primeiro commit do PR assim que eu expliquei. Eu tb testei num banco de prod e deu tudo certo.
@marcelsavegnago algum posicionamento sobre o PR?
Bora... Quanto mais cedo enfrentar esta questão.. melhor.
@renatonlima teve tempo para olhar?
/ocabot merge nobump
@rvalyi The merge process could not start, because command `git merge --no-ff -m 'Merge PR #3012 into 14.0
Signed-off-by rvalyi' tmp-pr-3012` failed with output:
Auto-merging README.md
Auto-merging l10n_br_account/i18n/l10n_br_account.pot
Auto-merging l10n_br_account/i18n/pt_BR.po
Auto-merging l10n_br_account/models/account_move.py
Auto-merging l10n_br_account/models/fiscal_document.py
Auto-merging l10n_br_fiscal/__manifest__.py
CONFLICT (content): Merge conflict in l10n_br_fiscal/__manifest__.py
Auto-merging l10n_br_fiscal/static/description/index.html
CONFLICT (content): Merge conflict in l10n_br_fiscal/static/description/index.html
Auto-merging l10n_br_fiscal/views/document_view.xml
Auto-merging l10n_br_nfe/__manifest__.py
Automatic merge failed; fix conflicts and then commit the result.
/ocabot merge nobump
On my way to merge this fine PR! Prepared branch 14.0-ocabot-merge-pr-3012-by-rvalyi-bump-nobump, awaiting test results.
Congratulations, your PR was merged at 81f8233ea46cec5a946b6e365348a0c49aa5e1af. Thanks a lot for contributing to OCA. ❤️