Example #1
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 }));
        }
Example #2
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 });
        }