Example #1
0
        public void AgregarAsistencia(int celulaId, string descripcion, DateTime fechaInicial, DateTime fechaFinal, int asistencias, int cancelaciones, int faltas, int gente, int total)
        {
            #region Establecemos las fecha inicial/final global
            if (fechaInicial < this.FechaInicial)
            {
                this.FechaInicial = fechaInicial;
            }

            if (fechaFinal > this.FechaFinal)
            {
                this.FechaFinal = fechaFinal;
            }
            #endregion

            #region Agregamos las Asistencias por Semana

            AsistenciaDeCelula asistenciaDeCelula = this.AsistenciasPorSemana.Where(o => o.CelulaId == celulaId).SingleOrDefault();

            if (asistenciaDeCelula == null)
            {
                asistenciaDeCelula             = new AsistenciaDeCelula();
                asistenciaDeCelula.CelulaId    = celulaId;
                asistenciaDeCelula.Descripcion = descripcion;
                this.AsistenciasPorSemana.Add(asistenciaDeCelula);
            }

            Asistencia asistencia = new Asistencia();
            asistencia.Asistencias   = asistencias;
            asistencia.Cancelaciones = cancelaciones;
            asistencia.Faltas        = faltas;
            asistencia.Gente         = gente;
            asistencia.Total         = total;
            asistenciaDeCelula.Asistencias.Add(asistencia);

            Fecha fecha = this.Fechas.Where(o => o.FechaInicial == fechaInicial && o.FechaFinal == fechaFinal).SingleOrDefault();
            if (fecha == null)
            {
                fecha = new Fecha();
                fecha.FechaInicial = fechaInicial;
                fecha.FechaFinal   = fechaFinal;
                this.Fechas.Add(fecha);
            }

            #endregion
        }
Example #2
0
        private List <AsistenciaDeCelula> obtenerAsistenciasTotales()
        {
            //Si nunca se ha calculado las asistencias totales o si ya se habia calculado pero ya es OTRA cantidad de de asistencias por semana... se recalcula
            if (asistenciasTotales == null || (asistenciasTotales.Count != this.AsistenciasPorSemana.Count))
            {
                asistenciasTotales = new List <AsistenciaDeCelula>();

                foreach (AsistenciaDeCelula asistenciaPorSemana in this.AsistenciasPorSemana)
                {
                    AsistenciaDeCelula asistenciaDeCelulaTotal = new AsistenciaDeCelula();
                    asistenciaDeCelulaTotal.CelulaId    = asistenciaPorSemana.CelulaId;
                    asistenciaDeCelulaTotal.Descripcion = asistenciaPorSemana.Descripcion;

                    Asistencia asistenciaTotal = new Asistencia();
                    foreach (Asistencia asistencia in asistenciaPorSemana.Asistencias)
                    {
                        asistenciaTotal.Asistencias   += asistencia.Asistencias;
                        asistenciaTotal.Cancelaciones += asistencia.Cancelaciones;
                        asistenciaTotal.Faltas        += asistencia.Faltas;
                        asistenciaTotal.Gente         += asistencia.Gente;
                        asistenciaTotal.Total         += asistencia.Total;
                    }

                    //Calculamos los promedios...
                    asistenciaTotal.Asistencias   = asistenciaTotal.Asistencias / asistenciaPorSemana.Asistencias.Count;
                    asistenciaTotal.Cancelaciones = asistenciaTotal.Cancelaciones / asistenciaPorSemana.Asistencias.Count;
                    asistenciaTotal.Faltas        = asistenciaTotal.Faltas / asistenciaPorSemana.Asistencias.Count;
                    asistenciaTotal.Gente         = asistenciaTotal.Gente / asistenciaPorSemana.Asistencias.Count;

                    asistenciaDeCelulaTotal.Asistencias.Add(asistenciaTotal);
                    asistenciasTotales.Add(asistenciaDeCelulaTotal);
                }
            }



            return(asistenciasTotales);
        }