public string AsignarContacto(int ContactoID, int DesarrolloId = 0) { try { // Busca carrusel_asignacion Carrusel_asignacion = new carrusel_asignacion(); string Constr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString(); ADO_Core objAdo = new ADO_Core(Constr); string sqlStat = String.Format("Exec sp_carruselAsignacion {0}, {1}", DesarrolloId, 1); SqlDataReader dr = objAdo.GetDataReader(sqlStat); bool encuentra = false; if (dr.HasRows) { dr.Read(); Boolean.TryParse(dr["encuentra"].ToString(), out encuentra); if (encuentra) { string epId = dr["EPId"].ToString(); Carrusel_asignacion.encuentra = encuentra; Carrusel_asignacion.EPId = Int32.Parse(!String.IsNullOrEmpty(epId) && !String.IsNullOrWhiteSpace(epId) ? epId : "0"); Carrusel_asignacion.Nombre = dr["Nombre"].ToString(); Carrusel_asignacion.Email = dr["Email"].ToString(); Carrusel_asignacion.PartyId = long.Parse(dr["PartyId"].ToString()); Carrusel_asignacion.ResourceId = long.Parse(dr["ResourceId"].ToString()); } } if (encuentra) { string Usuario_ID = Session["Usuario_ID"].ToString(); // guarda registro en la tabla Asignacion Asignacion asignacion = new Asignacion(); asignacion.ContactoId = ContactoID; asignacion.EPId = Carrusel_asignacion.EPId; asignacion.UsuarioHOST = Usuario_ID; asignacion.FechaAsignacion = DateTime.Now; db.Asignacion.Add(asignacion); db.SaveChanges(); //// invoca el web service //DatosReales datosReales = new DatosReales(); //var resultdr = db.DatosReales.FirstOrDefault(w => w.ContactoId == ContactoID); //string campo1 = "@XZYContaToSales#"; //string Nombre = resultdr.Nombre; //string ApellidoPaterno = resultdr.ApellidoPaterno; //string ApellidoMaterno = resultdr.ApellidoMaterno; //string CanalCaptacion = "1"; //string SubcanalCaptacion = ""; //string TelefonoMovil = resultdr.Telefono; //string CorreoElectonico = resultdr.Correo; //string Desarrollo = ""; //long OwnerPartyId = Carrusel_asignacion.PartyId; //long ResourceId = Carrusel_asignacion.ResourceId; //// obtien datos del contacto //var DatosContacto = db.View_Datos_Contacto.FirstOrDefault(w => w.ContactoId == ContactoID); //CanalCaptacion = DatosContacto.CanalNombre; //SubcanalCaptacion = DatosContacto.SubCanalNombre; //Desarrollo = DatosContacto.DesarrolloNombre; // // Consume el web service // hu_web_service.SoaClient isoac = new hu_web_service.SoaClient(); //var result_ws = isoac.crearContactoRespondersV2(campo1, Nombre, ApellidoPaterno, ApellidoMaterno, CanalCaptacion, SubcanalCaptacion, TelefonoMovil, CorreoElectonico, Desarrollo, OwnerPartyId, ResourceId); ; var Desarrollo = db.Desarrollo.Where(w => w.DesarrolloId == DesarrolloId).FirstOrDefault(); var datosContacto = db.DatosReales.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); // ejecuta el web service hu_website.hu_web_service.SoaClient webSer = new hu_web_service.SoaClient(); string SalesOracleId = webSer.crearContactoRespondersV2("@XZYContaToSales#", datosContacto.Nombre, datosContacto.ApellidoPaterno, datosContacto.ApellidoMaterno, "DIGIN", "IBWA", datosContacto.Telefono, datosContacto.Correo, Desarrollo.DesarrolloNombre, Carrusel_asignacion.PartyId, Carrusel_asignacion.ResourceId); if (SalesOracleId.Contains("Error al crear contacto")) { // guarda notificacion para el EP en la tabla AgregaMensageParaEP(SalesOracleId); return("Bad"); } else { // graba el valor recivido del ws en la tabla contacto var contactows = db.Contactos.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); contactows.SalesOracleId = long.Parse(SalesOracleId); db.SaveChanges(); // cambia el estatus del contacto a 6 var ontactoRes = db.Contactos.Where(w => w.ContactoId == ContactoID).FirstOrDefault(); ontactoRes.EstatusBIDA = 6; db.SaveChanges(); // envia email al contacto y alEP EmailCore emailCore = new EmailCore(); emailCore.EnviaEmail("Prueba Responders2", "<p>Estimad(@) NombreCompletoContacto, en breve su Ejecutivo Patrimonial NombreEP se pondrá en contacto con usted. <br /></p> <p>Attentamente</p> <p>Hogares Unión</p> <p>correoEP</p>", datosContacto.Correo); // avisa notificacion al contacto bool notifica = notificaconContacto_Genrente(ContactoID, "Se asigno un proyecto"); } } else if (!encuentra) { bool notifica = notificaconContacto_Genrente(ContactoID, "No se pudo asignar el proyecto"); } return("Ok"); } catch (Exception ex) { Console.WriteLine(ex.Message); return("Bad"); } }
public ActionResult Interactuar_ni(Interaccion_nueva modelo, string WhatsAppCerrado) { try { // ResumenConversacion = -Nota string Usuario_ID = Session["Usuario_ID"].ToString(); bool bInteres = (modelo.SubEstatusBIDAId == 4) ? true : false; Interacciones interacciones = new Interacciones(); interacciones.ContactoId = modelo.ContactoId; interacciones.SubCanalId = modelo.SubCanalId; interacciones.UsuarioHOST = Usuario_ID; interacciones.EstatusBIDAId = modelo.EstatusBIDAId; interacciones.FechaInteraccion = DateTime.Now; interacciones.Descripcion = string.Empty; //interacciones.Comentarios = modelo.ResumenConversacion; interacciones.Interes = bInteres; if (modelo.CausaNoInterId == 0) { interacciones.CausaNoInterId = null; interacciones.ComentarioNoInteres = null; } else { interacciones.CausaNoInterId = modelo.CausaNoInterId; interacciones.ComentarioNoInteres = modelo.comentarioNoInteres; } interacciones.WhatsAppCerrado = modelo.WhatsAppCerrado; interacciones.SubEstatusBIDAId = modelo.SubEstatusBIDAId; db.Interacciones.Add(interacciones); //db.SaveChanges(); // agrega nota NotasContacto notasContacto = new NotasContacto(); notasContacto.ContactoId = modelo.ContactoId; notasContacto.Fecha = DateTime.Now; notasContacto.Nota = modelo.ResumenConversacion; notasContacto.HOSTId = Usuario_ID; db.NotasContacto.Add(notasContacto); db.SaveChanges(); // actualiza estatus en tabla contactos var dsContacto = db.Contactos.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); if (dsContacto != null) { dsContacto.EstatusBIDA = modelo.EstatusBIDAId; dsContacto.SubEstatusBIDAId = modelo.SubEstatusBIDAId; db.SaveChanges(); } var sigInter = db.sp_SiguienteInteraccion(modelo.ContactoId, 0); // busca si tiene capturado datos reales var datosReal = db.DatosReales.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); if (datosReal != null) { // YA TIENE CAPTURADO DATOS REALES string conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString(); ADO_Core adoC = new ADO_Core(conStr); string comando = String.Format("Exec sp_carruselAsignacion {0}, {1}", modelo.ContactoId, 0); SqlDataReader dr = adoC.GetDataReader(comando); if (dr.HasRows) { dr.Read(); try { int _EPId = Convert.ToInt32(dr["EPId"].ToString()); var Desarrollo = db.Desarrollo.Where(w => w.DesarrolloId == modelo.DesarrolloId).FirstOrDefault(); var datosContacto = db.DatosReales.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); hu_website.hu_web_service.SoaClient webSer = new hu_web_service.SoaClient(); string SalesOracleId = webSer.crearContactoRespondersV2("@XZYContaToSales#", datosContacto.Nombre, datosContacto.ApellidoPaterno, datosContacto.ApellidoMaterno, "DIGIN", "IBWA", datosContacto.Telefono, datosContacto.Correo, Desarrollo.DesarrolloNombre, long.Parse(dr["PartyId"].ToString()), long.Parse(dr["ResourceId"].ToString())); // guarda en la tabla asignacicion Asignacion asignacion = new Asignacion() { ContactoId = modelo.ContactoId, EPId = _EPId, UsuarioHOST = Usuario_ID, FechaAsignacion = DateTime.Now }; db.Asignacion.Add(asignacion); // cambia el estatus del contacto a 4 var contaCto = db.Contactos.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); if (contaCto != null) { contaCto.EstatusBIDA = 4; contaCto.SubEstatusBIDAId = 3; } db.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message); throw new Exception(ex.Message); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(RedirectToAction("index", "NuevaInter", new { id = modelo.ContactoId })); }
public string AsignarContacto(int ContactoID, int DesarrolloId = 0) { try { // Busca carrusel_asignacion Carrusel_asignacion = new carrusel_asignacion(); string Constr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString(); ADO_Core objAdo = new ADO_Core(Constr); string sqlStat = String.Format("Exec sp_carruselAsignacion {0}, {1}", DesarrolloId, 1); SqlDataReader dr = objAdo.GetDataReader(sqlStat); bool encuentra = false; if (dr.HasRows) { dr.Read(); Boolean.TryParse(dr["encuentra"].ToString(), out encuentra); if (encuentra) { string epId = dr["EPId"].ToString(); Carrusel_asignacion.encuentra = encuentra; Carrusel_asignacion.EPId = Int32.Parse(!String.IsNullOrEmpty(epId) && !String.IsNullOrWhiteSpace(epId) ? epId : "0"); Carrusel_asignacion.Nombre = dr["Nombre"].ToString(); Carrusel_asignacion.Email = dr["Email"].ToString(); Carrusel_asignacion.PartyId = long.Parse(dr["PartyId"].ToString()); Carrusel_asignacion.ResourceId = long.Parse(dr["ResourceId"].ToString()); } } if (encuentra) { string Usuario_ID = Session["Usuario_ID"].ToString(); // guarda registro en la tabla Asignacion Asignacion asignacion = new Asignacion(); asignacion.ContactoId = ContactoID; asignacion.EPId = Carrusel_asignacion.EPId; asignacion.UsuarioHOST = Usuario_ID; asignacion.FechaAsignacion = DateTime.Now; db.Asignacion.Add(asignacion); db.SaveChanges(); // invoca el web service DatosReales datosReales = new DatosReales(); var resultdr = db.DatosReales.FirstOrDefault(w => w.ContactoId == ContactoID); string campo1 = "@XZYContaToSales#"; string Nombre = resultdr.Nombre; string ApellidoPaterno = resultdr.ApellidoPaterno; string ApellidoMaterno = resultdr.ApellidoMaterno; string CanalCaptacion = "1"; string SubcanalCaptacion = string.Empty; string TelefonoMovil = resultdr.Telefono; string CorreoElectonico = resultdr.Correo; string Desarrollo = string.Empty; long OwnerPartyId = Carrusel_asignacion.PartyId; long ResourceId = Carrusel_asignacion.ResourceId; // obtien datos del contacto var DatosContacto = db.View_Datos_Contacto.FirstOrDefault(w => w.ContactoId == ContactoID); CanalCaptacion = DatosContacto.CanalNombre; SubcanalCaptacion = DatosContacto.SubCanalNombre; Desarrollo = DatosContacto.DesarrolloNombre; // Consume el web service hu_web_service.SoaClient isoac = new hu_web_service.SoaClient(); var result_ws = isoac.crearContactoRespondersV2(campo1, Nombre, ApellidoPaterno, ApellidoMaterno, CanalCaptacion, SubcanalCaptacion, TelefonoMovil, CorreoElectonico, Desarrollo, OwnerPartyId, ResourceId);; if (result_ws.Contains("Error al crear contacto")) { // guarda notificacion para el EP en la tabla AgregaMensageParaEP(result_ws); return("Bad"); } else { // Actualiza el estatusBIDA del contacto var contactoD = db.Contactos.FirstOrDefault(w => w.ContactoId == ContactoID); contactoD.EstatusBIDA = 6; db.SaveChanges(); // avisa notificacion al contacto bool notifica = notificaconContacto_Genrente(ContactoID, "Se asigno un proyecto"); } } else if (!encuentra) { bool notifica = notificaconContacto_Genrente(ContactoID, "No se pudo asignar el proyecto"); } return("Ok"); } catch (Exception ex) { Console.WriteLine(ex.Message); return("Bad"); } }
public ActionResult Interactuar(Interaccion_nueva modelo, string WhatsAppCerrado) { datos_mensaje datos_mensaje = new datos_mensaje(); try { datos_mensaje.Fecha_asignacion = String.Format("{0:dd-MMM-yyyy}", DateTime.Now); ViewBag.ContactoID = modelo.ContactoId; // ResumenConversacion = -Nota string Usuario_ID = Session["Usuario_ID"].ToString(); bool bInteres = (modelo.SubEstatusBIDAId == 4) ? true : false; Interacciones interacciones = new Interacciones(); interacciones.ContactoId = modelo.ContactoId; interacciones.SubCanalId = modelo.SubCanalId; interacciones.UsuarioHOST = Usuario_ID; interacciones.EstatusBIDAId = modelo.EstatusBIDAId; interacciones.FechaInteraccion = DateTime.Now; interacciones.Descripcion = string.Empty; //interacciones.Comentarios = modelo.ResumenConversacion; interacciones.Interes = bInteres; if (modelo.CausaNoInterId == 0) { interacciones.CausaNoInterId = null; interacciones.ComentarioNoInteres = null; } else { interacciones.CausaNoInterId = modelo.CausaNoInterId; interacciones.ComentarioNoInteres = modelo.comentarioNoInteres; } interacciones.WhatsAppCerrado = modelo.WhatsAppCerrado; interacciones.SubEstatusBIDAId = modelo.SubEstatusBIDAId; db.Interacciones.Add(interacciones); // agrega nota NotasContacto notasContacto = new NotasContacto(); notasContacto.ContactoId = modelo.ContactoId; notasContacto.Fecha = DateTime.Now; notasContacto.Nota = modelo.ResumenConversacion; notasContacto.HOSTId = Usuario_ID; db.NotasContacto.Add(notasContacto); db.SaveChanges(); // actualiza estatus en tabla contactos var dsContacto = db.Contactos.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); if (dsContacto != null) { dsContacto.EstatusBIDA = modelo.EstatusBIDAId; dsContacto.SubEstatusBIDAId = modelo.SubEstatusBIDAId; db.SaveChanges(); } var sigInter = db.sp_SiguienteInteraccion(modelo.ContactoId, 0); // busca si tiene capturado datos reales var datosReal = db.DatosReales.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); datos_mensaje.Lead = String.Format("{0} {1} {2}", datosReal.Nombre, datosReal.ApellidoPaterno, datosReal.ApellidoMaterno); if (datosReal != null) { // YA TIENE CAPTURADO DATOS REALES string conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString(); ADO_Core adoC = new ADO_Core(conStr); string comando = String.Format("Exec sp_carruselAsignacion {0}, '{1}', {2}", modelo.DesarrolloId, Usuario_ID, 0); SqlDataReader dr = adoC.GetDataReader(comando); if (dr.HasRows) { dr.Read(); try { int _EPId = Convert.ToInt32(dr["EPId"].ToString()); // obtiene el nombre del host var dsHostAsigna = db.AspNetUsers.Where(w => w.Id == Usuario_ID).FirstOrDefault(); string HostAsigna = dsHostAsigna.UserName; datos_mensaje.HostAsigna = HostAsigna; // obtiene el ep seleccionado int epID = int.Parse(dr["EPid"].ToString()); var DsEpSel = db.AgentesEP.Where(w => w.EPId == epID).FirstOrDefault(); string epSeleccinado = DsEpSel.Nombre; datos_mensaje.EP_seleccionado = epSeleccinado; ViewBag.Datosmensaje = datos_mensaje; Session["Datos_Mensaje"] = datos_mensaje; if (modelo.SubEstatusBIDAId == 3) { var Desarrollo = db.Desarrollo.Where(w => w.DesarrolloId == modelo.DesarrolloId).FirstOrDefault(); var datosContacto = db.DatosReales.Where(w => w.ContactoId == modelo.ContactoId).FirstOrDefault(); // WEB SERVICE long PartyId = long.Parse(dr["PartyId"].ToString()); long ResourceId = long.Parse(dr["ResourceId"].ToString()); hu_website.hu_web_service.SoaClient webSer = new hu_web_service.SoaClient(); //string SalesOracleId = webSer.crearContactoRespondersV3( // "@XZYContaToSales#", // datosContacto.Nombre, // datosContacto.ApellidoPaterno, // datosContacto.ApellidoMaterno, // "DIGIN", // "IBWA", // datosContacto.Telefono.ToString(), // datosContacto.Correo, // Desarrollo.DesarrolloNombre, // PartyId, // ResourceId, // true); // GUARDAR LOS DATOS DEL WEB SERVICE long valorl = 0; valorl = 10000000055445; try { //valorl = long.Parse(SalesOracleId); } catch (Exception ex) { throw new Exception("'El web service no está funcionando.'"); } guardaContactoDatos(modelo.ContactoId, valorl); // guarda en la tabla asignacicion using (rubenzgb_hudevEntities dbasae = new rubenzgb_hudevEntities()) { Asignacion asignacion = new Asignacion() { ContactoId = modelo.ContactoId, EPId = _EPId, UsuarioHOST = Usuario_ID, FechaAsignacion = DateTime.Now }; dbasae.Asignacion.Add(asignacion); dbasae.SaveChanges(); } // cambia el estatus del contacto a 4 using (rubenzgb_hudevEntities dbasae = new rubenzgb_hudevEntities()) { var qry1 = dbasae.Contactos.Where(w => w.ContactoId == modelo.ContactoId).First(); qry1.EstatusBIDA = modelo.EstatusBIDAId; qry1.SubEstatusBIDAId = modelo.SubEstatusBIDAId; qry1.Estatus = 4; dbasae.SaveChanges(); } } } catch (Exception ex) { Console.WriteLine(ex.Message); throw new Exception(ex.Message); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); return(RedirectToAction("Interactuar", "whatsapp", new { id = modelo.ContactoId, mensaje = ex.Message })); } return(RedirectToAction("Interactuar", "whatsapp", new { id = modelo.ContactoId, datosMensaje = datos_mensaje })); // return RedirectToAction("index", "Host", new { id = modelo.ContactoId }); }