{ ------------------------------------------------------------------ PROGRAMA : NOPRMT022 OBJETIVO : Elimina Cheques de la tabla general de cheques PROGRAMADOR : Juan F. Soto FECHA REALIZACION : Febrero 19, 1996 ------------------------------------------------------------------ } GLOBALS "noprgb000.4gl" DEFINE cheque_ini,cheque_fin,num_nomi INTEGER DEFINE tipo_emp CHAR(1), pcuenta_no CHAR(8), descripcion LIKE cgtb00001.descripcion DEFINE cod_mov,num_emp SMALLINT DEFINE reg_elim RECORD num_nomi INTEGER, tipo_emp CHAR(1), cod_mov SMALLINT, num_emp SMALLINT END RECORD FUNCTION noprmt022() OPTIONS FORM LINE 8, PROMPT LINE 23, ERROR LINE 24, COMMENT LINE 22 LET int_flag = FALSE LET formulario = formulario CLIPPED,"nofmmt022" OPEN FORM nofmmt022 FROM "nofmmt022" DISPLAY FORM nofmmt022 CALL pantalla() DISPLAY "noprmt022" AT 4,3 DISPLAY "Eliminacion de Cheques" AT 6,30 INPUT BY NAME pcuenta_no,num_nomi,tipo_emp,cheque_ini,cheque_fin AFTER FIELD num_nomi IF num_nomi IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD num_nomi END IF AFTER FIELD tipo_emp IF tipo_emp IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD tipo_emp END IF SELECT UNIQUE b.num_nomi FROM notb00019 b WHERE b.num_nomi = num_nomi and b.tipo_emp = tipo_emp IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) NEXT FIELD pcuenta_no END IF AFTER FIELD pcuenta_no IF pcuenta_no is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD pcuenta_no END IF SELECT a.descripcion INTO descripcion FROM cgtb00001 a WHERE a.cuenta_no = pcuenta_no DISPLAY BY NAME descripcion AFTER FIELD cheque_ini IF cheque_ini IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cheque_ini END IF AFTER FIELD cheque_fin IF cheque_fin IS NULL THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD cheque_fin END IF IF cheque_fin < cheque_ini THEN LET numero_msg = 355 CALL msg(numero_msg) NEXT FIELD cheque_ini END IF SELECT unique @tipo_emp FROM notb00019 WHERE @tipo_emp = tipo_emp and @num_nomi = num_nomi and cheque_no_ini = cheque_ini and cheque_no_fin = cheque_fin IF status = notfound THEN LET numero_msg = 356 CALL msg(numero_msg) NEXT FIELD cheque_ini END IF END INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF PROMPT "Desea Eliminar Los Cheques [S/N]" FOR CHAR opcion IF opcion = "s" OR opcion = "S" THEN UPDATE cgtb00012 set cheque_no = cheque_ini - 1 WHERE cuenta_no = pcuenta_no #Tabla conciliaciones Bancarias DELETE FROM notb00020 WHERE cuenta_no=pcuenta_no AND cheque_no between cheque_ini and cheque_fin INSERT INTO notb00020 SELECT * FROM cgtb00005 WHERE cuenta_no=pcuenta_no AND cheque_no between cheque_ini and cheque_fin UPDATE notb00020 SET us_mod = user, fech_mod = current WHERE cuenta_no=pcuenta_no AND cheque_no between cheque_ini and cheque_fin DELETE FROM cgtb00005 WHERE cuenta_no=pcuenta_no AND cheque_no between cheque_ini and cheque_fin # Tabla Control del Rango de los Cheques DELETE FROM notb00021 WHERE @num_nomi=num_nomi AND @tipo_emp=tipo_emp AND cuenta_no=pcuenta_no DELETE FROM notb00019 WHERE @num_nomi=num_nomi AND @tipo_emp=tipo_emp AND cuenta_no=pcuenta_no AND cheque_no_ini = cheque_ini and cheque_no_fin = cheque_fin # Actualizacion de la tabla periodos de nomina UPDATE notb00010 set status_t = null WHERE @num_nomi = num_nomi and @tipo_emp = tipo_emp LET numero_msg = 13 CALL msg(numero_msg) ELSE LET numero_msg = 2 CALL msg(numero_msg) RETURN END IF END FUNCTION