You are on page 1of 2

DECLARE @LOCCUR VARCHAR(3)

SET @LOCCUR = '$'


SELECT T0.CardCode AS 'Cod S/N', T0.CardName AS Nombre, T1.[CardFName],
T2.PYMNTGROUP, T1.CREDITLINE ,
'TotalDoc'= (case when DocCur='USD' then (T0.DocTotalFC) else (DocTotal)
end) , T0.DocNum AS 'N/Doc' ,
DOCDATE as 'Fech/Crea',GETDATE() as FechaInforme, T0.NUMATCARD as
Referencia, T0.DOCDUEDATE as 'Fech/Venc.',
DATEDIFF(day, docduedate, getdate()) as Das,
'Saldo Pendiente'= (case when DocCur='USD' then (T0.DocTotalFC-T0.PaidFC)
else (DocTotal-PaidToDate) end) ,
DocCur as Moneda ,'Corriente' = (case when (Doccur=@LOCCUR and getdate() <=
DocDueDate) then (DocTotal-PaidToDate) else (case when getdate() <= DocDueDate
and Doccur='USD' then (DocTotalFC-PaidFC) else 0 end) end) ,
' 0-30' = (case when (T0.Doccur=@LOCCUR and DATEDIFF(day, T0.docduedate,
getdate())BETWEEN 0 and 30) then (T0.DocTotal-T0.PaidToDate) else (case when
DATEDIFF(day, T0.docduedate, getdate())BETWEEN 0 AND 30 and T0.Doccur='USD' then
(T0.DocTotalFC-T0.PaidFC) else 0 end) end) ,
' 31-60' = (case when (DocCur=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=31 and DATEDIFF(day, docduedate, getdate())<=60) then (T0.DocTotalT0.PaidToDate) else (case when DATEDIFF(day, docduedate, getdate())>=31 and
DATEDIFF(day, docduedate , getdate())<=60 and DocCur='USD' then (DocTotalFCPaidFc)else 0 end) end) ,
' 61-90' = (case when (DocCur=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=61 and DATEDIFF(day, docduedate, getdate())<=90) then (T0.DocTotalT0.PaidToDate) else (case when DATEDIFF(day, docduedate, getdate())>=61 and
DATEDIFF(day, docduedate, getdate())<=90 and DocCur='USD' then (DocTotalFCPaidFC) else 0 end) end),
'90+' = (case when (DocCur=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=90) then (T0.DocTotal-T0.PaidToDate) else (case when (DocCur='USD'
and DATEDIFF(day, docduedate, getdate())>=90) then (T0.DocTotalFC-T0.PaidFC) else
0 end) end),
'Factura' as 'Docto'
FROM OINV T0
INNER JOIN OCRD T1 ON T0.CARDCODE= T1.CARDCODE
INNER JOIN OCTG T2 ON T1.GROUPNUM = T2.GROUPNUM
WHERE (T0.DocTotal-T0.PaidToDate > 0 or DocTotalFC-PaidFC > 0)
union all
SELECT T0.CardCode AS Cliente, T0.CardName AS Nombre, T1.[CardFName],
T2.PYMNTGROUP, T1.CREDITLINE ,
'TotalDoc'= (case when DocCurr='USD' then (T0.DocTotalFC) else (DocTotal)
end) , T0.DocNum AS NoDocto,
DOCDATE as FechaDocto,GETDATE() as FechaInforme, T0.CounterRef as
Referencia, T0.DOCDUEDATE as Vencimiento,
DATEDIFF(day, docduedate, getdate()) as DasVencimiento,

'Saldo'= (case when DocCurr='USD' then (T0.NoDocSumFC * -1) else


(T0.NoDocSum * -1) end) , DocCurr as Moneda ,
'Por Vencer' = (case when (DocCurr=@LOCCUR and getdate() <= DocDueDate) then
(T0.NoDocSum) else (case when getdate() <= DocDueDate and DocCurr='USD' then
(T0.NoDocSumFC * -1) else 0 end) end) ,
' 0-30' = (case when (DocCurr=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=0 and DATEDIFF (day, docduedate, getdate())<=30) then (T0.NoDocSum *
-1) else (case when DATEDIFF(day, docduedate, getdate())>=0 and DATEDIFF(day,
docduedate, getdate())<=30 and DocCurr='USD' then (T0.NoDocSumFC * -1) else 0
end) end) ,
' 31-60' = (case when (DocCurr=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=31 and DATEDIFF(day, docduedate, getdate())<=60) then (T0.NoDocSum *
-1) else (case when DATEDIFF(day, docduedate, getdate())>=31 and DATEDIFF(day,
docduedate , getdate())<=60 and DocCurr='USD' then (T0.NoDocSumFC * -1)else 0
end) end) ,
' 61-90' = (case when (DocCurr=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=61 and DATEDIFF(day, docduedate, getdate())<=90) then (T0.NoDocSum *
-1) else (case when DATEDIFF(day, docduedate, getdate())>=61 and DATEDIFF(day,
docduedate, getdate())<=90 and DocCurr='USD' then (T0.NoDocSumFC * -1) else 0
end) end),
'90+' = (case when (DocCurr=@LOCCUR and DATEDIFF(day, docduedate,
getdate())>=90) then (T0.NoDocSum * -1) else (case when (DocCurr='USD' and
DATEDIFF(day, docduedate, getdate())>=90) then (T0.NoDocSumFC * -1) else 0 end)
end),
'Cobranza' as 'Docto'
FROM ORCT T0
INNER JOIN OCRD T1 ON T0.CARDCODE= T1.CARDCODE
INNER JOIN OCTG T2 ON T1.GROUPNUM = T2.GROUPNUM
WHERE (T0.NoDocSum > 0 or T0.NoDocSumFC > 0) AND T0.[DocType] = 'C' AND
T0.OpenBal > 0 AND T0.[JrnlMemo] not like '%%Cancelado%%'
ORDER BY T0.CardCode, T0.DocDate

Cooriente = (

case
when (Doccur=@LOCCUR and getdate() <= DocDueDate) then (DocTotal-PaidToDate)
else (
case
when getdate() <= DocDueDate and Doccur='USD' then (DocTotalFC-PaidFC)
else 0 end) end)

You might also like