Files
MBS/PROYECTO/vedir/veprmt037.4gl
T

148 lines
3.8 KiB
Plaintext

{
------------------------------------------------------------------------
PROGRAMA : VEPRMT037
OBJETIVO : CAMBIAR LOS CLIENTES DE VENDEDOR
PROGRAMADOR : JUAN F. SOTO
FECHA : JUNIO 6, 1997.
------------------------------------------------------------------------
}
GLOBALS
"veprgb000.4gl"
FUNCTION veprmt037()
DEFINE valor,valor1,balance DECIMAL(12,2),
vendedores RECORD LIKE vetb00028.*,
vende_de,vende_a SMALLINT,
nombre,apellido CHAR(20),
nombre1,nombre2 CHAR(40)
OPTIONS
ERROR LINE 24,
FORM LINE 8
CALL pantalla()
DISPLAY "Reasignacion de Clientes a Vendedores" AT 6,21
OPEN FORM vefmmt037 FROM "vefmmt037"
DISPLAY FORM vefmmt037
CONSTRUCT BY NAME criterio ON a.tipo_cliente,a.sec_cliente
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
INPUT BY NAME vende_de,vende_a
AFTER FIELD vende_de
IF vende_de IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD vende_de
END IF
SELECT nom1_emp,apell1_emp INTO nombre,apellido
FROM adtb00003
WHERE num_emp = vende_de
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD vende_de
END IF
LET nombre1 = nombre CLIPPED," ",apellido
DISPLAY BY NAME nombre1
AFTER FIELD vende_a
IF vende_a IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD vende_a
END IF
LET nombre = NULL
LET apellido = NULL
SELECT nom1_emp,apell1_emp INTO nombre,apellido
FROM adtb00003
WHERE num_emp = vende_a
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD vende_a
END IF
LET nombre2 = nombre CLIPPED," ",apellido
DISPLAY BY NAME nombre2
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
EXIT INPUT
END INPUT
LET selec =
"SELECT a.* FROM vetb00028 a ",
"WHERE ",criterio CLIPPED,
" AND a.sec_vend = ? "
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING vende_de
WHILE STATUS != NOTFOUND
FETCH busca INTO vendedores.*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
DISPLAY BY NAME vendedores.tipo_cliente,vendedores.sec_cliente
SELECT SUM(@valor+@monto_desc)
INTO valor
FROM cctb00001
WHERE @fecha_orig <= TODAY AND
@tipo_cliente = vendedores.tipo_cliente AND
@sec_cliente = vendedores.sec_cliente AND
@status_t IS NULL AND
tipo_doc NOT in ("DE","PC")
IF valor IS NULL THEN
LET valor = 0.00
END IF
SELECT SUM(@valor+@monto_desc) INTO valor1
FROM cctb00001
WHERE @fecha_orig <= TODAY AND
@tipo_cliente = vendedores.tipo_cliente AND
@sec_cliente = vendedores.sec_cliente AND
@status_t IS NULL AND tipo_doc = "DE" AND
num_doc = aplica_a
IF valor1 IS NULL THEN
LET valor1 = 0.00
END IF
LET balance = valor - valor1
INSERT INTO vetb00041 VALUES
(vendedores.tipo_cliente,vendedores.sec_cliente,
TODAY, vende_de,balance,user,current)
UPDATE vetb00028 SET sec_vend = vende_a,
us_mod = user,
fech_mod = current
WHERE sec_vend = vende_de AND
tipo_cliente = vendedores.tipo_cliente AND
sec_cliente = vendedores.sec_cliente
END WHILE
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION