{ PROGRAMA : cgprmt022 OBJETIVO : Administrar las tasas mensuales FECHA CREACION: Agosto 7, 2018 DESARROLLADO POR: ING. JUAN SOTO } GLOBALS "cgprgb000.4gl" MAIN DEFER INTERRUPT CALL STARTLOG("CGPRMT021.TXT") CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave CALL cgprmt022() END MAIN FUNCTION cgprmt022() DEFINE mtasa RECORD ano SMALLINT, mes SMALLINT, ventas SMALLINT, tipo_cliente SMALLINT, tasa DEC(8,2) END RECORD OPEN WINDOW w1 WITH FORM "cgfmmt022" INPUT BY NAME mtasa.* BEFORE INPUT CALL cventas() LET mtasa.ano = YEAR(TODAY) LET mtasa.mes = MONTH(TODAY)-1 DISPLAY BY NAME mtasa.ano,mtasa.mes AFTER INPUT IF INT_FLAG THEN CALL msg(16) LET INT_FLAG = FALSE EXIT INPUT END IF SELECT DISTINCT a.tipo_cliente FROM vetb00061 a WHERE a.tipo_cliente = mtasa.tipo_cliente AND a.ventas = mtasa.ventas IF STATUS = NOTFOUND THEN CALL fgl_winmessage("INFO","COMBINACION TIPO CLIENTE Y MONEDA ESTAN ERRADOS","INFO") NEXT FIELD ventas END IF SELECT DISTINCT a.ano,a.mes,a.ventas,a.tipo_cliente,a.tasa INTO mtasa.ano,mtasa.mes,mtasa.ventas,mtasa.tipo_cliente FROM cgtb00084 a WHERE a.ano = mtasa.ano AND a.mes = mtasa.mes AND a.ventas = mtasa.ventas AND a.tipo_cliente = mtasa.tipo_cliente IF STATUS <> NOTFOUND THEN DISPLAY BY NAME mtasa.* UPDATE cgtb00084 SET cgtb00084.tasa = mtasa.tasa, us_mod = usuarios, fech_mod = getdate() WHERE cgtb00084.ano = mtasa.ano AND cgtb00084.mes = mtasa.mes AND cgtb00084.ventas = mtasa.ventas AND cgtb00084.tipo_cliente = mtasa.tipo_cliente ELSE INSERT INTO cgtb00084 (ano,mes,ventas,tipo_cliente,tasa,us_crea,fech_crea) VALUES (mtasa.ano,mtasa.mes,mtasa.ventas,mtasa.tipo_cliente,mtasa.tasa,usuarios,getdate()) END IF CALL msg(13) EXIT INPUT END INPUT CLOSE WINDOW w1 END FUNCTION FUNCTION cventas() DEFINE kventas SMALLINT, dventas CHAR(30) DEFINE pventas ui.ComboBox LET pventas = ui.combobox.forname("formonly.ventas") DECLARE bventas CURSOR FOR SELECT a.ventas,a.descripcion FROM vetb00061 a CALL pventas.clear() FOREACH bventas INTO kventas,dventas CALL pventas.additem(kventas,dventas) END FOREACH END FUNCTION