Dando continuidade a implementação do recurso de PDV Offline no Sistema Yzidro, foi feita a adequação do modelo de Venda Frente de Caixa para funcionar como um PDV Offline.
Clique nos links abaixo para visualizar cada etapa do Recurso.
De início, foram feitas algumas melhorias envolvendo o PDV Offline como um todo. Segue as alterações realizadas:
Agora será possível fazer o Cadastro de Impressora Não Fiscal diretamente no Terminal Offline. Esse menu ficará habilitado facilitando a configuração de periféricos, conforme exemplo na Imagem 01.
Imagem 01: Cadastro da Impressora Não Fiscal no caixa Offline.
Os Cadastros/Alterações feitas no menu de Impressora Não Fiscal NÃO serão sincronizadas para o Yzidro Principal. Essas informações ficarão registradas somente no terminal offline.
No Cadastro do Caixa, ao definir o tipo do Caixa como Offline, será feita uma validação conferindo o status do caixa em questão. Caso ele esteja com o Status ABERTO, não será possível defini-lo como Offline, sendo necessário realizar o Fechamento desse Caixa antes de alterá-lo, conforme exemplo na Imagem 02.
Imagem 02: Alerta para a validação do status do caixa.
Agora, para acessar a tela de Configurações PDV Local na tela de Login, além do atalho “Ctrl+Shift+O”, também será possível acessá-la clicando na opção “Solicitar Acesso > Configurar PDV Local”. Essa alteração visa facilitar o acesso à instalação do recurso, conforme Imagem 03.
Imagem 03: Atalho para a tela de configuração do PDV Offline.
Ao clicar no ícone de Status no Terminal Offline, será exibida uma notificação informando a Data / Hora da última sincronização de Venda realizada do Terminal Offline para o Yzidro Principal, conforme Imagem 04.
Imagem 04: Última sinc. de venda do PDV Offline para o Yzidro Principal.
Na tela de Venda no Modelo Frente de Caixa, tiveram algumas mudanças quando for um PDV Offline, a opção Lançamentos a Receber ficará desabilitada. O Controle do Contas a Receber só poderá ser realizado através do Yzidro Principal, conforme exemplo da Imagem 05.
Imagem 05: Lançamentos à Receber desabilitado no PDV Offline.
Outra tratativa adicionada no terminal offline é a questão de impedir a Alteração/Exclusão de pedidos de Venda que já iniciaram a sincronização para o Yzidro Principal ou que já estão de fato sincronizadas. Essas ações só poderão acontecer no Yzidro Principal, conforme exemplo da Imagem 06.
Imagem 06: Validação para Alterar/Excluir venda já sincronizada no Yzidro Principal.
Para a opção de Empréstimo / Consignação, foram desenvolvidas ferramentas para gerenciar o controle de bloqueio / desbloqueio do saldo consignado, semelhante ao que já ocorre com o crédito. Além disso, o menu ficará liberado no terminal offline caso ele também esteja no Yzidro Principal.
Ao carregar um cliente na tela de vendas no Frente de Caixa, todo o Saldo Consignado do cliente em questão ficará bloqueado pelo terminal. Caso os outros terminais tentem acessar o saldo consignado deste cliente, ele estará zerado.
O mesmo ocorrerá na tela de Empréstimo/Consignação. Ao carregar um cliente, caso seja um Retorno, assim que ele for carregado, todo seu saldo consignado será bloqueado pelo terminal que o inseriu.
Assim que finalizar a Venda/Empréstimo, todo o saldo consignado que não foi utilizado será desbloqueado e poderá ser acessado por outros terminais.
Atenção: O processo de Remessa/Consignação não pode ser iniciado pela base Master e ser finalizado(Retorno) pelo Terminal Offline, tendo em vista que a tabela Andamento Estoque não é sincronizada da base Master para os terminais Offline.
Caso essa recomendação não seja respeitada, o seguinte erro será exibido ao tentar realizar o Retorno no Terminal Offline:
“Não é possível retornar o item XXX, pois no momento em que foi inserido, não era controlado por grade!”
Será possível realizar a Remessa/Consignação pelo Terminal Offline e finalizar(Retorno) pela base Master. Assim como também será possível realizar todo o processo pelo Terminal Offline.
Se uma Remessa/Consignação for inicializada pela base Master, ela deverá ser finalizada na base Master.
Para facilitar o gerenciamento do Status do Saldo Consignado, foi criada a aba “Itens em Empréstimo” no Cadastro de Clientes. Essa aba ficará visível caso a Empresa possua licença de PDV Offline liberado e quando o menu Empréstimo / Consignação também estiver habilitado, Imagem 07.
Imagem 07: Nova aba na tela de Cadastro de Clientes.
Caso um Item esteja com o Status Bloqueado, ao dar um duplo clique no ícone de status na grid, será exibido informações do Terminal que bloqueou o item em questão, conforme exemplo da Imagem 08.
Imagem 08: Informações a respeito de bloqueio de saldo consignado.
Para fazer o desbloqueio dos Itens em Empréstimo, há a opção do botão Desbloquear Itens, Imagem 09. Porém é necessário que o usuário tenha autorização para realizá-lo, por isso foi criada a permissão especial “Liberar Item de Empréstimo Bloqueado utilizado no Terminal Caixa”, disponível no módulo de Vendas, Imagem 10.
Imagem 09: Solicitação de Permissão ao tentar desbloquear saldo consignado
Imagem 10: Nova permissão criada no módulo de Vendas.
Diferentemente das Vendas, os Empréstimos poderão sofrer alteração mesmo depois de sincronizados para o Yzidro Principal, devido a sua estrutura ser mais simples e possuir menos dependências do que a operação de Venda. A única limitação será na alteração da quantidade em itens que já estão inseridos no Empréstimo. Nesse caso, para realizar alteração, será necessário excluir o item em questão e fazer a inserção posteriormente, contendo as alterações desejadas, conforme exemplo Imagem 11.
Imagem 11: Validação impedindo alteração a nível de item em Empréstimos, no Terminal Offline
A lógica de Bloqueio / Desbloqueio de Crédito manterá a mesma estrutura já existente no modelo de Venda Checkout.
Ao abrir a tela de Finalização de Venda no Frente de Caixa, será listado o saldo de crédito do cliente, ao mesmo tempo que ele será bloqueado pelo terminal que esteja utilizando-o. Ao finalizar a venda, os créditos não utilizados serão desbloqueados.
O gerenciamento de Bloqueio / Desbloqueio de crédito pode ser feito no Yzidro Principal, na tela de Contas a Receber.
No recurso de PDV Offline, existem algumas informações que estão diretamente ligadas ao pedido de venda, através da estruturas no Banco de Dados. Quando for feita uma exclusão destes registros que estão diretamente ligados à venda, a exclusão não será replicada entre os terminais, com o intuito de evitar problemas na sincronização de dados.
Dados que possuem vínculo direto com a venda e não terão a exclusão replicada entre terminais:
Caso queira excluir essas informações, elas terão que ser apagadas diretamente em cada terminal desejado, seja ele o Master ou Offline.
IMPORTANTE: Toda Movimentação de Estoque realizada em terminais offline será processada no banco Master (Yzidro Principal) através do YzServiço, independente do modelo de venda! Além disso, a validação de estoque negativo será ignorada neste caso.
O mecanismo funcionará da seguinte forma: O YzOffline irá verificar, através da sua Thread de Sincronização de Vendas para o Yzidro Principal, os produtos que foram vendidos. Assim que todas as vendas / empréstimos contendo um determinado produto forem sincronizadas para o Yzidro principal, o YzOffline irá enviar uma requisição de atualização de estoque para o YzServiço para o produto em questão. O YzServiço irá processar o estoque no banco Master e essa informação será devolvida para todos os terminais offline, por meio da Thread de Sincronização de Dados para PDV Offline. É importante que a thread de “Requisição” esteja habilitada no YzServiço para que ele faça a movimentação de estoque em vendas realizadas por terminais offline utilizando o Frente de Caixa!
ATENÇÃO: Com o funcionamento de estoque descrito anteriormente, um produto que estiver em uma venda / empréstimo em digitação bloqueará o envio de requisição de atualização de estoque deste produto em outras vendas. É necessário que TODAS das vendas envolvendo o produto estejam finalizadas e sincronizadas para o Yzidro principal para que a requisição de atualização de estoque dele seja enviada para o YzServiço.
IMPORTANTE
Sempre que ocorrer a atualização de Executável / Banco de dados em que está sendo utilizado o recurso do PDV Offline, será necessário reiniciar a API “PostgREST” após atualizar o banco Master. Caso contrário, a API não irá reconhecer novos campos e funções criadas no bancos de dados.