Ao tentar realizar a redução do caixa, a mensagem abaixo é exibida.
Primeiro, precisamos verificar nos logs o que ocorreu durante o fechamento do caixa, e para isso vamos acessar o PDV no qual não conseguimos fechar o caixa e acessar a pasta dos logs em C:\DegustWin\Logs\ano\mês\dia\degust.
Neste log vamos verificar o que ocorreu durante a tentativa do fechamento do caixa.
Segue exemplo abaixo:
Aqui podemos ver qual é a venda que está causando o incidente, uma venda do dia cujo ven_controle = 43.
Observação importantíssima
Vamos abrir o IB Expert e seguir as etapas abaixo:
1- Verificar se existe venda:
Para isso vamos executar o comando abaixo no editor SQL:
select * from venda
where cai_data = '18.04.2023'
and ven_controle = 43
Podemos ver que existe venda, então vamos para o passo 2.
2- Verificar se existe item da venda:
Para isso vamos executar o comando abaixo no editor SQL:
select * from vendaitem
where cai_data = '18.04.2023'
and ven_controle = 43
Podemos ver que a venda possui itens, então não é o que está causando o problema.
Vamos para o passo 3:
3- Verificar se existe recebimento da venda:
Para isso vamos executar o comando SQL abaixo:
select * from vendafinal
where cai_data = '18.04.2023'
and ven_controle = 43
Podemos ver que existe recebimento na venda, portanto não é o que está causando o problema.
Vamos para o passo 4.
4- Verificar se existe nota da venda:
Para isso vamos executar o comando abaixo no editor SQL:
select * from vendanfe
where cai_data = '18.04.2023'
and ven_controle = 43
Podemos ver que a venda possui nota, então não é o que está causando o problema.
Vamos para o passo 5.
5- Verificar se existe vendamesa:
Vamos executar o comando abaixo no editor SQL:
select * from vendamesa
where cai_data = '18.04.2023'
and ven_controle = 43
Podemos ver que nessa tabela não há nenhuma informação, portanto, descobrimos onde está o erro.
Como não temos as informações dos campos, vamos apenas preencher os campos básicos.
Para resolver este erro, vamos preencher os campos com as informações abaixo:
LOJ_CODIGO = 1
CAI_DATA = DATA DO CAIXA
VME_CONTROLE = 999 → Este valor precisa ser único no dia, por isso usamos o valor 999, para ter certeza de que não existe nenhum valor igual.
VEN_CONTROLE = VEN CONTROLE DA VENDA
MES_CODIGO = 1
SDY_CODIGO = 1
Vamos clicar em commit transaction após preenchermos as informações acima nos campos.
Após procedimento, basta tentar realizar a redução do caixa, e o mesmo deve fechar normalmente.
Caso tenha alguma dúvida em alguma parte do processo, segue vídeo com tutorial:
Erro ao pressionar Commit Transaction no IB
Existem cenários onde pode ocorrer erro abaixo ao tentar executar o commit transaction:
Isso pode ocorre por que já existe um valor VME_CONTROLE = 999 na tabela vendamesa do dia (no exemplo abaixo, no dia 22/04/2023). Isso acontece pois a loja pode ter tido problemas para fechar o caixa no dia e o procedimento precisou ser realizado.
Para resolver basta acessar executar o select abaixo:
select * from vendamesa
where cai_data='xx.xx.xxxx' (data no erro).
Podemos ver que hoje o procedimento foi realizado e já existe um valor VME_CONTROLE=999, por isso ao tentar realiza-lo novamente deu erro, pois como mencionado acima no share, o campo VME_CONTROLE precisa ser único na tabela, então para que não ocorra o erro, basta colocar um código diferente do que tem na tabela (998, 997, 996, etc) no momento de inserir as informações no passo 5, pressionar commit transaction novamente e problema não deve ocorrer.