148 lines
3.8 KiB
Plaintext
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
|
|
|