Fix/integridade do ciclo de manifestacao - #26
Merged
Merged
Conversation
… Prettier Revisão de integridade cruzando o código com README, RUNBOOK, CONTRIBUTING e RELEASE. Manifestação durante bloqueio da SEFAZ `Impedimento` conferia empresa inativa, ausência de certificado e certificado vencido, mas não o bloqueio — `EstaBloqueada` existia em um único ponto do código, o handler de sincronização. Com o CNPJ bloqueado por consumo indevido a sincronização parava e esperava, enquanto o ciclo de manifestação seguia batendo na mesma empresa de meia em meia hora. A cota é do CNPJ e a SEFAZ conta distribuição e eventos na mesma conta: o ciclo renovava justamente o bloqueio que se estava esperando expirar. Lote de eventos sem desfecho Quando a SEFAZ processa a remessa mas não devolve retorno para nenhuma chave, elas seguem pendentes — e a volta seguinte do laço buscava o mesmo lote e o reenviava, até o teto. Remessas idênticas gastando cota sem mudar estado. Agora o laço encerra e sinaliza que restam pendentes; quem retoma é o ciclo seguinte. Promoção para XML completo encerra a pendência de ciência A ciência serve para destravar o XML completo; com ele em mãos não sobra o que destravar. Manter o documento pendente fazia o job reenviar o evento 210210 de notas já resolvidas. Ciência registrada ou recusada preserva o próprio desfecho — são histórico. As consultas de pendentes ganharam `!PossuiXml` como rede de segurança, e uma migração corrigiu as linhas já gravadas: 86 dos 98 documentos em base estavam nesse estado. Fim de linha do frontend `prettier --check` falhava na máquina do desenvolvedor e passava no CI. `* text=auto` com `core.autocrlf=true` grava CRLF no checkout Windows, o Prettier valida fim de linha e usa LF, e o `.editorconfig` de `src/econtabil-web` — que é `root = true` — não declarava `end_of_line`. Rodar `--write` resolvia até o próximo checkout desfazer. `*.ts`, `*.html`, `*.scss` e `*.css` passam a `eol=lf` no `.gitattributes` e o `.editorconfig` do web declara o mesmo LF. Esses tipos só existem em `src/econtabil-web`. Relógio no alerta de certificados `ObterVencendoEmAteAsync` calculava o limite com `DateTime.UtcNow` sob um comentário que prometia controle do relógio nos testes — que ele não dava. Passa a receber `TimeProvider`, e o teste adianta o relógio para exercitar a borda da janela de vencimento. Documentação - `CONTRIBUTING.md` afirmava que o CI roda o mesmo conjunto do PR, omitindo a conferência do Prettier — a que mais escapa, por rodar fora do `ng build`. - `RELEASE.md` e `RUNBOOK.md` apontavam para specs que não são versionadas. A coluna passa a dizer o que cada pendência custa ao operador, sem depender de arquivo externo. - `README.md` listava o teste contra a SEFAZ de produção como pendência principal; ele já foi feito. Fica registrada a pendência real, a manifestação, e a semântica do ponteiro de NSU pertencer ao CNPJ e não à aplicação. - O formato de commit documentado carregava sufixo `(spec NNN)`, contra a própria regra de não referenciar documento externo. - Registradas as duas lacunas de gestão de usuários: não há tela no frontend e não há troca da própria senha.
… Prettier Revisão de integridade cruzando o código com README, RUNBOOK, CONTRIBUTING e RELEASE. Manifestação durante bloqueio da SEFAZ `Impedimento` conferia empresa inativa, ausência de certificado e certificado vencido, mas não o bloqueio — `EstaBloqueada` existia em um único ponto do código, o handler de sincronização. Com o CNPJ bloqueado por consumo indevido a sincronização parava e esperava, enquanto o ciclo de manifestação seguia batendo na mesma empresa de meia em meia hora. A cota é do CNPJ e a SEFAZ conta distribuição e eventos na mesma conta: o ciclo renovava justamente o bloqueio que se estava esperando expirar. Lote de eventos sem desfecho Quando a SEFAZ processa a remessa mas não devolve retorno para nenhuma chave, elas seguem pendentes — e a volta seguinte do laço buscava o mesmo lote e o reenviava, até o teto. Remessas idênticas gastando cota sem mudar estado. Agora o laço encerra e sinaliza que restam pendentes; quem retoma é o ciclo seguinte. Promoção para XML completo encerra a pendência de ciência A ciência serve para destravar o XML completo; com ele em mãos não sobra o que destravar. Manter o documento pendente fazia o job reenviar o evento 210210 de notas já resolvidas. Ciência registrada ou recusada preserva o próprio desfecho — são histórico. As consultas de pendentes ganharam `!PossuiXml` como rede de segurança, e uma migração corrigiu as linhas já gravadas: 86 dos 98 documentos em base estavam nesse estado. Fim de linha do frontend `prettier --check` falhava na máquina do desenvolvedor e passava no CI. `* text=auto` com `core.autocrlf=true` grava CRLF no checkout Windows, o Prettier valida fim de linha e usa LF, e o `.editorconfig` de `src/econtabil-web` — que é `root = true` — não declarava `end_of_line`. Rodar `--write` resolvia até o próximo checkout desfazer. `*.ts`, `*.html`, `*.scss` e `*.css` passam a `eol=lf` no `.gitattributes` e o `.editorconfig` do web declara o mesmo LF. Esses tipos só existem em `src/econtabil-web`. Relógio no alerta de certificados `ObterVencendoEmAteAsync` calculava o limite com `DateTime.UtcNow` sob um comentário que prometia controle do relógio nos testes — que ele não dava. Passa a receber `TimeProvider`, e o teste adianta o relógio para exercitar a borda da janela de vencimento. Documentação - `CONTRIBUTING.md` afirmava que o CI roda o mesmo conjunto do PR, omitindo a conferência do Prettier — a que mais escapa, por rodar fora do `ng build`. - `RELEASE.md` e `RUNBOOK.md` apontavam para specs que não são versionadas. A coluna passa a dizer o que cada pendência custa ao operador, sem depender de arquivo externo. - `README.md` listava o teste contra a SEFAZ de produção como pendência principal; ele já foi feito. Fica registrada a pendência real, a manifestação, e a semântica do ponteiro de NSU pertencer ao CNPJ e não à aplicação. - O formato de commit documentado carregava sufixo `(spec NNN)`, contra a própria regra de não referenciar documento externo. - Registradas as duas lacunas de gestão de usuários: não há tela no frontend e não há troca da própria senha.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.