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)); }
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)); }
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)); }
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)); }
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)); }