Files
2026-09-22 20:38:51 -04:00

229 lines
6.4 KiB
Plaintext

{
-----------------------------------------------------------------------------
PROGRAMA : CGPRCS001
OBJETIVO : Consulta de Cheques de pago
REALIZADO POR : Juan Fco Soto
FECHA : Mayo 26, 1993.
-----------------------------------------------------------------------------
}
GLOBALS "cgprgb000.4gl"
DEFINE detalle char(80)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
DISPLAY usuarios,clave
CALL cgprcs001()
END MAIN
###### Funcion que adiciona informacion referente a la aplicacion de un pago
FUNCTION cgprcs001()
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 22,
PROMPT LINE 23
# CALL pantalla()
OPEN FORM cgfmcs001 FROM "cgfmcs001"
DISPLAY FORM cgfmcs001
DISPLAY "cgprcs001" AT 4,3
DISPLAY "Registro de Cheques" AT 6,30
MENU "Cons."
COMMAND "Consultar"
"Presione ESC Para Buscar Informacion Ctrl-C Para Cancelar "
LET int_flag = FALSE
CALL cgmod001()
COMMAND "Salir"
LET int_flag = FALSE
EXIT MENU
END MENU
END FUNCTION
FUNCTION cgmod001()
CLEAR FORM
CONSTRUCT criterio ON a.cheque_no,a.cuenta_no,a.portador
FROM numero,cuenta_p,nom_sup
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec_p =
"SELECT UNIQUE 'CK',a.cuenta_no,a.cheque_no,a.cod_sp,a.cod_sp_sec,a.portador, ",
" a.fecha,a.tasa,a.monto,c.codigo,' ' ",
"FROM cgtb00005 a,outer tetb00006 c ",
"WHERE (a.status_t IS NULL OR a.status_t='C') AND a.cheque_no=c.cheque_no and ",
" tipo_doc='CK' and a.cuenta_no = c.banco AND ",criterio CLIPPED,
" ORDER BY 3 "
PREPARE comando FROM selec_p
DECLARE accion5 SCROLL CURSOR FOR comando
OPEN accion5
FETCH FIRST accion5 INTO recibo.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
LET referencia = "CK.",recibo.numero USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2 INTO detalle_1,detalle_2
FROM cgtb00004 a
WHERE a.ref = referencia AND (a.status_t IS NULL OR a.status_t = 'C') AND
a.cuenta_no = recibo.cuenta_p
LET detalle =detalle_1
CALL procede()
DISPLAY BY NAME recibo.*,p_descrip,detalle
MENU "Consulta"
COMMAND "Primero"
FETCH FIRST accion5 INTO recibo.*
LET referencia = "CK.",recibo.numero USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2 INTO detalle_1,detalle_2
FROM cgtb00004 a
WHERE a.ref = referencia AND a.status_t IS NULL AND
a.cuenta_no = recibo.cuenta_p
LET detalle =detalle_1
CALL procede()
DISPLAY BY NAME recibo.*,p_descrip,detalle
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Siguiente"
FETCH NEXT accion5 INTO recibo.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
SELECT UNIQUE a.detalle_1,a.detalle_2 INTO detalle_1,detalle_2
FROM cgtb00004 a
WHERE (a.ref = referencia) AND
(a.cuenta_no = recibo.cuenta_p)
LET detalle =detalle_1
CALL procede()
DISPLAY BY NAME recibo.*,p_descrip,detalle
COMMAND "Anterior"
FETCH PREVIOUS accion5 INTO recibo.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
LET referencia = "CK.",recibo.numero USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2 INTO detalle_1,detalle_2
FROM cgtb00004 a
WHERE a.ref = referencia AND
a.cuenta_no = recibo.cuenta_p
LET detalle =detalle_1
CALL procede()
DISPLAY BY NAME recibo.*,p_descrip,detalle
COMMAND "Ultimo"
FETCH LAST accion5 INTO recibo.*
LET referencia = "CK.",recibo.numero USING "&&&&&&"
SELECT UNIQUE a.detalle_1,a.detalle_2
INTO detalle_1,detalle_2
FROM cgtb00004 a
WHERE a.ref = referencia AND
a.cuenta_no = recibo.cuenta_p
LET detalle =detalle_1
CALL procede()
DISPLAY BY NAME recibo.*,p_descrip,detalle
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Ver"
"Ver Informacion de las Cuentas Contables o Transacciones Cuentas por Pagar"
####### Creando la facilidad para cancelar proceso mediante DELETE o SUPR
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET numero1 = recibo.numero USING "<<<<<<<"
DECLARE buscara CURSOR FOR
SELECT b.tipo,b.orden_no,b.aplica_a,b.valor*-1,b.valor*-1
FROM cptb00001 b
WHERE b.status_t IS NULL AND b.num_doc = numero1 AND
b.tipo_doc = recibo.tipo_doc AND
b.cta_ctble = recibo.cuenta_p
LET idx = 1
LET i = 0
FOREACH buscara INTO arr_recibo[idx].*
LET arr_recibo[idx].valor_pen = 0
LET idx = idx + 1
LET i = i + 1
END FOREACH
CALL SET_COUNT(idx -1)
IF i = 0 THEN
LET existe = "N"
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
IF idx > 1 THEN
DISPLAY ARRAY arr_recibo TO s_recibo.*
END IF
LET referencia = "CK.",recibo.numero USING "&&&&&&"
DECLARE buscara1 CURSOR FOR
SELECT c.cuenta_no,c.departamento,c.cod_aux,c.cod_sec,c.num_doc,d.descripcion,
c.debito,c.credito
FROM cgtb00004 c,cgtb00001 d
WHERE c.cuenta_no = d.cuenta_no AND c.ref = referencia AND
c.detalles LIKE recibo.cuenta_p AND
d.status_t IS NULL AND c.cuenta_no NOT IN (recibo.cuenta_p)
LET idx = 1
FOREACH buscara1 INTO arr_cuenta1[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY arr_cuenta1 TO s_cuenta.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
# Funcion para buscar la descripcion de la procedencia
FUNCTION procede()
SELECT descripcion INTO p_descrip FROM tetb00003
WHERE @codigo = recibo.codigo
DISPLAY BY NAME p_descrip
END FUNCTION