Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        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 }));
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
        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 });
        }