Files
MBS/PROYECTO/cgdir/cgprmt022.4gl
T

90 lines
2.8 KiB
Plaintext

{
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