CASO AS VENDAS COM PARCELA ZERO JÁ TENHAM SIDO IDENTIFICADAS, PARA DIMINUIR O TEMPO DE EXECUÇÃO DOS SCRIPTS ABAIXO, PREENCHA O CAMPO "Codigo". CASO NÃO TENHA AS VENDAS EXCLUA A LINHA DO CODIGO ANTES DE RODAR
Ex.:(Venda código 0045; o trecho AND POV_cadPOV.Codigo = 'insira aqui o codigo' ficará AND POV_cadPOV.Codigo = '0045')
1º Passo : EXECUTAR A COLUNA DE UPDATE DA CONSULTA
SELECT
'UPDATE POV_cadPOV SET IdContasReceber = '
+ CAST(cadContasReceber.IdContasReceber AS NVARCHAR)
+ ' WHERE IdContasReceber = 0 AND IdPOV = '
+ CAST(POV_cadPOV.IdPOV AS NVARCHAR) FROM POV_cadPOV
LEFT JOIN POV_cadComposicaoPgto ON POV_cadPOV.IdPOV = POV_cadComposicaoPgto.IdPOV
INNER JOIN cadContasReceber ON cadContasReceber.IdContasReceber = POV_cadPOV.IdContasReceber OR cadContasReceber.Descricao LIKE 'Venda Nº ' + POV_cadPOV.Codigo
INNER JOIN cadVencimentosCR ON cadVencimentosCR.IdContasReceber = cadContasReceber.IdContasReceber
INNER JOIN cadValoresCR ON cadValoresCR.IdVencimentoCR = cadVencimentosCR.IdVencimentoCR
LEFT JOIN cadRecebimentos ON cadValoresCR.IdValorCr = cadRecebimentos.IdValorCR
WHERE POV_cadComposicaoPgto.IdComposicaoPgto IS NULL
AND POV_cadPOV.Estornado = 0 AND POV_cadPOV.Tipo = 3
AND POV_cadPOV.Codigo = 'insira aqui o codigo'
2º Passo: EXECUTAR A COLUNA DE INSERT DA CONSULTA
SELECT
'INSERT INTO POV_cadComposicaoPgto (IdRecebimento, IdPOV, IdFormaPagto, Data, Valor, idCheque, IdValorCR) VALUES( 0, '
+ CAST(POV_cadPOV.IdPOV AS NVARCHAR) + ','
+ ISNULL(
CAST((SELECT IdFormaPagto FROM auxFormaPagto WHERE Descricao = (CASE WHEN CHARINDEX(':',FormaPagamento,0) > 0 THEN (SUBSTRING(FormaPagamento,0, charindex(':',FormaPagamento,0))) ELSE FormaPagamento END)) AS nvarchar(350))
,0) + ','
+ '''' + REPLACE(CAST(CONVERT(DATE,(POV_cadPOV.Data)) AS NVARCHAR), '-', '')+ '''' + ','
+ '''' + CAST(cadValoresCR.Valor AS NVARCHAR)+ '''' +','
+ '''0''' + ','
+ '''' + CAST(cadValoresCR.IdValorCR AS NVARCHAR) + '''' + ')'
FROM POV_cadPOV
LEFT JOIN POV_cadComposicaoPgto ON POV_cadPOV.IdPOV = POV_cadComposicaoPgto.IdPOV
INNER JOIN cadContasReceber ON cadContasReceber.IdContasReceber = POV_cadPOV.IdContasReceber OR cadContasReceber.Descricao LIKE 'Venda Nº ' + POV_cadPOV.Codigo
INNER JOIN cadVencimentosCR ON cadVencimentosCR.IdContasReceber = cadContasReceber.IdContasReceber
INNER JOIN cadValoresCR ON cadValoresCR.IdVencimentoCR = cadVencimentosCR.IdVencimentoCR
LEFT JOIN cadRecebimentos ON cadValoresCR.IdValorCr = cadRecebimentos.IdValorCR
WHERE POV_cadComposicaoPgto.IdComposicaoPgto IS NULL
AND POV_cadPOV.Estornado = 0 AND POV_cadPOV.Tipo = 3
AND POV_cadPOV.Codigo = 'insira aqui o codigo'
------------------------------------------------------
CASO TENHA IdContasReceber = 0 executar seguinte consulta:
SELECT *, 'UPDATE POV_cadPOV SET IdContasReceber = '+ CAST(cadContasReceber.IdContasReceber AS NVARCHAR)+ ' WHERE IdContasReceber = 0 AND IdPOV = ' + CAST(POV_cadPOV.IdPOV AS NVARCHAR)
FROM POV_cadPOV
INNER JOIN cadContasReceber ON cadContasReceber.IdContasReceber = POV_cadPOV.IdContasReceber OR cadContasReceber.Descricao LIKE 'Venda Nº ' + POV_cadPOV.Codigo
WHERE IdPOV IN (SELECT IdPOV FROM POV_cadPOV WHERE IdContasReceber <= 0 AND Tipo = 3 AND Estornado = 0)
-----------------------------------------------------------------------------------------------------
Caso Tenha Composição de Pagamento, verificar se foi Recebido
SELECT *,(SELECT Estornado FROM POV_cadPOV WHERE IdPOV=POV_cadCOmposicaoPgto.IdPOV) as Estornado, (SELECT IdContasReceber FROM POV_cadPOV WHERE IdPOV=POV_cadCOmposicaoPgto.IdPOV) as IdContasReceber FROM POV_cadCOmposicaoPgto
WHERE Convert(date,Data) = '20180203'
AND (SELECT Estornado FROM POV_cadPOV WHERE IdPOV=POV_cadCOmposicaoPgto.IdPOV) = 0
AND IdPOV in (SELECT IdPOV
FROM POV_cadPOV
WHERE IdCOntasReceber NOT IN (
select
IdContaReceber
from cadRecebimentos
WHERE Estornado='false'
AND IdTipoRecebimento=4
AND CONVERT(DATE,DataRec ) = '20180203'
))
As que retornarem não foram recebidas. Deverá entrar na conta, através da consulta de Contas a Receber e receber a conta.