195 lines
5.0 KiB
Plaintext
195 lines
5.0 KiB
Plaintext
SCHEMA smarmotech
|
|
|
|
DEFINE usuario, clave, answer STRING
|
|
|
|
DEFINE Datos RECORD LIKE cttb00001.* --Datos individuales
|
|
DEFINE Ddatos DYNAMIC ARRAY OF RECORD --Conjunto de datos
|
|
cod_prod INT,
|
|
descripcion CHAR(50),
|
|
unidad_med CHAR(4),
|
|
nomenclatura CHAR(30),
|
|
desglose CHAR(10),
|
|
us_crea CHAR(50),
|
|
fech_crea DATE,
|
|
us_mod CHAR(50),
|
|
fech_mod DATE,
|
|
cod_cia SMALLINT,
|
|
factor DECIMAL (18,5)
|
|
END RECORD
|
|
|
|
MAIN --login y programa
|
|
|
|
CALL ARG_VAL(1) RETURNING usuario
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CONNECT TO "smarmotech" USER usuario USING clave
|
|
|
|
CALL ctprmt001()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION ctprmt001()
|
|
|
|
OPEN WINDOW w1 WITH FORM 'ctfmmt001'
|
|
CALL fgl_settitle("Maestra Semi-elaborados")
|
|
|
|
CALL buscarDatos() RETURNING Ddatos
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
|
|
DISPLAY ARRAY Ddatos TO Drecord.*
|
|
|
|
ON ACTION agregar
|
|
ATTRIBUTES(TEXT = "Agregar", IMAGE = "fa-address-book-o")
|
|
|
|
INPUT BY NAME Datos.*
|
|
|
|
AFTER INPUT
|
|
CALL Save()
|
|
CALL msg(1)
|
|
|
|
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 Ddatos
|
|
|
|
END DISPLAY
|
|
|
|
INPUT BY NAME datos.* ATTRIBUTES(WITHOUT DEFAULTS)
|
|
|
|
ON ACTION actualizar
|
|
ATTRIBUTES(TEXT = "Actualizar", IMAGE = "fa-refresh")
|
|
|
|
UPDATE cttb00001
|
|
SET cttb00001.cod_cia = datos.cod_cia,
|
|
cttb00001.descripcion = datos.descripcion,
|
|
cttb00001.desglose = datos.desglose,
|
|
cttb00001.fech_mod = GETDATE(),
|
|
cttb00001.nomenclatura = DATOS.nomenclatura,
|
|
cttb00001.unidad_med = datos.unidad_med,
|
|
cttb00001.us_mod = usuario,
|
|
cttb00001.factor = datos.factor
|
|
WHERE cttb00001.cod_prod = Datos.cod_prod
|
|
|
|
CALL msg(13)
|
|
|
|
ON ACTION salir ATTRIBUTES(TEXT = "Salir", IMAGE = "exit")
|
|
EXIT PROGRAM
|
|
|
|
ON ACTION Eliminar ATTRIBUTES(TEXT = "Eliminar", IMAGE = "delete")
|
|
|
|
LET answer =
|
|
fgl_winquestion(
|
|
"Eliminar registro",
|
|
"ESTA SEGURO QUE DESEA DESACTIVAR ESTE REGISTRO?",
|
|
"YES",
|
|
"YES|NO",
|
|
"QUESTION",
|
|
0)
|
|
|
|
IF answer = 'YES' THEN
|
|
|
|
UPDATE cttb00001
|
|
SET cttb00001.fech_mod = GETDATE(),
|
|
cttb00001.status_t = 'E',
|
|
cttb00001.us_mod = usuario
|
|
WHERE cttb00001.cod_prod = Datos.cod_prod
|
|
|
|
CALL msg(39)
|
|
ELSE
|
|
CALL msg(2)
|
|
END IF
|
|
|
|
END INPUT
|
|
|
|
END DIALOG
|
|
END FUNCTION
|
|
|
|
FUNCTION buscarDatos()
|
|
|
|
DEFINE idx INT
|
|
|
|
DECLARE buscar CURSOR FOR
|
|
SELECT cod_prod,
|
|
descripcion,
|
|
unidad_med,
|
|
nomenclatura,
|
|
desglose,
|
|
us_crea,
|
|
fech_crea,
|
|
us_mod,
|
|
fech_mod,
|
|
cod_cia,
|
|
factor
|
|
FROM cttb00001
|
|
WHERE status_t IS NULL
|
|
|
|
LET idx = 1
|
|
FOREACH buscar INTO Ddatos[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
RETURN Ddatos
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION getdata(i INT) --Obtener los datos y las propiedades del empleado
|
|
--Seleccionado en el Duser
|
|
IF i = 0 THEN
|
|
INITIALIZE datos.* TO NULL
|
|
RETURN
|
|
END IF
|
|
|
|
SELECT cod_prod,
|
|
descripcion,
|
|
unidad_med,
|
|
nomenclatura,
|
|
desglose,
|
|
status_t,
|
|
us_crea,
|
|
fech_crea,
|
|
us_mod,
|
|
fech_mod,
|
|
cod_cia,
|
|
factor
|
|
INTO datos.* FROM cttb00001
|
|
WHERE cttb00001.cod_prod = Ddatos[i].cod_prod
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION Save()
|
|
|
|
DEFINE idx INT
|
|
|
|
SELECT MAX(cod_prod) INTO idx FROM cttb00001
|
|
|
|
LET datos.cod_prod = idx + 1
|
|
|
|
INSERT INTO cttb00001(
|
|
cod_cia,
|
|
cod_prod,
|
|
descripcion,
|
|
desglose,
|
|
fech_crea,
|
|
nomenclatura,
|
|
unidad_med,
|
|
us_crea,
|
|
factor)
|
|
VALUES(datos.cod_cia,
|
|
datos.cod_prod,
|
|
datos.descripcion,
|
|
datos.desglose,
|
|
GETDATE(),
|
|
datos.nomenclatura,
|
|
datos.unidad_med,
|
|
usuario,
|
|
datos.factor)
|
|
|
|
END FUNCTION
|