105 lines
4.4 KiB
Plaintext
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
|