{ ----------------------------------------------------------------------------- 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