Files
MBS/WEBSERVICES/ip_funciones/ip_descarga.4gl
T

210 lines
6.5 KiB
Plaintext

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