Files
MBS/WEBSERVICES/ip_documentos.4gl

105 lines
4.4 KiB
Plaintext

IMPORT util
FUNCTION ip_documentos(pdata)
DEFINE pdata STRING
DEFINE p RECORD
credenciales RECORD
usuario,clave VARCHAR(50)
END RECORD,
documentos DYNAMIC ARRAY OF RECORD
codid INT,
cantidad_1 FLOAT,
cantidad_trx FLOAT,
fecha DATE,
cod_mov SMALLINT,
bodega SMALLINT,
num_oc INT,
departamento INT,
area SMALLINT,
num_doc INT,
cod_n,cod_grupo,cod_tipo,cod_Sec INT
END RECORD,
mensajes RECORD
cod_msg INT,
descripcion STRING
END RECORD
END RECORD,
i SMALLINT,
ult_documento,cod_mov_ant INT,
cantidad_recibida,cantidad_orden,factor DEC(12,5)
CALL util.JSON.parse(pdata,p)
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=-10
LET p.mensajes.descripcion='USUARIO NO VALIDO'
DISCONNECT CURRENT
RETURN util.JSON.stringify(P)
END IF
BEGIN WORK
LET cod_mov_ant = 0
FOR i = 1 TO p.documentos.getLength()
IF p.documentos[i].num_doc IS NOT NULL THEN
IF cod_mov_ant <> p.documentos[i].cod_mov THEN
LET cod_mov_ant = p.documentos[i].cod_mov
SELECT a.num_Doc INTO ult_documento FROM iptb00007 a WHERE a.cod_mov = p.documentos[i].cod_mov AND
a.bodega = p.documentos[i].bodega
IF ult_documento IS NULL THEN
LET ult_documento = 0
END IF
LET ult_documento = ult_documento + 1
UPDATE iptb00007 SET num_doc = ult_documento WHERE cod_mov = p.documentos[i].cod_mov
AND bodega = p.documentos[i].bodega
INSERT INTO iptb00026 ( cod_mov,num_Doc,departamento,bodega)
VALUES (p.documentos[i].cod_mov,ult_documento,p.documentos[i].departamento,
p.documentos[i].bodega)
DISPLAY "DATA ",ult_documento,p.documentos[i].departamento
END IF
IF p.documentos[i].cod_Sec IS NOT NULL THEN
SELECT a.factor_conv INTO factor FROM iptb00001 a
WHERE a.cod_n = p.documentos[i].cod_n
AND a.cod_grupo = p.documentos[i].cod_grupo
AND a.cod_tipo = p.documentos[i].cod_tipo
AND a.cod_sec = p.documentos[i].cod_sec
LET p.documentos[i].cantidad_trx = p.documentos[i].cantidad_1 * factor
END IF
INSERT INTO iptb00006 (cod_cia,num_doc,fecha,
cod_mov,area,
cod_n,cod_grupo,cod_tipo,
cod_sec,cantidad_1,cantidad_2,
bodega,us_crea,fech_crea,
num_oc,departamento,detalle)
VALUES
('1',ult_documento,p.documentos[i].fecha,
p.documentos[i].cod_mov,p.documentos[i].area,p.documentos[i].cod_n,
p.documentos[i].cod_grupo,p.documentos[i].cod_tipo,p.documentos[i].cod_sec,
p.documentos[i].cantidad_1, p.documentos[i].cantidad_trx,p.documentos[i].bodega,
p.credenciales.usuario,getdate(),p.documentos[i].num_oc,p.documentos[i].departamento,
'PRODUCCION REALIZADA POR LA APLICACION MOVIL')
IF cantidad_orden >=cantidad_orden THEN
UPDATE prtb00013 SET estado_produccion = 'LISTA PARA DESPACHO',
# fecha_compromiso = otros_mov.fecha,
observacion = otros_mov.detalle,
us_mod = p.credenciales.usuario,
fech_mod = getdate()
WHERE num_oc = p.documentos[i].num_oc AND
cod_n = p.documentos[i].cod_n AND
cod_Grupo = p.documentos[i].cod_grupo AND
cod_tipo = p.documentos[i].cod_tipo AND
cod_Sec = p.documentos[i].cod_sec
END IF
END IF
END FOR
COMMIT WORK
DISCONNECT CURRENT
RETURN util.JSON.stringify(P)
END FUNCTION