-
Notifications
You must be signed in to change notification settings - Fork 8
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
[BUG] Prevenir a re-submissao de acao da nota na visualizacao da fatura #160
Labels
technical debt
Necessary refactoring for better maintenance
Comments
andrekutianski
added
the
technical debt
Necessary refactoring for better maintenance
label
Jun 11, 2024
andrekutianski
added a commit
that referenced
this issue
Jun 11, 2024
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
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
Descreva o erro
Após a acao de cancelamento ou reemissao de nota através da visualizacao da fatura na area de administracao do WHMCS, caso o usuário tente atualizar/recarregar a página, a acao é novamente submetida.
Nos casos ocorridos, quando uma reemicao é realizada e a página recarregada em seguida, é gerado uma duplicidade da solicitacao.
Como reproduzir
Etapas para reproduzir o comportamento:
Comportamento esperado
Caso o administrador tente atualizar a página, nao poderá ser realizada nova submissao do comando.
Ambiente e versões:
The text was updated successfully, but these errors were encountered: