Skip to content

Duplicidade de Lançamento de Caixa ao fazer Recebimento no PDV em sistema SQL

Software: PDV - Softshop Caixa | Grupo: PDV

Solução

IMPORTANTE: Esse FAQ foi criado para normalizar o SOFTSHOP SQL (com versão inferior a 8.16.2) para os requisitos da versão 8.7.4 ou superior do PDV. Essa ação corrige a duplicidade de lançamento de Caixa ao fazer Recebimentos no PDV.

MOTIVO: O PDV com versão inferior a 8.7.4 não preenche o campo [contas a pagar2].Sequencia e o campo [contas a receber].OrigemBaixa.


  1. Alterar o campo "BancoVersao" na tabela Empresa para 43, caso esteja menor;

  2. Criar o campo "OrigemBaixa" na tabela Contas a receber com o seguinte padrão: Tipo: TEXTO | Tamanho: 30;

  3. Adicionar o campo "OrigemBaixa" na view "A_CAIXA_RECEBER";

  4. Usar o script abaixo para recriar a trigger "TR_Receber_Update_DeletarLancamentosDasContas", para concluir fazer um teste de recebimento no PDV:

--INÍCIO--

/****** Object: Trigger [TR_Receber_Update_DeletarLancamentosDasContas] Script Date: 22/07/2020 10:51:47 ******/

DROP TRIGGER [dbo].[TR_Receber_Update_DeletarLancamentosDasContas]

GO

/****** Object: Trigger [dbo].[TR_Receber_Update_DeletarLancamentosDasContas] Script Date: 22/07/2020 10:51:47 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TRIGGER [dbo].[TR_Receber_Update_DeletarLancamentosDasContas] /* NOME DA TRIGGER/GATILHO */

ON [dbo].[contas a receber] /* NOME DA TABELA */

FOR UPDATE /* NOME DA AÇÃO - DELETE, INSERT OU UPDATE */

AS

DECLARE @Registro AS INT;

DECLARE @ContaOld AS VARCHAR(80);

DECLARE @Conta AS VARCHAR(80);

DECLARE @DataPag AS datetime;

SELECT @ContaOld=[Conta] FROM deleted;

SELECT @Conta=[Conta] FROM inserted;

SELECT @DataPag=[DataPag] FROM inserted;

SELECT @Registro=[Registro] FROM deleted;

--- Deletar Lançamentos de Caixa/Banco - Início ---

IF UPDATE(Conta) OR UPDATE([DataPag])

BEGIN

SET NOCOUNT ON;

IF @ContaOld ='CAIXA'

DELETE FROM [Contas a pagar2] WHERE [Contas a pagar2].Sequencia=@Registro AND SerieECF is NULL

ELSE

DELETE FROM [registro] WHERE [registro].ChaveaReceber=@Registro

--- Deletar Lançamentos de Caixa/Banco - Fim ---

--- Inserir Lançamentos de Caixa/Banco - Início ---

--- Conta = Caixa

IF @Conta ='CAIXA' AND @DataPag IS NOT NULL

INSERT INTO [contas a pagar2] ( Sequencia, LojaOrigem, Tipo, [Data de Pagamento], Histórico, [Valor Pago], Lacrar, ChaveConciliacao, Usuario)

SELECT [contas a receber].Registro, [contas a receber].LojaOrigem, [contas a receber].Pagto2, [contas a receber].DataPag AS DataPagamento, CONCAT([cadastro de clientes].[Nome do Cliente], ' - Pedido: ', cast([bloquete] as varchar(10)), ' - NF: ', cast([Nota Fiscal] as varchar(10))) AS Historico, [contas a receber].[Valor Pago], 1 AS Lacrar, [contas a receber].ChaveConciliacao, (SELECT [Código do Vendedor] FROM [Cadastro de Vendedores] WHERE [Nome] LIKE [contas a receber].Baixa_Usuario)

FROM [Cadastro de Clientes]

INNER JOIN [contas a receber] ON [Cadastro de Clientes].[Código do Cliente] = [contas a receber].[Código do Cliente]

LEFT JOIN [Contas a pagar2] ON [contas a receber].Registro = [Contas a pagar2].Sequencia

WHERE [contas a receber].Registro=@Registro AND [Contas a pagar2].Sequencia IS NULL

AND [contas a receber].OrigemBaixa<>'PDV'

--- Conta <> Caixa

IF @Conta <>'CAIXA' AND @DataPag IS NOT NULL

INSERT INTO registro ( ChaveaReceber, LojaOrigem, Histórico, Datas, Valor, [Tipo Doc], Conta, [D/C], Compensado, ChaveConciliacao)

SELECT [contas a receber].Registro, [contas a receber].LojaOrigem, CONCAT([cadastro de clientes].[Nome do Cliente], ' - Pedido: ', cast([bloquete] as varchar(10)), ' - NF: ', cast([Nota Fiscal] as varchar(10))) AS Historico, [contas a receber].DataPag AS Datas, [contas a receber].[Valor Pago], [contas a receber].Pagto2, [contas a receber].Conta, 'C' AS [D/C], 1 AS Compensado, [contas a receber].ChaveConciliacao

FROM [Cadastro de Clientes] INNER JOIN [contas a receber] ON [Cadastro de Clientes].[Código do Cliente] = [contas a receber].[Código do Cliente]

WHERE Registro=@Registro

--- Inserir Lançamentos de Caixa/Banco - Fim ---

END

GO

--FIM--


Tags: caixa, duplicidade, sql, recebimento, pdv

Documentação de Testes