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