{ ---------------------------------------------------------------- PROGRAMA : VEMNMT000 OBJETIVO : Menu de Mantenimientos del Sistema de Ventas PROGRAMADOR : Lic. Abner Montalvo Z. FECHA REALIZACION : Septiembre 14, 1992. ---------------------------------------------------------------- } GLOBALS "veprgb000.4gl" MAIN DEFER INTERRUPT SELECT * INTO p_companias.* FROM companias CALL vemnmt000() END MAIN FUNCTION vemnmt000() DEFINE p_user CHAR(9), opcion CHAR(2) DEFINE luz CHAR(5) OPTIONS PROMPT LINE 8, HELP FILE "vepray000.exe", HELP KEY CONTROL-W, MESSAGE LINE 24 CLEAR SCREEN CALL pantalla() DISPLAY " Mantenimientos " AT 6,22 DISPLAY "vemnmt000" AT 4,3 ATTRIBUTE(blue) DISPLAY " 1- Factura de Ventas veprmt001" AT 10,1 DISPLAY " 2- Clientes vemnmt100" AT 11,1 DISPLAY " 3- Condiciones de Pago veprmt002" AT 12,1 DISPLAY " 4- Zonas veprmt004" AT 13,1 DISPLAY " 5- Provincias veprmt013" AT 14,1 DISPLAY " 6- Zonas - Provincias veprmt005" AT 15,1 DISPLAY " 7- Transportistas veprmt007" AT 16,1 DISPLAY " 8- Itbis y Prima veprmt012" AT 17,1 DISPLAY " 9- Tarifas Transporte veprmt015" AT 18,1 DISPLAY "10- Re-impresion Rec. veprfu001" AT 19,1 DISPLAY "11- Control Entrega Factura veprmt019" AT 10,42 DISPLAY "12- Cambio De Vend. P/ Cli. veprmt037" AT 11,42 DISPLAY "13- NOTAS DE CREDITOS veprmt031" AT 12,42 DISPLAY "14- Presupuesto X Producto veprmt045" AT 13,42 DISPLAY "15- Maestra Vendedores veprmt046" AT 14,42 DISPLAY "S- Retorna Menu Anterior " AT 21,18 ATTRIBUTE (BOLD) CALL ayuda() LET opcion = NULL LABEL vuelve: PROMPT " OPCION: " FOR opcion HELP 2 LET opcion = UPSHIFT(opcion) clipped IF opcion != "S" THEN SELECT unique usuario INTO p_user FROM seg0001 WHERE usuario = user CALL seg000(p_user,opcion,"vemnmt000") RETURNING luz IF luz = "roja" THEN ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION" GOTO vuelve END IF END IF CASE WHEN opcion = "1" CALL veprmt001() CALL vemnmt000() WHEN opcion = "2" CALL vemnmt100() CALL vemnmt000() WHEN opcion = "3" CALL veprmt002() CALL vemnmt000() WHEN opcion = "4" CALL veprmt004() CALL vemnmt000() WHEN opcion = "5" CALL veprmt013() CALL vemnmt000() WHEN opcion = "6" CALL veprmt005() CALL vemnmt000() {WHEN opcion = "7" CALL veprmt006() CALL vemnmt000()} WHEN opcion = "7" CALL veprmt007() CALL vemnmt000() WHEN opcion = "8" CALL veprmt012() CALL vemnmt000() WHEN opcion = "9" CALL veprmt015() CALL vemnmt000() WHEN opcion = "10" RUN "TYPE C:\\RECIBO > %USPRINT%" CALL vemnmt000() WHEN opcion = "11" CALL veprmt019() CALL vemnmt000() WHEN opcion = "12" CALL veprmt037() CALL vemnmt000() WHEN opcion = "13" RUN "fglrun %FGLPROG%\\veprmt031" CALL vemnmt000() WHEN opcion = "14" CALL veprmt045() CALL vemnmt000() WHEN opcion = "15" CALL veprmt046() CALL vemnmt000() WHEN opcion = "S" or opcion = "s" RETURN OTHERWISE CALL vemnmt000() END CASE END FUNCTION FUNCTION prd() LET a_ano = year(p_fechas) LET mes_control = MONTH(today) LET mes_calc = mes_control IF mes_calc = 01 THEN LET mes_calc = 13 LET a_ano = year(today - 32) END IF #Aqui la funcion se posicionaba en dos meses para el control del documento #LET mes_calc = mes_calc - 2 IF mes_calc <= 0 THEN LET mes_calc = 12 LET a_ano = year(today) - 1 END IF LET c_ano = year(today) SELECT MIN(fecha_corte) INTO fecha_c FROM prdtable WHERE fecha_corte >= p_fechas IF status = notfound THEN LET numero_msg = 58 CALL msg(numero_msg) LET bandera = 1 END IF SELECT MIN(dias_gracia) INTO dia FROM prdtable WHERE fecha_corte = fecha_c IF dia IS NULL THEN LET dia = 0 END IF SELECT UNIQUE a.usuario FROM seg0003 a WHERE a.usuario = USER IF STATUS != NOTFOUND THEN LET fecha_c = fecha_c + dia END IF LET comp_fech = fecha_c LET comp_fech1 = TODAY IF comp_fech < comp_fech1 THEN LET numero_msg = 57 CALL msg(numero_msg) LET bandera = 1 END IF END FUNCTION FUNCTION busca_nombre_articulo() # Esta funcion busca el nombre del articulo y lo despliega en pantalla # Esta funcion es valida solamente para la consulta-modificacion. SELECT i.descrip_esp, i.status_t INTO descrip1, status_reg FROM iptb00002 i WHERE i.cod_n=comisiones.cod_n AND i.cod_grupo=comisiones.cod_grupo AND i.cod_tipo=comisiones.cod_tipo AND i.cod_sec=comisiones.cod_sec IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 26 CALL msg(numero_msg) ELSE IF status_reg = "E" THEN LET numero_msg = 44 CALL msg(numero_msg) END IF END IF DISPLAY descrip1 TO descrip_esp ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 RETURN END IF END IF END FUNCTION FUNCTION busca_vendedor() # Esta funcion busca el nombre del vendedor y lo despliega en pantalla # Esta funcion es valida solamente para la consulta-modificacion. SELECT i.nom1_emp, i.apell1_emp, i.status_t INTO descrip1, descrip2, status_reg FROM adtb00003 i WHERE i.num_emp = comisiones.sec_vend IF status >= 0 THEN IF status = NOTFOUND THEN LET numero_msg = 68 CALL msg(numero_msg) ELSE IF status_reg = "E" THEN LET numero_msg = 67 CALL msg(numero_msg) END IF 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 FUNCTION FUNCTION consulta_empleados() OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd001" ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST) LET int_flag = false CONSTRUCT criterio ON a.nom1_emp FROM descrip6 LET selec2 = "SELECT a.num_emp, a.nom1_emp, a.apell1_emp ", "FROM adtb00003 a ", "WHERE a.status_t is null AND ",criterio clipped," ORDER BY 1,2 " IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) GO TO salir_consulta_e END IF PREPARE busca_empleados FROM selec2 IF status >= 0 THEN IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) END IF ELSE CALL integridad() IF bandera = 1 THEN LET bandera = 0 END IF END IF DECLARE buscar_empleados CURSOR FOR busca_empleados LET idx = 1 FOREACH buscar_empleados INTO arr_empleados[idx].* IF status = NOTFOUND THEN EXIT FOREACH END IF IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) EXIT FOREACH END IF # LET empleados[idx].cod_emp = arr_empleados[idx].cod_emp LET empleados[idx].cod_emp_sec = arr_empleados[idx].num_emp LET empleados[idx].descrip6 = arr_empleados[idx].nom1_emp clipped," ", arr_empleados[idx].apell1_emp clipped LET idx = idx + 1 END FOREACH CALL set_count(idx-1) MESSAGE " Selecciona Empleado donde esta el cursor" DISPLAY ARRAY empleados TO s_empleados.* LET curr1 = arr_curr() # LET transportista.cod_transp = empleados[curr1].cod_emp LET transportista.sec_transp = empleados[curr1].cod_emp_sec LET descrip6 = empleados[curr1].descrip6 LABEL salir_consulta_e: CLOSE WINDOW busqueda END FUNCTION FUNCTION integridad() IF sqlca.sqlcode < 0 THEN LET numero_msg = sqlca.sqlcode CALL msg(numero_msg) #DISPLAY numero_msg AT 23,70 LET bandera = 1 LET status = 0 #SLEEP 2 RETURN END IF RETURN END FUNCTION FUNCTION pantalla() DEFINE fecha CHAR(8), hora char(5) LET fecha = today USING "dd/mm/yy" LET hora = time LET lj = (80 - LENGTH(p_companias.nombre CLIPPED))/2 DISPLAY p_companias.nombre CLIPPED AT 4,lj ATTRIBUTE (REVERSE,blue) DISPLAY fecha AT 4,70 ATTRIBUTE (blue) DISPLAY "Sistema de Ventas" AT 5,31 DISPLAY hora AT 6,73 ATTRIBUTE(blue) CALL fgl_drawbox(5,79,3,1) #CALL fgl_drawbox(1,79,22,1) END FUNCTION FUNCTION ayuda() #MESSAGE "HACER AYUDA" END FUNCTION