230 lines
6.2 KiB
Plaintext
230 lines
6.2 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------------
|
|
PROGRAMA : CGPRCS001
|
|
OBJETIVO : Consulta de Cheques de pago
|
|
REALIZADO POR : Juan Fco Soto
|
|
FECHA : Mayo 26, 1993.
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "cgprgb000.4gl"
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT to "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_compania.* FROM companias a
|
|
|
|
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,0,0,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 ",
|
|
" 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
|
|
|
|
CALL procede()
|
|
DISPLAY BY NAME recibo.*,p_descrip
|
|
|
|
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
|
|
|
|
CALL procede()
|
|
DISPLAY BY NAME recibo.*,p_descrip
|
|
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)
|
|
|
|
CALL procede()
|
|
DISPLAY BY NAME recibo.*,p_descrip
|
|
|
|
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
|
|
|
|
CALL procede()
|
|
DISPLAY BY NAME recibo.*,p_descrip
|
|
|
|
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
|
|
|
|
CALL procede()
|
|
DISPLAY BY NAME recibo.*,p_descrip
|
|
|
|
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
|