118 lines
3.9 KiB
Plaintext
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 |