{ ------------------------------------------------------------------------------ PROGRAMA : NOPRMT015 OBJETIVO : Anular Cheques de Pago PROGRAMADOR : Ing. Juan F. Soto FECHA REALIZACION : Enero 15, 1993. ------------------------------------------------------------------------------ } GLOBALS "noprgb000.4gl" DEFINE concilia RECORD cuenta_no CHAR(8), descripcion LIKE cgtb00001.descripcion, cheque_no INTEGER, fecha DATE, portador LIKE cgtb00005.portador, monto LIKE cgtb00005.monto, status_t CHAR(1) END RECORD DEFINE descrip_st CHAR (15) FUNCTION noprmt015() OPTIONS FORM LINE 9, ERROR LINE 24, COMMENT LINE 23 CALL pantalla() LET formulario = formulario CLIPPED,"nofmmt015" OPEN FORM nofmmt015 FROM "nofmmt015" DISPLAY FORM nofmmt015 DISPLAY "noprmt015" AT 4,3 DISPLAY "Anular Cheques" AT 6,33 CLEAR FORM MENU "OPCION" COMMAND "Anular" " Conciliacion Cancela Operacion" LET int_flag = false CALL cgpcad11() COMMAND "Salir" EXIT MENU END MENU END FUNCTION FUNCTION cgpcad11() # Captura de informacion INITIALIZE concilia.* TO NULL INPUT BY NAME concilia.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) AFTER FIELD cuenta_no IF concilia.cuenta_no is not null THEN SELECT descripcion INTO concilia.descripcion FROM cgtb00001 WHERE cuenta_no = concilia.cuenta_no and status_t is null # Chequeo si el registro existe, si existe desplega las informaciones IF status = notfound THEN LET numero_msg = 12 CALL msg(numero_msg) DISPLAY BY NAME concilia.* INITIALIZE concilia.* TO NULL NEXT FIELD cuenta_no END IF DISPLAY BY NAME concilia.descripcion END IF AFTER FIELD cheque_no IF concilia.cheque_no is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cheque_no END IF SELECT fecha,portador,monto,status_t INTO concilia.fecha,concilia.portador, concilia.monto,concilia.status_t FROM cgtb00005 WHERE cuenta_no = concilia.cuenta_no and cheque_no = concilia.cheque_no IF status = notfound THEN LET numero_msg = 177 CALL msg(numero_msg) NEXT FIELD cheque_no END IF LET descrip_st = null CASE WHEN concilia.status_t = "E" LET descrip_st = "ELIMINADO" EXIT CASE WHEN concilia.status_t = "C" LET descrip_st = "CONCILIADO" EXIT CASE WHEN concilia.status_t = "N" LET descrip_st = "NULO" EXIT CASE END CASE DISPLAY BY NAME concilia.fecha,concilia.portador, concilia.monto,concilia.status_t, descrip_st AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF UPDATE cgtb00005 set status_t = concilia.status_t WHERE cheque_no = concilia.cheque_no and cuenta_no = concilia.cuenta_no CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF #--------------------------------------------------------------------------- # Quita el estatus de procesada a la nomina que pertenece este cheque. # Esto para que pueda generar nuevos cheques que sustituyan los anulados. #--------------------------------------------------------------------------- # UPDATE notb00010 set status_t = null # WHERE fecha_del <= concilia.fecha and # fecha_al >= concilia.fecha and # Esta linea no va.---> tipo_emp = "S" and # status_t = "P" # CALL integridad() # IF bandera = 1 THEN # LET bandera = 0 # RETURN # END IF LET numero_msg = 1 CALL msg(numero_msg) INITIALIZE concilia.* TO NULL CLEAR FORM NEXT FIELD cuenta_no EXIT INPUT END INPUT END FUNCTION { FUNCTION cgpcmod10() # Captura del criterio de seleccion CONSTRUCT BY NAME criterio ON cgtb00011.* LET selec2 = "SELECT * FROM cgtb00011 WHERE ",criterio clipped, " and status_t is null ", "ORDER BY 1" PREPARE comando FROM selec2 DECLARE busca SCROLL CURSOR FOR comando OPEN busca FETCH FIRST busca INTO entradas.* IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF DISPLAY BY NAME entradas.* MENU "OPCION" COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT busca INTO entradas.* IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME entradas.* COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS busca INTO entradas.* IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME entradas.* COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST busca INTO entradas.* LET numero_msg = 5 CALL msg(numero_msg) DISPLAY BY NAME entradas.* COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH FIRST busca INTO entradas.* LET numero_msg = 4 CALL msg(numero_msg) DISPLAY BY NAME entradas.* COMMAND "Escoger" " Actualiza Registro Cancela Operacion" IF entradas.status_t = "E" THEN LET numero_msg = 39 CALL msg(numero_msg) RETURN END IF INPUT BY NAME entradas.* WITHOUT DEFAULTS ATTRIBUTE (BOLD) BEFORE FIELD entrada_no NEXT FIELD descripcion AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = false RETURN END IF EXIT INPUT END INPUT UPDATE cgtb00011 set descripcion = entradas.descripcion, prog_4gl = entradas.prog_4gl WHERE entrada_no = entradas.entrada_no CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) COMMAND KEY("L") "eLiminar" UPDATE cgtb00011 set status_t = "E" WHERE entrada_no = entradas.entrada_no LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" EXIT MENU END MENU END FUNCTION}