l10n-brazil icon indicating copy to clipboard operation
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

Open rvalyi opened this issue 10 months ago • 2 comments

Ainda tem alguns hacks e workarounds mas já da para ver como vai ficar... Mais explicações aqui

rvalyi avatar Apr 12 '24 02:04 rvalyi

Hi @luismalta, @mileo, @gabrielcardoso21, @renatonlima, @mbcosta, @marcelsavegnago, some modules you are maintaining are being modified, check this out!

OCA-git-bot avatar Apr 12 '24 06:04 OCA-git-bot

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...

rvalyi avatar May 24 '24 21:05 rvalyi

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

renatonlima avatar Jul 29 '24 17:07 renatonlima

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

rvalyi avatar Aug 10 '24 19:08 rvalyi

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

rvalyi avatar Aug 14 '24 00:08 rvalyi

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...

rvalyi avatar Aug 31 '24 21:08 rvalyi

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

antoniospneto avatar Aug 31 '24 22:08 antoniospneto

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.

rvalyi avatar Sep 01 '24 11:09 rvalyi

@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?

rvalyi avatar Sep 01 '24 22:09 rvalyi

Bora... Quanto mais cedo enfrentar esta questão.. melhor.

marcelsavegnago avatar Sep 02 '24 15:09 marcelsavegnago

@renatonlima teve tempo para olhar?

rvalyi avatar Sep 02 '24 15:09 rvalyi

/ocabot merge nobump

rvalyi avatar Sep 07 '24 02:09 rvalyi

@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.

OCA-git-bot avatar Sep 07 '24 02:09 OCA-git-bot

/ocabot merge nobump

rvalyi avatar Sep 07 '24 03:09 rvalyi

On my way to merge this fine PR! Prepared branch 14.0-ocabot-merge-pr-3012-by-rvalyi-bump-nobump, awaiting test results.

OCA-git-bot avatar Sep 07 '24 04:09 OCA-git-bot

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

OCA-git-bot avatar Sep 07 '24 05:09 OCA-git-bot