{ ------------------------------------------------------------------ PROGRAMA : TEPRMT010 OBJETIVO : Capturar, Modificar, Eliminar registros de la Tabla de Comisiones Por Cobros PROGRAMADOR : JUAN F. SOTO FECHA REALIZACION : AGOSTO 6, 1998. ------------------------------------------------------------------ } GLOBALS "teprgb000.4gl" DEFINE comisiones10 RECORD LIKE cctb00008.* FUNCTION teprmt010() CLEAR SCREEN OPTIONS FORM LINE 9, ERROR LINE 23, MESSAGE LINE 24, COMMENT LINE 21 OPEN FORM tefmmt010 FROM "tefmmt010" DISPLAY FORM tefmmt010 CALL pantalla() DISPLAY "teprmt010" AT 4,3 ATTRIBUTE(RED) DISPLAY "Mantenimiento de Comisiones por Vendedor" at 6,20 ATTRIBUTE(BLACK) MENU "OPCIONES" COMMAND "Adicionar" " Adiciona Registro Cancela Operacion" HELP 5 LET INT_FLAG = FALSE CLEAR FORM LET INT_FLAG = FALSE CALL tepcad010() COMMAND "Consultar-modificar" " Realiza Busqueda Cancela Operacion" HELP 6 CALL tepcmf010() COMMAND "Salir" "Retorna Menu Anterior" EXIT MENU END MENU END FUNCTION FUNCTION tepcad010() DEFINE fech_ant CHAR(8) MESSAGE "" ## Captura los datos que va a contener el registro INPUT BY NAME comisiones10.* AFTER FIELD sec_vend IF comisiones10.sec_vend = 0 or comisiones10.sec_vend is null THEN LET numero_msg = 16 CALL msg(numero_msg) NEXT FIELD sec_vend ELSE SELECT i.nom1_emp, i.apell1_emp INTO descrip1, descrip2 FROM adtb00003 i WHERE i.num_emp = comisiones10.sec_vend AND i.status_t is null IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 68 CALL msg(numero_msg) NEXT FIELD sec_vend END IF LET descrip6 = descrip1 clipped," ",descrip2 clipped DISPLAY descrip6 TO descrip6 ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END IF ## Verifica que el codigo no exista en el catalogo de comisiones. Si existe, ## entonces despliega los datos del registro existente. AFTER FIELD cod_sec SELECT i.descrip_esp INTO descrip1 FROM intb00001 i WHERE i.cod_n = comisiones10.cod_n AND i.cod_grupo = comisiones10.cod_grupo AND i.cod_tipo = comisiones10.cod_tipo AND i.cod_sec = comisiones10.cod_sec and i.status_t is null IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 26 CALL msg(numero_msg) NEXT FIELD cod_n END IF DISPLAY descrip1 TO descrip_esp ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF SELECT UNIQUE * INTO comisiones10.* FROM cctb00008 WHERE sec_vend = comisiones10.sec_vend AND cod_n = comisiones10.cod_n AND cod_grupo = comisiones10.cod_grupo AND cod_tipo = comisiones10.cod_tipo AND cod_sec = comisiones10.cod_sec IF status >= 0 THEN IF status != NOTFOUND THEN IF comisiones10.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) NEXT FIELD sec_vend END IF DISPLAY BY NAME comisiones10.us_crea, comisiones10.fech_crea, comisiones10.us_mod, comisiones10.fech_mod LET numero_msg = 12 CALL msg(numero_msg) NEXT FIELD sec_vend ELSE INITIALIZE comisiones10.us_crea, comisiones10.fech_crea, comisiones10.us_mod, comisiones10.fech_mod TO NULL DISPLAY BY NAME comisiones10.us_crea, comisiones10.fech_crea, comisiones10.us_mod, comisiones10.fech_mod END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF 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 INSERT INTO cctb00008 VALUES (comisiones10.*) UPDATE cctb00008 set us_crea = user, fech_crea = current WHERE sec_vend = comisiones10.sec_vend AND cod_n = comisiones10.cod_n AND cod_grupo = comisiones10.cod_grupo AND cod_tipo = comisiones10.cod_tipo AND cod_sec = comisiones10.cod_sec LET numero_msg = 1 CALL msg(numero_msg) END FUNCTION FUNCTION tepcmf010() ## Aqui se prepara para la captura del criterio de seleccion MESSAGE "" CLEAR FORM CONSTRUCT BY NAME criterio ON cctb00008.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF LET SELEC = " SELECT UNIQUE * FROM cctb00008 ", " WHERE status_t is null AND ",criterio clipped, " ORDER BY 1,2,3,4,5,6" PREPARE busca FROM selec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF DECLARE datos SCROLL CURSOR FOR busca OPEN datos FETCH FIRST datos INTO comisiones10.* IF status >= 0 THEN IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) RETURN END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF DISPLAY BY NAME comisiones10.* LET comisiones.sec_vend = comisiones10.sec_vend CALL busca_vendedor() LET comisiones.cod_n = comisiones10.cod_n LET comisiones.cod_grupo = comisiones10.cod_grupo LET comisiones.cod_tipo = comisiones10.cod_tipo LET comisiones.cod_sec = comisiones10.cod_sec CALL busca_nombre_articulo1() MENU "OPCIONES " COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado" FETCH NEXT datos INTO comisiones10.* IF STATUS = NOTFOUND THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME comisiones10.* LET comisiones.sec_vend = comisiones10.sec_vend CALL busca_vendedor() LET comisiones.cod_n = comisiones10.cod_n LET comisiones.cod_grupo = comisiones10.cod_grupo LET comisiones.cod_tipo = comisiones10.cod_tipo LET comisiones.cod_sec = comisiones10.cod_sec CALL busca_nombre_articulo1() COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado" FETCH PREVIOUS datos INTO comisiones10.* IF STATUS = NOTFOUND THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME comisiones10.* LET comisiones.sec_vend = comisiones10.sec_vend CALL busca_vendedor() LET comisiones.cod_n = comisiones10.cod_n LET comisiones.cod_grupo = comisiones10.cod_grupo LET comisiones.cod_tipo = comisiones10.cod_tipo LET comisiones.cod_sec = comisiones10.cod_sec CALL busca_nombre_articulo1() COMMAND "Primero" "Presenta en pantalla el primer registro encontrado" FETCH FIRST datos INTO comisiones10.* DISPLAY BY NAME comisiones10.* LET comisiones.sec_vend = comisiones10.sec_vend CALL busca_vendedor() LET comisiones.cod_n = comisiones10.cod_n LET comisiones.cod_grupo = comisiones10.cod_grupo LET comisiones.cod_tipo = comisiones10.cod_tipo LET comisiones.cod_sec = comisiones10.cod_sec CALL busca_nombre_articulo1() LET numero_msg = 5 CALL msg(numero_msg) COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado" FETCH LAST datos INTO comisiones10.* DISPLAY BY NAME comisiones10.* LET comisiones.sec_vend = comisiones10.sec_vend CALL busca_vendedor() LET comisiones.cod_n = comisiones10.cod_n LET comisiones.cod_grupo = comisiones10.cod_grupo LET comisiones.cod_tipo = comisiones10.cod_tipo LET comisiones.cod_sec = comisiones10.cod_sec CALL busca_nombre_articulo1() LET numero_msg = 4 CALL msg(numero_msg) COMMAND "Escoger" " Actualiza Registro Cancela Operacion" INPUT BY NAME comisiones10.porc_ventas,comisiones10.porc_cobros WITHOUT DEFAULTS AFTER INPUT IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE RETURN END IF UPDATE cctb00008 SET porc_ventas = comisiones10.porc_ventas, porc_cobros = comisiones10.porc_cobros, us_mod = USER, fech_mod = CURRENT WHERE sec_vend = comisiones10.sec_vend AND cod_n = comisiones10.cod_n AND cod_grupo = comisiones10.cod_grupo AND cod_tipo = comisiones10.cod_tipo AND cod_sec = comisiones10.cod_sec CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF LET numero_msg = 13 CALL msg(numero_msg) EXIT INPUT END INPUT COMMAND KEY ("L") "eLiminar" "Elimina registro que esta en la pantalla" UPDATE cctb00008 SET status_t = "E", us_mod = user, fech_mod = current WHERE sec_vend = comisiones10.sec_vend AND cod_n = comisiones10.cod_n AND cod_grupo = comisiones10.cod_grupo AND cod_tipo = comisiones10.cod_tipo AND cod_sec = comisiones10.cod_sec LET numero_msg = 39 CALL msg(numero_msg) COMMAND "Retornar" "Retorna al menu anterior" CLEAR FORM EXIT MENU END MENU END FUNCTION