public JsonResult GetFiltrosJson() { int userId = GetUsuarioLogueado(); int ClienteId = GetClienteSeleccionado(); IEnumerable <Filtro> filtros = tableroRepository.GetFiltros(0, userId, ClienteId); FiltrosViewModel filtrosVM = new FiltrosViewModel(); foreach (Filtro f in filtros.Where(m => m.TipoFiltro == TipoFiltro.CheckBox)) { var FiltroVM = new FiltroCheckViewModel(); foreach (Item i in f.Items) { FiltroVM.Items.Add(new ItemViewModel() { IdItem = i.IdItem, TipoItem = i.TipoItem, Selected = i.Selected, Descripcion = i.Descripcion.ToUpper() }); } FiltroVM.Id = f.Id; FiltroVM.Nombre = f.Nombre; filtrosVM.FiltrosChecks.Add(FiltroVM); } foreach (Filtro f in filtros.Where(m => m.TipoFiltro == TipoFiltro.Fecha)) { var FiltroVM = new FiltroFechaViewModel(); foreach (Item i in f.Anios) { FiltroVM.Anios.Add(new ItemDropDownListViewModel() { Value = i.IdItem, Descripcion = i.Descripcion }); } foreach (Item i in f.Meses) { FiltroVM.Meses.Add(new ItemDropDownListViewModel() { Value = i.IdItem, Descripcion = i.Descripcion, ParentValue = i.IdParent }); } foreach (Item i in f.Semanas) { FiltroVM.Semanas.Add(new ItemDropDownListViewModel() { Value = i.IdItem, Descripcion = i.Descripcion, ParentValue = i.IdParent }); } foreach (Item i in f.Trimestres) { FiltroVM.Trimestres.Add(new ItemDropDownListViewModel() { Value = i.IdItem, Descripcion = i.Descripcion, ParentValue = i.IdParent }); } FiltroVM.Id = f.Id; FiltroVM.Nombre = f.Nombre; filtrosVM.FiltrosFechas.Add(FiltroVM); } return(Json(filtrosVM, JsonRequestBehavior.AllowGet)); }
protected ActionResult AplicarFiltros(FiltrosViewModel filtros, int TableroId, int IdModulo) { int userId = GetUsuarioLogueado(); int clienteId = GetClienteSeleccionado(); userId = usuarioRepository.GetUsuarioPerformance(userId); var filtrostotal = new FiltrosViewModel(); foreach (var ff in filtros.FiltrosFechas) { if (ff.DiaDesde != null || ff.DiaHasta != null || ff.MesDesde != null || ff.MesHasta != null || ff.SemanaDesde != null || ff.SemanaHasta != null || ff.TrimestreDesde != null || ff.TrimestreHasta != null) { filtrostotal.FiltrosFechas.Add(ff); } } if (IdModulo == 1 || IdModulo == 1) { var filtrosbloqueados = GetFiltrosBloqueadosObj(TableroId); if (filtrosbloqueados != null) { foreach (var fb in filtrosbloqueados.FiltrosChecks) { var flt = new FiltroCheckViewModel() { Id = fb.Id, Nombre = fb.Nombre }; foreach (var itm in fb.Items) { flt.Items.Add(new ItemViewModel() { Descripcion = itm.Descripcion, IdItem = itm.IdItem, isLocked = itm.isLocked, Selected = itm.Selected, TipoItem = itm.TipoItem }); } filtrostotal.FiltrosChecks.Add(flt); } } } foreach (var fc in filtros.FiltrosChecks) { if (fc.Items.Any(i => i.Selected)) { if (!filtrostotal.FiltrosChecks.Any(f => f.Id == fc.Id)) { var newf = new FiltroCheckViewModel() { Id = fc.Id, Nombre = fc.Nombre }; foreach (var itm in fc.Items.Where(fcitm => fcitm.Selected)) { newf.Items.Add(itm); } filtrostotal.FiltrosChecks.Add(newf); } else { var fd = filtrostotal.FiltrosChecks.FirstOrDefault(fdd => fdd.Id == fc.Id); if (fd != null) { foreach (var itm in fc.Items) { if (!fd.Items.Any(it => it.IdItem == itm.IdItem)) { fd.Items.Add(itm); } } } } } } var serializer = new JavaScriptSerializer(); string json = new JavaScriptSerializer().Serialize(filtrostotal); usuarioRepository.saveFiltros(clienteId, userId, json); bool isLocked = false; int tabId = -1; if (IdModulo == 1 || IdModulo == 2) { tabId = TableroId; isLocked = filtroRepository.IsFiltrosLocked(tabId); } FiltrosViewModel model = GetFiltrosAplicadosYBloqueados(IdModulo, tabId); model.isLocked = isLocked; return(PartialView("_Filtros", model)); }
protected FiltrosViewModel GetFiltrosAplicadosYBloqueados(int IdModulo, int tableroId) { int userId = GetUsuarioLogueado(); userId = usuarioRepository.GetUsuarioPerformance(userId); int ClienteId = GetClienteSeleccionado(); //traigo todos los posibles filtros Filtros filtros = filtroRepository.GetFiltros(userId, ClienteId, IdModulo); FiltrosViewModel filtrosVM = new FiltrosViewModel(); foreach (FiltroCheck f in filtros.FiltrosChecks) { var FiltroVM = new FiltroCheckViewModel(); foreach (ItemFiltro i in f.Items) { FiltroVM.Items.Add(new ItemViewModel() { IdItem = i.IdItem, TipoItem = i.TipoItem, Selected = i.Selected, Descripcion = i.Descripcion.ToUpper() }); } FiltroVM.Id = f.Id; FiltroVM.Nombre = Reporting.Resources.Filtros.ResourceManager.GetString(string.Format("{0}", f.Id)); filtrosVM.FiltrosChecks.Add(FiltroVM); } foreach (FiltroFecha f in filtros.FiltrosFechas) { var FiltroVM = new FiltroFechaViewModel(); FiltroVM.Id = f.Id; FiltroVM.Nombre = Reporting.Resources.Filtros.ResourceManager.GetString(string.Format("{0}", f.Id)); FiltroVM.TipoFechaSeleccionada = "D"; filtrosVM.FiltrosFechas.Add(FiltroVM); } List <ReportingFiltroNombreCliente> filtrosConNombre = filtroRepository.getFiltroNombreCliente(ClienteId); foreach (ReportingFiltroNombreCliente fnc in filtrosConNombre) { var filtro = filtrosVM.FiltrosFechas.SingleOrDefault(f => f.Id == fnc.ReportingFiltros.identificador); if (filtro != null) { filtro.Nombre = fnc.Nombre; } } foreach (ReportingFiltroNombreCliente fnc in filtrosConNombre) { var filtro = filtrosVM.FiltrosChecks.SingleOrDefault(f => f.Id == fnc.ReportingFiltros.identificador); if (filtro != null) { filtro.Nombre = fnc.Nombre; } } //Filtros aplicados por el usuario y actualizo dentro de los filtros generales el estado que tienen Filtros filtrosSeleccionados = GetFiltrosAplicadosObj(ClienteId, userId); if (filtrosSeleccionados != null) { foreach (FiltroFecha fl in filtrosSeleccionados.FiltrosFechas) { var ff = filtrosVM.FiltrosFechas.FirstOrDefault(f => f.Id == fl.Id); if (ff != null) { ff.TipoFechaSeleccionada = fl.TipoFechaSeleccionada; if (fl.DiaDesde != null) { ff.DiaDesde = fl.DiaDesde; } if (fl.DiaHasta != null) { ff.DiaHasta = fl.DiaHasta; } if (fl.MesDesde != null) { ff.MesDesde = fl.MesDesde; } if (fl.MesHasta != null) { ff.MesHasta = fl.MesHasta; } if (fl.SemanaDesde != null) { ff.SemanaDesde = fl.SemanaDesde; } if (fl.SemanaHasta != null) { ff.SemanaHasta = fl.SemanaHasta; } if (fl.TrimestreDesde != null) { ff.TrimestreDesde = fl.TrimestreDesde; } if (fl.TrimestreHasta != null) { ff.TrimestreHasta = fl.TrimestreHasta; } } } foreach (FiltroCheck fl in filtrosSeleccionados.FiltrosChecks) { var fc = filtrosVM.FiltrosChecks.FirstOrDefault(f => f.Id == fl.Id); if (fc != null) { foreach (ItemFiltro s in fl.Items) { var itm = fc.Items.FirstOrDefault(i => i.IdItem == s.IdItem); if (itm != null) { itm.Selected = true; } } } } } //Traigo los filtros bloqueados del usuario, si esta en la estructura de filtros generales lo marco como bloqueado if (IdModulo == 1 || IdModulo == 2) { filtrosVM.permitebloquearfiltros = true; Filtros filtrosBloqueados = GetFiltrosBloqueadosObj(tableroId); if (filtrosBloqueados != null) { filtrosVM.isLocked = true; foreach (FiltroCheck fl in filtrosBloqueados.FiltrosChecks) { var fc = filtrosVM.FiltrosChecks.FirstOrDefault(f => f.Id == fl.Id); if (fc != null) { foreach (ItemFiltro s in fl.Items) { var itm = fc.Items.FirstOrDefault(i => i.IdItem == s.IdItem); if (itm != null) { itm.Selected = true; itm.isLocked = true; } } } } } } return(filtrosVM); }