Ejemplo n.º 1
0
        public string ActivaHost(string id, bool estatus)
        {
            try
            {
                var result = db.AspNetUsers.Where(w => w.Id == id).FirstOrDefault();
                result.Estatus = estatus;

                db.SaveChanges();

                string   conStrr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoC    = new ADO_Core(conStrr);

                int eje = adoC.Execute("Exec sp_hostliberacontactos '" + id + "'");
                adoC.Dispose();
                adoC = null;


                return("Ok");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return("Bad");
            }
        }
Ejemplo n.º 2
0
        public string TieneDatosReales(int id)
        {
            string   conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
            ADO_Core AdoObj = new ADO_Core(conStr);

            SqlDataReader dr = AdoObj.GetDataReader("Exec sp_DatosReales " + id.ToString());

            string TieneDatosReales = "";


            while (dr.Read())
            {
                TieneDatosReales = dr["Tiene"].ToString();
            }

            AdoObj.Dispose();
            AdoObj = null;

            if (TieneDatosReales == "True")
            {
                return("Ok");
            }
            else
            {
                return("Bad");
            }
        }
Ejemplo n.º 3
0
        public string AddProgramacionBIDAX(int id, int MedioContacto, string FechaHora, string Descripcion)
        {
            try
            {
                ProgramacionBIDA programacionBIDA = new ProgramacionBIDA();

                DateTime f = DateTime.Now;

                DateTime fechaHora = Convert.ToDateTime(FechaHora);

                programacionBIDA.ContactoId = id;
                programacionBIDA.SubCanalId = MedioContacto;
                programacionBIDA.FechaHora  = fechaHora;
                programacionBIDA.Acuerdo    = true;
                programacionBIDA.Realizada  = false;


                programacionBIDA.Comentario = Descripcion;

                db.ProgramacionBIDA.Add(programacionBIDA);
                db.SaveChanges();



                // actualiza el estatus de la tabla interacciones
                EstatusBIDA estatusBIDA = new EstatusBIDA();

                var interR = db.Interacciones.Where(w => w.ContactoId == id).FirstOrDefault();
                interR.EstatusBIDAId = 5;

                db.SaveChanges();


                // ejecuta el store procedure para la siguiente interaccion
                string mensaje = string.Empty;

                string   conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoC   = new ADO_Core(conStr);

                SqlDataReader dr = adoC.GetDataReader("Exec sp_SiguienteInteraccion " + id.ToString());

                if (dr.HasRows)
                {
                    dr.Read();
                    mensaje = dr["Mensaje"].ToString();
                }

                adoC.Dispose();
                adoC = null;

                return(mensaje);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return("Bad");
            }
        }
Ejemplo n.º 4
0
        public ActionResult Interaccion(int Id)
        {
            View_Lista_Contactos view_Lista_Contactos = new View_Lista_Contactos();

            try
            {
                // lee los datos del lead
                string   conString = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoCore   = new ADO_Core(conString);

                SqlDataReader drDatosLead = adoCore.GetDataReader("Exec sp_DatosGeneralesLead " + Id.ToString());
                DatosLead     datosLead   = new DatosLead();
                while (drDatosLead.Read())
                {
                    datosLead.Nombre        = drDatosLead["Nombre"].ToString();
                    datosLead.Correo        = drDatosLead["Correo"].ToString();
                    datosLead.Telefono      = drDatosLead["Telefono"].ToString();
                    datosLead.Desarrollo    = drDatosLead["Desarrollo"].ToString();
                    datosLead.Estatus       = drDatosLead["Estatus"].ToString();
                    datosLead.TiempoEstatus = Convert.ToInt32(drDatosLead["TiempoEstatus"].ToString());
                    datosLead.Canal         = drDatosLead["Canal"].ToString();
                    datosLead.Subcanal      = drDatosLead["Subcanal"].ToString();
                    datosLead.NumeroForms   = Convert.ToInt32(drDatosLead["NumeroForms"].ToString());
                    datosLead.Origen        = drDatosLead["Origen"].ToString();
                }

                ViewBag.DatosLead = datosLead;

                if (!drDatosLead.IsClosed)
                {
                    drDatosLead.Close();
                }


                // subcanals
                ViewBag.SubCanalId = new SelectList(db.SubCanales.OrderBy(w => w.SubCanalNombre), "SubCanalId", "SubCanalNombre");


                // Hostorial Forms

                List <vEloquaForms> listaEF = new List <vEloquaForms>();

                var resultEf = from x in db.vEloquaForms
                               where x.ContactoId == Id
                               orderby x.EnviadoEl descending
                               select x;

                foreach (var item in resultEf)
                {
                    var EloquaForm = new vEloquaForms()
                    {
                        ContactoId = item.ContactoId,
                        EnviadoEl  = item.EnviadoEl,
                        Nombre     = item.Nombre,
                        Paterno    = item.Paterno,
                        Materno    = item.Materno,
                        Correo     = item.Correo,
                        Telefono   = item.Telefono,
                        Desarrollo = item.Desarrollo,
                        Origen     = item.Origen,
                        Texto      = item.Texto
                    };

                    listaEF.Add(EloquaForm);
                }

                ViewBag.EForm = listaEF;

                ViewBag.Id = Id;

                var result = from x in db.View_Lista_Contactos
                             where x.ContactoId == Id
                             select x;


                foreach (var item in result)
                {
                    view_Lista_Contactos.ContactoId     = item.ContactoId;
                    view_Lista_Contactos.NombreContacto = item.NombreContacto;
                    view_Lista_Contactos.Apellidos      = item.Apellidos;
                    view_Lista_Contactos.Correo         = item.Correo;
                    // view_Lista_Contactos.EstatusNombre = item.EstatusNombre;
                    view_Lista_Contactos.EstatusNombre          = item.EstatusLead;
                    view_Lista_Contactos.DesarrolloNombre       = item.DesarrolloNombre;
                    view_Lista_Contactos.DesarrolloModeloNombre = item.DesarrolloModeloNombre;
                    view_Lista_Contactos.EstatusBIDA            = item.EstatusBIDA;
                }
                ViewBag.xEstatusBida = view_Lista_Contactos.EstatusBIDA;

                // lee Historial Status BIDA


                SqlDataReader dr = adoCore.GetDataReader("Exec sp_estatusBIDAContacto " + Id.ToString());

                ViewBag.DsBIDA = dr;


                // lee las interacciones

                List <InteraccionesContacto> listInter = new List <InteraccionesContacto>();

                var nuevInter = from x in db.InteraccionesContacto
                                where x.ContactoId == Id
                                orderby x.Fecha
                                select x;

                foreach (var item in nuevInter)
                {
                    InteraccionesContacto interaccionesContacto = new InteraccionesContacto();

                    interaccionesContacto.ContactoId     = item.ContactoId;
                    interaccionesContacto.SubCanalNombre = item.SubCanalNombre;
                    interaccionesContacto.Fecha          = item.Fecha;
                    interaccionesContacto.EstatusNombre  = item.EstatusNombre;
                    interaccionesContacto.NombreCompleto = item.NombreCompleto;
                    interaccionesContacto.Descripcion    = item.Descripcion;
                    interaccionesContacto.Comentarios    = item.Comentarios;

                    listInter.Add(interaccionesContacto);
                }

                ViewBag.Inteaccines = listInter;


                ViewBag.DesarrolloIdAsigna = new SelectList(db.Desarrollo.OrderBy(w => w.DesarrolloNombre), "DesarrolloId", "DesarrolloNombre");

                // lee notas del leade

                List <vNotasContacto> lisNotas = new List <vNotasContacto>();

                var dsNotas = from x in db.vNotasContacto
                              where x.ContactoId == Id
                              orderby x.Fecha descending
                              select x;

                foreach (var item in dsNotas)
                {
                    vNotasContacto VNotasContacto = new vNotasContacto();

                    VNotasContacto.ContactoId     = item.ContactoId;
                    VNotasContacto.Fecha          = item.Fecha;
                    VNotasContacto.Nota           = item.Nota;
                    VNotasContacto.NombreCompleto = item.NombreCompleto;

                    lisNotas.Add(VNotasContacto);
                }

                ViewBag.dsNotas = lisNotas;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(View(view_Lista_Contactos));
        }
Ejemplo n.º 5
0
        public string GrabaInteraccion(int ContactoId, int statusBida, string Descripcion, string comentario, bool Cerrado)
        {
            try
            {
                var resultProgramacion = db.sp_programacionContacto(ContactoId).FirstOrDefault();
                int programacionId     = resultProgramacion.ProgramacionId;


                string HostID = Session["Usuario_ID"].ToString();

                Interacciones interacciones = new Interacciones();

                interacciones.ContactoId          = ContactoId;
                interacciones.SubCanalId          = 1;
                interacciones.UsuarioHOST         = HostID;
                interacciones.EstatusBIDAId       = statusBida;
                interacciones.FechaInteraccion    = DateTime.Now;
                interacciones.Descripcion         = Descripcion;
                interacciones.Comentarios         = comentario;
                interacciones.Interes             = true;
                interacciones.CausaNoInterId      = null;
                interacciones.ComentarioNoInteres = null;
                if (Cerrado)
                {
                    interacciones.WhatsAppCerrado = true;
                }
                else
                {
                    interacciones.WhatsAppCerrado = false;
                }



                db.Interacciones.Add(interacciones);
                db.SaveChanges();


                // siguiente interaccion
                string   conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core ado    = new ADO_Core(conStr);

                string        cmd = String.Format("Exec sp_SiguienteInteraccion {0}, {1}", ContactoId, programacionId);
                SqlDataReader dr  = ado.GetDataReader(cmd);

                string mensaje = string.Empty;
                while (dr.Read())
                {
                    mensaje = dr["Mensaje"].ToString();
                }

                ado.closeDB();

                // Actualiza la tabla de contactos
                if (Cerrado)
                {
                    var contacto = db.Contactos.Where(w => w.ContactoId == ContactoId).FirstOrDefault();
                    contacto.EstatusBIDA = statusBida;
                    db.SaveChanges();
                }

                return("Ok");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return("Bad");
            }
        }
Ejemplo n.º 6
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");
            }
        }
Ejemplo n.º 7
0
        public string NoContesta(int id)
        {
            string mensaje = string.Empty;

            try
            {
                // graba el estatus a 3 en contactos
                var resCont = db.Contactos.Where(w => w.ContactoId == id).FirstOrDefault();
                resCont.EstatusBIDA = 3;
                db.SaveChanges();



                // ejecuta el store procedure para la siguiente interaccion
                string   conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoC   = new ADO_Core(conStr);

                SqlDataReader dr = adoC.GetDataReader("Exec sp_SiguienteInteraccion " + id.ToString());

                if (dr.HasRows)
                {
                    dr.Read();
                    mensaje = dr["Mensaje"].ToString();
                }

                adoC.Dispose();
                adoC = null;

                // ejemplo: Telefónica 2019 - 07 - 25 08:01
                // Telefónica 2019 - 07 - 25 08:01
                // 2019 - 07 - 25 08:01

                string   msgTemp = mensaje.Replace("Telefónica ", string.Empty);
                DateTime tmpD    = Convert.ToDateTime(msgTemp);



                // graba interaccion
                Interacciones interacciones = new Interacciones();

                interacciones.ContactoId    = id;
                interacciones.SubCanalId    = 2;
                interacciones.UsuarioHOST   = null;
                interacciones.EstatusBIDAId = 3;
                if (!string.IsNullOrEmpty(mensaje) && !string.IsNullOrWhiteSpace(mensaje))
                {
                    interacciones.FechaInteraccion = tmpD;
                }
                else
                {
                    interacciones.FechaInteraccion = DateTime.Now;
                }

                interacciones.Descripcion    = string.Empty;
                interacciones.Comentarios    = string.Empty;
                interacciones.Interes        = false;
                interacciones.CausaNoInterId = null;

                db.Interacciones.Add(interacciones);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
            }

            return(mensaje);
        }
Ejemplo n.º 8
0
        public ActionResult Interaccion(Interaccion modelo, int SubCanalIdH, int numTab = 0)
        {
            try
            {
                int DatosReales = 0;
                DatosReales = db.DatosReales.Where(w => w.ContactoId == modelo.id).Count();

                var contac           = db.View_Lista_Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                int StatusBIDAActual = contac.EstatusBIDA;

                string Usuario_ID = Session["Usuario_ID"].ToString();

                Interacciones interacciones = new Interacciones();

                interacciones.ContactoId    = modelo.id;
                interacciones.SubCanalId    = SubCanalIdH;
                interacciones.UsuarioHOST   = Usuario_ID;
                interacciones.EstatusBIDAId = 5;

                if ((StatusBIDAActual == 1) && (DatosReales > 0))
                {
                    interacciones.EstatusBIDAId = 5;

                    // actualliza estatusbida en contactos
                    var contacto1 = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                    contacto1.EstatusBIDA = 5;
                    db.SaveChanges();
                }
                else if ((StatusBIDAActual == 1) && (DatosReales == 0))
                {
                    interacciones.EstatusBIDAId = 2;
                    // actualliza estatusbida en contactos
                    var contacto1 = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                    contacto1.EstatusBIDA = 2;
                    db.SaveChanges();
                }

                interacciones.FechaInteraccion = DateTime.Now;
                interacciones.Descripcion      = modelo.Descripcion;
                interacciones.Comentarios      = modelo.ResumenConversacion;
                interacciones.Interes          = false;

                if (numTab == 2)
                {
                    interacciones.CausaNoInterId      = modelo.CausaNoInterId;
                    interacciones.ComentarioNoInteres = modelo.ComentariosNoIntetres;
                    interacciones.EstatusBIDAId       = 4;


                    // actualliza estatusbida en contactos
                    var contacto1 = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                    contacto1.EstatusBIDA = 4;
                    db.SaveChanges();
                }

                if (numTab == 3)
                {
                    // actualliza estatusbida en contactos
                    var contacto1 = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                    contacto1.EstatusBIDA = 4;
                    db.SaveChanges();
                }

                if (numTab == 4)
                {
                    // actualliza estatusbida en contactos
                    var contacto1 = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                    contacto1.EstatusBIDA = 3;
                    db.SaveChanges();
                }


                db.Interacciones.Add(interacciones);
                db.SaveChanges();

                // ejecuta el store procedure sp_SiguienteInteraccion
                string   ConStr  = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoC    = new ADO_Core(ConStr);
                string   mensaje = string.Empty;

                string sqlStr = String.Format("Exec sp_SiguienteInteraccion {0}, {1}", modelo.id, 0);

                SqlDataReader dr = adoC.GetDataReader(sqlStr);
                if (dr.HasRows)
                {
                    dr.Read();
                    mensaje = dr["Mensaje"].ToString();
                }

                adoC.Dispose();
                adoC = null;



                // liberar contacto
                var rcont = db.Contactos.Where(w => w.ContactoId == modelo.id).FirstOrDefault();
                rcont.UsuarioHOST = null;
                db.SaveChanges();



                ViewBag.botonDisabled = string.Empty;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(RedirectToAction("Interaccion", "Host", new { id = modelo.id }));
        }
Ejemplo n.º 9
0
        public ActionResult InteraccionTelefono(int id, string back)
        {
            Interaccion interaccion = new Interaccion();

            try
            {
                ViewBag.ID                 = id;
                ViewBag.Regreso            = back;
                ViewBag.botonDisabled      = "disabled";
                ViewBag.DesarrolloIdAsigna = new SelectList(db.Desarrollo.OrderBy(w => w.DesarrolloNombre), "DesarrolloId", "DesarrolloNombre");

                // subcanals
                ViewBag.SubCanalId        = new SelectList(db.SubCanales.OrderBy(w => w.SubCanalNombre), "SubCanalId", "SubCanalNombre");
                ViewBag.SubCanalIdAcuerdo = new SelectList(db.SubCanales.OrderBy(w => w.SubCanalNombre), "SubCanalId", "SubCanalNombre");

                // Desarrollo
                ViewBag.DesarrolloId = new SelectList(db.Desarrollo.OrderBy(w => w.DesarrolloNombre), "DesarrolloId", "DesarrolloNombre");

                // Modelo
                ViewBag.DesarrolloModeloId = new SelectList(db.DesarrolloModelo.OrderBy(w => w.DesarrolloModeloNombre), "DesarrolloModeloId", "DesarrolloModeloNombre");

                // Causa no Interesado
                ViewBag.CausaNoInterId = new SelectList(db.CausaNoInter.OrderBy(w => w.CausaNoInterNombre), "CausaNoInterId", "CausaNoInterNombre");


                // Lee datos del CONTACTO
                int Desarrollo_Id = 0;
                int subCanalId    = 0;

                var DatLead = from x in db.View_Datos_Contacto
                              where x.ContactoId == id
                              select x;
                int EstatusBIDA = 0;

                foreach (var item in DatLead)
                {
                    interaccion.id = id;
                    interaccion.NombreContactoCompleto = item.NombreContacto + " " + item.Apellidos;
                    EstatusBIDA   = item.EstatusBIDA;
                    Desarrollo_Id = item.DesarrolloId;
                    subCanalId    = item.SubCanalId;
                }

                ViewBag.Desarrollo_Id = Desarrollo_Id;
                ViewBag.Subcanal      = subCanalId;



                if (EstatusBIDA == 5)
                {
                    ViewBag.botonDisabled = string.Empty;
                }


                ViewBag.ContactoNombre = interaccion.NombreContactoCompleto;
                ViewBag.EstatusBida    = EstatusBIDA;

                // Lee datos reales del Lead
                var datReal = from x in db.DatosReales
                              where x.ContactoId == id
                              select x;
                foreach (var item in datReal)
                {
                    interaccion.NombreReal          = item.Nombre;
                    interaccion.ApellidoPaternoReal = item.ApellidoPaterno;
                    interaccion.ApellidoMaternoReal = item.ApellidoMaterno;
                    interaccion.TelefonoReal        = item.Telefono;
                    interaccion.CorreoReal          = item.Correo;
                }


                // lee interaccion final
                var interacc = db.Interacciones.OrderByDescending(w => w.InteraccionId).FirstOrDefault(w => w.ContactoId == id);

                var IdInteraccion = 0;

                if (interacc != null)
                {
                    IdInteraccion                   = interacc.InteraccionId;
                    interaccion.Descripcion         = interacc.Descripcion;
                    interaccion.ResumenConversacion = interacc.Comentarios;

                    // ejecuta la siguiente interaccion
                    string   conStr    = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                    ADO_Core AdoC      = new ADO_Core(conStr);
                    string   stringCmd = string.Format("Exec sp_SiguienteInteraccion {0}, {1}", id, IdInteraccion);

                    string        Mensaje = string.Empty;
                    SqlDataReader dr      = AdoC.GetDataReader(stringCmd);
                    if (dr.HasRows)
                    {
                        dr.Read();
                        Mensaje = dr["mensaje"].ToString();
                    }
                    AdoC.Dispose();


                    ViewBag.SiguienteInteraccion = Mensaje;
                }
            }
            catch (Exception ex)
            {
            }

            return(View(interaccion));
        }
Ejemplo n.º 10
0
        public string AddProgramacion_BIDA(int id, int MedioContacto, string FechaHora, string Descripcion)
        {
            try
            {
                ProgramacionBIDA programacionBIDA = new ProgramacionBIDA();

                DateTime f         = DateTime.Now;
                DateTime fechaHora = Convert.ToDateTime(FechaHora);

                programacionBIDA.ContactoId = id;
                programacionBIDA.SubCanalId = MedioContacto;
                programacionBIDA.FechaHora  = fechaHora;
                programacionBIDA.Acuerdo    = true;
                programacionBIDA.Realizada  = false;
                programacionBIDA.Comentario = Descripcion;

                db.ProgramacionBIDA.Add(programacionBIDA);
                db.SaveChanges();

                // lee el id del registro agregad

                var programacionId = db.ProgramacionBIDA.Max(w => w.ProgramacionId);


                // actualiza la interaccion en estatus 2
                //var resInte = db.Interacciones.Where(w => w.InteraccionId == interaccionID).FirstOrDefault();
                //resInte.EstatusBIDAId = 2;
                //db.SaveChanges();


                // ejecuta el store procedure para la siguiente interaccion
                string mensaje = string.Empty;

                string   conStr = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core adoC   = new ADO_Core(conStr);

                string        cmd = String.Format("Exec sp_SiguienteInteraccion {0}, {1}", id, programacionId);
                SqlDataReader dr  = adoC.GetDataReader(cmd);

                if (dr.HasRows)
                {
                    dr.Read();
                    mensaje = dr["Mensaje"].ToString();
                }

                if (string.IsNullOrWhiteSpace(mensaje) || string.IsNullOrEmpty(mensaje))
                {
                    mensaje = "No se pudo calcular la siguietne interacción.";
                }

                adoC.Dispose();
                adoC = null;


                // Libera el contatactoId
                var resContacto = db.Contactos.Where(w => w.ContactoId == id).FirstOrDefault();
                resContacto.UsuarioHOST = null;
                db.SaveChanges();;

                return(mensaje);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return("Bad");
            }
        }
Ejemplo n.º 11
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");
            }
        }
Ejemplo n.º 12
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 }));
        }
Ejemplo n.º 13
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 });
        }
Ejemplo n.º 14
0
        public ActionResult NuevoLead(Contactos modelo)
        {
            try
            {
                ViewBag.DesarrolloId = new SelectList(db.Desarrollo.OrderBy(w => w.DesarrolloNombre), "DesarrolloId", "DesarrolloNombre");
                ViewBag.SubCanalId   = new SelectList(db.SubCanales.OrderBy(w => w.SubCanalNombre), "SubCanalId", "SubCanalNombre");

                ViewBag.Msg = "mensaje('El Contacto se registró correctamente.');";


                // valida campos
                if (string.IsNullOrEmpty(modelo.NombreContacto))
                {
                    ViewBag.Msg = "mensaje('El Nombre del Contacto es nedesario.');";
                    return(View());
                }

                if (string.IsNullOrEmpty(modelo.Apellidos))
                {
                    ViewBag.Msg = "mensaje('Los Apellidos del Contacto son necesarios.');";
                    return(View());
                }

                if (string.IsNullOrEmpty(modelo.Correo))
                {
                    ViewBag.Msg = "mensaje('El correo del contacto es necesario.');";
                    return(View());
                }



                // guarda nuevo contacto
                Contactos contactos  = new Contactos();
                string    Usuario_ID = Session["Usuario_ID"].ToString();

                //contactos.InConcertId = null;
                contactos.CanalId            = 1;
                contactos.SubCanalId         = 1;
                contactos.EstatusBIDA        = 1;
                contactos.DesarrolloId       = modelo.DesarrolloId;
                contactos.DesarrolloModeloId = 1;
                contactos.NombreContacto     = modelo.NombreContacto;
                contactos.Apellidos          = modelo.Apellidos;
                contactos.Telefono           = modelo.Telefono;
                contactos.Correo             = modelo.Correo;
                contactos.Facebook           = modelo.Facebook;
                contactos.FechaIngreso       = DateTime.Now;
                contactos.FechaReingreso     = null;
                contactos.UsuarioHOST        = Usuario_ID;
                //contactos.Interesado = true;
                contactos.SalesOracleId = null;


                db.Contactos.Add(contactos);
                db.SaveChanges();

                // lee el nuevo contacto
                var nuevoContacto = db.Contactos.Max(w => w.ContactoId);
                int contactoID    = Int32.Parse(!String.IsNullOrEmpty(nuevoContacto.ToString()) && !String.IsNullOrWhiteSpace(nuevoContacto.ToString()) ? nuevoContacto.ToString() : "0");

                // ejecuta el store procedure
                string        ConStr  = WebConfigurationManager.ConnectionStrings["ConStr"].ToString();
                ADO_Core      adoCore = new ADO_Core(ConStr);
                string        SqlStat = String.Format("Exec sp_SiguienteInteraccion {0}, {1}", contactoID, 1);
                SqlDataReader dr      = adoCore.GetDataReader(SqlStat);
            }
            catch (Exception ex)
            {
            }

            return(View(modelo));
        }