110 lines
3.7 KiB
Plaintext
110 lines
3.7 KiB
Plaintext
FUNCTION busca_liquidacion()
|
|
|
|
DEFINE
|
|
liquidaciones DYNAMIC ARRAY OF RECORD
|
|
fecha CHAR(10),
|
|
tipo SMALLINT,
|
|
num_oc INT,
|
|
num_doc INT,
|
|
cod_sp SMALLINT,
|
|
cod_sp_Sec INT,
|
|
proveedor VARCHAR(60),
|
|
titulo_bodega VARCHAR(100),
|
|
bodega SMALLINT
|
|
|
|
END RECORD,
|
|
idx SMALLINT
|
|
|
|
DECLARE busca_datos CURSOR FOR
|
|
SELECT CONVERT(CHAR(10), a.fecha, 103),
|
|
a.tipo,
|
|
a.orden_compra,
|
|
a.num_doc,
|
|
c.cod_sp,
|
|
c.cod_sp_sec,
|
|
c.nom_sp,
|
|
'BODEGA MAT PRIMA',
|
|
'1'
|
|
FROM intb00006 a, cotb00001 c
|
|
WHERE a.status_t IS NULL
|
|
AND a.num_doc
|
|
NOT IN (SELECT b.rep_entrada
|
|
FROM cgtb00017 b
|
|
WHERE b.tipo IN ('1', '01') AND b.status_t IS NULL)
|
|
AND a.cod_mov IN (34)
|
|
AND a.fecha > '01/01/2024'
|
|
AND a.cod_sp = c.cod_sp
|
|
AND a.cod_sp_sec = c.cod_sp_sec
|
|
UNION SELECT CONVERT(CHAR(10), a.fecha, 103),
|
|
a.tipo,
|
|
a.orden_compra,
|
|
a.num_doc,
|
|
c.cod_sp,
|
|
c.cod_sp_sec,
|
|
c.nom_sp,
|
|
d.descripcion,
|
|
a.bodega
|
|
FROM iptb00006 a, cotb00001 c, intb00009 d
|
|
WHERE a.status_t IS NULL
|
|
AND a.num_doc
|
|
NOT IN (SELECT b.rep_entrada
|
|
FROM cgtb00017 b
|
|
WHERE b.tipo IN ('2', '02') AND b.status_t IS NULL)
|
|
AND a.cod_mov IN (10)
|
|
AND a.fecha > '01/01/2024'
|
|
AND a.cod_sp = c.cod_sp
|
|
AND a.cod_sp_sec = c.cod_sp_sec
|
|
AND a.bodega = d.cod_bodega
|
|
UNION SELECT CONVERT(CHAR(10), a.fecha, 103),
|
|
a.tipo,
|
|
a.orden_compra,
|
|
a.num_doc,
|
|
c.cod_sp,
|
|
c.cod_sp_sec,
|
|
c.nom_sp,
|
|
'REPUESTOS',
|
|
'1'
|
|
FROM irtb00006 a, cotb00001 c
|
|
WHERE a.status_t IS NULL
|
|
AND a.num_doc
|
|
NOT IN (SELECT b.rep_entrada
|
|
FROM cgtb00017 b
|
|
WHERE b.tipo IN ('3', '03') AND b.status_t IS NULL)
|
|
AND a.cod_mov IN (34)
|
|
AND a.fecha > '01/01/2024'
|
|
AND a.cod_sp = c.cod_sp
|
|
AND a.cod_sp_sec = c.cod_sp_sec
|
|
ORDER BY a.num_doc
|
|
|
|
LET idx = 1
|
|
FOREACH busca_datos INTO liquidaciones[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
IF idx = 1 THEN
|
|
RETURN ' ', '0', '0', '0', '0', ' ', ' ', ' '
|
|
ELSE
|
|
OPEN WINDOW w1 WITH FORM "lqfmwd002"
|
|
DISPLAY ARRAY liquidaciones TO sliquidacion.*
|
|
AFTER DISPLAY
|
|
LET idx = arr_curr()
|
|
IF int_flag THEN
|
|
INITIALIZE liquidaciones TO NULL
|
|
LET int_flag = FALSE
|
|
END IF
|
|
EXIT DISPLAY
|
|
|
|
END DISPLAY
|
|
END IF
|
|
CLOSE WINDOW w1
|
|
RETURN liquidaciones[idx].tipo,
|
|
liquidaciones[idx].num_oc,
|
|
liquidaciones[idx].num_doc,
|
|
liquidaciones[idx].cod_sp,
|
|
liquidaciones[idx].cod_sp_sec,
|
|
liquidaciones[idx].proveedor,
|
|
liquidaciones[idx].bodega,
|
|
liquidaciones[idx].fecha
|
|
|
|
END FUNCTION
|