Recebi um chamado para avaliar a situação de uma das lojas do cliente, pois em uma estava aceitando fechar o caixa sem concluir o dav e nas demais não estavam.
A primeira coisa que chequei foi a configuração de “Forçar Conclusão no fechamento de Caixa” e olhei pelo log de usuário se essa opção foi marcada após o dav ter sido feito.
Analisei também se a opção “salvar pedido com caixa fechado“ estava marcada, e analisei se o dav feito foi após a hora de fechamento do caixa.
nesse caso nenhuma das duas situações acima acusaram anormalidade. por tanto foi necessário uma apuração maior, conectei nos dois computares para observar alguma diferença, no que funcionava e no que não bloqueava e observei que a configuração local estava diferente, sendo um utilizando configuração local, e outra configuração do modelo a configuração em si se trata desta:
neste caso foi necessário checar a consulta realizada para bloquear os davs sem conclusão, pois isso irei coloca-la aqui para caso seja necessário conferir.
Esta era a consulta feita antes até a versão 1.90.15, neste caso se trouxer algum registro significa que tem dav para concluir, essa consulta é feita quando a configuração está para identificar a conta na conclusão, sendo assim ele compara a loja configurada como padrão, para obter os davs apenas do modelo onde contem essa loja , porém ai está o erro, pois neste cliente a loja configurado no modelo é a fiscal para importar na nfc-e e no fechamento está a loja gerencial onde realmente entra o dinheiro, observe o comando e as imagens
comando antes da 1.90.15
SELECT
dav.codigo,
dav.codigomodelodav,
dav.DATA
FROM
dav
INNER JOIN modelodav ON modelodav.codigo = dav.codigomodelodav
WHERE
(
dav.concluido = 'Não'
AND modelodav.forcarconclusaocaixa = 'Sim'
AND dav.cancelado = 'Não'
AND modelodav.codigoloja = " & Val(CodigoLoja) & "
AND ( modelodav.gerarfinanceiro = 'Sim' OR modelodav.ConcluirDavSemGerarFaturamento > 0 )
AND dav.DATA <= CURRENT_DATE
comando a partir da 1.90.15
SELECT
dav.codigo,
dav.codigomodelodav,
dav.DATA
FROM
dav
INNER JOIN modelodav ON modelodav.codigo = dav.codigomodelodav
WHERE
(
dav.concluido = 'Não'
AND modelodav.forcarconclusaocaixa = 'Sim'
AND dav.cancelado = 'Não'
AND modelodav.CodigoLojaPadraoDAV = " & Val(CodigoLoja) & "
AND ( modelodav.gerarfinanceiro = 'Sim' OR modelodav.ConcluirDavSemGerarFaturamento > 0 )
AND dav.DATA <= CURRENT_DATE
como as duas lojas acima são diferentes não trás resultado no comando, porém isso foi resolvido agora na versão 1.90.15 onde ele passa a checar a “Loja Padrão DAV”, destacada em amarelo que é a que faz sentido por ser a gerencial,
Uma observação importante para este processo, é o seguinte, caso mesmo tudo configurado certo, ainda esteja conseguindo fechar o caixa sem concluir os davs, observe se existem outros caixas abertos para essa mesma loja, pois via de regra, apenas quando o ultimo caixa da loja for fechado que ele vai checar os davs não concluídos, ou seja:
possuo:
caixa 01
caixa 02
sendo que os dois são para a mesma loja.
se eu fechar o caixa 01 e existir davs pendente para concluir ele vai aceitar, porém se eu fechar o caixa 02 ele irá bloquear pois foi o ultimo caixa que restou para aquela loja.