You are on page 1of 8

/* SELECT T0."U_SYP_FECFACT",T0."U_SYP_FECFACT",T0.

"U_SYP_ESTADO" FROM
"@SYP_FACTLOG" T0 */
DECLARE FechaIni timestamp;
DECLARE FechaFin timestamp;
DECLARE Estado nvarchar(30);
FechaIni := /* T0."U_SYP_FECFACT" */ '[%0]';
FechaFin := /* T0."U_SYP_FECFACT" */ '[%1]';
Estado := /* T0."U_SYP_ESTADO" */ '[%2]';

/* SELECT T0."DocDate",T0."DocDate" FROM OPRQ T0 */


Declare FecIni timestamp;
Declare FecFin timestamp;
FecIni := /* T0."DocDate" */ '[%1]';
FecFin := /* T0."DocDate" */ '[%2]';

/* SELECT T0."CardCode",T0."DocDueDate",T0."DocDate",T0."DocStatus FROM OPCH T0 */


DECLARE Codigo nvarchar(30);
DECLARE FechaIni timestamp;
DECLARE FechaFin timestamp;
DECLARE Estado nvarchar(10);
Codigo := /* T0."CardCode" */ '[%1]';
FechaIni := /* T0."DocDate" */ '[%2]';
FechaFin := /* T0."DocDate" */ '[%3]';
Estado := /* T0."DocStatus" */ '[%4]';

DECLARE FechaSI timestamp;

SELECT TOP 1 "DocDate" INTO FechaSI FROM OPCH;


SELECT (CASE WHEN IFNULL(:FechaIni ,'')='' THEN FechaSI ELSE :FechaIni END) INTO
FechaIni FROM DUMMY;
SELECT (CASE WHEN IFNULL(:FechaFin,'')='' THEN CURRENT_DATE ELSE :FechaFin END)
INTO FechaFin FROM DUMMY;

TABLA_PAGOS=
SELECT
BB."DocEntry",
STRING_AGG(BB."Numero Pago",', ') AS "Numero Pago",
BB."Soles",
BB."Dolares",
STRING_AGG(BB."TaxDate",', ') AS "Fecha Pago",
STRING_AGG(BB."JrnlMemo",', ') AS "Comentarios",
STRING_AGG(BB."Tipo Pago",', ') AS "Tipo Pago"
FROM(
SELECT
AA."DocEntry",
SUM(AA."Soles") OVER(PARTITION BY AA."DocEntry") AS
"Soles",
SUM(AA."Dolares") OVER(PARTITION BY AA."DocEntry") AS
"Dolares",
AA."Numero Pago",
AA."TaxDate",
AA."JrnlMemo",
AA."Tipo Pago"
FROM(
SELECT T0."DocNum" AS "Numero Pago",
T1."DocEntry",
T2."DocNum",
--T0."DocDueDate",
TO_NVARCHAR(T0."TaxDate", 'DD/MM/YYYY')
as "TaxDate",
(CASE WHEN T0."U_SYP_MPAGO"='PM' OR
T0."U_SYP_MPAGO"='PPM' THEN 'MASIVO' ELSE 'INDIVIDUAL' END) AS "Tipo Pago",
UPPER(T0."JrnlMemo") AS "JrnlMemo",
T1."SumApplied" AS "Soles",
T1."AppliedSys" AS "Dolares"
FROM OVPM T0
INNER JOIN VPM2 T1 ON T0."DocEntry"=T1."DocNum" AND
T1."InvType"=18
INNER JOIN OPCH T2 ON T2."DocEntry"=T1."DocEntry"
WHERE T0."Canceled"='N'
--AND T2."DocEntry"='15420'
ORDER BY T2."DocNum",T0."DocDueDate"
)AA
)BB
GROUP BY BB."DocEntry",BB."Soles",BB."Dolares";

TABLA_NC=
SELECT BB."BaseEntry",
STRING_AGG(BB."Numero NC",', ') AS "Numero NC",
STRING_AGG(BB."Correlativo NC",', ') AS "Correlativo NC",
BB."Soles",
BB."Dolares",
BB."Retencion",
STRING_AGG(BB."Fecha NC",', ') AS "Fecha NC"
FROM(
SELECT AA."BaseEntry",
AA."Numero NC",
AA."Fecha NC",
AA."Correlativo NC",
SUM(AA."Soles") OVER(PARTITION BY
AA."BaseEntry") AS "Soles",
SUM(AA."Dolares") OVER(PARTITION BY
AA."BaseEntry") AS "Dolares",
SUM(AA."Retencion") OVER(PARTITION BY
AA."BaseEntry") AS "Retencion"
FROM(
SELECT T1."BaseEntry",
T0."DocNum" AS "Numero NC",
(T0."U_SYP_MDTD"||'-'||
T0."U_SYP_MDSD"||'-'||T0."U_SYP_MDCD") AS "Correlativo NC",
TO_NVARCHAR(T0."TaxDate", 'DD/MM/YYYY')
AS "Fecha NC",
T0."DocTotal" AS "Soles",
T0."DocTotalSy" AS "Dolares",
(SELECT (CASE WHEN T0."DocCur"='S/' THEN
XX."WTAmnt" ELSE XX."WTAmntSC" END) FROM RPC5 XX
INNER JOIN OWHT YY ON
XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry" AND
YY."U_SYP_TIDE"='N') AS "Retencion"
FROM ORPC T0
INNER JOIN RPC1 T1 ON T0."DocEntry"=T1."DocEntry"
WHERE --T0."DocEntry"=3186
--AND
T1."BaseType"=18
)AA
)BB
GROUP BY BB."BaseEntry",BB."Soles",BB."Dolares",BB."Retencion";

TABLA_ANTICIPOS=
SELECT BB."DocEntry",
STRING_AGG(BB."Numero Anticipo",', ') AS "Numero
Anticipo",
BB."Soles",
BB."Dolares",
STRING_AGG(BB."Fecha Anticipo",', ') AS "Fecha Anticipo"
FROM(

SELECT AA."DocEntry",
AA."Numero Anticipo",
AA."Fecha Anticipo",
SUM(AA."Soles") OVER(PARTITION BY
AA."DocEntry") AS "Soles",
SUM(AA."Dolares") OVER(PARTITION BY
AA."DocEntry") AS "Dolares"
FROM(
SELECT T0."DocEntry",
T0."DrawnSum" AS "Soles",
T0."DrawnSumSc" AS "Dolares",
T1."DocNum" AS "Numero
Anticipo",
TO_NVARCHAR(T1."TaxDate",
'DD/MM/YYYY') AS "Fecha Anticipo"
FROM PCH9 T0
INNER JOIN ODPO T1 ON
T0."BaseAbs"=T1."DocEntry"
--WHERE T0."DocEntry"=16070
)AA
)BB
GROUP BY BB."DocEntry",BB."Soles",BB."Dolares";

TABLA_RECONCILIACION=
SELECT BB."TransId",
BB."TransType",
STRING_AGG(BB."ReconNum",', ') AS "ReconNum",
BB."Importe en Moneda Reconciliación",
BB."Importe Reconciliación ML",
BB."Importe Reconciliación ME",
BB."Importe Reconciliación MS",
BB."Moneda Extranjera",
BB."Código SN"
FROM(
SELECT
AA."TransId",
AA."TransType",
AA."ReconNum",
SUM(AA."Importe en Moneda Reconciliación") OVER (PARTITION
BY AA."TransId", AA."TransType", AA."Moneda Extranjera", AA."Código SN" ) AS
"Importe en Moneda Reconciliación",
SUM(AA."Importe Reconciliación ML") OVER (PARTITION BY
AA."TransId", AA."TransType", AA."Moneda Extranjera", AA."Código SN") AS "Importe
Reconciliación ML",
SUM(AA."Importe Reconciliación ME") OVER (PARTITION BY
AA."TransId", AA."TransType", AA."Moneda Extranjera", AA."Código SN") AS "Importe
Reconciliación ME",
SUM(AA."Importe Reconciliación MS") OVER (PARTITION BY
AA."TransId", AA."TransType", AA."Moneda Extranjera", AA."Código SN")AS "Importe
Reconciliación MS",
AA."Moneda Extranjera",
AA."Código SN"
FROM(
SELECT
CAST(T0."ReconNum" AS NVARCHAR(50)) AS "ReconNum",
T1."TransId" AS "TransId", --- 1
T1."TransType" AS "TransType", --- 2
T0."SumMthCurr" AS "Importe en Moneda
Reconciliación", --- 3
T0."ReconSum" AS "Importe Reconciliación ML", ---- 4
(CASE WHEN IFNULL(T0."FrgnCurr",'')='' THEN
T0."ReconSumSC" ELSE T0."ReconSumFC" END) AS "Importe Reconciliación ME", --- 5
T0."ReconSumSC" AS "Importe Reconciliación MS", --- 6
T0."ShortName" AS "Código SN", --- 8
T0."FrgnCurr" AS "Moneda Extranjera" --- 7
FROM "ITR1" T0
INNER JOIN "JDT1" T1 ON T1."TransId" =
T0."TransId" AND T1."Line_ID" = T0."TransRowId"
INNER JOIN "OCRD" T2 ON T2."CardCode" =
T0."ShortName"
INNER JOIN "OITR" T3 ON
T0."ReconNum"=T3."ReconNum"
WHERE T1."TransType"=18
AND T3."ReconType" IN (0,7)
AND T3."CancelAbs" = 0
--AND T3."ReconDate" <= '20211119'
ORDER BY T1."TransId",T0."ReconNum",T3."ReconDate"
)AA
--GROUP BY AA."TransId",AA."TransType",AA."Moneda
Extranjera",AA."Código SN",AA."ReconNum"
ORDER BY 1,8
)BB
GROUP BY BB."TransId",BB."TransType",BB."Importe en Moneda
Reconciliación",BB."Importe Reconciliación ML",BB."Importe Reconciliación
ME",BB."Importe Reconciliación MS", BB."Moneda Extranjera",BB."Código SN";

SELECT * FROM(

SELECT
T1."CardCode" AS "Código SN",
T1."CardName" AS "Nombre SN",
--T1."BankCode",
UPPER(T2."BankName") AS "Nombre Banco",
T3."AcctName" AS "Banco",
T3."Account" AS "Cuenta Corriente",
CASE WHEN T1."U_SYP_SNBUEN"='Y' THEN 'SI' ELSE 'NO' END AS "Buen Contribuyente",
CASE WHEN T1."U_SYP_AGENRE"='Y' THEN 'SI' ELSE 'NO' END AS "Agente Retencion",
CASE WHEN T1."U_SYP_TPER"='Y' THEN 'SI' ELSE 'NO' END AS "Agente Percepcion",
T0."U_RNT_FREC" AS "Fecha Recepcion",
T0."CreateDate" AS "Fecha Creacion",
T0."DocDate" AS "Fecha Contabilizacion",
T0."TaxDate" AS "Fecha Emision",
T0."DocDueDate" AS "Fecha Vencimiento",
DAYS_BETWEEN(T0."DocDueDate",IFNULL(:FechaFin,CURRENT_DATE)) AS "Dias de Atraso",
T4."PymntGroup" AS "Condicion de Pago",
T0."PeyMethod" AS "Forma de Pago",
(CASE WHEN T0."isIns"='Y' THEN 'FACTURA DE RESERVA' ELSE 'FACTURA DE PROVEEDORES'
END) AS "Tipo",
T0."DocNum" AS "N° Documento",
T0."NumAtCard" AS "Numero Factura",
UPPER(T0."JrnlMemo") AS "Entrada en el Diario",
T0."CtlAccount" AS "Cuenta Mayor",
UPPER(T5."AcctName") AS "Nombre de Cuenta",
T0."DocCur" AS "Moneda",
(CASE WHEN T0."DocCur"='S/' THEN T0."DocTotal"+T0."DpmAmnt" ELSE
T0."DocTotalFC"+T0."DpmAmntFC" END) AS "Importe Original",
(CASE WHEN T0."DocCur"='S/' THEN T0."DocTotal" ELSE T0."DocTotalFC" END) AS
"Importe Factura",
(CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-IFNULL(T0."PaidToDate",0)) ELSE
(T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END) AS "Saldo Vencido",
(SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)
FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='N'
) AS "Retencion",

(SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)


FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='Y'
) AS "Detraccion",

CASE WHEN (CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-


IFNULL(T0."PaidToDate",0)) ELSE (T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END)=0 THEN
NULL ELSE
(CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-IFNULL(T0."PaidToDate",0)) ELSE
(T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END)
-
IFNULL((SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)
FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='N'
),0) END AS "Importe Neto",

(SELECT CASE WHEN T0."DocCur"='S/' THEN XX."Soles" ELSE XX."Dolares" END


FROM :TABLA_NC XX WHERE XX."BaseEntry"=T0."DocEntry") AS "Monto NC",
(SELECT XX."Numero NC" FROM :TABLA_NC XX WHERE XX."BaseEntry"=T0."DocEntry") AS
"Numero NC",
(SELECT XX."Correlativo NC" FROM :TABLA_NC XX WHERE XX."BaseEntry"=T0."DocEntry")
AS "Correlativo NC",
(SELECT XX."Fecha NC" FROM :TABLA_NC XX WHERE XX."BaseEntry"=T0."DocEntry") AS
"Fecha NC",

(SELECT CASE WHEN T0."DocCur"='S/' THEN XX."Importe Reconciliación ML" ELSE


XX."Importe Reconciliación MS" END FROM :TABLA_RECONCILIACION XX WHERE
XX."TransId"=T0."TransId") AS "Monto Reconciliacion",
(SELECT XX."ReconNum" FROM :TABLA_RECONCILIACION XX WHERE
XX."TransId"=T0."TransId") AS "Numero Reconciliacion",

(SELECT CASE WHEN T0."DocCur"='S/' THEN XX."Soles" ELSE XX."Dolares" END


FROM :TABLA_ANTICIPOS XX WHERE XX."DocEntry"=T0."DocEntry") AS "Monto Anticipo",
(SELECT XX."Numero Anticipo" FROM :TABLA_ANTICIPOS XX WHERE
XX."DocEntry"=T0."DocEntry") AS "Numero Anticipo",
(SELECT XX."Fecha Anticipo" FROM :TABLA_ANTICIPOS XX WHERE
XX."DocEntry"=T0."DocEntry") AS "Fecha Anticipo",

(SELECT CASE WHEN T0."DocCur"='S/' THEN XX."Soles" ELSE XX."Dolares" END


FROM :TABLA_PAGOS XX WHERE XX."DocEntry"=T0."DocEntry") AS "Monto Pagos",
(SELECT XX."Numero Pago" FROM :TABLA_PAGOS XX WHERE XX."DocEntry"=T0."DocEntry") AS
"Numero Pago",
(SELECT XX."Fecha Pago" FROM :TABLA_PAGOS XX WHERE XX."DocEntry"=T0."DocEntry") AS
"Fecha Pago",
(SELECT XX."Tipo Pago" FROM :TABLA_PAGOS XX WHERE XX."DocEntry"=T0."DocEntry") AS
"Tipo Pago",
(SELECT XX."Comentarios" FROM :TABLA_PAGOS XX WHERE XX."DocEntry"=T0."DocEntry") AS
"Comentarios",
(SELECT UPPER("U_NAME") FROM OUSR WHERE "USERID"=T0."UserSign") AS "Usuario
Creador"

FROM OPCH T0
INNER JOIN OCRD T1 ON T0."CardCode"=T1."CardCode"
LEFT JOIN ODSC T2 ON T1."BankCode"=T2."BankCode"
LEFT JOIN OCRB T3 ON T1."DflAccount"=T3."Account"
INNER JOIN OCTG T4 ON T0."GroupNum"=T4."GroupNum"
LEFT JOIN OACT T5 ON T0."CtlAccount"=T5."AcctCode"
WHERE --T0."CardCode"='P20543103820'
--AND
T0."CANCELED"='N'
AND T0."CardCode" = CASE WHEN IFNULL(:Codigo,'')='' THEN T0."CardCode"
ELSE :Codigo END
AND T0."DocDate" BETWEEN (CASE WHEN IFNULL(:FechaIni,'')='' THEN T0."DocDate" ELSE
:FechaIni END) AND (CASE WHEN IFNULL(:FechaFin,'')='' THEN T0."DocDate"
ELSE :FechaFin END)
AND T0."DocStatus" = CASE WHEN IFNULL(:Estado,'')='' THEN T0."DocStatus"
ELSE :Estado END

UNION ALL

SELECT
T1."CardCode" AS "Código SN",
T1."CardName" AS "Nombre SN",
--T1."BankCode",
UPPER(T2."BankName") AS "Nombre Banco",
T3."AcctName" AS "Banco",
T3."Account" AS "Cuenta Corriente",
CASE WHEN T1."U_SYP_SNBUEN"='Y' THEN 'SI' ELSE 'NO' END AS "Buen Contribuyente",
CASE WHEN T1."U_SYP_AGENRE"='Y' THEN 'SI' ELSE 'NO' END AS "Agente Retencion",
CASE WHEN T1."U_SYP_TPER"='Y' THEN 'SI' ELSE 'NO' END AS "Agente Percepcion",
T0."U_RNT_FREC" AS "Fecha Recepcion",
T0."CreateDate" AS "Fecha Creacion",
T0."DocDate" AS "Fecha Contabilizacion",
T0."TaxDate" AS "Fecha Emision",
T0."DocDueDate" AS "Fecha Vencimiento",
DAYS_BETWEEN(T0."DocDueDate",IFNULL(:FechaFin,CURRENT_DATE)) AS "Dias de Atraso",
T4."PymntGroup" AS "Condicion de Pago",
T0."PeyMethod" AS "Forma de Pago",
'NOTA DE CREDITOS PROVEEDORES' AS "Tipo",
T0."DocNum" AS "N° Documento",
T0."NumAtCard" AS "Numero Factura",
UPPER(T0."JrnlMemo") AS "Entrada en el Diario",
T0."CtlAccount" AS "Cuenta Mayor",
UPPER(T5."AcctName") AS "Nombre de Cuenta",
T0."DocCur" AS "Moneda",
((CASE WHEN T0."DocCur"='S/' THEN T0."DocTotal"+T0."DpmAmnt" ELSE
T0."DocTotalFC"+T0."DpmAmntFC" END)*-1) AS "Importe Original",
((CASE WHEN T0."DocCur"='S/' THEN T0."DocTotal" ELSE T0."DocTotalFC" END)*-1) AS
"Importe Factura",
((CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-IFNULL(T0."PaidToDate",0)) ELSE
(T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END)*-1) AS "Saldo Vencido",
((SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)
FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='N'
)*-1) AS "Retencion",

((SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)


FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='Y'
)*-1) AS "Detraccion",

(CASE WHEN (CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-


IFNULL(T0."PaidToDate",0)) ELSE (T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END)=0 THEN
NULL ELSE
(CASE WHEN T0."DocCur"='S/' THEN (T0."DocTotal"-IFNULL(T0."PaidToDate",0)) ELSE
(T0."DocTotalFC"-IFNULL(T0."PaidFC",0)) END)
-
IFNULL((SELECT (CASE WHEN T0."DocCur"='S/' THEN XX."WTAmnt" ELSE XX."WTAmntSC" END)
FROM PCH5 XX
INNER JOIN OWHT YY ON XX."WTCode"=YY."WTCode"
WHERE XX."AbsEntry"=T0."DocEntry"
AND YY."U_SYP_TIDE"='N'
),0) END)*-1 AS "Importe Neto",

NULL AS "Monto NC",


'' AS "Numero NC",
'' AS "Correlativo NC",
'' AS "Fecha NC",

NULL AS "Monto Reconciliacion",


'' AS "Numero Reconciliacion",

NULL AS "Monto Anticipo",


'' AS "Numero Anticipo",
'' AS "Fecha Anticipo",

NULL AS "Monto Pagos",


'' AS "Numero Pago",
'' AS "Fecha Pago",
'' AS "Tipo Pago",
'' AS "Comentarios",
(SELECT UPPER("U_NAME") FROM OUSR WHERE "USERID"=T0."UserSign") AS "Usuario
Creador"

FROM ORPC T0
INNER JOIN OCRD T1 ON T0."CardCode"=T1."CardCode"
LEFT JOIN ODSC T2 ON T1."BankCode"=T2."BankCode"
LEFT JOIN OCRB T3 ON T1."DflAccount"=T3."Account"
INNER JOIN OCTG T4 ON T0."GroupNum"=T4."GroupNum"
LEFT JOIN OACT T5 ON T0."CtlAccount"=T5."AcctCode"
WHERE --T0."CardCode"='P20543103820'
--AND
T0."CANCELED"='N'
AND T0."CardCode" = CASE WHEN IFNULL(:Codigo,'')='' THEN T0."CardCode"
ELSE :Codigo END
AND T0."DocDate" BETWEEN (CASE WHEN IFNULL(:FechaIni,'')='' THEN T0."DocDate" ELSE
:FechaIni END) AND (CASE WHEN IFNULL(:FechaFin,'')='' THEN T0."DocDate"
ELSE :FechaFin END)
AND T0."DocStatus" = 'O'
)AA
ORDER BY AA."Código SN",AA."N° Documento";

You might also like