コード例 #1
0
        public string GrabaInteraccion(int interaccionID, int contactoId, string Descripcion, string Comentarios, bool WhatsAppCerrado)
        {
            try
            {
                // guarda en interaccionesContacto
                string nombreCompleto = Session["NombreCompleto"].ToString();
                string UsuarioHost    = Session["Usuario_ID"].ToString();

                Interacciones interacciones = new Interacciones();
                interacciones.ContactoId          = contactoId;
                interacciones.SubCanalId          = 1;
                interacciones.UsuarioHOST         = UsuarioHost;
                interacciones.EstatusBIDAId       = 2;
                interacciones.FechaInteraccion    = DateTime.Now;
                interacciones.Descripcion         = Descripcion;
                interacciones.Comentarios         = Comentarios;
                interacciones.Interes             = true;
                interacciones.CausaNoInterId      = null;
                interacciones.ComentarioNoInteres = null;
                interacciones.WhatsAppCerrado     = false;

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


                //var result = db.Interacciones.Where(w => w.InteraccionId == interaccionID).FirstOrDefault();
                //if (WhatsAppCerrado)
                //{
                //    result.Descripcion = Descripcion;
                //    result.Comentarios = Comentarios;
                //    result.WhatsAppCerrado = true;
                //}
                //else
                //{
                //    result.Comentarios = Comentarios;
                //    result.WhatsAppCerrado = false;
                //}
                //db.SaveChanges();

                return("Ok");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return("Bad");
            }
        }
コード例 #2
0
        public ActionResult Whatsapp(Interacciones modelo, string WhatsAppCerrado)
        {
            try
            {
                string Usuario_ID = Session["Usuario_ID"].ToString();

                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      = modelo.Descripcion;
                interacciones.Comentarios      = modelo.Comentarios;
                interacciones.Interes          = false;

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

                ViewBag.botonDisabled = string.Empty;


                if (WhatsAppCerrado == "on")
                {
                    // actualizar el campo whatsapp a true
                    var interac = db.Interacciones.Where(w => w.InteraccionId == modelo.InteraccionId).FirstOrDefault();
                    interac.WhatsAppCerrado = true;
                    db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return(RedirectToAction("Interaccion", "Host", new { id = modelo.ContactoId }));
        }
コード例 #3
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");
            }
        }
コード例 #4
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);
        }
コード例 #5
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 }));
        }
コード例 #6
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 }));
        }
コード例 #7
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 });
        }