Quando um atendimento é iniciado no TOTVS Varejo PDV Omni uma pré venda é gerada e armazenada.
A pré venda precisa passar por algumas regras para que seja realizada a subida, as regras são
Quando todas as regras para envio da pré venda forem seguidas, o Cliente UP do POSH está apto para resgatar a pré venda para ser enviada a ServiçoComercial do POSH.
No momento da subida da pré venda, o UP irá gerar um arquivo com algumas propriedades distintas, que chamamos de capa, e um campo chamado "conteudo". Neste campo é enviada a pré venda completa no formato base64.
Ao enviar a pré venda para o Serviço Comercial ela ficará disponível para resgate da Retaguarda através do endpoint de Get PrevendaMensagens. Já no banco do PDV Omni ela ira ficar com o status 1 (processado)
O tempo que o Up irá buscar novas pré vendas é definido pelo parâmetro número 26 cadastrado no Serviço Controle.
Quando o Up não consegue finalizar o envio da pré venda alguns cenários de falha são implementados
Caso o Up não consiga realizar a requisição ao Serviço Comercial e a requisição seja retornada com erro, o Up irá verificar se isso ocorreu devido a uma falta de internet.
Para isso o Up faz um outra requisição a api, dessa vez no endpoint api/monitoramento/validations no Serviço Controle.
Caso essa requisição ao Serviço de Controle seja executada com êxito, asseguramos que a pré venda não terminou de ser enviado por queda de conexão, sendo assim atribuímos 99 (Erro ao integrar) a pré venda.
Caso a requisição ao Serviço Controle também devolva erro entendemos que é problema com a conexão de internet então atribuímos 98(Sem internet) a pré venda.
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
Caso o Up encontre algum problema durante o envio da pré venda temos alguns cenários onde a pré venda será reprocessada.
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 cridado no PDVSync.Client.API para que as pré vendas sejam alteradas para o status 0 (Pendente envio)e no próximo instante de busca de pré venda, caso houver pré vendas elas serão enviadas ao PDVSync.Core.Comercial
Os status que serão reprocessados são
Abaixo temos os status relacionados entre a pré venda que está no banco do PDV omni e a que está no banco do Serviço Comercial.
Status na tabela PreVendaMensagem (SyncServer) | Status na tabela pre_venda do PDV |
---|---|
-- | 0 - Pendente envio para o Sync |
0 - Pendente consumo pela retaguarda | -- |
1 - Consumido pela retaguarda | -- |
2 - Consumido com erro pela retaguarda | -- |
3 - Reprocessar | -- |
4 - Integrado com sucesso pela retaguarda | 1 - Disponibilizado com sucesso |
-- | 98 - Sem Internet |
-- | 99 - Erro ao tentar integrar no Sync |