{ ------------------------------------------------------------------------ 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