public bool IniciarSesionClick() { int miembroSecundarioId = registroMiembro.ObtenerId(); if (miembroSecundarioId > 0) { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> celulasPermitidas = manejadorDeCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId); Miembro miembroSecundario = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == miembroSecundarioId && o.Borrado == false select o).SingleOrDefault(); if (miembroSecundario != null && celulasPermitidas.Contains(miembroSecundario.CelulaId)) { Miembro miembroActual = ManejadorDeMiembros.ObtenerMiembroActual(); log.InfoFormat("El usuario {0} [{1}] iniciara sesion como {2} [{3}]", miembroActual.Email, miembroActual.MiembroId, miembroSecundario.Email, miembroSecundario.MiembroId); this.RestablecerCacheDeSesion(); ManejadorDeMiembros manejadorDeMiembros = new ManejadorDeMiembros(); manejadorDeMiembros.IniciarSesion(miembroSecundario.Email, string.Empty, true); return(true); } else { X.Msg.Alert(Generales.nickNameDeLaApp, "Miembro inexistente o no pertenece a la red").Show(); } } else { X.Msg.Alert(Generales.nickNameDeLaApp, "Es necesario establecer un miembro").Show(); } return(false); }
public static string ObtenerReporteGeneral(int celulaId) { if (celulaId > 0) { Stopwatch stopwatch = Stopwatch.StartNew(); ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> celulasInferioresrDirectas = manejadorDeCelulas.ObtenerRedInferiorDirecta(celulaId); List <Celula> celulasDirectas = new List <Celula>() { (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where o.CelulaId == celulaId select o).SingleOrDefault() }; celulasDirectas.AddRange((from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where celulasInferioresrDirectas.Contains(o.CelulaId) select o)); List <dynamic> resultadosAnuales = new List <dynamic>(); foreach (Celula celula in celulasDirectas.OrderBy(o => o.Descripcion)) { resultadosAnuales.Add(ObtenerResultadosAnualesParaGanar(celula)); } stopwatch.Stop(); log.Info("Segundos para generar el reporte: " + stopwatch.Elapsed.TotalSeconds); return(resultadosAnuales.ToJson()); } else { return((new { error = Resources.Literales.CelulaYFechaNecesarias }).ToJson()); } }
public void CargarControles() { ManejadorDeCelulas manejador = new ManejadorDeCelulas(); cboCelula.DataSource = manejador.ObtenerCelulasPermitidasPorMiembroComoCelulas(SesionActual.Instance.UsuarioId); cboCelula.DataBind(); }
private void cargarDatosGenerales(int celulaId) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); Celula celula = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where o.CelulaId == celulaId select o).SingleOrDefault(); registroId.Text = celula.CelulaId.ToString(); registroDescripcion.Text = celula.Descripcion; registroRed.Text = registroRed.Text = manejadorCelulas.ObtenerRedSuperior(celula, " > "); registroMunicipio.Text = celula.UbicacionMunicipio.Descripcion; registroColonia.Text = celula.Colonia; registroDireccion.Text = celula.Direccion; registroDia.Text = celula.DiaSemana.Descripcion; registroHora.Text = celula.HoraDia.Descripcion; X.Call("cargarMapaDesdeDireccionEnPanel", gridDireccion.ClientID, celula.UbicacionMunicipio.UbicacionEstado.UbicacionPais.Descripcion, celula.UbicacionMunicipio.UbicacionEstado.Descripcion, celula.UbicacionMunicipio.Descripcion, celula.Colonia, celula.Direccion); StoreLideres.Cargar(from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider where o.CelulaId == celulaId && o.Borrado == false && o.Miembro.Borrado == false orderby o.Miembro.Primer_Nombre, o.Miembro.Segundo_Nombre, o.Miembro.Apellido_Paterno, o.Miembro.Apellido_Materno, o.Miembro.Email select new { Id = o.MiembroId, Nombre = o.Miembro.Primer_Nombre + " " + o.Miembro.Segundo_Nombre + " " + o.Miembro.Apellido_Paterno + " " + o.Miembro.Apellido_Materno, Email = o.Miembro.Email, TelMovil = o.Miembro.Tel_Movil, TelCasa = o.Miembro.Tel_Casa, TelTrabajo = o.Miembro.Tel_Trabajo }); }
public void CargarControles() { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); StoreCelulas.Cargar(manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoCelulas(SesionActual.Instance.UsuarioId)); StoreEstadosCiviles.Cargar(EstadoCivil.Obtener()); StoreGeneros.Cargar(Genero.Obtener()); }
/// <summary> /// Esta funcion se encarga de generar un arbol de las celulas disponibles para dicho usuario, incluidas a las cuales es lider, lider del lider y la misma que el usuario mismo asiste /// </summary> /// <param name="usuarioId"></param> /// <param name="mostrarCheckboxes"></param> /// <returns></returns> public Ext.Net.TreeNode GenerarArbolDeCelulas(int usuarioId, ThreeStateBool mostrarCheckboxes, bool expandido) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); List <Celula> celulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoCelulas(usuarioId); TreeData.TreeDataTableDataTable dt = new TreeData.TreeDataTableDataTable(); //Agregamos la celula a la que el miembro asiste, aun y cuando sera de solo lectura; solamente si no existia ya en la lista de celulas permitidas (es decir, asiste y es lider a la vez) Miembro miembro = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == usuarioId select o).SingleOrDefault(); if (!(celulasPermitidas.Any(o => o.CelulaId == miembro.CelulaId))) { dt.AddTreeDataTableRow(miembro.CelulaId.ToString(), string.Empty, miembro.Celula.Descripcion, atributoDeSoloLectura); } string celulaId; string miembroCelulaId; string atributoExtra; foreach (Celula c in celulasPermitidas) { celulaId = c.CelulaId.ToString(); if (c.CelulaLider.Count > 0) { CelulaLider celulaLider = c.CelulaLider.FirstOrDefault(o => o.Borrado == false && o.Miembro.Borrado == false); if (celulaLider != null) { miembroCelulaId = celulaLider.Miembro.CelulaId.ToString(); miembroCelulaId = (celulaId.Equals(miembroCelulaId)) ? string.Empty : miembroCelulaId; //Evitamos un loop infinito al momento en que el miembro sea lider de la celula a la que asiste atributoExtra = (string.IsNullOrEmpty(miembroCelulaId)) ? atributoDeSoloLectura : string.Empty; dt.AddTreeDataTableRow(celulaId, miembroCelulaId, c.Descripcion, atributoExtra); } } } //Obtenemos las celulas sin "lideres" List <Celula> celulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas(); if (celulasSinLider.Count > 0) { int idNodoCelulasSinLideres = 9999999; dt.AddTreeDataTableRow(idNodoCelulasSinLideres.ToString(), miembro.CelulaId.ToString(), "Celulas sin Asignacion de Lider", atributoDeSoloLectura); foreach (Celula c in celulasSinLider) { dt.AddTreeDataTableRow(c.CelulaId.ToString(), idNodoCelulasSinLideres.ToString(), c.Descripcion, string.Empty); } } Ext.Net.TreeNode navegacion = new Ext.Net.TreeNode("Celulas"); navegacion.Expanded = expandido; if ((celulasPermitidas != null) && (celulasPermitidas.Count > 0)) { generarNodos(navegacion, TreeBuilder.GenerateTree(miembro.CelulaId.ToString(), dt), mostrarCheckboxes, expandido); //La celula inicial es la celula a la que el usuario asiste } return(navegacion); }
public void CargarControles() { ManejadorDeCelulas manejador = new ManejadorDeCelulas(); StoreCelulas.DataSource = manejador.ObtenerCelulasPermitidasPorMiembroComoCelulas(SesionActual.Instance.UsuarioId); StoreCelulas.DataBind(); DateTime now = DateTime.Now; DateTime primerDiaDelMesPasado = new DateTime(now.Year, now.Month, 1).AddMonths(-1); dtpFechaInicial.SelectedDate = primerDiaDelMesPasado; dtpFechaFinal.SelectedDate = now; }
public static string ObtenerBoletas(string sFechaInicial, string sFechaFinal) { DateTime fechaInicial; DateTime fechaFinal; if (DateTime.TryParse(sFechaInicial, out fechaInicial) == false || DateTime.TryParse(sFechaFinal, out fechaFinal) == false) { fechaInicial = DateTime.MinValue; fechaFinal = DateTime.MinValue; } if ((fechaInicial.Year > 1900 && fechaFinal.Year > 1900)) { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); // Pre-cargamos todas las celulas/miembros/redes para usarlos al momento de "modificar" el resultado a mostrar al usuario List <Celula> celulas = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where o.Borrado == false select o).ToList(); List <Miembro> miembros = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.Borrado == false select o).ToList(); Dictionary <Celula, List <int> > redes = manejadorDeCelulas.ObtenerRedes(); var query = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().ConsolidacionBoleta where o.Creacion >= fechaInicial && o.Creacion <= fechaFinal && o.Borrado == false select new { o.AsignadaACelulaId, o.AsignadaAMiembroId, o.BoletaEstatusId, o.Creacion.Year, o.Creacion.Month }); String sinAsignacion = "(Sin Asignación)"; // Executamos el query, y luego modificamos ciertos campos return(query.AsEnumerable().Select(o => new { Red = o.AsignadaACelulaId.HasValue ? redes.Where(p => p.Key.CelulaId == o.AsignadaACelulaId || p.Value.Contains(o.AsignadaACelulaId.Value) == true).Select(p => p.Key.Descripcion).SingleOrDefault() ?? sinAsignacion : sinAsignacion, Celula = o.AsignadaACelulaId.HasValue ? celulas.Where(p => p.CelulaId == o.AsignadaACelulaId).Select(p => p.Descripcion).SingleOrDefault() ?? sinAsignacion : sinAsignacion, Miembro = o.AsignadaAMiembroId.HasValue ? miembros.Where(p => p.MiembroId == o.AsignadaAMiembroId).Select(p => p.NombreCompleto).SingleOrDefault() ?? sinAsignacion : sinAsignacion, Estatus = ConsolidacionBoleta.Estatus.Lista().Where(x => x.Key == o.BoletaEstatusId).FirstOrDefault().Value.Split('-')[0].Trim(), SubEstatus = ConsolidacionBoleta.Estatus.Lista().Where(x => x.Key == o.BoletaEstatusId).FirstOrDefault().Value.Split('-')[1].Trim(), Año = o.Year, Mes = o.Month + " - " + CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(o.Month).ToUpper() }).ToList().ToJson()); } else { X.Msg.Alert(Generales.nickNameDeLaApp, "Es necesario seleccionar las fechas antes de continuar.").Show(); return(string.Empty); } }
public void BorrarCelulaPermanentementeClick() { int celulaSeleccionada; if (int.TryParse(cboCelula.SelectedItem.Value, out celulaSeleccionada)) { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); manejadorDeCelulas.BorrarCelulaPermanentemente(celulaSeleccionada); X.Msg.Alert(Generales.nickNameDeLaApp, "Celula borrarda permanentemente!").Show(); } else { X.Msg.Alert(Generales.nickNameDeLaApp, Resources.Literales.CelulaNecesaria).Show(); } }
public string CargarClick() { string rtn; int celulaSeleccionada; if (int.TryParse(cboCelula.SelectedItem.Value, out celulaSeleccionada)) { int usuarioId = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider where ((o.CelulaId == celulaSeleccionada) && (o.Borrado == false)) select o.MiembroId).FirstOrDefault(); ManejadorDeCelulas manejadorCelulasWeb = new ManejadorDeCelulas(); rtn = this.GenerarArbolDeCelulas(usuarioId, ThreeStateBool.Undefined, false).Nodes.ToJson(); } else { X.Msg.Alert(Generales.nickNameDeLaApp, Resources.Literales.CelulaYFechaNecesarias).Show(); rtn = string.Empty; } return(rtn); }
private void cargarDatosGenerales(Miembro miembro) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); registroId.Text = miembro.MiembroId.ToString(); registroNombre.Text = miembro.Primer_Nombre + " " + miembro.Segundo_Nombre + " " + miembro.Apellido_Paterno + " " + miembro.Apellido_Materno; registroRed.Text = manejadorCelulas.ObtenerRedSuperior(miembro.Celula, " > "); registroEmail.Text = miembro.Email; registroMunicipio.Text = miembro.UbicacionMunicipio.Descripcion; registroColonia.Text = miembro.Colonia; registroDireccion.Text = miembro.Direccion; registroEstadoCivil.Text = miembro.EstadoCivil.Descripcion; registroFechaDeNacimiento.Text = string.Format("{0} ({1} años)", miembro.Fecha_Nacimiento.GetValueOrDefault(DateTime.Today).ToShortDateString(), ((DateTime.Today - miembro.Fecha_Nacimiento.GetValueOrDefault(DateTime.Today)).Days / 365).ToString()); registroTelefonos.Text = string.Format("{0} | {1} | {2}", miembro.Tel_Casa, miembro.Tel_Movil, miembro.Tel_Trabajo); registroComentario.Text = miembro.Comentario; X.Call("cargarMapaDesdeDireccionEnPanel", gridDireccion.ClientID, miembro.UbicacionMunicipio.UbicacionEstado.UbicacionPais.Descripcion, miembro.UbicacionMunicipio.UbicacionEstado.Descripcion, miembro.UbicacionMunicipio.Descripcion, miembro.Colonia, miembro.Direccion); X.Call("cargarFoto", registroFoto.ClientID, miembro.MiembroId); }
void ICatalogo.Buscar() { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); List <int> idsDiasDeLaSemana = filtroDiaDeLaSemana.ObtenerIds(); List <int> idsHorasDelDia = filtroHoraDelDia.ObtenerIds(); List <int> idCategorias = filtroCategoria.ObtenerIds(); int idMunicipio = filtroMunicipio.ObtenerId(); List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId); List <int> idsCelulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas().Select(o => o.CelulaId).ToList <int>(); StoreResultados.Cargar(( from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where ((o.CelulaId == (filtroId.Number > 0 ? filtroId.Number : o.CelulaId)) && ((o.Descripcion.Contains(filtroDescripcion.Text)) || (o.Descripcion == null)) && (idsDiasDeLaSemana.Contains(o.DiaSemanaId) || (idsDiasDeLaSemana.Count == 0)) && (idsHorasDelDia.Contains(o.HoraDiaId) || (idsHorasDelDia.Count == 0)) && (idCategorias.Contains(o.CategoriaId) || (idCategorias.Count == 0)) && (o.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.UbicacionMunicipioId)) && ((o.Colonia.Contains(filtroColonia.Text)) || (o.Colonia == null)) && ((o.Direccion.Contains(filtroDireccion.Text)) || (o.Direccion == null)) && (o.Borrado == false) && //Registros NO borrados (idsCelulasPermitidas.Contains(o.CelulaId) || idsCelulasSinLider.Contains(o.CelulaId))) //Dentro de las celulas permitidas para el usuario actual... o aquellas celulas sin lider asignado (para poderlas BORRAR) orderby o.Descripcion select new { Id = o.CelulaId, Descripcion = o.Descripcion, DiaSemanaDesc = o.DiaSemana.Descripcion, HoraDiaDesc = o.HoraDia.Descripcion, Municipio = o.UbicacionMunicipio.Descripcion, Colonia = o.Colonia, Direccion = o.Direccion, Categoria = o.CelulaCategoria.Descripcion, Coordenadas = o.Coordenadas, RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty })); }
public void CargarControles() { ManejadorDeCelulas manejador = new ManejadorDeCelulas(); StoreCelulas.Cargar(manejador.ObtenerRedesPermitidasPorMiembro(SesionActual.Instance.UsuarioId)); }
protected void cmdBuscarConcepto_Click(object sender, DirectEventArgs e) { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); int usuarioId = SesionActual.Instance.UsuarioId; List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(usuarioId); List <int> idsCelulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoCelulas().Select(o => o.CelulaId).ToList <int>(); //Obtemenos todos los conceptos a buscar (separados por espacios) string[] conceptosABuscar = registroConceptoABuscar.Text.Trim().Split(' '); //Guarda los resultados obtenidos de las busquedas IQueryable <object> resultados = null; switch (tipoDeBusqueda) { case ManejadorDeBusquedas.TipoDeObjeto.Celula: { var busqueda = Celula.BuscarV1(conceptosABuscar, idsCelulasPermitidas.Union(idsCelulasSinLider).ToList <int>()); //Dentro de las celulas permitidas para el usuario actual... o aquellas celulas sin lider asignado (para poderlas ASGINAR) resultados = (( from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula.Where(busqueda) orderby o.Descripcion select new { Id = o.CelulaId, Descripcion = o.Descripcion, RowColor = idsCelulasSinLider.Contains(o.CelulaId) ? "red" : string.Empty })).AsExpandable(); break; } case ManejadorDeBusquedas.TipoDeObjeto.Miembro: { var busqueda = Miembro.BuscarV1(conceptosABuscar, idsCelulasPermitidas.ToList <int>()); //Dentro de las celulas permitidas para el usuario actual... o el mismo usuario actual resultados = (( from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro.Where(busqueda) orderby o.Primer_Nombre, o.Segundo_Nombre, o.Apellido_Paterno, o.Apellido_Materno select new { Id = o.MiembroId, Descripcion = o.Primer_Nombre + " " + o.Segundo_Nombre + " " + o.Apellido_Paterno + " " + o.Apellido_Materno + " (" + o.Email + ")" })).AsExpandable(); break; } } if (resultados != null) { int numeroDeResultadosMax = 75; //Es el numero maximo de resultados a regresar al cliente... int numeroDeResultados = resultados.Count(); if (numeroDeResultados > numeroDeResultadosMax) { X.Msg.Alert(Generales.nickNameDeLaApp, string.Format(Resources.Literales.LimiteDeResultadosExcedido, numeroDeResultados, numeroDeResultadosMax)).Show(); numeroDeResultados = numeroDeResultadosMax; } StoreObjetosEncontrados.Cargar(resultados.Take(numeroDeResultadosMax)); registroNumeroDeResultados.Text = string.Format("{0} Resultados", numeroDeResultados); } //Ponemos el foco el el grid... GridDeListadoDeObjetos.Focus(); }
public List <Core.Modelos.Retornos.CelulaProxima> ObtenerCelulasProximas(double latitud, double longitud) { manejadorDeCelulas = new ManejadorDeCelulas(); return(manejadorDeCelulas.ObtenerCelulasProximas(latitud, longitud, Convert.ToInt32(filtroKilometros.Number), filtroCategoria.ObtenerIds())); }
private static dynamic ObtenerResultadosAnualesParaGanar(Celula celula) { dynamic rtn = new ExpandoObject(); ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); List <int> red = new List <int>() { celula.CelulaId }; red.AddRange(manejadorDeCelulas.ObtenerRedInferior(celula.CelulaId)); rtn.id = celula.CelulaId; rtn.nombre = celula.Descripcion; rtn.resultadoAnual = new List <dynamic>(); DateTime fechaInicial = DateTime.Now.FirstMondayOfYear(); DateTime fechaFinal = fechaInicial.AddYears(1).AddDays(-1); List <Celula> totalCelulas = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Celula where red.Contains(o.CelulaId) && o.Creacion <= fechaFinal && o.Borrado == false select o).ToList(); List <CelulaMiembroAsistencia> totalAsistencias = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaMiembroAsistencia where red.Contains(o.CelulaId) && EntityFunctions.CreateDateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) > fechaInicial && EntityFunctions.CreateDateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) <= fechaFinal select o).ToList(); List <CelulaInvitadosAsistencia> totalInvitados = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().CelulaInvitadosAsistencia where red.Contains(o.CelulaId) && EntityFunctions.CreateDateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) > fechaInicial && EntityFunctions.CreateDateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) <= fechaFinal select o).ToList(); DateTime fecha = fechaInicial; while (fecha < DateTime.Now) { dynamic resultadoSemanal = new ExpandoObject(); DateTime fechaSiguiente = fecha.Date.AddDays(7); resultadoSemanal.semana = fecha.GetWeekNumber(); resultadoSemanal.activas = (from o in totalCelulas where o.Creacion <= fechaSiguiente select o).Count(); resultadoSemanal.realizadas = (from o in totalAsistencias where new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) > fecha && new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) <= fechaSiguiente select o.CelulaId).Distinct().Count(); resultadoSemanal.invitados = (from o in totalInvitados where new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) > fecha && new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) <= fechaSiguiente select(int?) o.NumeroDeInvitados).Sum() ?? 0; resultadoSemanal.asistencia = (from o in totalAsistencias where new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) > fecha && new DateTime(o.Anio, o.Mes, o.Dia, 0, 0, 0) <= fechaSiguiente select o).Count(); // Agregamos el resultado semanal al resultado anual rtn.resultadoAnual.Add(resultadoSemanal); // Una semana mas fecha = fecha.AddDays(7); } return(rtn); }
public ActionResult Index() { ManejadorDeCelulas manejadorDeCelulas = new ManejadorDeCelulas(); ManejadorDeAsistenciasDeCelula manejadorDeAsistencias = new ManejadorDeAsistenciasDeCelula(); List <RegistroBasico> celulas = manejadorDeCelulas.ObtenerCelulasPermitidasPorMiembro(SesionActual.Instance.UsuarioId); Celula celulaPrincipal = manejadorDeCelulas.ObtenerCelulaQueMiembroEsLider(SesionActual.Instance.UsuarioId); RegistroBasico celulaPreseleccionada = new RegistroBasico() { Id = celulaPrincipal.CelulaId, Descripcion = celulaPrincipal.Descripcion }; DateTime fechaPreseleccionada = manejadorDeAsistencias.ObtenerFechaDeSiguienteAsistencia(celulaPreseleccionada.Id); Core.Modelos.Retornos.AsistenciaDeCelulaPorMiembroSumarizada asistenciaPreseleccionada = manejadorDeAsistencias.ObtenerAsistencia(celulaPreseleccionada.Id, fechaPreseleccionada); List <RegistroBasico> dias = new List <RegistroBasico>(); for (int i = 1; i <= 31; i++) { string descripcion; try { DateTime d = new DateTime(fechaPreseleccionada.Year, fechaPreseleccionada.Month, i); descripcion = i.ToString().PadLeft(2, '0') + " - " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(CultureInfo.CurrentUICulture.DateTimeFormat.DayNames[(int)(new DateTime(fechaPreseleccionada.Year, fechaPreseleccionada.Month, i)).DayOfWeek]); } catch (Exception) { descripcion = i.ToString(); } RegistroBasico dia = new RegistroBasico(); dia.Id = i; dia.Descripcion = descripcion; dias.Add(dia); } List <RegistroBasico> meses = new List <RegistroBasico>(); for (int i = 1; i < 13; i++) { RegistroBasico mes = new RegistroBasico(); mes.Id = i; mes.Descripcion = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i - 1]); meses.Add(mes); } List <RegistroBasico> anios = new List <RegistroBasico>(); for (int i = 2011; i <= 2015; i++) { RegistroBasico anio = new RegistroBasico(); anio.Id = i; anio.Descripcion = i.ToString(); anios.Add(anio); } ViewBag.CelulasPermitidas = new SelectList(celulas, "Id", "Descripcion", celulaPreseleccionada.Id); ViewBag.Dias = new SelectList(dias, "Id", "Descripcion", fechaPreseleccionada.Day); ViewBag.Meses = new SelectList(meses, "Id", "Descripcion", fechaPreseleccionada.Month); ViewBag.Anios = new SelectList(anios, "Id", "Descripcion", fechaPreseleccionada.Year); ViewBag.NumeroDeInvitados = 0; ViewBag.Asistencia = this.RenderPartialView("_Asistencia", asistenciaPreseleccionada.Asistencias); return(View()); }
public void BuscarMiembros() { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); int usuarioId = SesionActual.Instance.UsuarioId; List <int> idsCelulas = filtroCelula.ObtenerIds(); List <int> idGeneros = filtroGenero.ObtenerIds(); List <int> idsEstadosCiviles = filtroEstadoCivil.ObtenerIds(); int idMunicipio = filtroMunicipio.ObtenerId(); List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(usuarioId); List <int> idsCelulasSinLider = manejadorCelulas.ObtenerCelulasSinLideresComoIds(); List <int> idsCelulasEliminadasConMiembros = manejadorCelulas.ObtenerCelulasEliminadasConMiembrosComoIds(); bool registrosBorrados = filtroBorrado.Checked; bool registrosSinCelula = filtroSinCelula.Checked; int? conyugeId = filtroConyuge.ObtenerId(true); //Guarda los resultados obtenidos de las busquedas IQueryable <object> resultados = null; switch (tipoDeMiembro) { case TipoDeMiembroABuscar.Miembro: { resultados = ( from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where ((o.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.MiembroId)) && ((o.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Primer_Nombre == null)) && ((o.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Segundo_Nombre == null)) && ((o.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Apellido_Paterno == null)) && ((o.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Apellido_Materno == null)) && ((o.Email.Contains(filtroEmail.Text)) || (o.Email == null)) && (idsCelulas.Contains(o.CelulaId) || (idsCelulas.Count == 0)) && (idGeneros.Contains(o.GeneroId) || (idGeneros.Count == 0)) && (idsEstadosCiviles.Contains(o.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) && (o.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.UbicacionMunicipioId)) && ((o.Colonia.Contains(filtroColonia.Text)) || (o.Colonia == null)) && ((o.Direccion.Contains(filtroDireccion.Text)) || (o.Direccion == null)) && (((o.Tel_Casa.Contains(filtroTel.Text)) || (o.Tel_Casa == null)) || ((o.Tel_Movil.Contains(filtroTel.Text)) || (o.Tel_Movil == null)) || ((o.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Tel_Trabajo == null))) && (o.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Fecha_Nacimiento)) && ((o.ConyugeId == conyugeId) || (conyugeId == null)) && (o.Borrado == registrosBorrados) && (((idsCelulasPermitidas.Contains(o.CelulaId)) && !registrosSinCelula) || //Dentro de las celulas permitidas para el usuario actual ((idsCelulasSinLider.Contains(o.CelulaId)) || (idsCelulasEliminadasConMiembros.Contains(o.CelulaId)) && registrosSinCelula) || //Dentro de los usuarios cuya celula no tiene lider ((mostrarUsuarioActual) && (o.MiembroId == usuarioId)))) //El mismo usuario actual... orderby o.Primer_Nombre ascending, o.Apellido_Paterno ascending select new { GUID = o.MiembroId, Id = o.MiembroId, PrimerNombre = o.Primer_Nombre, SegundoNombre = o.Segundo_Nombre, ApellidoPaterno = o.Apellido_Paterno, ApellidoMaterno = o.Apellido_Materno, Email = o.Email, Celula = (idsCelulasEliminadasConMiembros.Contains(o.CelulaId) ? string.Empty : o.Celula.Descripcion), EstadoCivil = o.EstadoCivil.Descripcion, Municipio = o.UbicacionMunicipio.Descripcion, Colonia = o.Colonia, TelCasa = o.Tel_Casa, TelMovil = o.Tel_Movil, TelTrabajo = o.Tel_Trabajo, Nacimiento = o.Fecha_Nacimiento, AsisteIglesia = o.AsisteIglesia, Genero = o.Genero.Descripcion, RowColor = (idsCelulasSinLider.Contains(o.CelulaId) || idsCelulasEliminadasConMiembros.Contains(o.CelulaId)) ? "red" : string.Empty }); break; } case TipoDeMiembroABuscar.ServidorCoordinador: { resultados = ( from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCoordinador where ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) && ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) && ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) && ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) && ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) && ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) && (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) && (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) && (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) && (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) && ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) && ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) && (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) || ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) || ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) && (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) && (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados (o.Borrado == false)) //Registros NO borrados orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending select new { GUID = o.Id, Id = o.Miembro.MiembroId, PrimerNombre = o.Miembro.Primer_Nombre, SegundoNombre = o.Miembro.Segundo_Nombre, ApellidoPaterno = o.Miembro.Apellido_Paterno, ApellidoMaterno = o.Miembro.Apellido_Materno, Email = o.Miembro.Email, Celula = o.Miembro.Celula.Descripcion, EstadoCivil = o.Miembro.EstadoCivil.Descripcion, Municipio = o.Miembro.UbicacionMunicipio.Descripcion, Colonia = o.Miembro.Colonia, TelCasa = o.Miembro.Tel_Casa, TelMovil = o.Miembro.Tel_Movil, TelTrabajo = o.Miembro.Tel_Trabajo, Nacimiento = o.Miembro.Fecha_Nacimiento, AsisteIglesia = o.Miembro.AsisteIglesia, Genero = o.Miembro.Genero.Descripcion }); break; } case TipoDeMiembroABuscar.ServidorCapitan: { resultados = ( from o in SesionActual.Instance.getContexto <IglesiaEntities>().ServidorCapitan where ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) && ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) && ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) && ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) && ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) && ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) && (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) && (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) && (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) && (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) && ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) && ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) && (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) || ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) || ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) && (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) && (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados (o.Borrado == false)) //Registros NO borrados orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending select new { GUID = o.Id, Id = o.Miembro.MiembroId, PrimerNombre = o.Miembro.Primer_Nombre, SegundoNombre = o.Miembro.Segundo_Nombre, ApellidoPaterno = o.Miembro.Apellido_Paterno, ApellidoMaterno = o.Miembro.Apellido_Materno, Email = o.Miembro.Email, Celula = o.Miembro.Celula.Descripcion, EstadoCivil = o.Miembro.EstadoCivil.Descripcion, Municipio = o.Miembro.UbicacionMunicipio.Descripcion, Colonia = o.Miembro.Colonia, TelCasa = o.Miembro.Tel_Casa, TelMovil = o.Miembro.Tel_Movil, TelTrabajo = o.Miembro.Tel_Trabajo, Nacimiento = o.Miembro.Fecha_Nacimiento, AsisteIglesia = o.Miembro.AsisteIglesia, Genero = o.Miembro.Genero.Descripcion }); break; } case TipoDeMiembroABuscar.AlabanzaMiembro: { resultados = ( from o in SesionActual.Instance.getContexto <IglesiaEntities>().AlabanzaMiembro where ((o.Miembro.MiembroId == (filtroId.Number > 0 ? filtroId.Number : o.Miembro.MiembroId)) && ((o.Miembro.Primer_Nombre.Contains(filtroPrimerNombre.Text)) || (o.Miembro.Primer_Nombre == null)) && ((o.Miembro.Segundo_Nombre.Contains(filtroSegundoNombre.Text)) || (o.Miembro.Segundo_Nombre == null)) && ((o.Miembro.Apellido_Paterno.Contains(filtroApellidoPaterno.Text)) || (o.Miembro.Apellido_Paterno == null)) && ((o.Miembro.Apellido_Materno.Contains(filtroApellidoMaterno.Text)) || (o.Miembro.Apellido_Materno == null)) && ((o.Miembro.Email.Contains(filtroEmail.Text)) || (o.Miembro.Email == null)) && (idsCelulas.Contains(o.Miembro.CelulaId) || (idsCelulas.Count == 0)) && (idGeneros.Contains(o.Miembro.GeneroId) || (idGeneros.Count == 0)) && (idsEstadosCiviles.Contains(o.Miembro.EstadoCivilId) || (idsEstadosCiviles.Count == 0)) && (o.Miembro.UbicacionMunicipioId == (idMunicipio > 0 ? idMunicipio : o.Miembro.UbicacionMunicipioId)) && ((o.Miembro.Colonia.Contains(filtroColonia.Text)) || (o.Miembro.Colonia == null)) && ((o.Miembro.Direccion.Contains(filtroDireccion.Text)) || (o.Miembro.Direccion == null)) && (((o.Miembro.Tel_Casa.Contains(filtroTel.Text)) || (o.Miembro.Tel_Casa == null)) || ((o.Miembro.Tel_Movil.Contains(filtroTel.Text)) || (o.Miembro.Tel_Movil == null)) || ((o.Miembro.Tel_Trabajo.Contains(filtroTel.Text)) || (o.Miembro.Tel_Trabajo == null))) && (o.Miembro.Fecha_Nacimiento == (filtroFechaDeNacimiento.SelectedDate > DateTime.MinValue ? filtroFechaDeNacimiento.SelectedDate : o.Miembro.Fecha_Nacimiento)) && (o.Miembro.Borrado == registrosBorrados) && //Registros NO borrados (o.Borrado == false)) //Registros NO borrados orderby o.Miembro.Primer_Nombre ascending, o.Miembro.Apellido_Paterno ascending select new { GUID = o.Id, Id = o.Miembro.MiembroId, PrimerNombre = o.Miembro.Primer_Nombre, SegundoNombre = o.Miembro.Segundo_Nombre, ApellidoPaterno = o.Miembro.Apellido_Paterno, ApellidoMaterno = o.Miembro.Apellido_Materno, Email = o.Miembro.Email, Celula = o.Miembro.Celula.Descripcion, EstadoCivil = o.Miembro.EstadoCivil.Descripcion, Municipio = o.Miembro.UbicacionMunicipio.Descripcion, Colonia = o.Miembro.Colonia, TelCasa = o.Miembro.Tel_Casa, TelMovil = o.Miembro.Tel_Movil, TelTrabajo = o.Miembro.Tel_Trabajo, Nacimiento = o.Miembro.Fecha_Nacimiento, AsisteIglesia = o.Miembro.AsisteIglesia, Genero = o.Miembro.Genero.Descripcion }); break; } } if (resultados != null) { //int numeroDeResultadosMax = 75; //Es el numero maximo de resultados a regresar al cliente... //int numeroDeResultados = resultados.Count(); //if (numeroDeResultados > numeroDeResultadosMax) { X.Msg.Alert(Generales.nickNameDeLaApp, string.Format(Resources.Literales.LimiteDeResultadosExcedido, numeroDeResultados, numeroDeResultadosMax)).Show(); } //StoreResultados.Cargar(resultados.Take(numeroDeResultadosMax)); StoreResultados.Cargar(resultados); } }
private void mostrarAnunciosYAlertas() { ManejadorDeCelulas manejadorCelulas = new ManejadorDeCelulas(); int miembroId = SesionActual.Instance.UsuarioId; List <int> idsCelulasPermitidas = manejadorCelulas.ObtenerCelulasPermitidasPorMiembroComoIds(SesionActual.Instance.UsuarioId); DateTime fechaInicioDeSemana = DateTime.Now.GetFirstDateOfWeek(); DateTime fechaFinDeSemana = DateTime.Now.GetLastDateOfWeek(); IglesiaEntities contexto = SesionActual.Instance.getContexto <IglesiaEntities>(); // Obtenemos las boletas de consolidacion sin reportes en esta semana int numDeBoletasSinReporteSemanal = (from o in contexto.ConsolidacionBoleta where o.Borrado == false && o.BoletaEstatusId > 100 && o.AsignadaACelulaId != null && idsCelulasPermitidas.Contains(o.AsignadaACelulaId.Value) && !contexto.ConsolidacionBoletaReporte.Any(t => t.Borrado == false && t.ConsolidacionBoletaId == o.Id && t.Creacion >= fechaInicioDeSemana && t.Creacion <= fechaFinDeSemana) select o).Count(); if (numDeBoletasSinReporteSemanal > 0) { generarAlerta(string.Format("Tienes {0} boleta(s) de consolidación sin reportar esta semana!", numDeBoletasSinReporteSemanal)); } // Obtenemos las celulas directas que no tienen asistencia registrada esta semana int numDeCelulasSinAsistenciaSemanal = (from o in contexto.Celula where o.Borrado == false && contexto.CelulaLider.Any(t => t.Borrado == false && t.CelulaId == o.CelulaId && t.MiembroId == miembroId ) && !contexto.CelulaMiembroAsistencia.Any(t => t.CelulaId == o.CelulaId && t.Dia >= fechaInicioDeSemana.Day && t.Mes >= fechaInicioDeSemana.Month && t.Anio >= fechaInicioDeSemana.Year && t.Dia <= fechaFinDeSemana.Day && t.Mes <= fechaFinDeSemana.Month && t.Anio <= fechaFinDeSemana.Year ) && !contexto.CelulaCancelacionAsistencia.Any(t => t.CelulaId == o.CelulaId && t.Dia >= fechaInicioDeSemana.Day && t.Mes >= fechaInicioDeSemana.Month && t.Anio >= fechaInicioDeSemana.Year && t.Dia <= fechaFinDeSemana.Day && t.Mes <= fechaFinDeSemana.Month && t.Anio <= fechaFinDeSemana.Year ) select o).Count(); if (numDeCelulasSinAsistenciaSemanal > 0) { generarAlerta("Esta semana no has registrado asistencia en todas tus células!"); } }