880 lines
29 KiB
Plaintext
880 lines
29 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : ACPRMT001
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla Catalogo de Bienes y Servicios
|
|
PROGRAMADOR : Ing. Elvis García
|
|
FECHA REALIZACION : Agosto 13, 2024
|
|
------------------------------------------------------------------
|
|
}
|
|
|
|
IMPORT FGL fgldialog
|
|
IMPORT util
|
|
IMPORT com
|
|
|
|
GLOBALS "acprgb000.4gl"
|
|
|
|
DEFINE next_code, checkMaintainID INT
|
|
|
|
DEFINE des RECORD
|
|
descripcion2, descripcion3, descripcion4, descripcion5 STRING
|
|
END RECORD
|
|
|
|
DEFINE DisArray DYNAMIC ARRAY OF RECORD
|
|
codigo1 INT,
|
|
descripcion STRING,
|
|
cuenta_no1 CHAR(8),
|
|
departamento1 STRING,
|
|
id_maintainX INT
|
|
END RECORD
|
|
|
|
DEFINE infoArray RECORD
|
|
codigo INT,
|
|
descripcion1 STRING,
|
|
cuenta_no CHAR(8),
|
|
cta_depr CHAR(8),
|
|
cta_gasto CHAR(8),
|
|
departamento2 SMALLINT,
|
|
fech_compra DATE,
|
|
duracion INT,
|
|
fech_elim DATE,
|
|
referencia STRING,
|
|
fabricante STRING,
|
|
status_t CHAR(1),
|
|
us_crea STRING,
|
|
fech_crea DATE,
|
|
us_mod STRING,
|
|
fech_mod DATE,
|
|
sucid INT,
|
|
id_MaintainX INT,
|
|
id_maquina INT,
|
|
desc_maquina STRING
|
|
END RECORD
|
|
|
|
|
|
DEFINE answer STRING, ApiCheck BOOLEAN
|
|
|
|
DEFINE maquinaria RECORD
|
|
unidad_med CHAR(10),
|
|
modelo STRING,
|
|
serie STRING,
|
|
departamento STRING,
|
|
codigo_externo STRING
|
|
END RECORD
|
|
|
|
DEFINE extraCampos RECORD
|
|
cod_sp INT,
|
|
cod_sp_sec INT,
|
|
nom_prov STRING,
|
|
tipo_Activo STRING,
|
|
activo_padre INT,
|
|
nom_activoPadre STRING
|
|
END RECORD
|
|
|
|
DEFINE documento BYTE
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
|
|
CALL acprmt001()
|
|
END MAIN
|
|
|
|
FUNCTION acprmt001()
|
|
|
|
OPEN WINDOW w1 WITH FORM "acfmmt001"
|
|
CALL fgl_settitle("Maestra de Activos Fijos")
|
|
|
|
CALL acpcad001()
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED)
|
|
DISPLAY ARRAY DisArray TO Tabla.*
|
|
|
|
ON ACTION refresh
|
|
INITIALIZE infoArray.*, des.*, maquinaria.*, extraCampos.* TO NULL
|
|
CALL acpcad001()
|
|
|
|
ON ACTION Adicionar
|
|
INITIALIZE infoArray, des, maquinaria.*, extraCampos.* TO NULL
|
|
LET infoArray.us_crea = usuarios
|
|
LET infoArray.fech_crea = CURRENT YEAR TO DAY
|
|
|
|
SELECT TOP(1) codigo
|
|
INTO next_code
|
|
FROM actb00001
|
|
ORDER BY codigo DESC
|
|
|
|
LET infoArray.codigo = next_code + 1
|
|
|
|
INPUT BY NAME infoArray.*, des.*, maquinaria.*, extraCampos.*, apiCheck
|
|
ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
|
|
|
|
AFTER FIELD descripcion1
|
|
IF infoArray.descripcion1 IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD descripcion1
|
|
END IF
|
|
|
|
AFTER FIELD cuenta_no
|
|
SELECT a.descripcion
|
|
INTO des.descripcion2
|
|
FROM cgtb00001 a
|
|
WHERE cuenta_no = infoArray.cuenta_no
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
DISPLAY BY NAME des.descripcion2
|
|
|
|
AFTER FIELD cta_depr
|
|
SELECT a.descripcion
|
|
INTO des.descripcion3
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_depr
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
DISPLAY BY NAME des.descripcion3
|
|
|
|
AFTER FIELD cta_gasto
|
|
SELECT a.descripcion
|
|
INTO des.descripcion4
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_gasto
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
DISPLAY BY NAME des.descripcion4
|
|
|
|
AFTER FIELD departamento2
|
|
SELECT a.nom_dpto
|
|
INTO des.descripcion5
|
|
FROM adtb00001 a
|
|
WHERE a.departamento = infoarray.departamento2
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cuenta_no
|
|
END IF
|
|
|
|
DISPLAY BY NAME des.descripcion5
|
|
NEXT FIELD sucid
|
|
|
|
{ AFTER FIELD sucid
|
|
NEXT FIELD cod_sp
|
|
|
|
AFTER FIELD cod_sp
|
|
NEXT FIELD cod_sp_sec }
|
|
|
|
AFTER FIELD cod_sp_sec
|
|
IF extraCampos.cod_sp IS NOT NULL AND extracampos.cod_sp_sec IS NOT NULL THEN
|
|
|
|
INITIALIZE checkmaintainID TO NULL
|
|
|
|
SELECT nom_sp, id_maintainx INTO extraCampos.nom_prov, checkMaintainID FROM cotb00001
|
|
WHERE cod_sp = extraCampos.cod_sp
|
|
AND cod_sp_sec = extracampos.cod_sp_sec
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cod_sp
|
|
ELSE
|
|
IF checkMaintainID IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"NO EXISTE PROVEEDOR",
|
|
"El proveedor insertado no se encuentra en MaintainX",
|
|
"stop")
|
|
NEXT FIELD cod_sp
|
|
ELSE
|
|
DISPLAY BY NAME extraCampos.nom_prov
|
|
END IF
|
|
END IF
|
|
|
|
END IF
|
|
|
|
AFTER FIELD activo_padre
|
|
IF extraCampos.activo_padre IS NOT NULL THEN
|
|
|
|
INITIALIZE checkMaintainID TO NULL
|
|
|
|
SELECT descripcion, id_maintainx INTO extraCampos.nom_activoPadre, checkmaintainID
|
|
FROM actb00001 WHERE codigo = extraCampos.activo_padre
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD activo_padre
|
|
ELSE
|
|
IF checkMaintainID IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"NO EXISTE ACTIVO",
|
|
"El activo insertado no se encuentra en MaintainX",
|
|
"stop")
|
|
NEXT FIELD activo_padre
|
|
ELSE
|
|
DISPLAY BY NAME extracampos.nom_activoPadre
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
#NEXT FIELD id_maquina
|
|
|
|
{ AFTER FIELD serie
|
|
NEXT FIELD duracion
|
|
|
|
AFTER FIELD fabricante
|
|
NEXT FIELD apicheck}
|
|
|
|
AFTER FIELD id_maquina
|
|
CALL get_maquina()
|
|
SELECT nombre INTO infoArray.desc_maquina
|
|
FROM irtb00009 WHERE codigo = infoArray.id_maquina
|
|
AND status_t IS NULL
|
|
|
|
CALL departamentos()
|
|
|
|
AFTER INPUT
|
|
NEXT FIELD fabricante
|
|
|
|
ON ACTION ACCEPT
|
|
CALL insertData()
|
|
EXIT INPUT
|
|
|
|
ON ACTION id_maquina
|
|
SELECT MAX(codigo) INTO infoArray.id_maquina FROM irtb00009
|
|
|
|
LET infoArray.id_maquina = infoArray.id_maquina + 1
|
|
|
|
DISPLAY BY NAME infoArray.id_maquina
|
|
|
|
ON ACTION CANCEL
|
|
CALL msg(2)
|
|
EXIT INPUT
|
|
|
|
END INPUT
|
|
|
|
ON ACTION Modificar
|
|
|
|
INPUT BY NAME infoArray.*, maquinaria.*, extraCampos.*, apiCheck
|
|
ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
|
|
|
|
BEFORE INPUT
|
|
CALL departamentos()
|
|
|
|
|
|
AFTER FIELD cuenta_no
|
|
SELECT a.descripcion
|
|
INTO des.descripcion2
|
|
FROM cgtb00001 a
|
|
WHERE cuenta_no = infoArray.cuenta_no
|
|
|
|
DISPLAY BY NAME des.descripcion2
|
|
|
|
AFTER FIELD cta_depr
|
|
SELECT a.descripcion
|
|
INTO des.descripcion3
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_depr
|
|
|
|
DISPLAY BY NAME des.descripcion3
|
|
|
|
AFTER FIELD cta_gasto
|
|
SELECT a.descripcion
|
|
INTO des.descripcion4
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_gasto
|
|
|
|
DISPLAY BY NAME des.descripcion4
|
|
|
|
AFTER FIELD departamento2
|
|
SELECT a.nom_dpto
|
|
INTO des.descripcion5
|
|
FROM adtb00001 a
|
|
WHERE a.departamento = infoarray.departamento2
|
|
|
|
DISPLAY BY NAME des.descripcion5
|
|
|
|
AFTER FIELD cod_sp_sec
|
|
IF extraCampos.cod_sp IS NOT NULL AND extracampos.cod_sp_sec IS NOT NULL THEN
|
|
|
|
INITIALIZE checkmaintainID TO NULL
|
|
|
|
SELECT nom_sp, id_maintainx INTO extraCampos.nom_prov, checkMaintainID FROM cotb00001
|
|
WHERE cod_sp = extraCampos.cod_sp
|
|
AND cod_sp_sec = extracampos.cod_sp_sec
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cod_sp
|
|
ELSE
|
|
IF checkMaintainID IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"NO EXISTE PROVEEDOR",
|
|
"El proveedor insertado no se encuentra en MaintainX",
|
|
"stop")
|
|
NEXT FIELD cod_sp
|
|
ELSE
|
|
DISPLAY BY NAME extraCampos.nom_prov
|
|
END IF
|
|
END IF
|
|
|
|
END IF
|
|
|
|
AFTER FIELD activo_padre
|
|
IF extraCampos.activo_padre IS NOT NULL THEN
|
|
|
|
INITIALIZE checkMaintainID TO NULL
|
|
|
|
SELECT descripcion, id_maintainx INTO extraCampos.nom_activoPadre, checkmaintainID
|
|
FROM actb00001 WHERE codigo = extraCampos.activo_padre
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD activo_padre
|
|
ELSE
|
|
IF checkMaintainID IS NULL THEN
|
|
CALL fgl_winmessage(
|
|
"NO EXISTE ACTIVO",
|
|
"El activo insertado no se encuentra en MaintainX",
|
|
"stop")
|
|
NEXT FIELD activo_padre
|
|
ELSE
|
|
DISPLAY BY NAME extracampos.nom_activoPadre
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
|
|
AFTER FIELD id_maquina
|
|
CALL get_maquina()
|
|
SELECT nombre INTO infoArray.desc_maquina
|
|
FROM irtb00009 WHERE codigo = infoArray.id_maquina
|
|
AND status_t IS NULL
|
|
|
|
AFTER INPUT
|
|
NEXT FIELD fabricante --Para que no se haga el auto accept
|
|
|
|
ON ACTION id_maquina
|
|
SELECT MAX(codigo) INTO infoArray.id_maquina FROM irtb00009
|
|
|
|
LET infoArray.id_maquina = infoArray.id_maquina + 1
|
|
|
|
DISPLAY BY NAME infoArray.id_maquina
|
|
|
|
|
|
ON ACTION ACCEPT
|
|
CALL UpdateData(1)
|
|
EXIT INPUT
|
|
|
|
ON ACTION CANCEL
|
|
CALL msg(2)
|
|
EXIT INPUT
|
|
END INPUT
|
|
|
|
ON ACTION Eliminar
|
|
|
|
LET answer =
|
|
fgl_winquestion(
|
|
"ELIMINAR REGISTRO",
|
|
"Esta seguro/a que desea eliminar este registro? ",
|
|
"yes",
|
|
"yes|no",
|
|
"question",
|
|
0)
|
|
|
|
IF answer = 'yes' THEN
|
|
CALL updateData(2)
|
|
ELSE
|
|
CALL msg(2)
|
|
END IF
|
|
|
|
ON ACTION Salir
|
|
EXIT PROGRAM
|
|
|
|
BEFORE ROW
|
|
CALL departamentos()
|
|
CALL getdata(arr_curr())
|
|
|
|
IF infoArray.id_maquina IS NOT NULL THEN
|
|
CALL get_maquina()
|
|
ELSE
|
|
INITIALIZE maquinaria TO NULL
|
|
END IF
|
|
|
|
DISPLAY BY NAME infoArray.*, maquinaria.*, extraCampos.*
|
|
|
|
END DISPLAY
|
|
|
|
END DIALOG
|
|
|
|
CLOSE WINDOW w1
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION acpcad001() --Consultar Datos Activo
|
|
|
|
DEFINE i INT
|
|
CALL disArray.clear()
|
|
|
|
LET i = 1
|
|
|
|
PREPARE query
|
|
FROM "SELECT a.codigo, a.descripcion, a.cuenta_no, b.nom_dpto, a.id_maintainx
|
|
FROM actb00001 a inner join adtb00001 b on a.departamento = b.departamento
|
|
where a.status_t is null
|
|
ORDER BY codigo"
|
|
|
|
DECLARE buscar CURSOR FOR query
|
|
|
|
FOREACH buscar INTO DisArray[i].*
|
|
|
|
LET i = i + 1
|
|
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION getdata(idx INT)
|
|
|
|
INITIALIZE extraCampos, infoArray TO NULL
|
|
|
|
PREPARE query
|
|
FROM "SELECT a.codigo
|
|
,a.descripcion
|
|
,a.cuenta_no
|
|
,a.cta_depr
|
|
,a.cta_gasto
|
|
,a.departamento
|
|
,CONVERT(VARCHAR(10),fech_compra,103)
|
|
,a.duracion
|
|
,CONVERT(VARCHAR(10),fech_elim,103)
|
|
,a.referencia
|
|
,a.fabricante
|
|
,a.status_t
|
|
,a.us_crea
|
|
,a.fech_crea
|
|
,a.us_mod
|
|
,a.fech_mod
|
|
,a.sucid
|
|
,a.id_MaintainX
|
|
,a.id_codigo
|
|
,b.nombre
|
|
FROM actb00001 a left join irtb00009 b on a.id_codigo = b.codigo
|
|
WHERE a.codigo = " || DisArray[idx].codigo1 || "
|
|
AND a.status_t is null and b.status_t is null
|
|
ORDER BY a.codigo"
|
|
|
|
EXECUTE query INTO infoArray.*
|
|
|
|
SELECT a.descripcion
|
|
INTO des.descripcion2
|
|
FROM cgtb00001 a
|
|
WHERE cuenta_no = infoArray.cuenta_no
|
|
|
|
SELECT a.descripcion
|
|
INTO des.descripcion3
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_depr
|
|
|
|
SELECT a.descripcion
|
|
INTO des.descripcion4
|
|
FROM cgtb00001 a
|
|
WHERE a.cuenta_no = infoArray.cta_gasto
|
|
|
|
SELECT a.nom_dpto
|
|
INTO des.descripcion5
|
|
FROM adtb00001 a
|
|
WHERE a.departamento = infoarray.departamento2
|
|
|
|
SELECT nombre INTO infoArray.desc_maquina
|
|
FROM irtb00009 WHERE codigo = infoArray.codigo
|
|
|
|
CALL localidades(1)
|
|
|
|
DISPLAY BY NAME des.*
|
|
|
|
SELECT cod_sp, cod_sp_sec, tipo_activo,activo_padre
|
|
INTO extraCampos.cod_sp,extraCampos.cod_sp_sec, extraCampos.tipo_Activo, extraCampos.activo_padre
|
|
FROM actb00001 WHERE codigo = DisArray[idx].codigo1
|
|
|
|
DISPLAY BY NAME extraCampos.tipo_Activo
|
|
|
|
IF extraCampos.cod_sp IS NOT NULL AND extraCampos.cod_sp_sec IS NOT NULL THEN
|
|
SELECT nom_sp INTO extraCampos.nom_prov FROM cotb00001 WHERE
|
|
cod_sp = extraCampos.cod_sp AND cod_sp_sec = extraCampos.cod_sp_sec
|
|
AND status_t IS NULL
|
|
|
|
DISPLAY BY NAME extraCampos.nom_prov
|
|
END IF
|
|
|
|
IF extraCampos.activo_padre IS NOT NULL THEN
|
|
|
|
SELECT descripcion INTO extraCampos.nom_activoPadre FROM actb00001
|
|
WHERE codigo = extraCampos.activo_padre
|
|
|
|
DISPLAY BY NAME extraCampos.nom_activoPadre
|
|
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
|
|
|
|
FUNCTION get_maquina() --Consultar Datos Maquina
|
|
|
|
DEFINE i INT, query STRING
|
|
|
|
{LET query = " SELECT unidad_med,modelo,serie,us_crea,fech_crea,departamento,
|
|
codigo_externo, id_codigo FROM irtb00009 where ",
|
|
" status_t is null and codigo =", infoArray.id_maquina}
|
|
|
|
SELECT unidad_med,modelo,serie,departamento,codigo_externo
|
|
INTO maquinaria.unidad_med,
|
|
maquinaria.modelo,
|
|
maquinaria.serie,
|
|
maquinaria.departamento,
|
|
maquinaria.codigo_externo
|
|
FROM irtb00009 WHERE
|
|
status_t IS NULL AND codigo = infoArray.id_maquina
|
|
|
|
END FUNCTION
|
|
|
|
|
|
|
|
FUNCTION insertData()
|
|
|
|
DEFINE checking INT
|
|
LET infoArray.fech_crea = CURRENT YEAR TO FRACTION
|
|
|
|
INITIALIZE checking TO NULL
|
|
|
|
BEGIN WORK
|
|
|
|
IF apiCheck THEN
|
|
CALL ApiMaintainX('POST',NULL, infoArray.*, maquinaria.*,extraCampos.*, NULL) RETURNING infoArray.id_MaintainX
|
|
|
|
DISPLAY BY NAME infoArray.id_MaintainX
|
|
|
|
IF infoArray.id_MaintainX IS NULL THEN
|
|
ROLLBACK WORK
|
|
END IF
|
|
END IF
|
|
|
|
INSERT INTO actb00001(
|
|
codigo,
|
|
descripcion,
|
|
cuenta_no,
|
|
cta_depr,
|
|
cta_gasto,
|
|
departamento,
|
|
fech_compra,
|
|
duracion,
|
|
fech_elim,
|
|
referencia,
|
|
fabricante,
|
|
status_t,
|
|
us_crea,
|
|
fech_crea,
|
|
us_mod,
|
|
fech_mod,
|
|
sucid,
|
|
id_maintainX,
|
|
id_codigo,
|
|
cod_sp,
|
|
cod_sp_sec,
|
|
tipo_activo,
|
|
activo_padre)
|
|
VALUES(infoArray.codigo,
|
|
infoArray.descripcion1,
|
|
infoArray.cuenta_no,
|
|
infoArray.cta_depr,
|
|
infoArray.cta_gasto,
|
|
infoarray.departamento2,
|
|
infoArray.fech_compra,
|
|
infoArray.duracion,
|
|
NULL,
|
|
infoArray.referencia,
|
|
infoArray.fabricante,
|
|
NULL,
|
|
infoArray.us_crea,
|
|
infoArray.fech_crea,
|
|
NULL,
|
|
NULL,
|
|
infoArray.sucid,
|
|
infoArray.id_MaintainX,
|
|
infoArray.id_maquina,
|
|
extraCampos.cod_sp,
|
|
extraCampos.cod_sp_sec,
|
|
extraCampos.tipo_Activo,
|
|
extraCampos.activo_padre)
|
|
|
|
IF infoArray.id_maquina IS NOT NULL THEN
|
|
|
|
SELECT codigo INTO checking FROM irtb00009 WHERE codigo = infoArray.id_maquina
|
|
DISPLAY "insert filtro 1"
|
|
|
|
IF checking IS NOT NULL THEN
|
|
UPDATE irtb00009 SET nombre = infoArray.desc_maquina,
|
|
modelo = maquinaria.modelo,
|
|
unidad_med = maquinaria.unidad_med,
|
|
serie = maquinaria.serie,
|
|
fabricante = infoArray.fabricante,
|
|
departamento = maquinaria.departamento,
|
|
codigo_externo = maquinaria.codigo_externo,
|
|
us_mod = USUARIOS,
|
|
fech_mod = GETDATE(),
|
|
id_codigo = infoArray.codigo
|
|
WHERE codigo = infoArray.id_maquina
|
|
DISPLAY "insert filtro 2 que es un update"
|
|
ELSE
|
|
|
|
INSERT INTO irtb00009 (codigo,nombre,unidad_med,modelo,serie,fabricante,us_crea,fech_crea,departamento,
|
|
codigo_externo,id_codigo)
|
|
VALUES (infoArray.id_maquina, infoarray.desc_maquina,
|
|
maquinaria.unidad_med,
|
|
maquinaria.modelo,maquinaria.serie,
|
|
infoArray.fabricante,
|
|
usuarios, getdate(),maquinaria.departamento,maquinaria.codigo_externo, infoArray.codigo)
|
|
|
|
DISPLAY "No se encontro maquina para actualizar, se crea una nueva"
|
|
END IF
|
|
|
|
END IF
|
|
|
|
INSERT INTO actb00005
|
|
VALUES(infoArray.codigo,
|
|
infoArray.descripcion1,
|
|
infoArray.cuenta_no,
|
|
infoArray.cta_depr,
|
|
infoArray.cta_gasto,
|
|
infoarray.departamento2,
|
|
infoArray.fech_compra,
|
|
infoArray.duracion,
|
|
NULL,
|
|
NULL,
|
|
infoArray.us_crea,
|
|
infoArray.fech_crea,
|
|
NULL,
|
|
NULL,
|
|
NULL)
|
|
|
|
IF SQLCA.SQLCODE < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1663)
|
|
ELSE
|
|
COMMIT WORK
|
|
CALL msg(1)
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION updateData(CASO INT)
|
|
|
|
DEFINE checking INT
|
|
|
|
INITIALIZE checking TO NULL
|
|
|
|
CASE CASO
|
|
|
|
WHEN 1
|
|
|
|
BEGIN WORK
|
|
|
|
|
|
IF apiCheck THEN
|
|
IF infoArray.id_MaintainX IS NULL THEN
|
|
CALL ApiMaintainX('POST',NULL, infoArray.*,maquinaria.*,extraCampos.*, usuarios) RETURNING answer
|
|
ELSE
|
|
CALL ApiMaintainX('PATCH',infoArray.id_MaintainX,infoArray.*,maquinaria.*,extraCampos.*, usuarios) RETURNING answer
|
|
END IF
|
|
|
|
IF answer IS NULL THEN
|
|
ROLLBACK WORK
|
|
END IF
|
|
END IF
|
|
|
|
UPDATE actb00001
|
|
SET descripcion = infoArray.descripcion1,
|
|
cuenta_no = infoArray.cuenta_no,
|
|
cta_depr = infoArray.cta_depr,
|
|
cta_gasto = infoArray.cta_gasto,
|
|
departamento = infoarray.departamento2,
|
|
fech_compra = infoArray.fech_compra,
|
|
duracion = infoArray.duracion,
|
|
referencia = infoArray.referencia,
|
|
fabricante = infoArray.fabricante,
|
|
id_codigo = infoArray.id_maquina,
|
|
us_mod = usuarios,
|
|
fech_mod = CURRENT YEAR TO FRACTION,
|
|
sucid = infoArray.sucid,
|
|
cod_sp = extraCampos.cod_sp,
|
|
cod_sp_sec = extraCampos.cod_sp_sec,
|
|
tipo_activo = extraCampos.tipo_Activo,
|
|
activo_padre = extraCampos.activo_padre
|
|
WHERE codigo = infoArray.codigo
|
|
|
|
IF infoArray.id_MaintainX IS NULL THEN
|
|
UPDATE actb00001
|
|
SET id_maintainx = answer
|
|
WHERE codigo = infoArray.codigo
|
|
END IF
|
|
|
|
UPDATE actb00005
|
|
SET descripcion = infoArray.descripcion1,
|
|
cuenta_no = infoArray.cuenta_no,
|
|
cta_depr = infoArray.cta_depr,
|
|
cta_gasto = infoArray.cta_gasto,
|
|
departamento = infoarray.departamento2,
|
|
fech_compra = infoArray.fech_compra,
|
|
duracion = infoArray.duracion,
|
|
us_mod = usuarios,
|
|
fech_mod = CURRENT YEAR TO FRACTION
|
|
WHERE codigo = infoArray.codigo
|
|
|
|
SELECT codigo INTO checking FROM irtb00009 WHERE status_t IS NULL
|
|
AND codigo = infoarray.id_maquina
|
|
|
|
IF checking IS NOT NULL THEN
|
|
|
|
UPDATE irtb00009 SET nombre = infoArray.desc_maquina,
|
|
modelo = maquinaria.modelo,
|
|
unidad_med = maquinaria.unidad_med,
|
|
serie = maquinaria.serie,
|
|
fabricante = infoArray.fabricante,
|
|
departamento = maquinaria.departamento,
|
|
codigo_externo = maquinaria.codigo_externo,
|
|
us_mod = USUARIOS,
|
|
fech_mod = GETDATE(),
|
|
id_codigo = infoArray.codigo
|
|
WHERE codigo = infoArray.id_maquina
|
|
|
|
DISPLAY "update irtb00009"
|
|
|
|
ELSE
|
|
|
|
INSERT INTO irtb00009 (codigo,nombre,unidad_med,modelo,serie,fabricante,us_crea,fech_crea,departamento,codigo_externo,id_codigo)
|
|
VALUES (infoArray.id_maquina, infoarray.desc_maquina,
|
|
maquinaria.unidad_med,
|
|
maquinaria.modelo,maquinaria.serie,
|
|
infoArray.fabricante,
|
|
usuarios, getdate(),maquinaria.departamento,maquinaria.codigo_externo, infoArray.codigo)
|
|
DISPLAY "filtro update que inserta"
|
|
END IF
|
|
|
|
|
|
IF SQLCA.SQLCODE < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1663)
|
|
ELSE
|
|
COMMIT WORK
|
|
CALL msg(13)
|
|
END IF
|
|
EXIT CASE
|
|
|
|
WHEN 2
|
|
|
|
BEGIN WORK
|
|
|
|
UPDATE actb00001
|
|
SET status_t = 'E',
|
|
us_mod = usuarios,
|
|
fech_mod = CURRENT YEAR TO FRACTION,
|
|
fech_elim = CURRENT YEAR TO FRACTION
|
|
WHERE codigo = infoArray.codigo
|
|
|
|
UPDATE actb00005
|
|
SET status_t = 'E',
|
|
us_mod = usuarios,
|
|
fech_mod = CURRENT YEAR TO FRACTION,
|
|
fech_elim = CURRENT YEAR TO FRACTION
|
|
WHERE codigo = infoArray.codigo
|
|
|
|
IF infoArray.id_maquina IS NOT NULL THEN
|
|
|
|
UPDATE irtb00009
|
|
SET status_t = 'E',
|
|
us_mod = usuarios,
|
|
fech_mod = CURRENT YEAR TO FRACTION
|
|
WHERE codigo = infoArray.id_maquina
|
|
|
|
END IF
|
|
|
|
IF infoArray.id_MaintainX IS NOT NULL THEN
|
|
CALL ApiMaintainX('DELETE',infoArray.id_MaintainX,maquinaria.*, infoArray.*,extraCampos.*,NULL)
|
|
RETURNING answer
|
|
|
|
IF answer != 1 THEN
|
|
ROLLBACK WORK
|
|
END IF
|
|
|
|
END IF
|
|
|
|
|
|
IF SQLCA.SQLCODE < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL msg(1663)
|
|
ELSE
|
|
COMMIT WORK
|
|
CALL msg(39)
|
|
END IF
|
|
|
|
OTHERWISE
|
|
DISPLAY "Nothing happens..."
|
|
|
|
END CASE
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION msg(numero_msg)
|
|
DEFINE numero_msg SMALLINT
|
|
DEFINE descripcion CHAR (60)
|
|
SELECT desc_msg INTO descripcion FROM msgtable
|
|
WHERE cod_msg = numero_msg
|
|
|
|
IF status = NOTFOUND THEN
|
|
|
|
SELECT desc_msg INTO descripcion FROM msgtable
|
|
WHERE cod_msg = 22
|
|
LET descripcion = descripcion CLIPPED,numero_msg using "<<<<"
|
|
ERROR descripcion ATTRIBUTE(BOLD)
|
|
ELSE
|
|
ERROR descripcion ATTRIBUTE(BOLD)
|
|
LET numero_msg = 0
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION localidades(chb)
|
|
DEFINE
|
|
klocalidad SMALLINT,
|
|
kdescripcion CHAR(30),
|
|
plocalidad ui.combobox,
|
|
chb CHAR(1)
|
|
IF chb = 1 THEN
|
|
LET plocalidad = ui.combobox.forname("formonly.sucid")
|
|
ELSE
|
|
LET plocalidad = ui.combobox.forname("formonly.bodega")
|
|
END IF
|
|
|
|
DECLARE busca_local CURSOR FOR
|
|
SELECT a.sucid, a.sucnombre FROM sucursales a
|
|
|
|
CALL plocalidad.clear()
|
|
|
|
FOREACH busca_local INTO klocalidad, kdescripcion
|
|
CALL plocalidad.additem(klocalidad, kdescripcion)
|
|
END FOREACH
|
|
|
|
END FUNCTION
|
|
|