315 lines
9.2 KiB
Plaintext
315 lines
9.2 KiB
Plaintext
SCHEMA smarmotech
|
|
|
|
DEFINE usuario, clave, answer STRING
|
|
|
|
DEFINE tasas RECORD
|
|
idTasa INT,
|
|
fecha DATE,
|
|
tasa DEC(12, 2),
|
|
ventas SMALLINT,
|
|
us_crea VARCHAR(50),
|
|
fech_crea DATE
|
|
END RECORD
|
|
|
|
DEFINE Dtasas DYNAMIC ARRAY OF RECORD --Display Tasas
|
|
idTasa INT,
|
|
fecha DATE,
|
|
tasa DEC(12, 2),
|
|
ventas STRING,
|
|
us_crea VARCHAR(50),
|
|
fech_crea DATE
|
|
END RECORD
|
|
|
|
DEFINE ventasCont DYNAMIC ARRAY OF RECORD
|
|
idTasa INT,
|
|
ventas SMALLINT
|
|
END RECORD
|
|
|
|
MAIN --login y programa
|
|
|
|
CALL ARG_VAL(1) RETURNING usuario
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CONNECT TO "marmotech" AS "EXTERIOR" USER usuario USING clave
|
|
CONNECT TO "smarmotech" AS "MARMOTECH" USER usuario USING clave
|
|
|
|
CALL veprmt112()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION veprmt112()
|
|
|
|
OPEN WINDOW w1 WITH FORM 'vefmwd112'
|
|
CALL fgl_settitle("Gestion tasa diaria")
|
|
|
|
CALL buscarDatos() RETURNING Dtasas
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
|
|
DISPLAY ARRAY Dtasas TO Drecord.*
|
|
|
|
ON ACTION agregar
|
|
ATTRIBUTES(TEXT = "Agregar", IMAGE = "fa-address-book-o")
|
|
|
|
INITIALIZE tasas.tasa, tasas.ventas TO NULL
|
|
LET tasas.fecha = CURRENT YEAR TO DAY
|
|
|
|
INPUT BY NAME tasas.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
|
|
BEFORE FIELD fecha
|
|
NEXT FIELD tasa --Para que al agregar la tasa del día
|
|
--No se pueda modificar la fecha actual
|
|
AFTER INPUT
|
|
CALL Save()
|
|
|
|
ON ACTION CANCEL ATTRIBUTES(TEXT = "Salir", IMAGE = "quit")
|
|
CALL msg(2)
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
ON ACTION salir ATTRIBUTES(TEXT = "Salir", IMAGE = "quit")
|
|
EXIT PROGRAM
|
|
|
|
BEFORE ROW
|
|
|
|
CALL getdata(arr_curr())
|
|
CALL buscarDatos() RETURNING Dtasas
|
|
|
|
IF tasas.fecha
|
|
< CURRENT YEAR TO DAY THEN --si la fecha del registro
|
|
--seleccionado es previa a
|
|
DISPLAY BY NAME tasas.* --la fecha actual entonces
|
|
--No se puede modificar
|
|
|
|
ELSE
|
|
|
|
INPUT BY NAME tasas.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
|
|
AFTER INPUT
|
|
BEGIN WORK
|
|
|
|
UPDATE vetb00112
|
|
SET tasa = tasas.tasa,
|
|
ventas = tasas.ventas,
|
|
us_mod = usuario,
|
|
fech_mod = GETDATE()
|
|
WHERE vetb00112.idTasa = tasas.idTasa
|
|
|
|
INSERT INTO vetb00112_log(
|
|
idTasa,
|
|
fecha,
|
|
tasa,
|
|
ventas,
|
|
us_crea,
|
|
fech_crea,
|
|
us_mod,
|
|
fech_mod,
|
|
Mov)
|
|
VALUES(tasas.idTasa,
|
|
tasas.fecha,
|
|
tasas.tasa,
|
|
tasas.ventas,
|
|
tasas.us_crea,
|
|
tasas.fech_crea,
|
|
usuario,
|
|
GETDATE(),
|
|
'Updated')
|
|
|
|
SET CONNECTION "EXTERIOR"
|
|
|
|
UPDATE vetb00060
|
|
SET tasa = Tasas.tasa
|
|
WHERE ventas = tasas.ventas
|
|
|
|
SET CONNECTION "MARMOTECH"
|
|
|
|
UPDATE vetb00061
|
|
SET tasa = Tasas.tasa
|
|
WHERE ventas = tasas.ventas
|
|
|
|
COMMIT WORK
|
|
|
|
CALL msg(13)
|
|
CALL buscarDatos() RETURNING Dtasas
|
|
|
|
ON ACTION CANCEL
|
|
ATTRIBUTES(TEXT = "Salir", IMAGE = "exit")
|
|
CALL msg(2)
|
|
EXIT INPUT
|
|
|
|
ON ACTION Eliminar
|
|
ATTRIBUTES(TEXT = "Eliminar", IMAGE = "delete")
|
|
|
|
LET answer =
|
|
fgl_winquestion(
|
|
"Eliminar registro",
|
|
"ESTA SEGURO QUE DESEA ELIMINAR ESTE REGISTRO?",
|
|
"YES",
|
|
"YES|NO",
|
|
"QUESTION",
|
|
0)
|
|
|
|
IF answer = 'YES' THEN
|
|
|
|
BEGIN WORK
|
|
|
|
INSERT INTO vetb00112_log(
|
|
idTasa,
|
|
fecha,
|
|
tasa,
|
|
ventas,
|
|
us_crea,
|
|
fech_crea,
|
|
us_mod,
|
|
fech_mod,
|
|
Mov)
|
|
VALUES(tasas.idTasa,
|
|
tasas.fecha,
|
|
tasas.tasa,
|
|
tasas.ventas,
|
|
tasas.us_crea,
|
|
tasas.fech_crea,
|
|
usuario,
|
|
GETDATE(),
|
|
'Deleted')
|
|
|
|
DELETE FROM vetb00112
|
|
WHERE idTasa = tasas.idTasa
|
|
|
|
COMMIT WORK
|
|
|
|
CALL msg(39)
|
|
INITIALIZE Dtasas TO NULL
|
|
CALL buscarDatos() RETURNING Dtasas
|
|
|
|
EXIT INPUT
|
|
ELSE
|
|
CALL msg(2)
|
|
END IF
|
|
END INPUT
|
|
END IF
|
|
END DISPLAY
|
|
END DIALOG
|
|
END FUNCTION
|
|
|
|
FUNCTION buscarDatos() --Obteniendo datos para el array de Tasas
|
|
|
|
DEFINE idx INT
|
|
|
|
DECLARE buscar CURSOR FOR
|
|
SELECT a.idTasa,
|
|
a.fecha,
|
|
a.tasa,
|
|
'(' + CAST(a.ventas AS CHAR(1)) + ')' + ' ' + rtrim(b.descripcion),
|
|
a.us_crea,
|
|
a.fech_crea
|
|
FROM vetb00112 a LEFT JOIN vetb00061 b ON a.ventas = b.ventas
|
|
|
|
LET idx = 1
|
|
FOREACH buscar INTO Dtasas[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
DECLARE buscar2 CURSOR FOR SELECT idTasa, ventas FROM vetb00112
|
|
|
|
LET idx = 1
|
|
FOREACH buscar2 INTO ventasCont[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
RETURN Dtasas
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION getdata(i INT) --Obteniendo los datos de la tasa seleccionada
|
|
|
|
IF i = 0 THEN
|
|
INITIALIZE tasas.* TO NULL
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT idTasa, fecha, tasa, ventas, us_crea, fech_crea
|
|
INTO tasas.*
|
|
FROM vetb00112
|
|
WHERE vetb00112.idTasa = Dtasas[i].idTasa
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION load_cb (cb)
|
|
|
|
DEFINE
|
|
cb ui.ComboBox,
|
|
cb_ventas SMALLINT,
|
|
cb_desc VARCHAR(40)
|
|
|
|
CALL cb.clear()
|
|
|
|
DECLARE buscar3 CURSOR FOR
|
|
SELECT ventas, '(' + CAST(ventas AS CHAR(1)) + ')' + ' ' + rtrim(descripcion) FROM vetb00061
|
|
|
|
WHENEVER ERROR CONTINUE
|
|
|
|
FOREACH buscar3 INTO cb_ventas, cb_desc
|
|
|
|
WHENEVER ERROR STOP
|
|
|
|
IF SQLCA.SQLCODE = 0 THEN
|
|
CALL cb.addItem(cb_ventas, cb_desc)
|
|
END IF
|
|
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION Save()
|
|
|
|
DEFINE i INT
|
|
DEFINE flag BOOLEAN
|
|
|
|
LET flag = TRUE
|
|
|
|
FOR i = 1 TO Dtasas.getLength()
|
|
|
|
IF tasas.fecha = Dtasas[i].fecha THEN
|
|
IF tasas.ventas = ventasCont[i].ventas THEN
|
|
LET flag = FALSE
|
|
END IF
|
|
END IF
|
|
|
|
END FOR
|
|
|
|
IF flag THEN
|
|
|
|
BEGIN WORK
|
|
|
|
INSERT INTO vetb00112(
|
|
fecha, tasa, ventas, us_crea, fech_crea)
|
|
VALUES(tasas.fecha, tasas.tasa, tasas.ventas, usuario, GETDATE())
|
|
|
|
INSERT INTO vetb00112_log(
|
|
fecha, tasa, ventas, us_crea, fech_crea, Mov)
|
|
VALUES(tasas.fecha,
|
|
tasas.tasa,
|
|
tasas.ventas,
|
|
usuario,
|
|
GETDATE(),
|
|
'Inserted')
|
|
|
|
SET CONNECTION "EXTERIOR"
|
|
|
|
UPDATE vetb00060 SET tasa = tasas.tasa WHERE ventas = tasas.ventas
|
|
|
|
SET CONNECTION "MARMOTECH"
|
|
|
|
UPDATE vetb00061 SET tasa = tasas.tasa WHERE ventas = tasas.ventas
|
|
|
|
COMMIT WORK
|
|
|
|
CALL msg(1)
|
|
CALL buscarDatos() RETURNING Dtasas
|
|
|
|
ELSE
|
|
CALL msg(12)
|
|
END IF
|
|
|
|
END FUNCTION
|