Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION departamentos(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
|
||||
departamentos DYNAMIC ARRAY OF RECORD
|
||||
departamento SMALLINT,
|
||||
descripcion VARCHAR(100)
|
||||
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion='ERROR JSON ',SQLCA.sqlerrm
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.departamento,a.nom_dpto FROM adtb00001 a WHERE a.app_movil = "SI" AND a.status_t IS NULL
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.departamentos[i].*
|
||||
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,60 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_bodegas(pdata)
|
||||
DEFINE pdata STRING
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
pbodegas DYNAMIC ARRAY OF RECORD
|
||||
bodega SMALLINT,
|
||||
descripcion VARCHAR(60)
|
||||
END RECORD,
|
||||
usuarios_bodegas DYNAMIC ARRAY OF RECORD
|
||||
bodega SMALLINT,
|
||||
usuario VARCHAR(50)
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion='ERROR JSON ',SQLCA.sqlerrm
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DISPLAY "USUARIO ",p.credenciales.usuario," clave ",p.credenciales.clave
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.cod_bodega,a.descripcion FROM intb00009 a WHERE a.dispositivo_movil='SI'
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.pbodegas[i].*
|
||||
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DECLARE c2 CURSOR FOR
|
||||
SELECT a.bodega,a.usuario FROM iptb00048 a,intb00009 b WHERE a.bodega = b.cod_bodega AND b.dispositivo_movil='SI'
|
||||
|
||||
LET i=1
|
||||
FOREACH c2 INTO p.usuarios_bodegas[i].*
|
||||
|
||||
LET i = i +1
|
||||
END FOREACH
|
||||
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,209 @@
|
||||
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_descarga_conteo(d)
|
||||
|
||||
DEFINE d,unasolavez STRING
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
pconteo_trx DYNAMIC ARRAY OF RECORD
|
||||
idtrx int,
|
||||
fecha CHAR(10),
|
||||
bodega smallint ,
|
||||
cod_seccion smallint ,
|
||||
cod_tramo SMALLINT ,
|
||||
cod_fila SMALLINT,
|
||||
cod_pos SMALLINT,
|
||||
cod_n SMALLINT ,
|
||||
cod_grupo smallint ,
|
||||
cod_tipo smallint ,
|
||||
cod_sec smallint ,
|
||||
cantidad float,
|
||||
balance float ,
|
||||
us_crea varchar(50) ,
|
||||
fech_crea VARCHAR(16),
|
||||
tipo_inventario VARCHAR(100)
|
||||
|
||||
END RECORD,
|
||||
desglose DYNAMIC ARRAY OF RECORD
|
||||
bodega,cod_seccion,cod_tramo,cod_fila,cod_pos, cod_n,cod_grupo,cod_tipo,cod_sec,codid,idtrx INT,
|
||||
observacion VARCHAR(200),
|
||||
lado_1,lado_2,lado_3,cantidad,cantidad2 DECIMAL(12,5),
|
||||
idproducto VARCHAR(25),
|
||||
fecha DATE,
|
||||
tono,calidad string
|
||||
END RECORD,
|
||||
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD
|
||||
DEFINE r RECORD
|
||||
ERRORES STRING,
|
||||
cuenta_data int
|
||||
END RECORD,
|
||||
i,idx int
|
||||
|
||||
TRY
|
||||
CALL util.JSON.parse(d, p)
|
||||
CATCH
|
||||
LET r.errores = "FGL ERROR: ", err_get(status)
|
||||
RETURN util.JSON.stringify(r)
|
||||
END TRY
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
BEGIN WORK
|
||||
LET unasolavez = 'NO'
|
||||
FOR i = 1 TO p.pconteo_trx.getLength()
|
||||
|
||||
IF p.pconteo_trx[i].tipo_inventario = "PRODUCTOS TERMINADOS" THEN
|
||||
INSERT INTO iptb00012
|
||||
(
|
||||
idtrx
|
||||
,fecha
|
||||
,bodega
|
||||
,cod_seccion
|
||||
,cod_tramo
|
||||
,cod_fila
|
||||
,cod_pos
|
||||
,cod_n
|
||||
,cod_grupo
|
||||
,cod_tipo
|
||||
,cod_sec
|
||||
,cantidad
|
||||
,us_crea
|
||||
,fech_crea
|
||||
)
|
||||
VALUES
|
||||
(p.pconteo_trx[i].idtrx,p.pconteo_trx[i].fecha,p.pconteo_trx[i].bodega,p.pconteo_trx[i].cod_seccion,
|
||||
p.pconteo_trx[i].cod_tramo,p.pconteo_trx[i].cod_fila,p.pconteo_trx[i].cod_pos,
|
||||
p.pconteo_trx[i].cod_n,p.pconteo_trx[i].cod_grupo,p.pconteo_trx[i].cod_tipo,
|
||||
p.pconteo_trx[i].cod_sec,p.pconteo_trx[i].cantidad,p.pconteo_trx[i].us_crea,p.pconteo_trx[i].fech_crea)
|
||||
IF unasolavez = 'NO' THEN
|
||||
LET unasolavez = 'SI'
|
||||
{ SE PUSO EN COMENTARIO PORQUE LA TABLA 62, SE CONVIRTIO EN LAS UBICACIONES,
|
||||
SE DEBE CREAR OTRA TABLA PARA EL DESGLOSE
|
||||
FOR idx = 1 TO p.desglose.getLength()
|
||||
IF p.desglose[idx].codid IS NOT NULL THEN
|
||||
INSERT INTO iptb00062
|
||||
(bodega
|
||||
,cod_seccion
|
||||
,cod_tramo
|
||||
,cod_fila
|
||||
,cod_pos
|
||||
,cod_n
|
||||
,cod_grupo
|
||||
,cod_tipo
|
||||
,cod_sec
|
||||
,codid
|
||||
,lado_1
|
||||
,lado_2
|
||||
,lado_3
|
||||
,observacion
|
||||
,cantidad
|
||||
,cantidad2
|
||||
,idproducto
|
||||
,us_crea
|
||||
,fech_crea
|
||||
,idtrx
|
||||
,fecha
|
||||
,tono
|
||||
,calidad)
|
||||
VALUES
|
||||
(p.desglose[idx].bodega
|
||||
,p.desglose[idx].cod_seccion
|
||||
,p.desglose[idx].cod_tramo
|
||||
,p.desglose[idx].cod_n
|
||||
,p.desglose[idx].cod_grupo
|
||||
,p.desglose[idx].cod_tipo
|
||||
,p.desglose[idx].cod_sec
|
||||
,p.desglose[idx].codid
|
||||
,p.desglose[idx].lado_1
|
||||
,p.desglose[idx].lado_2
|
||||
,p.desglose[idx].lado_3
|
||||
,p.desglose[idx].observacion
|
||||
,p.desglose[idx].cantidad
|
||||
,p.desglose[idx].cantidad2
|
||||
,p.desglose[idx].idproducto
|
||||
,p.credenciales.usuario
|
||||
,getdate()
|
||||
,p.pconteo_trx[i].idtrx
|
||||
,p.desglose[idx].fecha
|
||||
,p.desglose[idx].tono
|
||||
,p.desglose[idx].calidad)
|
||||
END IF
|
||||
END FOR
|
||||
} END IF
|
||||
END IF
|
||||
IF p.pconteo_trx[i].tipo_inventario = "MATERIA PRIMA" THEN
|
||||
DISPLAY p.pconteo_trx[i].*
|
||||
INSERT INTO intb00012
|
||||
(
|
||||
idtrx
|
||||
,fecha
|
||||
,bodega
|
||||
,cod_seccion
|
||||
,cod_tramo
|
||||
,cod_n
|
||||
,cod_grupo
|
||||
,cod_tipo
|
||||
,cod_sec
|
||||
,cantidad
|
||||
,balance
|
||||
,us_crea
|
||||
,fech_crea
|
||||
)
|
||||
VALUES
|
||||
(p.pconteo_trx[i].idtrx,p.pconteo_trx[i].fecha,p.pconteo_trx[i].bodega,p.pconteo_trx[i].cod_seccion,
|
||||
p.pconteo_trx[i].cod_tramo,p.pconteo_trx[i].cod_n,p.pconteo_trx[i].cod_grupo,p.pconteo_trx[i].cod_tipo,
|
||||
p.pconteo_trx[i].cod_sec,p.pconteo_trx[i].cantidad,p.pconteo_trx[i].balance,p.pconteo_trx[i].us_crea,
|
||||
p.pconteo_trx[i].fech_crea)
|
||||
|
||||
|
||||
END IF
|
||||
IF p.pconteo_trx[i].tipo_inventario = "REPUESTOS" THEN
|
||||
INSERT INTO irtb00012
|
||||
(
|
||||
idtrx
|
||||
,fecha
|
||||
,bodega
|
||||
,cod_seccion
|
||||
,cod_tramo
|
||||
,cod_n
|
||||
,cod_grupo
|
||||
,cod_tipo
|
||||
,cod_sec
|
||||
,cantidad
|
||||
,balance
|
||||
,us_crea
|
||||
,fech_crea
|
||||
|
||||
)
|
||||
VALUES
|
||||
(p.pconteo_trx[i].idtrx,p.pconteo_trx[i].fecha,p.pconteo_trx[i].bodega,p.pconteo_trx[i].cod_seccion,
|
||||
p.pconteo_trx[i].cod_tramo,p.pconteo_trx[i].cod_n,p.pconteo_trx[i].cod_grupo,p.pconteo_trx[i].cod_tipo,
|
||||
p.pconteo_trx[i].cod_sec,p.pconteo_trx[i].cantidad,p.pconteo_trx[i].balance,p.pconteo_trx[i].us_crea
|
||||
,p.pconteo_trx[i].fech_crea)
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
END FOR
|
||||
COMMIT WORK
|
||||
LET p.mensajes.descripcion = "ACTUALIZACION EXITOSA"
|
||||
LET p.mensajes.cod_msg=0
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
|
||||
END FUNCTION
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
IMPORT util
|
||||
IMPORT os
|
||||
|
||||
DEFINE xtipo_etiqueta STRING
|
||||
|
||||
FUNCTION ip_etiquetas(d)
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario STRING,
|
||||
clave STRING
|
||||
END RECORD,
|
||||
data RECORD
|
||||
inventario STRING,
|
||||
fecha DATETIME YEAR TO MINUTE,
|
||||
codigo INT,
|
||||
producto STRING,
|
||||
cantidad FLOAT,
|
||||
lado_1 FLOAT,
|
||||
lado_2 FLOAT,
|
||||
lado_3 FLOAT,
|
||||
medida FLOAT,
|
||||
xcodigo STRING,
|
||||
xdepartamento INT,
|
||||
departamento VARCHAR(70),
|
||||
cia_logo SMALLINT,
|
||||
num_oc INT,
|
||||
cliente VARCHAR(100),
|
||||
num_doc INT,
|
||||
tipo_etiqueta VARCHAR(50),
|
||||
idnumero INT,
|
||||
dispositivo STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
rep_out RECORD
|
||||
contenido STRING,
|
||||
nomb_arch STRING,
|
||||
cod_msg INT,
|
||||
mensaje_out STRING
|
||||
END RECORD
|
||||
,
|
||||
d,arc_sal STRING
|
||||
|
||||
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING -- output format option
|
||||
|
||||
TRY
|
||||
CALL util.JSON.parse(d, p)
|
||||
CATCH
|
||||
LET rep_out.contenido = "FGL ERROR: ", err_get(status)
|
||||
RETURN util.JSON.stringify(rep_out)
|
||||
END TRY
|
||||
|
||||
-- report engine was configured ok
|
||||
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS < 0 THEN
|
||||
LET rep_out.cod_msg = STATUS
|
||||
LET rep_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS'
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(rep_out)
|
||||
END IF
|
||||
LET r_filename = "ipprrp010a.4rp"
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
||||
LET r_output='pdf'
|
||||
LET arc_sal= gen_nombre_archivo(r_output)
|
||||
# LET arc_sal='etiqueta'
|
||||
CALL fgl_report_selectDevice(UPSHIFT(r_output))
|
||||
CALL fgl_report_selectPreview(FALSE)
|
||||
CALL fgl_report_setOutputFileName(arc_sal)
|
||||
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
END IF
|
||||
|
||||
IF handler IS NOT NULL THEN
|
||||
LET xtipo_etiqueta = p.data.tipo_etiqueta
|
||||
START REPORT activos TO XML HANDLER handler
|
||||
OUTPUT TO REPORT activos(P.data.*)
|
||||
INSERT INTO actb00010
|
||||
(fecha
|
||||
,tipo_inenvatio
|
||||
,codigo
|
||||
,cantidad
|
||||
,lado_1
|
||||
,lado_2
|
||||
,lado_3
|
||||
,medida
|
||||
,us_crea
|
||||
,fech_crea
|
||||
,codid
|
||||
,tipo_etiqueta
|
||||
,idnumero_movil
|
||||
,num_oc
|
||||
,cliente
|
||||
,departamento
|
||||
,descripcion_dpto,
|
||||
dispositivo)
|
||||
VALUES
|
||||
(p.data.fecha
|
||||
,p.data.inventario
|
||||
,p.data.xcodigo
|
||||
,p.data.cantidad
|
||||
,p.data.lado_1
|
||||
,p.data.lado_2
|
||||
,p.data.lado_3
|
||||
,p.data.medida
|
||||
,P.credenciales.usuario
|
||||
,getdate()
|
||||
,p.data.codigo
|
||||
,p.data.tipo_etiqueta
|
||||
,P.data.idnumero
|
||||
,p.data.num_oc
|
||||
,p.data.cliente
|
||||
,p.data.xdepartamento
|
||||
,p.data.departamento,
|
||||
p.data.dispositivo)
|
||||
|
||||
FINISH REPORT activos
|
||||
LET arc_sal = arc_sal CLIPPED#,'.',r_output CLIPPED
|
||||
IF os.Path.exists(arc_sal) THEN
|
||||
CALL file_to_b64(arc_sal) RETURNING rep_out.contenido
|
||||
LET rep_out.nomb_arch=os.path.basename(arc_sal)
|
||||
DISPLAY "GRW file '",rep_out.nomb_arch,"' sent."
|
||||
LET rep_out.mensaje_out = "ADICION EXITOSA"
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(rep_out)
|
||||
ELSE
|
||||
LET rep_out.nomb_arch="ERROR"
|
||||
LET rep_out.contenido = "ERROR EN GENERACION FILE"
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(rep_out)
|
||||
END IF
|
||||
|
||||
|
||||
ELSE
|
||||
LET rep_out.contenido = "ERROR EN GENERACION FILE"
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(rep_out)
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
|
||||
REPORT activos(x)
|
||||
DEFINE x RECORD
|
||||
inventario STRING,
|
||||
fecha DATE,
|
||||
codigo INT,
|
||||
producto STRING,
|
||||
cantidad FLOAT,
|
||||
lado_1 FLOAT,
|
||||
lado_2 FLOAT,
|
||||
lado_3 FLOAT,
|
||||
xvalor_medida FLOAT,
|
||||
xcodigo STRING,
|
||||
xdepartamento INT,
|
||||
departamento VARCHAR(70),
|
||||
cia_logo SMALLINT ,
|
||||
num_oc INT,
|
||||
cliente VARCHAR(100),
|
||||
num_doc INT,
|
||||
tipo_etiqueta VARCHAR(50),
|
||||
idnumero INT,
|
||||
dispositivo STRING
|
||||
END RECORD,
|
||||
fecha CHAR(10),
|
||||
barcodigo_act CHAR(128)
|
||||
|
||||
# ORDER BY x.xcodigo
|
||||
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
LET fecha = TODAY
|
||||
BEFORE GROUP OF x.xcodigo
|
||||
|
||||
#ON EVERY ROW
|
||||
DISPLAY " imp cantidad ",x.cantidad," valor cant ",x.xvalor_medida
|
||||
LET barcodigo_act = "STARTB",codigo_128(x.codigo,x.cantidad,x.xvalor_medida,x.num_oc,x.xdepartamento)
|
||||
PRINTX x.*,fecha,barcodigo_act
|
||||
|
||||
END REPORT
|
||||
|
||||
FUNCTION codigo_128(cod_val,pcantidad1,pcantidad,xnum_oc,xdepto)
|
||||
|
||||
DEFINE x,xnum_oc,xdepto INT,
|
||||
cod_val CHAR(25),
|
||||
aux_str,barcode STRING,
|
||||
pcantidad,pcantidad1 FLOAT
|
||||
|
||||
DISPLAY "ip_etiqueta ",pcantidad1
|
||||
IF xtipo_etiqueta = 'NORMAL' THEN
|
||||
LET aux_str=cod_val clipped ,"+",Pcantidad using "<<<<<.####"
|
||||
ELSE
|
||||
|
||||
LET aux_str=cod_val clipped ,"+",pcantidad1 USING "<<<<.####","+",Pcantidad using "<<<<.####","+",xnum_oc USING "<<<<<<&","+",xdepto USING "<<<<<"
|
||||
END IF
|
||||
LET barcode=""
|
||||
|
||||
FOR x=1 TO LENGTH(aux_str)
|
||||
LET barcode=barcode,",",aux_str.getCharAt(x)
|
||||
|
||||
END FOR
|
||||
# IF inventario = "ACTIVOS FIJOS" THEN
|
||||
# LET barcode=barcode CLIPPED,",+,1"
|
||||
# END IF
|
||||
|
||||
RETURN barcode
|
||||
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,38 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION existencia()
|
||||
DEFINE i,
|
||||
cantidad_orden,pcantidadConduce,transito,existencia,reservado DEC(12,5),
|
||||
pfecha DATE
|
||||
|
||||
|
||||
DEFINE existencias DYNAMIC ARRAY OF RECORD
|
||||
num_doc INT,
|
||||
codid INT,
|
||||
cod_mov SMALLINT,
|
||||
cantidad DEC(12,5),
|
||||
fecha DATE
|
||||
|
||||
END RECORD
|
||||
|
||||
DECLARE u27 CURSOR FOR
|
||||
SELECT '1',
|
||||
b.codid ,
|
||||
'99' ,
|
||||
SUM(a.cantidad_2)
|
||||
FROM iptb00006 a,iptb00002 b
|
||||
WHERE a.cod_n=b.cod_n AND a.cod_grupo=b.cod_grupo AND
|
||||
a.cod_tipo=b.cod_tipo AND
|
||||
a.cod_sec = b.cod_Sec AND a.status_t IS NULL
|
||||
GROUP BY b.codid
|
||||
HAVING SUM(a.cantidad_2) >0
|
||||
LET pfecha = TODAY
|
||||
LET i=1
|
||||
FOREACH u27 INTO existencias[i].*
|
||||
LET i=i+1
|
||||
|
||||
|
||||
END FOREACH; FREE u27
|
||||
|
||||
RETURN util.JSON.stringify(existencias)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,35 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_fechaconteo(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
pfechas DYNAMIC ARRAY OF RECORD
|
||||
tipo_inventario STRING,
|
||||
fechaConteo DATE
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.descripcion = 'ERROR CONEXION ',SQLCA.sqlerrm
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.tipo_inventario,a.fecha_conteo FROM intb00044 a
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.pfechas[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,46 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_filas(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
pfilas DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
cod_fila INT,
|
||||
descripcion VARCHAR(60)
|
||||
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.cod_bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.titulo FROM intb00045 a,
|
||||
intb00009 b,intb00043 c
|
||||
WHERE a.cod_bodega = b.cod_bodega AND a.cod_bodega = c.cod_bodega AND
|
||||
a.cod_seccion = a.cod_seccion
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.pfilas[i].*
|
||||
DISPLAY i
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,45 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_filas2(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
pfilas DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
cod_fila INT,
|
||||
descripcion VARCHAR(60)
|
||||
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT distinct b.bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.titulo
|
||||
FROM intb00045 a inner join intb00015 b on a.cod_bodega = b.bodega
|
||||
where a.cod_tramo <= 25 and a.cod_fila <= 5
|
||||
order by b.bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.titulo
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.pfilas[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,41 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_posicion(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
ppos DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
cod_fila,cod_pos INT,
|
||||
descripcion VARCHAR(60)
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.cod_bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.cod_pos,a.titulo FROM intb00046 a
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.ppos[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,44 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_posicion2(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
ppos DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
cod_fila,cod_pos INT,
|
||||
descripcion VARCHAR(60)
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT distinct b.bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.cod_pos,a.titulo
|
||||
FROM intb00046 a inner join intb00015 b on a.cod_bodega = b.bodega
|
||||
where a.cod_tramo <= 25 and cod_fila <= 5 and cod_pos <= 5
|
||||
order by b.bodega,a.cod_Seccion,a.cod_tramo,a.cod_fila,a.cod_pos, a.titulo
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.ppos[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,72 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION api_productos(datos)
|
||||
DEFINE credenciales RECORD
|
||||
usuario,clave,clase,grupo,tipo VARCHAR(50)
|
||||
END RECORD,
|
||||
datos STRING
|
||||
DEFINE i int
|
||||
|
||||
DEFINE productos DYNAMIC ARRAY OF RECORD
|
||||
clase,grupo,tipo,medida STRING,
|
||||
codn,codgrupo,codtipo,codsec,codid INT,
|
||||
codigointerno,descripcionproducto,unidadmedida STRING,
|
||||
disponible,precioRD,precioUSD DEC(18,2),
|
||||
frecuencia STRING
|
||||
|
||||
END RECORD
|
||||
DEFINE mensajes RECORD
|
||||
cod_msg INT,
|
||||
mensaje_out STRING
|
||||
END RECORD,
|
||||
selec STRING
|
||||
|
||||
CALL util.JSON.parse(datos,credenciales)
|
||||
|
||||
IF credenciales.usuario IS NULL THEN
|
||||
LET mensajes.cod_msg=3
|
||||
LET mensajes.mensaje_out='USUARIO ESTA EN BLANCO'
|
||||
RETURN util.JSON.stringify(mensajes)
|
||||
END IF
|
||||
|
||||
IF credenciales.clase IS NULL THEN
|
||||
LET mensajes.cod_msg=423
|
||||
LET mensajes.mensaje_out='LA CLASE LLEGO EN BLANCO'
|
||||
RETURN util.JSON.stringify(mensajes)
|
||||
END IF
|
||||
{
|
||||
IF credenciales.grupo IS NULL THEN
|
||||
LET mensajes.cod_msg=423
|
||||
LET mensajes.mensaje_out='EL GRUPO LLEGO EN BLANCO'
|
||||
RETURN util.JSON.stringify(mensajes)
|
||||
END IF
|
||||
|
||||
IF credenciales.tipo IS NULL THEN
|
||||
LET mensajes.cod_msg=423
|
||||
LET mensajes.mensaje_out='EL TIPO LLEGO EN BLANCO'
|
||||
RETURN util.JSON.stringify(mensajes)
|
||||
END IF }
|
||||
|
||||
CONNECT TO "smarmotech" USER credenciales.usuario USING credenciales.clave
|
||||
|
||||
IF credenciales.clase <> 'TODOS' THEN
|
||||
LET selec = " SELECT a.* FROM productosIA a WHERE a.frecuencia >100 AND
|
||||
a.clase ='", credenciales.clase,"'"
|
||||
|
||||
ELSE
|
||||
LET selec = "SELECT a.* FROM productosIA a WHERE a.frecuencia >100 "
|
||||
END IF
|
||||
PREPARE comando FROM selec
|
||||
DECLARE u27 CURSOR FOR comando
|
||||
|
||||
LET i=1
|
||||
FOREACH u27 INTO productos[i].*
|
||||
LET i=i+1
|
||||
|
||||
|
||||
END FOREACH;
|
||||
FREE u27
|
||||
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(productos)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,47 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION requisiciones()
|
||||
|
||||
DEFINE arr_autoriza_desp DYNAMIC ARRAY OF RECORD
|
||||
num_oc INT,
|
||||
cotizacion_no INT,
|
||||
fecha CHAR(10),
|
||||
tipo_cliente SMALLINT,
|
||||
sec_cliente INT,
|
||||
sec_vend INT,
|
||||
area SMALLINT,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
cantidad_ord1 DEC(12,4),
|
||||
cantidad_ord DEC(12,4),
|
||||
cantidad_1 DEC(12,4),
|
||||
cantidad DEC(12,4),
|
||||
num_req INT ,
|
||||
codid INT
|
||||
END RECORD,
|
||||
idx SMALLINT
|
||||
|
||||
DECLARE busca_autoriza CURSOR FOR
|
||||
|
||||
SELECT DISTINCT a.num_oc,a.cotizacion_no,CAST (d.fecha AS CHAR(10)) AS FECHA,
|
||||
b.tipo_cliente,b.sec_cliente,d.sec_vend,a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,
|
||||
a.cantidad_ord1,a.cantidad_ord,a.cantidad_1,cantidad,a.num_req,e.codid
|
||||
FROM cctb00026 a,vetb00004 b,prtb00012 c,cctb00025 d,iptb00002 e
|
||||
WHERE c.tipo_cliente = b.tipo_cliente AND
|
||||
c.sec_cliente = b.sec_cliente AND
|
||||
a.num_oc = c.num_oc AND
|
||||
a.cotizacion_no = c.cotizacion_no AND
|
||||
c.cerrada = 'N' AND
|
||||
A.num_req = d.num_req AND
|
||||
d.estado in ('AUTORIZADA') AND d.estado_despacho IN ('DESPACHO PARCIAL','NO DESPACHADA') AND
|
||||
a.cod_n = e.cod_n AND a.cod_grupo = e.cod_grupo AND a.cod_tipo = e.cod_tipo AND a.cod_sec = e.cod_sec AND
|
||||
c.status_t is null and a.status_t IS NULL
|
||||
|
||||
LET idx = 1
|
||||
FOREACH busca_autoriza INTO arr_autoriza_desp[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
RETURN util.JSON.stringify(arr_autoriza_desp)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,39 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_secciones(pdata)
|
||||
DEFINE pdata STRING
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
seccion DYNAMIC ARRAY OF RECORD
|
||||
cod_seccion SMALLINT,
|
||||
cod_bodega SMALLINT,
|
||||
descripcion VARCHAR(60)
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.cod_Seccion,a.cod_bodega,a.descripcion FROM intb00010 a
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.seccion[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,41 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_secciones2(pdata)
|
||||
DEFINE pdata STRING
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
seccion DYNAMIC ARRAY OF RECORD
|
||||
cod_seccion SMALLINT,
|
||||
cod_bodega SMALLINT,
|
||||
descripcion VARCHAR(60)
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT distinct a.cod_Seccion,a.cod_bodega,a.descripcion FROM intb00010 a inner join intb00015 b
|
||||
on a.cod_bodega = b.bodega
|
||||
order by a.cod_Seccion,a.cod_bodega,a.descripcion
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.seccion[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,41 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_tramos(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
ptramos DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
descripcion VARCHAR(60)
|
||||
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT a.cod_bodega,a.cod_Seccion,a.cod_tramo,a.descripcion FROM intb00043 a
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.ptramos[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,44 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_tramos2(pdata)
|
||||
DEFINE pdata STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
ptramos DYNAMIC ARRAY OF RECORD
|
||||
cod_bodega SMALLINT,
|
||||
cod_seccion SMALLINT,
|
||||
cod_tramo SMALLINT,
|
||||
descripcion VARCHAR(60)
|
||||
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS <0 THEN
|
||||
LET p.mensajes.cod_msg = STATUS
|
||||
LET p.mensajes.descripcion='ERROR CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT distinct a.cod_bodega,a.cod_Seccion,a.cod_tramo,a.descripcion FROM intb00043 a inner join intb00015 b
|
||||
on a.cod_bodega = b.bodega
|
||||
where a.cod_tramo <= 25
|
||||
order by a.cod_bodega,a.cod_Seccion,a.cod_tramo,a.descripcion
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO p.ptramos[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,41 @@
|
||||
IMPORT util
|
||||
|
||||
FUNCTION ip_transportistas()
|
||||
DEFINE transportistas DYNAMIC ARRAY OF RECORD
|
||||
cod_transp SMALLINT,
|
||||
sec_transp INT,
|
||||
nombre STRING,
|
||||
cedula CHAR(11),
|
||||
calle CHAR(30),
|
||||
casa_num CHAR(10),
|
||||
urbanizacion CHAR(20),
|
||||
cod_zona SMALLINT,
|
||||
cod_provincia SMALLINT,
|
||||
telefono CHAR(8)
|
||||
|
||||
END RECORD,
|
||||
i SMALLINT
|
||||
|
||||
DECLARE c1 CURSOR FOR
|
||||
SELECT cod_transp
|
||||
,sec_transp
|
||||
,nombre
|
||||
,cedula
|
||||
,calle
|
||||
,casa_num
|
||||
,urbanizacion
|
||||
,cod_zona
|
||||
,cod_provincia
|
||||
,telefono
|
||||
FROM vetb00015
|
||||
WHERE status_t IS null
|
||||
|
||||
|
||||
|
||||
LET i = 1
|
||||
FOREACH c1 INTO transportistas[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
|
||||
RETURN util.JSON.stringify(transportistas)
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,16 @@
|
||||
FUNCTION locate_file()
|
||||
|
||||
DEFINE k RECORD
|
||||
nombre_file STRING,
|
||||
contenido BYTE
|
||||
END RECORD
|
||||
|
||||
LOCATE k.contenido IN MEMORY
|
||||
|
||||
DECLARE busca_file CURSOR FOR
|
||||
SELECT * FROM cob000 a ORDER BY a.num_req
|
||||
|
||||
FOREACH busca_file INTO K.*
|
||||
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user