示例#1
0
        public JsonResult cancelarProspectoAnfitrion(int?idAlerta)
        {
            //var buscarTercero = context.alertaasesor.OrderByDescending(x=>x.id).FirstOrDefault(x=>x.propecto==id);
            alertaasesor buscarTercero = context.alertaasesor.FirstOrDefault(x => x.id == idAlerta);

            if (buscarTercero != null)
            {
                int usuario = Convert.ToInt32(Session["user_usuarioid"]);
                int rol     = Convert.ToInt32(Session["user_rolid"]);

                if (buscarTercero.recibido == true)
                {
                    // Se cambia la alerta para que al rol anfitriona le aparezca un alerta para que asigne otro asesor al prospecto
                    buscarTercero.recibido = true;
                    if (rol == 7)
                    {
                        buscarTercero.cancelado = true;
                    }

                    context.Entry(buscarTercero).State = EntityState.Modified;

                    int guardar = context.SaveChanges();
                    if (guardar > 0)
                    {
                        return(Json(JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public JsonResult ReasignarAsesor(int id)
        {
            alertaasesor buscarTercero = context.alertaasesor.OrderByDescending(x => x.id).FirstOrDefault(x => x.id == id);

            if (buscarTercero != null)
            {
                buscarTercero.recibido             = true;
                buscarTercero.reasignado           = true;
                buscarTercero.rechazado            = true;
                context.Entry(buscarTercero).State = EntityState.Modified;
                int guardar = context.SaveChanges();
                if (guardar > 0)
                {
                    return(Json(true, JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(false, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public JsonResult cancelarProspecto(bool atendido, int?idAlerta, bool?recibioNoti)
        {
            //var buscarTercero = context.alertaasesor.OrderByDescending(x=>x.id).FirstOrDefault(x=>x.propecto==id);
            alertaasesor buscarTercero = context.alertaasesor.FirstOrDefault(x => x.id == idAlerta);

            if (buscarTercero != null)
            {
                //int usuario = Convert.ToInt32(Session["user_usuarioid"]);
                //int rol = Convert.ToInt32(Session["user_rolid"]);
                sesion_logasesor ultimaSesionAsesor = context.sesion_logasesor.OrderByDescending(x => x.id)
                                                      .FirstOrDefault(x => x.user_id == buscarTercero.asesor);
                if (ultimaSesionAsesor != null)
                {
                    ultimaSesionAsesor.fecha_inicia  = DateTime.Now;
                    ultimaSesionAsesor.fecha_termina = DateTime.Now;
                }

                if (atendido == false)
                {
                    // Se cambia el turno del asesor para que no se asigne a la siguiente persona prospecto porque perdio el turno por no atender al que se le asigno
                    //if (ultimaSesionAsesor != null-------)
                    //{
                    ultimaSesionAsesor.estado = 1;

                    context.Entry(ultimaSesionAsesor).State = EntityState.Modified;
                    //buscarTercero.aprobado = atendido;
                    //}

                    if (buscarTercero.recibido == true || buscarTercero.recibido == false && recibioNoti == true)
                    {
                        // Se cambia la alerta para que al rol anfitriona le aparezca un alerta para que asigne otro asesor al prospecto
                        buscarTercero.recibido   = true;
                        buscarTercero.aprobado   = false;
                        buscarTercero.rechazado  = true;
                        buscarTercero.reasignado = true;
                        //if (rol == 7)
                        //{
                        //    buscarTercero.cancelado = true;
                        //}
                        context.Entry(buscarTercero).State = EntityState.Modified;

                        int        terceroProspecto = buscarTercero.propecto;
                        prospectos prospectoID      = context.prospectos.FirstOrDefault(x => x.idtercero == terceroProspecto);
                        int        prospecto_ID     = Convert.ToInt32(prospectoID.id);
                        asignacion asignado         = context.asignacion.OrderByDescending(x => x.id)
                                                      .FirstOrDefault(x => x.idProspecto == prospecto_ID);

                        asignado.estado               = false;
                        asignado.fechaFin             = DateTime.Now;
                        context.Entry(asignado).State = EntityState.Modified;

                        int guardar = context.SaveChanges();
                        if (guardar > 0)
                        {
                            return(Json(
                                       new { success = false, error_message = "El usuario sera atendido por otro asesor" },
                                       JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(
                                   new
                        {
                            success = false,
                            error_message =
                                "El usuario ya fue asignado a otro asesor por superar limite de tiempo ausente"
                        }, JsonRequestBehavior.AllowGet));
                    }
                }
            }

            return(Json(new { success = false, error_message = "La notificacion no fue encontrada" },
                        JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public JsonResult BuscarNotificacionAnfitrion()
        {
            int      usuario            = Convert.ToInt32(Session["user_usuarioid"]);
            DateTime fechaHoy           = DateTime.Now;
            string   buscarTiempoEspera =
                (from parametro in context.icb_sysparameter
                 where parametro.syspar_cod == "P53"
                 select parametro.syspar_value).FirstOrDefault();
            int segundos           = Convert.ToInt32(buscarTiempoEspera);
            var buscarNotificacion = (from alerta in context.alertaasesor
                                      join tercero in context.icb_terceros
                                      on alerta.propecto equals tercero.tercero_id
                                      where alerta.anfitrion == usuario &&
                                      alerta.aprobado == false &&
                                      alerta.recibido == true &&
                                      alerta.cancelado == false &&
                                      alerta.finalizado == false &&
                                      alerta.rechazado == true &&
                                      alerta.aprobado != null

                                      /*&& alerta.finalizado == false
                                       * && (alerta.recibido == true && alerta.cancelado == false && alerta.aprobado == false &&
                                       *  alerta.reasignado == false
                                       || alerta.recibido == true && alerta.cancelado == false && alerta.aprobado == false &&
                                       || alerta.reasignado)*/
                                      && alerta.fecha.Year == fechaHoy.Year && alerta.fecha.Month == fechaHoy.Month &&
                                      alerta.fecha.Day == fechaHoy.Day &&
                                      DbFunctions.DiffSeconds(alerta.fecha, fechaHoy) >= segundos
                                      orderby alerta.fecha descending
                                      select new
            {
                alerta.reasignado,
                alerta.cancelado,
                alerta.aprobado,
                alerta.id,
                alerta.propecto,
                tercero.tercero_id,
                nombreTercero = tercero.razon_social + tercero.prinom_tercero + " " + tercero.segnom_tercero + " " +
                                tercero.apellido_tercero + " " + tercero.segapellido_tercero,
                diferencia = DbFunctions.DiffSeconds(alerta.fecha, fechaHoy)
            }).FirstOrDefault();

            if (buscarNotificacion != null)
            {
                if (buscarNotificacion.aprobado == false)
                {
                    alertaasesor buscaAlerta = context.alertaasesor.FirstOrDefault(x => x.id == buscarNotificacion.id);
                    buscaAlerta.recibido             = true;
                    buscaAlerta.aprobado             = false;
                    buscaAlerta.finalizado           = true;
                    buscaAlerta.rechazado            = true;
                    buscaAlerta.reasignado           = true;
                    context.Entry(buscaAlerta).State = EntityState.Modified;
                    int guardar = context.SaveChanges();
                    var mensaje = new
                    {
                        notificacion = true,
                        buscarNotificacion.tercero_id,
                        alerta_id = buscarNotificacion.id,
                        alerta    = "El prospecto " + buscarNotificacion.nombreTercero + " no tiene asesor asignado"
                    };
                    return(Json(mensaje, JsonRequestBehavior.AllowGet));
                }

                return(Json(new { notificacion = false }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new { notificacion = false }, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        public JsonResult AtenderUsuario(int?id, bool?atendido, int?idAlerta)
        {
            alertaasesor buscarAlerta  = context.alertaasesor.FirstOrDefault(x => x.id == idAlerta);
            icb_terceros buscarTercero = context.icb_terceros.FirstOrDefault(x => x.tercero_id == buscarAlerta.propecto);

            if (buscarAlerta != null)
            {
                int usuario = Convert.ToInt32(Session["user_usuarioid"]);
                //para atender a un nuevo usuario todas las demas sesiones que tengan prospecto deben cerrarse
                sesion_logasesor ultimaSesionAsesor = context.sesion_logasesor.OrderByDescending(x => x.id)
                                                      .FirstOrDefault(x => x.user_id == usuario);
                if (ultimaSesionAsesor != null)
                {
                    ultimaSesionAsesor.fecha_inicia  = DateTime.Now;
                    ultimaSesionAsesor.fecha_termina = DateTime.Now;
                    if (ultimaSesionAsesor.estado != 4)
                    {
                        ultimaSesionAsesor.estado = 4;
                    }
                }

                #region atendido false

                if (atendido == false)
                {
                    //creo una nueva sesion
                    sesion_logasesor nuevaSesionAsesor = new sesion_logasesor
                    {
                        bodega        = ultimaSesionAsesor.bodega,
                        estado        = 1,
                        fecha_inicia  = DateTime.Now,
                        fecha_termina = DateTime.Now.AddMinutes(5),
                        user_id       = ultimaSesionAsesor.user_id,
                    };
                    context.sesion_logasesor.Add(nuevaSesionAsesor);
                    buscarAlerta.aprobado = atendido;
                    context.Entry(ultimaSesionAsesor).State = EntityState.Modified;

                    if (buscarAlerta.recibido == false)
                    {
                        int guardar = 0;
                        // Se cambia la alerta para que al rol anfitriona le aparezca un alerta para que asigne otro asesor al prospecto
                        buscarAlerta.recibido             = true;
                        buscarAlerta.reasignado           = true;
                        buscarAlerta.rechazado            = true;
                        context.Entry(buscarAlerta).State = EntityState.Modified;
                        guardar = context.SaveChanges();

                        prospectos prospectoID  = context.prospectos.FirstOrDefault(x => x.idtercero == buscarAlerta.propecto);
                        int        prospecto_ID = Convert.ToInt32(prospectoID.id);
                        asignacion asignado     = context.asignacion.OrderByDescending(x => x.id)
                                                  .FirstOrDefault(x => x.idProspecto == prospecto_ID && x.idAsesor == usuario);

                        asignado.estado               = false;
                        asignado.fechaFin             = DateTime.Now;
                        context.Entry(asignado).State = EntityState.Modified;
                        guardar = context.SaveChanges();

                        if (guardar > 0)
                        {
                            return(Json(
                                       new { success = false, error_message = "El usuario sera atendido por otro asesor" },
                                       JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        return(Json(
                                   new
                        {
                            success = false,
                            error_message =
                                "El usuario ya fue asignado a otro asesor por superar limite de tiempo ausente"
                        }, JsonRequestBehavior.AllowGet));
                    }
                }

                #endregion

                #region atendido true

                if (atendido == true)
                {
                    if (buscarAlerta.recibido == false)
                    {
                        //
                        if (ultimaSesionAsesor != null)
                        {
                            int idProspecto = (from p in context.prospectos
                                               join t in context.icb_terceros
                                               on p.idtercero equals t.tercero_id
                                               where p.idtercero == id
                                               select p.id).FirstOrDefault();

                            sesion_logasesor nuevaSesionAsesor = new sesion_logasesor
                            {
                                bodega        = ultimaSesionAsesor.bodega,
                                estado        = 2,
                                fecha_inicia  = DateTime.Now,
                                fecha_termina = DateTime.Now.AddMinutes(5),
                                user_id       = ultimaSesionAsesor.user_id,
                                idprospecto   = idProspecto,
                            };
                            context.sesion_logasesor.Add(nuevaSesionAsesor);
                            context.Entry(ultimaSesionAsesor).State = EntityState.Modified;

                            prospectos prospecto =
                                context.prospectos.FirstOrDefault(x => x.idtercero == buscarAlerta.propecto);
                            int        prospecto_ID = Convert.ToInt32(prospecto.id);
                            asignacion asignado     = context.asignacion.OrderByDescending(x => x.id)
                                                      .FirstOrDefault(x => x.idProspecto == prospecto_ID && x.idAsesor == usuario);

                            asignado.estado = true;
                            //asignado.fechaFin = DateTime.Now;
                            context.Entry(asignado).State = EntityState.Modified;

                            buscarTercero.asesor_id            = usuario;
                            context.Entry(buscarTercero).State = EntityState.Modified;

                            prospecto.asesor_id            = usuario;
                            context.Entry(prospecto).State = EntityState.Modified;

                            context.SaveChanges();
                        }

                        buscarAlerta.aprobado = atendido;
                        buscarAlerta.recibido = atendido;

                        context.Entry(buscarAlerta).State = EntityState.Modified;
                        int guardar = context.SaveChanges();
                        if (guardar > 0)
                        {
                            return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
                        }
                    }
                    else
                    {
                        if (ultimaSesionAsesor != null)
                        {
                            sesion_logasesor nuevaSesionAsesor = new sesion_logasesor
                            {
                                bodega        = ultimaSesionAsesor.bodega,
                                estado        = 1,
                                fecha_inicia  = DateTime.Now,
                                fecha_termina = DateTime.Now.AddMinutes(5),
                                user_id       = ultimaSesionAsesor.user_id,
                            };
                            context.sesion_logasesor.Add(nuevaSesionAsesor);
                            context.Entry(ultimaSesionAsesor).State = EntityState.Modified;
                            context.SaveChanges();
                        }

                        return(Json(
                                   new
                        {
                            success = false,
                            error_message =
                                "El usuario ya fue asignado a otro asesor por superar limite de tiempo ausente"
                        }, JsonRequestBehavior.AllowGet));
                    }
                }

                #endregion
            }

            return(Json(new { success = false, error_message = "La notificacion no fue encontrada" },
                        JsonRequestBehavior.AllowGet));
        }