IMPORT util FUNCTION contactos(d) DEFINE p RECORD data RECORD tipo_cliente SMALLINT, sec_cliente INT, usuario VARCHAR(50), clave VARCHAR(50), id_crm STRING END RECORD, data_arr DYNAMIC ARRAY OF RECORD contacto VARCHAR(60), tipo_negocio_contacto INT, puesto VARCHAR(60), puesto1 VARCHAR(60), email VARCHAR(60), celular VARCHAR(20), telefono_of VARCHAR(20), telefono_casa VARCHAR(20) END RECORD END RECORD DEFINE rep_out RECORD sec_cliente INT, cod_msg SMALLINT, mensaje_out STRING END RECORD, s_out,selec,d STRING , idx INT # WHENEVER ERROR CONTINUE TRY CALL util.JSON.parse(d, p) CATCH LET rep_out.cod_msg = STATUS LET rep_out.mensaje_out = "FGL ERROR: ", err_get(status) LET s_out=util.JSON.stringify(rep_out) RETURN s_out END TRY DISPLAY "USUARIO ",p.data.usuario,' clave ',p.data.clave CONNECT TO "smarmotech" USER p.data.usuario USING p.data.clave IF STATUS < 0 THEN LET rep_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS',err_get(status) LET rep_out.cod_msg = STATUS LET s_out=util.JSON.stringify(rep_out) LET rep_out.sec_cliente =0 DISCONNECT CURRENT RETURN s_out END IF # VALIDA QUE EL CLIENTE EXISTA EN LA TABLA DE CLIENTES SELECT a.sec_cliente FROM vetb00004 a WHERE a.tipo_cliente = p.data.tipo_cliente AND a.sec_cliente = p.data.sec_cliente AND a.status_t IS NULL IF STATUS =NOTFOUND THEN LET rep_out.mensaje_out = 'CLIENTE NO EXISTE EN MAESTRA CLIENTES' LET rep_out.cod_msg = STATUS LET s_out=util.JSON.stringify(rep_out) LET rep_out.sec_cliente =0 DISCONNECT CURRENT RETURN s_out END IF # CONTACTOS BEGIN WORK DELETE FROM vetb00087 WHERE tipo_cliente = p.data.tipo_cliente AND sec_cliente = p.data.sec_cliente FOR idx = 1 TO p.data_arr.getLength() INSERT INTO vetb00087 (tipo_cliente ,sec_cliente ,tipo_negocio_contacto ,contacto ,puesto ,puesto1 ,email ,celular ,telefono_of ,telefono_casa ,id ,us_crea ,fech_crea ,id_crm) VALUES (p.data.tipo_cliente ,p.data.sec_cliente ,p.data_arr[idx].tipo_negocio_contacto ,p.data_arr[idx].contacto ,p.data_arr[idx].puesto ,p.data_arr[idx].puesto1 ,p.data_arr[idx].email ,p.data_arr[idx].celular ,p.data_arr[idx].telefono_of ,p.data_arr[idx].telefono_casa ,idx ,p.data.usuario ,getdate() ,p.data.id_crm) IF STATUS < 0 THEN ROLLBACK WORK LET rep_out.mensaje_out = 'ERROR INSERTANDO DATOS EN TABLA vetb00087 ',err_get(status) LET rep_out.cod_msg = STATUS LET s_out=util.JSON.stringify(rep_out) LET rep_out.sec_cliente =p.data.sec_cliente DISCONNECT CURRENT RETURN s_out END IF #VALIDA TIPO DE NEGOCIO IF p.data_arr[idx].tipo_negocio_contacto IS NOT NULL THEN SELECT a.tipo_negocio FROM cctb00013 a WHERE a.tipo_negocio = p.data_arr[idx].tipo_negocio_contacto IF STATUS = NOTFOUND THEN ROLLBACK WORK LET rep_out.mensaje_out = 'TIPO NEGOCIO NO EXISTE, NO PUEDES INSERTAR CONTACTO' LET rep_out.cod_msg = STATUS LET s_out=util.JSON.stringify(rep_out) LET rep_out.sec_cliente =p.data.sec_cliente DISCONNECT CURRENT RETURN s_out END IF END IF END FOR COMMIT WORK LET rep_out.mensaje_out = 'ADICION EXITOSA' LET rep_out.cod_msg = 0 LET s_out=util.JSON.stringify(rep_out) LET rep_out.sec_cliente =p.data.sec_cliente DISCONNECT CURRENT RETURN s_out END FUNCTION