feat: Enhance booking functionality with invoice management and dashboard summary
- Added customerId to guest booking requests for better identification. - Implemented new endpoints for managing booking invoices and dashboard summaries. - Created BookingInvoice and BookingDashboardSummary DTOs to support new features. - Updated Booking and BookingInvoice models to include payment method and timestamps. - Enhanced BookingService to handle invoice creation upon payment confirmation. - Modified BookingRepository to support CRUD operations for BookingInvoice. - Updated TenantDbContext to include BookingInvoice DbSet and relevant configurations. - Improved error handling and validation for booking completion and payment processes.
This commit is contained in:
@@ -82,8 +82,32 @@ namespace Fitness_core_BE.Repos
|
||||
})
|
||||
.ToListAsync(ct);
|
||||
|
||||
// Paid facility bookings (guest/walk-in) -- a plain Booking read, not a
|
||||
// PaymentTransaction, since Booking has no invoice at all (see BookingInvoice, kept
|
||||
// deliberately separate from CustomerInvoice/PaymentTransaction's membership-only
|
||||
// wiring). PaidAt is the recognition date, not BookedAt/CheckedOutAt.
|
||||
var bookingPayments = await _context.Bookings
|
||||
.AsNoTracking()
|
||||
.Where(booking =>
|
||||
booking.FKClientId == clientId &&
|
||||
booking.PaymentStatus == "Paid" &&
|
||||
booking.PaidAt != null &&
|
||||
booking.PaidAt >= fromUtc &&
|
||||
booking.PaidAt < toUtc)
|
||||
.Select(booking => new LedgerEntryDto
|
||||
{
|
||||
EntryType = "Income",
|
||||
Category = "Facility Bookings",
|
||||
Description = booking.GuestName,
|
||||
Amount = booking.AmountCharged,
|
||||
EntryDate = booking.PaidAt!.Value,
|
||||
IsManual = false
|
||||
})
|
||||
.ToListAsync(ct);
|
||||
|
||||
memberPayments.AddRange(platformInvoices);
|
||||
memberPayments.AddRange(staffPayments);
|
||||
memberPayments.AddRange(bookingPayments);
|
||||
return memberPayments;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user