Exemple #1
0
        public static double CalculateTotalBalance(Guid reservationId)
        {
            double dblTotalBalance = 0;

            ReservationRepository reservationRepository = new ReservationRepository();
            var reservation = reservationRepository.GetReservationById(reservationId, LogInManager.LoggedInUserId).FirstOrDefault();

            ReservationChargeRepository reservationChargeRepository = new ReservationChargeRepository();

            if (reservation != null)
            {
                if (reservation.IsCheckIn == true)
                {
                    //Reservation Charges
                    var reservationCharges = reservationChargeRepository.GetReservationCharges(reservationId, null, LogInManager.LoggedInUserId);
                    if (reservationCharges != null && reservationCharges.Count > 0)
                    {
                        var totalReservationCharges = reservationCharges.Where(m => m.Amount.HasValue)
                                                      .Sum(m => (m.Amount.Value * (m.Qty.HasValue ? m.Qty.Value : 1)));

                        dblTotalBalance += totalReservationCharges;

                        dblTotalBalance = CurrencyManager.ConvertAmountToBaseCurrency(dblTotalBalance, LogInManager.CurrencyCode);
                    }
                }
                else
                {
                    double totalRoomRentCharge = 0;
                    //totalRoomRentCharge = CalculateRoomRentCharges(reservation.NoOfNight, (reservation.Rate.HasValue ? reservation.Rate.Value : 0), reservation.NoOfChildren, reservation.DiscountAmount, reservation.DiscountPercentage, (reservation.DiscountPercentage.HasValue ? true : false));

                    totalRoomRentCharge = CalculateReservationTotalPrice(reservation.Id);

                    dblTotalBalance = totalRoomRentCharge;

                    ////Package Price
                    //var packageDetails = reservationRepository.GetReservationPackageMapping(reservation.Id, null);
                    //if (packageDetails != null && packageDetails.Count > 0)
                    //{
                    //    var totalPackagePrice = packageDetails.Where(m => m.PackagePrice.HasValue).Sum(m => m.PackagePrice);

                    //    dblTotalBalance += (totalPackagePrice.HasValue) ? totalPackagePrice.Value : 0;
                    //}
                }
            }

            return(Math.Round(dblTotalBalance, 2));
        }