Files

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