Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
@@ -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
+60
View File
@@ -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
+209
View File
@@ -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
+209
View File
@@ -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
+46
View File
@@ -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
+45
View File
@@ -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
+41
View File
@@ -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
+44
View File
@@ -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
+39
View File
@@ -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
+41
View File
@@ -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
+44
View File
@@ -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
+16
View File
@@ -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