156 lines
5.2 KiB
Plaintext
156 lines
5.2 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : VEPRMT102
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla de Direcciones de Clientes
|
|
PROGRAMADOR : Lic. Abner Montalvo Z.
|
|
FECHA REALIZACION : Diciembre 7, 1992.
|
|
------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
|
|
FUNCTION veprmt102(xtipo_cliente,xsec_cliente)
|
|
DEFINE xtipo_cliente,xsec_cliente SMALLINT,
|
|
xnombre CHAR(30)
|
|
|
|
OPEN WINDOW direccion AT 2,2 WITH FORM "vefmmt102" ATTRIBUTE (BORDER,
|
|
FORM LINE FIRST +1,COMMENT LINE LAST)
|
|
|
|
INITIALIZE cliente_dir.* TO NULL
|
|
|
|
SELECT * INTO cliente_dir.* FROM vetb00005
|
|
WHERE tipo_cliente = xtipo_cliente AND
|
|
sec_cliente = xsec_cliente
|
|
LET cliente_dir.tipo_cliente = xtipo_cliente
|
|
LET cliente_dir.sec_cliente = xsec_cliente
|
|
DISPLAY BY NAME cliente_bas.nombre,cliente_dir.tipo_cliente,
|
|
cliente_dir.sec_cliente
|
|
|
|
LET int_flag = false
|
|
INPUT BY NAME cliente_dir.calle THRU cliente_dir.urbanizacion
|
|
WITHOUT DEFAULTS
|
|
## Verifica que el codigo no exista en la tabla de datos basicos de clientes.
|
|
## Si existe, entonces despliega los datos del registro existente.
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
EXIT INPUT
|
|
END IF
|
|
IF cliente_dir.calle IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD calle
|
|
END IF
|
|
DELETE FROM vetb00005 WHERE tipo_cliente = xtipo_cliente AND
|
|
sec_cliente = xsec_cliente
|
|
|
|
INSERT INTO vetb00005 VALUES (cliente_dir.tipo_cliente,
|
|
cliente_dir.sec_cliente,
|
|
cliente_dir.calle,
|
|
cliente_dir.casa_num,
|
|
cliente_dir.barrio,
|
|
cliente_dir.urbanizacion,
|
|
null,
|
|
null, SUSER_SNAME(), GETDATE(),
|
|
null, null)
|
|
|
|
EXIT INPUT
|
|
END INPUT
|
|
CLOSE WINDOW direccion
|
|
END FUNCTION
|
|
|
|
FUNCTION consulta_clientes()
|
|
OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd002"
|
|
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
|
|
|
|
LET int_flag = false
|
|
CONSTRUCT criterio ON a.nombre FROM nombre
|
|
|
|
LET selec2 = "SELECT a.tipo_cliente, a.sec_cliente, a.nombre ",
|
|
"FROM vetb00004 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_c
|
|
END IF
|
|
|
|
PREPARE busca_clientes 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_clientes CURSOR FOR busca_clientes
|
|
LET idx = 1
|
|
|
|
FOREACH buscar_clientes INTO arr_clientes[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 idx = idx + 1
|
|
END FOREACH
|
|
|
|
CALL set_count(idx-1)
|
|
MESSAGE " <Esc> Selecciona Cliente donde esta el cursor"
|
|
DISPLAY ARRAY arr_clientes TO s_clientes.*
|
|
LET curr1 = arr_curr()
|
|
|
|
LET cliente_dir.tipo_cliente = arr_clientes[curr1].tipo_cliente
|
|
LET cliente_dir.sec_cliente = arr_clientes[curr1].sec_cliente
|
|
LET descrip1 = arr_clientes[curr1].nombre
|
|
|
|
LABEL salir_consulta_c:
|
|
CLOSE WINDOW busqueda
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_nombre_cliente()
|
|
# Esta funcion busca el nombre del cliente y lo despliega en pantalla
|
|
# Esta funcion es valida solamente para la consulta-modificacion.
|
|
|
|
SELECT i.nombre, i.status_t INTO descrip1, status_reg
|
|
FROM vetb00004 i
|
|
WHERE i.tipo_cliente = cliente_dir.tipo_cliente AND
|
|
i.sec_cliente = cliente_dir.sec_cliente AND
|
|
i.status_t IS NULL
|
|
|
|
IF status >= 0 THEN
|
|
IF status = NOTFOUND THEN
|
|
LET numero_msg = 70
|
|
CALL msg(numero_msg)
|
|
ELSE
|
|
IF status_reg = "E" THEN
|
|
LET numero_msg = 69
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
END IF
|
|
DISPLAY descrip1 TO nombre
|
|
ELSE
|
|
CALL integridad()
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|