335 lines
9.6 KiB
Plaintext
335 lines
9.6 KiB
Plaintext
{
|
|
----------------------------------------------------------------
|
|
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 " <Esc> 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
|
|
|