Files
MBS/PROYECTO/otrodir/detalleGastos.4gl
T

118 lines
3.9 KiB
Plaintext

FUNCTION detalleGastos(ent_diario,cuenta_no,cod_dep,query,fecha)
DEFINE fecha RECORD
desde DATE,
hasta DATE
END RECORD
DEFINE arr DYNAMIC ARRAY OF RECORD
fecha DATE,
ref VARCHAR(14),
detalle_1 VARCHAR(100),
detalle_2 VARCHAR(40),
debito decimal(12,2),
credito decimal(12,2)
END RECORD,
ent_diario,query CHAR(14),
cuenta_no VARCHAR(10),
cod_dep VARCHAR(50),
selec VARCHAR(255),
idx,p_arr1,scr_l INT
DISPLAY ent_diario
DISPLAY cuenta_no
DISPLAY cod_dep
DISPLAY fecha.desde
DISPLAY fecha.hasta
LET idx = 1
DISPLAY "query: ",query
CASE query
WHEN "acumesant"
LET selec =
"SELECT fecha, ref, detalle_1, detalle_2, debito, credito ",
"FROM cgtb00004 a ",
"WHERE (a.ref != '",ent_diario,"') AND ",
"(a.cuenta_no = '",cuenta_no,"') AND ",
"(a.fecha < '",fecha.desde USING "yyyy/mm/dd" , "') AND ",
"(a.departamento = ",cod_dep,") AND ",
"a.status_t is NULL"
DISPLAY selec
PREPARE comando FROM selec
DECLARE busco CURSOR FOR comando
FOREACH busco INTO arr[idx].*
IF arr[idx].debito IS NULL THEN
LET arr[idx].debito = 0
END IF
IF arr[idx].credito IS NULL THEN
LET arr[idx].credito = 0
END IF
LET idx = idx +1
END FOREACH
WHEN "gasranfech"
DISPLAY "gastos: ",cuenta_no, " ",fecha.desde," ",fecha.hasta," ",cod_dep
LET selec =
"SELECT fecha, ref, detalle_1, detalle_2, debito, credito ",
"FROM cgtb00004 a ",
"WHERE (a.cuenta_no = '",cuenta_no,"') AND ",
"(a.fecha between '",fecha.desde USING "yyyy/mm/dd" , "' AND '",fecha.hasta USING "yyyy/mm/dd","') AND ",
"(a.departamento = ",cod_dep,") AND ",
"a.status_t IS NULL"
PREPARE comando2 FROM selec
DECLARE busco2 CURSOR FOR comando2
FOREACH busco2 INTO arr[idx].*
IF arr[idx].debito IS NULL THEN
LET arr[idx].debito = 0
END IF
IF arr[idx].credito IS NULL THEN
LET arr[idx].credito = 0
END IF
LET idx = idx +1
END FOREACH
WHEN "anioant"
LET selec =
"SELECT fecha, ref, detalle_1, detalle_2, debito, credito ",
"FROM cgtb00004 a ",
"WHERE (a.ref NOT MATCHES 'ED.99-999/12*') AND ",
"(a.cuenta_no = '",cuenta_no,"') AND ",
"(a.fecha between '",fecha.desde USING "yyyy/mm/dd" , "' AND '",fecha.hasta USING "yyyy/mm/dd","') AND ",
"(a.departamento = ",cod_dep,") AND ",
"a.status_t is NULL "
PREPARE comando3 FROM selec
DECLARE busco3 CURSOR FOR comando3
FOREACH busco3 INTO arr[idx].*
IF arr[idx].debito IS NULL THEN
LET arr[idx].debito = 0
END IF
IF arr[idx].credito IS NULL THEN
LET arr[idx].credito = 0
END IF
LET idx = idx +1
END FOREACH
OTHERWISE
DISPLAY "Unexpected value"
END CASE
OPEN WINDOW w2 WITH FORM "cgfmcs025"
DISPLAY ARRAY arr TO record1.*
BEFORE ROW
LET p_arr1 = arr_curr()
LET scr_l = scr_line()
END DISPLAY
CLOSE WINDOW w2
END FUNCTION