Beispiel #1
0
        private List <Tuple <string, float> > GetPreviousMonthDetails(string selected)
        {
            var prevMonthDetails = new List <Tuple <string, float> >();

            var prevMonthSprRates   = GetAvgAmount(repository.GetLatestRoomRates(7, DateTime.Parse(selected).AddMonths(-1)));
            var prevMonthStdRates   = GetAvgAmount(repository.GetLatestRoomRates(8, DateTime.Parse(selected).AddMonths(-1)));
            var prevMonthFamRates   = GetAvgAmount(repository.GetLatestRoomRates(9, DateTime.Parse(selected).AddMonths(-1)));
            var prevMonthSuiteRates = GetAvgAmount(repository.GetLatestRoomRates(10, DateTime.Parse(selected).AddMonths(-1)));
            var prevMonthDlxRates   = GetAvgAmount(repository.GetLatestRoomRates(11, DateTime.Parse(selected).AddMonths(-1)));

            var prevMonthSprOcc   = repository.GetLatestRoomTypeOccupancy(7, DateTime.Parse(selected).AddMonths(-1));
            var prevMonthStdOcc   = repository.GetLatestRoomTypeOccupancy(8, DateTime.Parse(selected).AddMonths(-1));
            var prevMonthFamOcc   = repository.GetLatestRoomTypeOccupancy(9, DateTime.Parse(selected).AddMonths(-1));
            var prevMonthSuiteOcc = repository.GetLatestRoomTypeOccupancy(10, DateTime.Parse(selected).AddMonths(-1));
            var prevMonthDlxOcc   = repository.GetLatestRoomTypeOccupancy(11, DateTime.Parse(selected).AddMonths(-1));

            // Calculate ADR/RevPar/Occupancy rate
            var totalOccupancy = repository.GetOccupancyByDate(DateTime.Parse(selected).AddMonths(-1)).RoomOccupied;

            var totalRevenue = (prevMonthSprRates * prevMonthSprOcc.RoomOccupied) +
                               (prevMonthStdRates * prevMonthStdOcc.RoomOccupied) +
                               (prevMonthFamRates * prevMonthFamOcc.RoomOccupied) +
                               (prevMonthSuiteRates * prevMonthSuiteOcc.RoomOccupied) +
                               (prevMonthDlxRates * prevMonthDlxOcc.RoomOccupied);

            var adr           = totalRevenue / totalOccupancy;
            var revpar        = totalRevenue / 71;
            var occupancyRate = totalOccupancy * 100 / 71;

            prevMonthDetails.Add(new Tuple <string, float>("adr", adr));
            prevMonthDetails.Add(new Tuple <string, float>("revpar", revpar));
            prevMonthDetails.Add(new Tuple <string, float>("occ", occupancyRate));

            return(prevMonthDetails);
        }