Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Varejo Franquias e Redes

Linha de Produto:PDV Sync
Segmento:

Varejo

Módulo:Client Up
Função:Reprocessar pré venda
País:Brasil
Versão:Versão única
Requisito/Story/Issue (informe o requisito relacionado) :

DVARINT1-9923


02. SITUAÇÃO/REQUISITO

  • Devemos implementar a rotina de reenvio de pré-venda quando ocorrer erro no envio da pré-venda do PDV para o Sync.
  • Caso o registro da pré-venda estiver com status 98 (Pendente envio por falta de conexão com o Server) ou 99 ( Erro ao tentar integrar no Sync), devemos seguir a rotina de reenvio abaixo:
    • Quantidade máxima de envio serão 30 tentativas:
    • Os horário das tentativas são:
      • 9h
      • 12h
      • 15h
      • 18h
      • 20h
    • Nesse momento não serão dado dinâmicos. Os horários estarão fixos no código. 
  • Nos casos que ocorrerem erro relacionado ao status 99, devemos enviar para o log centralizado os dados abaixo:
    • ID do registro no PDV (pk tabela pre_venda)
    • Número pré-venda (numero)
    • Número PDV (numero_pdv)
    • Quantidade de tentativas
    • Data da ultima tentativa
    • Erro
  • Obviamente que não será possível enviar para o log centralizado o status 98, pois não há comunicação com a internet e/ou SyncServer.

03. SOLUÇÃO

Parte 1 - PDVSync.Client.Api

  • Foi criado o endpoint prevenda/reprocessar no PDVSync.Client.Api onde sua responsabilidade é alterar o status da pré venda para que o PDVSync.Client.Up encontre-as.
  • As pré vendas com status de erro seguem os mesmo critérios da subida padrão de pré venda, ou seja, não podem estar em atendimento, contudo, algumas regras a mais são aplicadas para esse fluxo de reprocessamento, sendo essas regras
    • Quantidade de tentativas deve ser menor que 30 tentativas
    • O status da pré venda deve ser 98 (falha de internet ao enviar) ou 99 (Erro ao integrar)
  • Ao atenderem as regras para serem reprocessadas, as pré vendas tem seus status alterado para 0 (disponibilizado para envio)
  • Deve se atentar que este endpoint não faz o envio da pré venda para o server, ele somente altera o status da venda para disponibilizado, deixando para o PDVSync.Client.Up a responsabilidade de subir esta pré venda.
  • No endpoint de GET de pré venda chamado pelo PDVSync.Client.Up  também foi incluída a regra para atender a quantidade de tentativas de no máximo 30 tentativas.

Parte 2 - PDVSync.Client.UP

  • Foi adicionado nas rotinas da pré venda as devidas verificações para que seja feito o reprocessamento em nos tempos estipulados.
  • A verificação de vendas para reprocessar só irá ocorrer uma única vez no horário especificado.
  • Quando chegar o momento de realizar a verificação das pré vendas a serem reprocessadas, o PDVSync.Client.Up irá realizar a chamada ao endpoint criado no PDVSync.Client.API para que as pré vendas sejam alteradas para disponibilizado  e no próximo instante de busca de pré venda, caso houver pré vendas elas seram enviadas ao PDVSync.Core.Comercial
  • Os horários são fixo e estão listados abaixo
    • 9 horas de manhã 
    • Meio dia | 12 horas 
    • 3 horas da tarde | 15 horas
    • 6 horas da tarde | 18  horas
    • 8 horas da noite | 20 horas
  • Foi adicionada a verificação de conexão com a internet
    • Nesta rotina, a ordem de execução é enviar a pré venda e, caso ocorra erro nesse envio, verificamos a conexão e atribuímos o status
      • 98 - caso tenha ocorrido o problema por conexão com o microsserviço Comercial.
      • 99 - caso tenha ocorrido por outro tipo de erro durante o processo.
    • Caso a pré venda suba corretamente o status 1 será atribuído a pré venda.

Documentação: Processo de subida de pré-vendas para o POSH Server