Ejemplo n.º 1
0
        public ActionResult AdmissionsReport(AdmissionsVM AdmitVM)
        {
            var NewAdmit = new AdmissionsVM();
            int year     = DateTime.Now.Year;
            int month    = AdmitVM.SelectedMonth;
            //int day = DateTime.Now.Day;
            int day = 13;

            //Daily
            NewAdmit.DailyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Day == day &&
                                                       m.AdmissionsDate.Value.Month == DateTime.Now.Month &&
                                                       m.AdmissionsDate.Value.Year == year);

            //Weekly
            int weekno = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);

            NewAdmit.WeeklyTotal = db.ADMITTED_BY.ToList().Count
                                       (m => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear
                                           (m.AdmissionsDate.Value, CalendarWeekRule.FirstDay, DayOfWeek.Monday) == weekno);
            int WeekDay = (((int)DateTime.Today.DayOfWeek + 6) % 7) + 1;

            NewAdmit.WeeklyAvg = NewAdmit.WeeklyTotal / WeekDay;

            //Monthly
            NewAdmit.MonthlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Year == year);
            NewAdmit.MonthlyAvg   = NewAdmit.MonthlyTotal / day;

            //Yearly
            NewAdmit.YearlyTotal       = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year);
            NewAdmit.YearlyAvg         = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.DayOfYear;
            NewAdmit.YearlyAvgPerMonth = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.Month;

            for (int i = 1; i <= DateTime.Now.Month; i++)
            {
                int MonthCount = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year && m.AdmissionsDate.Value.Month == i);
                if (MonthCount > NewAdmit.YearlyAvgPerMonth)
                {
                    NewAdmit.SpikedMonths.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i));
                }
            }

            //Rainouts
            int count = 0;
            //Count Current Month
            int DayCount;

            //IF current month, go up to current day
            if (month == DateTime.Now.Month)
            {
                DayCount = day;
            }
            else
            {
                DayCount = DateTime.DaysInMonth(year, month);
            }

            for (int i = 1; i <= DayCount; i++)
            {
                int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month &&
                                                    m.AdmissionsDate.Value.Day == i &&
                                                    m.AdmissionsDate.Value.Year == year);
                if (DayCheck == 0)
                {
                    count++;
                }
            }

            NewAdmit.MonthlyRainouts = count;

            //Need to reset count, so as not to double count a month accidentally
            //Count Previous Months
            month = DateTime.Now.Month;
            count = 0;
            for (int i = 1; i < month; i++)
            {
                for (int j = 1; j <= DateTime.DaysInMonth(year, i); j++)
                {
                    int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == i &&
                                                        m.AdmissionsDate.Value.Day == j &&
                                                        m.AdmissionsDate.Value.Year == year);
                    if (DayCheck == 0)
                    {
                        count++;
                    }
                }
            }
            for (int i = 1; i <= day; i++)
            {
                int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month &&
                                                    m.AdmissionsDate.Value.Day == i &&
                                                    m.AdmissionsDate.Value.Year == year);
                if (DayCheck == 0)
                {
                    count++;
                }
            }
            NewAdmit.Rainouts = count;

            return(View(NewAdmit));
        }
Ejemplo n.º 2
0
        public ActionResult AdmissionsReport()
        {
            if (ApplicationSession.AccessLevel == "Manager")
            {
                var AdmitVM = new AdmissionsVM();

                //Create Dropdown list to chose what month it is?
                int year  = DateTime.Now.Year;
                int month = DateTime.Now.Month;
                //int day = DateTime.Now.Day;
                int day = 13;

                //Daily

                AdmitVM.DailyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Day == day &&
                                                          m.AdmissionsDate.Value.Month == month &&
                                                          m.AdmissionsDate.Value.Year == year);

                //Weekly
                int weekno = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
                AdmitVM.WeeklyTotal = db.ADMITTED_BY.ToList().Count
                                          (m => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear
                                              (m.AdmissionsDate.Value, CalendarWeekRule.FirstDay, DayOfWeek.Monday) == weekno);
                int WeekDay = (((int)DateTime.Today.DayOfWeek + 6) % 7) + 1;
                AdmitVM.WeeklyAvg = AdmitVM.WeeklyTotal / WeekDay;

                //Monthly
                AdmitVM.MonthlyTotal = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month && m.AdmissionsDate.Value.Year == year);
                AdmitVM.MonthlyAvg   = AdmitVM.MonthlyTotal / day;

                //Yearly
                AdmitVM.YearlyTotal       = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year);
                AdmitVM.YearlyAvg         = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.DayOfYear;
                AdmitVM.YearlyAvgPerMonth = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year) / DateTime.Today.Month;

                //If (spiked month)
                //AdmitVM.SpikedMonths.append(Month.tostring())
                for (int i = 1; i <= month; i++)
                {
                    int MonthCount = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Year == year && m.AdmissionsDate.Value.Month == i);
                    if (MonthCount > AdmitVM.YearlyAvgPerMonth)
                    {
                        AdmitVM.SpikedMonths.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i));
                    }
                }

                //Rainouts
                int count = 0;
                //Count Current Month
                for (int i = 1; i <= day; i++)
                {
                    int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == month &&
                                                        m.AdmissionsDate.Value.Day == i &&
                                                        m.AdmissionsDate.Value.Year == year);
                    if (DayCheck == 0)
                    {
                        count++;
                    }
                }
                AdmitVM.MonthlyRainouts = count;

                //Count Previous Months
                for (int i = 1; i < month; i++)
                {
                    for (int j = 1; j <= DateTime.DaysInMonth(year, i); j++)
                    {
                        int DayCheck = db.ADMITTED_BY.Count(m => m.AdmissionsDate.Value.Month == i &&
                                                            m.AdmissionsDate.Value.Day == j &&
                                                            m.AdmissionsDate.Value.Year == year);
                        if (DayCheck == 0)
                        {
                            count++;
                        }
                    }
                }
                AdmitVM.Rainouts = count;
                return(View(AdmitVM));
            }
            else
            {
                return(Redirect(ApplicationSession.RedirectToHomeURL));
            }
        }