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

            if (repository.GetOccupancyByDate(DateTime.Parse(selected).AddDays(-1)) == null)
            {
                var yesterdayModel = repository.GetPredictionByDate(DateTime.Parse(selected).AddDays(-1));

                var totalOccupancy = yesterdayModel.SprOccupancy + yesterdayModel.StdOccupancy + yesterdayModel.FamOccupancy +
                                     yesterdayModel.SuiteOccupancy + yesterdayModel.DlxOccupancy;
                var totalRevenue = (yesterdayModel.SprRoomRate * yesterdayModel.SprOccupancy) +
                                   (yesterdayModel.StdRoomRate * yesterdayModel.StdOccupancy) +
                                   (yesterdayModel.FamRoomRate * yesterdayModel.FamOccupancy) +
                                   (yesterdayModel.SuiteRoomRate * yesterdayModel.SuiteOccupancy) +
                                   (yesterdayModel.DlxRoomRate * yesterdayModel.DlxOccupancy);

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

                yesterdayDetails.Add(new Tuple <string, float>("adr", adr));
                yesterdayDetails.Add(new Tuple <string, float>("revpar", revpar));
                yesterdayDetails.Add(new Tuple <string, float>("occ", occupancyRate));
            }
            else
            {
                var yesterdaySprRates   = GetAvgAmount(repository.GetLatestRoomRates(7, DateTime.Parse(selected).AddDays(-1)));
                var yesterdayStdRates   = GetAvgAmount(repository.GetLatestRoomRates(8, DateTime.Parse(selected).AddDays(-1)));
                var yesterdayFamRates   = GetAvgAmount(repository.GetLatestRoomRates(9, DateTime.Parse(selected).AddDays(-1)));
                var yesterdaySuiteRates = GetAvgAmount(repository.GetLatestRoomRates(10, DateTime.Parse(selected).AddDays(-1)));
                var yesterdayDlxRates   = GetAvgAmount(repository.GetLatestRoomRates(11, DateTime.Parse(selected).AddDays(-1)));

                var yesterdaySprOcc   = repository.GetLatestRoomTypeOccupancy(7, DateTime.Parse(selected).AddDays(-1));
                var yesterdayStdOcc   = repository.GetLatestRoomTypeOccupancy(8, DateTime.Parse(selected).AddDays(-1));
                var yesterdayFamOcc   = repository.GetLatestRoomTypeOccupancy(9, DateTime.Parse(selected).AddDays(-1));
                var yesterdaySuiteOcc = repository.GetLatestRoomTypeOccupancy(10, DateTime.Parse(selected).AddDays(-1));
                var yesterdayDlxOcc   = repository.GetLatestRoomTypeOccupancy(11, DateTime.Parse(selected).AddDays(-1));

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

                var totalRevenue = (yesterdaySprRates * yesterdaySprOcc.RoomOccupied) +
                                   (yesterdayStdRates * yesterdayStdOcc.RoomOccupied) +
                                   (yesterdayFamRates * yesterdayFamOcc.RoomOccupied) +
                                   (yesterdaySuiteRates * yesterdaySuiteOcc.RoomOccupied) +
                                   (yesterdayDlxRates * yesterdayDlxOcc.RoomOccupied);

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

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

            return(yesterdayDetails);
        }