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.