197 lines
6.0 KiB
Plaintext
197 lines
6.0 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : VEPRMT105
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla de Datos Generales o Basicos de Clientes
|
|
PROGRAMADOR : Lic. Abner Montalvo Z.
|
|
FECHA REALIZACION : Diciembre 7, 1992.
|
|
------------------------------------------------------------------
|
|
}
|
|
GLOBALS "veprgb000.4gl"
|
|
DEFINE vetb40 RECORD LIKE vetb00040.*
|
|
|
|
FUNCTION veprmt105()
|
|
|
|
CLEAR SCREEN
|
|
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 23,
|
|
MESSAGE LINE 24,
|
|
COMMENT LINE 21
|
|
|
|
OPEN FORM vefmmt105 FROM "vefmmt105"
|
|
DISPLAY FORM vefmmt105
|
|
CALL pantalla()
|
|
DISPLAY "veprmt105" AT 4,3
|
|
DISPLAY "Datos Complentario del Cliente" AT 6,25
|
|
|
|
MENU "OPCIONES"
|
|
COMMAND "Adicionar"
|
|
"<Esc> Adiciona Registro <Delete> Cancela Operacion"
|
|
HELP 5
|
|
LET int_flag = FALSE
|
|
CLEAR FORM
|
|
CALL vepcad105()
|
|
COMMAND "Consultar-modificar"
|
|
"<Esc> Realiza Busqueda <Delete> Cancela Operacion"
|
|
HELP 6
|
|
LET int_flag = FALSE
|
|
CALL vepcmf105()
|
|
COMMAND "Salir" "Retorna Menu Anterior"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION vepcad105()
|
|
WHENEVER ERROR CONTINUE
|
|
INPUT BY NAME vetb40.*
|
|
|
|
AFTER FIELD sec_cliente
|
|
IF vetb40.sec_cliente IS NULL OR vetb40.sec_cliente = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD sec_cliente
|
|
END IF
|
|
|
|
SELECT a.* INTO cliente_bas.* FROM vetb00004 a
|
|
WHERE a.tipo_cliente = vetb40.tipo_cliente AND
|
|
a.sec_cliente = vetb40.sec_cliente AND
|
|
a.status_t IS NULL
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tipo_cliente
|
|
END IF
|
|
|
|
DISPLAY BY NAME cliente_bas.nombre
|
|
AFTER INPUT
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
INSERT INTO vetb00040 VALUES(vetb40.*)
|
|
IF STATUS < 0 THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
LET STATUS = 0
|
|
NEXT FIELD tipo_cliente
|
|
END IF
|
|
|
|
UPDATE vetb00040 SET (us_crea,fech_crea) = (USER,CURRENT)
|
|
WHERE @tipo_cliente=vetb40.tipo_cliente AND @sec_cliente=vetb40.sec_cliente
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
EXIT INPUT
|
|
END INPUT
|
|
END FUNCTION
|
|
|
|
FUNCTION vepcmf105()
|
|
CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente,a.tipo_negocio,
|
|
a.tipo_cte,a.frecuencia_visita,a.tipo_pago
|
|
FROM tipo_cliente,sec_cliente,tipo_negocio,
|
|
tipo_cte,frecuencia_visita,tipo_pago
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
LET selec =
|
|
"SELECT a.*,b.nombre FROM vetb00040 a, vetb00004 b ",
|
|
"WHERE a.tipo_cliente=b.tipo_cliente AND a.sec_cliente=b.sec_cliente ",
|
|
" AND a.status_t IS NULL AND b.status_t IS NULL AND ",criterio CLIPPED,
|
|
" ORDER BY 1,2 "
|
|
|
|
PREPARE comando FROM selec
|
|
DECLARE busca SCROLL CURSOR FOR comando
|
|
OPEN busca
|
|
|
|
FETCH FIRST busca INTO vetb40.*,cliente_bas.nombre
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
DISPLAY BY NAME vetb40.*,cliente_bas.nombre
|
|
|
|
MENU "Opciones"
|
|
COMMAND "Siguiente" "Ver Sigte. Registro Que Satisfaga Condicion"
|
|
FETCH NEXT busca INTO vetb40.*,cliente_bas.nombre
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
DISPLAY BY NAME vetb40.*,cliente_bas.nombre
|
|
|
|
COMMAND "Anterior" "Ver Registro Anterior Que Satisfaga Condicion"
|
|
FETCH PREVIOUS busca INTO vetb40.*,cliente_bas.nombre
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
DISPLAY BY NAME vetb40.*,cliente_bas.nombre
|
|
|
|
COMMAND "Primero" "Ver Primer Registro Que Satisfaga Condicion"
|
|
FETCH FIRST busca INTO vetb40.*,cliente_bas.nombre
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
|
|
DISPLAY BY NAME vetb40.*,cliente_bas.nombre
|
|
|
|
COMMAND "Ultimo" "Ver Primer Registro Que Satisfaga Condicion"
|
|
FETCH LAST busca INTO vetb40.*,cliente_bas.nombre
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
|
|
DISPLAY BY NAME vetb40.*,cliente_bas.nombre
|
|
|
|
COMMAND "Escoger"
|
|
"<ESC> Actualizar Informacion <CTRL-C> Cancela Operacion"
|
|
|
|
INPUT BY NAME vetb40.tipo_negocio THRU vetb40.fech_mod
|
|
WITHOUT DEFAULTS
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
UPDATE vetb00040 SET (tipo_negocio,tipo_cte,frecuencia_visita,
|
|
tipo_pago,us_mod,fech_mod) =
|
|
(vetb40.tipo_negocio,vetb40.tipo_cte,
|
|
vetb40.frecuencia_visita,vetb40.tipo_pago,
|
|
USER,CURRENT)
|
|
WHERE @tipo_cliente = vetb40.tipo_cliente AND
|
|
@sec_cliente = vetb40.sec_cliente
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND KEY ("L") "eLiminar" "Eliminar Registro Que Satisfaga Condicion"
|
|
UPDATE vetb00040 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
|
|
WHERE @tipo_cliente = vetb40.tipo_cliente AND
|
|
@sec_cliente = vetb40.sec_cliente
|
|
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND "Retornar" "Retornar Al Menu Anterior"
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|