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

Melhorar registro de logs #55

Closed
luiznfeio opened this issue Jul 8, 2021 · 1 comment
Closed

Melhorar registro de logs #55

luiznfeio opened this issue Jul 8, 2021 · 1 comment
Assignees
Labels
technical debt Necessary refactoring for better maintenance
Milestone

Comments

@luiznfeio
Copy link
Contributor

luiznfeio commented Jul 8, 2021

Hoje os logs seguem a linha de realizar prints/dumps de variáveis.

Precisamos de logs com mais informações do passo / fluxo que está sendo realizado no momento, além de torna-lo mais amigável para realizarmos possíveis análises de problemas técnicos.

Acredito que podemos manter os logs atuais, mas renomeando-os para o novo nome do módulo descrito na issue de rebranding #9 .

Algumas sugestões:

  1. No arquivo callback.php
  • Logo no início do arquivo, logar o corpo do json recebido
    logModuleCall('nfeio_serviceinvoice', 'callback_received', $post, '', '', '')
  • Caso não encontre a nota na tabela
    logModuleCall('nfeio_serviceinvoice', 'callback_service_invoice_not_found', $post['id'], '', 'ERROR', '')
  • Log do salvamento da informação no banco de dados (mudança de status)
  1. No fluxo de emissão da nota
  • Log informando se foi uma emissão manual, automática na geração da fatura, ou automática no pagamento da fatura
  • Log informando o id do usuário que fez a emissão manual (caso seja)
  • Log do corpo da requisição que será feita à API da NFE.io
  • Log do HTTP status code + corpo da resposta da chamada feita à API da NFE.io
  • Log do salvamento da informação no banco de dados
  1. No cancelamento feito por parte do cliente
  • Log informando o id do usuário que fez o cancelamento manual
  • Log do corpo da requisição que será feita à API da NFE.io
  • Log do HTTP status code + corpo da resposta da chamada feita à API da NFE.io
  • Log do salvamento da informação no banco de dados
  1. Quaisquer outras chamadas à API da NFE.io (ex.: get de companies, etc.)
  • Log do corpo da requisição que será feita à API da NFE.io
  • Log do HTTP status code + corpo da resposta da chamada feita à API da NFE.io
@luiznfeio luiznfeio added this to the Melhorias técnicas (Refactoring) milestone Jul 8, 2021
@luiznfeio luiznfeio added the technical debt Necessary refactoring for better maintenance label Jul 8, 2021
@souzadavi
Copy link

Olá @luizdalciconfeio por favor poderia detalhar como deseja o log? Crie um arquivo de texto de exemplo de como deseja o log.

@luiznfeio luiznfeio modified the milestones: Melhorias técnicas (Refactoring), Refactoring Aug 26, 2021
@luiznfeio luiznfeio changed the title Melhoria nos logs Melhorar registro de logs Aug 26, 2021
@luiznfeio luiznfeio added enhancement New feature or request and removed technical debt Necessary refactoring for better maintenance labels Aug 26, 2021
@andrekutianski andrekutianski added the v2 Questões relacionadas a versão 2.x do módulo label Jan 26, 2022
@andrekutianski andrekutianski self-assigned this Jan 26, 2022
andrekutianski added a commit that referenced this issue Apr 6, 2022
Inserido novos registros de logs e atualizado os existentes para melhor compreensão dos retornos realizado pelo webhook da API NFE.io

refs: #55 #116
andrekutianski added a commit that referenced this issue Apr 11, 2024
…55

O commit inclui atualizações nas chamadas de registro para fornecer informações mais precisas sobre o comportamento do aplicativo. Também melhora o tratamento de erros em vários locais para tornar o aplicativo mais robusto e mais fácil de depurar quando algo dá errado. As alterações de registro garantem que cenários de falha importantes sejam registrados corretamente para solução de problemas futuros.
andrekutianski added a commit that referenced this issue Apr 11, 2024
As modificações implementadas visam melhorar o manejo de erros ao emitir notas fiscais. Agora, quando os dados do cliente retornarem algum erro, o status da NF será atualizado e a emissão será interrompida para evitar inconsistências. Além disso, o código de tratamento do CEP e do nome do cliente foi refinado para aumentar a precisão e a robustez da operação.

ref: #55
@andrekutianski andrekutianski added technical debt Necessary refactoring for better maintenance and removed enhancement New feature or request v2 Questões relacionadas a versão 2.x do módulo labels Apr 26, 2024
luiznfeio added a commit that referenced this issue Jun 13, 2024
* refact: atualiza chamadas de registro e melhora o tratamento de erros #55

O commit inclui atualizações nas chamadas de registro para fornecer informações mais precisas sobre o comportamento do aplicativo. Também melhora o tratamento de erros em vários locais para tornar o aplicativo mais robusto e mais fácil de depurar quando algo dá errado. As alterações de registro garantem que cenários de falha importantes sejam registrados corretamente para solução de problemas futuros.

* feat: adiciona classe de validações para CPF e CNPJ

Essa atualização inclui uma nova classe de auxílio `Validations` no módulo `NFEioServiceInvoices`. Essa classe contém métodos para validar CPFs e CNPJs, conforme regras de verificação do Brasil, garantindo a integridade dos dados tratados em nossos serviços.

* refact: refatora e melhora validações na função gnfe_customer

O código foi refatorado na função gnfe_customer para melhorar as validações de CPF e CNPJ. Foram adicionadas novas condições de validação de CPF e CNPJ utilizando um novo helper de validações. Foi reformulado o retorno dos dados de CPF e CNPJ validados, adicionando o nome e tipo de documento conforme a validação. Melhorias extras também foram implementadas para validar e lidar com a inscrição municipal do cliente.

* refact: atualiza tratamento de erros na emissão de NF

As modificações implementadas visam melhorar o manejo de erros ao emitir notas fiscais. Agora, quando os dados do cliente retornarem algum erro, o status da NF será atualizado e a emissão será interrompida para evitar inconsistências. Além disso, o código de tratamento do CEP e do nome do cliente foi refinado para aumentar a precisão e a robustez da operação.

ref: #55

* style: corrige formatação no arquivo Validations.php PSR12

* refact: refatora tratamento de status ao cancelar nota

Esta atualização refatora a manipulação do status da nota quando é realizada cancelamento para atender a estrutura atual de retorno da API de cancelamento. Também a função updateLocalNfeStatus foi atualizada para aceitar um parâmetro adicional para o status do fluxo. Além disso, foi removido trechos de codigos comentados.

* feat: adiciona validação e manipulação de webhook (hmac)

Foi adicionado um novo método de validação de webhook na classe de validação e uma nova manipulação de webhook no arquivo callback. Agora, é possível verificar a assinatura do webhook e certificar-se de que é de uma fonte confiável antes de processá-lo. Também foi melhorado o tratamento de erros e códigos de respostas.

* chore: adiciona extensão JSON às dependências do composer

* feat: adiciona métodos para atualizar status de Notas Fiscais

Foram implementados dois novos métodos no repositório ServiceInvoices: `updateNfStatusByExternalId` e `updateNfStatusByNfeId`. Esses métodos permitem atualizar o status e o flow status de uma Nota Fiscal, seja pelo ID externo da mesma ou pelo seu próprio ID. No caso de erro, registra-se um log detalhado. Estes novos métodos visam substituir as operações no banco de dados realizada por funções legadas.

* refact: atualiza métodos para gerir status de NF

Os métodos `updateLocalNfeStatus` e `updateLocalNfeStatusByExternalId` foram atualizados para melhorar o controle de erros e a consistência do código. Foram adicionados tratamentos de exceções e logs para rastrear operações. Além disso, o tipo de retorno foi ajustado para booleano a fim de garantir uma melhor compreensão do status da operação.

* Adiciona funções de atualização e modal de confirmação para ações

Este commit adiciona uma nova função no módulo para atualizar o status de uma nota fiscal. Agora é possível buscar o status mais recente de uma nota na API em caso de falha no sincronismo dessa informação. Também foi refatorado os botoes de acoes para exibir um modal de confirmação antes de realizar a ação.

* fix: corrige resposta para callback de webhook

Este commit implementa um workaround no arquivo callback.php que retorna um status code 200 quando a requisição contém uma query que começa com 'echo'. Essa solução visa atender a verificação do webhook.

* fix: corrige propriedades de colunas de timestamp

Esta atualização modifica como as colunas de registro de data e hora de criação e atualização são manipuladas no módulo NFEioServiceInvoices. Agora, as colunas 'created_at' e 'updated_at' são gerenciadas automaticamente pelo banco de dados, evitando a necessidade de atualizá-las manualmente no código. Além disso, foi implementada uma migração para atualizar as colunas em questão nas tabelas existentes.

ref: #156

* refact: refatora código para criação de tabelas

Este commit refatora o método de criação das colunas de timestamp, a lógica inicial utilizava modificadores não compativeis com a versao atual do Capsule utilizado pelo WHMCS.

ref: #156

* fix: atualiza nomes de campos no repositorio ProductCode

apos a alteracao dos nomes das colunas para timestamp restou atualizar a referencia em $fieldDeclaration.

ref: #156

* fix: remove campos de data de NFEio/Nfe.php

Os campos 'created_at' e 'updated_at' foram removidos de buildItemsToTransmit como parte da refatoracao dos timestamps.

ref: #156

* feat: registra resposta de callback flowMessage e exibe na interface do usuário

Inclui a mensagem do fluxo de emissão existente na resposta do webhook na interface do usuário para permitir maior clareza em relação ao status do processo. Agora, caso o fluxo apresente um problema, a mensagem com os detalhes do motivo será exibida junto às informações da nota. Com isso, será possível compreender melhor o motivo da falha, além de permitir a exibição de condições como quando o prestador possuir pendências junto a prefeitura como o caso de notificações pendentes de ciência no DTE que podem impedir a emissão das notas.

Além disso, foram realizadas alterações na interface do usuário para melhorar a visualização de informações.

* feat: adiciona coluna de condições na tabela de notas

adicionado exibicao de mensagem do fluxo na visualizacao da fatura.

* Delete case sensitive unused file (duplicated) (#157)

* style: remocao de codigo comentado

* refact: #156 refatora propriedades de colunas de timestamp

Este commit refatora as propriedades das colunas de timestamp para o controle manual dos valores. Isso foi necessario para garantir interoperabilidade entre bancos em MariaDB e MySQL devido as diferentes formas na tratativa do valor para timestamps, o que poderia levar a inconsistencias do registro dependendo das definicoes de fuso horario do banco e PHP.

ref: #156

* fix(callback): corrige verificacao de cabecalho para assinatura

Este commit implementa uma verificacao estendida dos cabecalhos para verificar o valor da assinatura do webhook. Esta correcao foi necessaria devido a possibilidade de alguns servidores web ou load balancers reescreverem os cabecalhos e podendo levar a falha na validacao.

* refact: altera acoes da nota na visualizacao da fatura

Este commit altera o comportamento das acoes de cancelamento e reemissao da nota na visualizacao da fatura para prevenir a re-submissao da acao quando administrador tentar atualizar a pagina apos envio do POST com o comando.

ref: #160

* chore(dependencies): atualiza dependencias do projeto

* chore(dependencies): atualiza dependencias do projeto

---------

Co-authored-by: Luiz NFE.io <74252574+luiznfeio@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
technical debt Necessary refactoring for better maintenance
Projects
None yet
Development

No branches or pull requests

3 participants