//public IQueryable<CateringReportViewModel> GetCateringReport(IQueryable<Booking> bookings) //{ // return bookings.Select(x => new CateringReportViewModel() // { // EventDate = (DateTime) x.startdate, // cId = x.Customer.c_Id, // Client =x.Customer.lastname + " ," + x.Customer.firstname + " " + x.Customer.middle, // Occasion = x.occasion, // Venue = x.venue, // noofPax = (int) x.noofperson, // PackageRate = (decimal) x.Package.p_amountPax, // Addons = x.BookingAddons.Count>1 ?"Various Add-ons" : x.BookingAddons.Select(t => t.Addondesc).FirstOrDefault(), // TotalAddons = x.BookingAddons.Any() ? x.BookingAddons.Select(t=>(decimal)t.AddonAmount).Sum() : 0, // AmountPaid = x.Payments.Any()?x.Payments.Select(t=>(decimal)t.amtPay).Sum():0, // PaymentMode = x.Payments.Any()?x.Payments.Select(t => t.pay_means).FirstOrDefault():"Credit" // }); //} public IEnumerable <CateringReportViewModel> GetCateringReport(IEnumerable <Booking> bookings) { return(bookings.Select(x => new CateringReportViewModel() { EventDate = (DateTime)x.startdate, cId = x.Customer.c_Id, Client = Utilities.getfullname(x.Customer.lastname, x.Customer.firstname, x.Customer.middle), Occasion = x.occasion, Venue = x.venue, noofPax = (int)x.noofperson, PackageRate = x.Package.p_type.Trim() != "vip"? (decimal)x.Package.p_amountPax - transactionDetails.getCateringdiscount((int)x.noofperson): (decimal)x.Package.p_amountPax, Addons = x.BookingAddons.Any() ? string.Join(", ", x.BookingAddons.Select(t => t.Addondesc)):String.Empty, AddonsTotal = x.BookingAddons.Any() ? x.BookingAddons.Select(t => Convert.ToDecimal(t.AddonAmount)).Sum() : 0, AmountPaid = x.Payments.Any() ? x.Payments.Select(t => Convert.ToDecimal(t.amtPay)).Sum() : 0, PaymentMode = x.Payments.Any()? x.Payments.Select(t => t.pay_means).FirstOrDefault():"---", Status = x.Payments.Any()?"pd":"unpd", iscancelled = (bool)x.is_cancelled }).Where(t => t.iscancelled == false)); }
//get totalPackageAmount public decimal Get_TotalAmountBook(int transId) { decimal totalAmount = 0; var _dbcontext = new PegasusEntities(); Booking b = new Booking(); List <BookingAddon> addonsList = new List <BookingAddon>(); try { decimal totalPackage_Amount = 0; decimal addons = 0;; b = _dbcontext.Bookings.ToList().FirstOrDefault(x => x.trn_Id == transId); if (b != null) { totalPackage_Amount = Convert.ToDecimal(b.Package.p_amountPax) * Convert.ToInt32(b.noofperson); } addonsList = _dbcontext.BookingAddons.Where(x => x.trn_Id == transId).ToList(); if (addonsList.Count > 0) { addons = Convert.ToDecimal(addonsList.Sum(x => x.AddonAmount)); } // get transaction discount totalAmount = totalPackage_Amount + addons; var discount = this.getBookingTransDiscount(transId, totalAmount); if (discount > 0) { totalAmount = totalAmount - discount; //totalAmount = (totalPackage_Amount + addons) - discount; } var hasLocationExtendedCharge = transdetails.Get_extendedAmountLoc(transId); if (hasLocationExtendedCharge > 0) { totalAmount = totalAmount + (hasLocationExtendedCharge * Convert.ToInt32(b.noofperson)); } var hasCateringdiscounted = transdetails.getCateringdiscount(Convert.ToInt32(b.noofperson)); if (hasCateringdiscounted > 0) { totalAmount = totalAmount - (hasCateringdiscounted * Convert.ToInt32(b.noofperson)); } //var belowminpax = transdetails.GetBelowMinPaxAmount(Convert.ToInt32(b.noofperson)); //if (belowminpax > 0) //{ // var belowminpaxAmt = belowminpax * Convert.ToInt32(b.noofperson); // totalAmount = totalAmount + belowminpaxAmt; //} } catch (Exception e) { Console.WriteLine(e); throw; } return(totalAmount); }