@extends('crm.master') @section('title', 'Booking Sales') @php $tabBase = request()->except('report_type'); $dateRanges = [ 'all' => 'All', 'today' => 'Today', 'yesterday' => 'Yesterday', 'last_week' => 'Last week', 'last_7' => 'Last 7 days', 'last_month' => 'Last month', 'last_30' => 'Last 30 days', 'all_past' => 'All - past', 'tomorrow' => 'Tomorrow', 'this_week' => 'This week', 'this_month' => 'This month', 'next_7' => 'Next 7 days', 'next_30' => 'Next 30 days', 'all_upcoming' => 'All - upcoming', 'custom' => 'Custom', ]; @endphp @section('content')
Reports

Booking Sales

{{ $reportRows->count() }} rows

Clean reporting across bookings, customers, categories, and products.

New Booking
@include('crm.components.alerts')
@foreach([ 'day' => 'Day', 'booking' => 'Booking', 'booking_item' => 'Booking Product', 'customer' => 'Customer', 'category' => 'Category', 'item' => 'Products', ] as $key => $label) {{ $label }} @endforeach
@if($dateRange === 'custom')
@endif
@foreach([ ['label' => 'Bookings', 'value' => number_format($summary['bookings']), 'icon' => 'tabler-receipt-2'], ['label' => 'Quantity', 'value' => number_format($summary['quantity']), 'icon' => 'tabler-packages'], ['label' => 'Gross Sales', 'value' => '$' . number_format($summary['gross'], 2), 'icon' => 'tabler-cash'], ['label' => 'Net Sales', 'value' => '$' . number_format($summary['net'], 2), 'icon' => 'tabler-chart-bar'], ['label' => 'Taxes', 'value' => '$' . number_format($summary['taxes'], 2), 'icon' => 'tabler-receipt-tax'], ['label' => 'Total', 'value' => '$' . number_format($summary['total'], 2), 'icon' => 'tabler-wallet'], ] as $metric)
{{ $metric['label'] }}
{{ $metric['value'] }}
@endforeach
@switch($reportType) @case('day') Sales by Day @break @case('booking') Sales by Booking @break @case('booking_item') Sales by Booking Product @break @case('customer') Sales by Customer @break @case('category') Sales by Category @break @default Sales by Product @endswitch
Smaller type, softer separators, and clearer product-level sales scanning.
{{ $reportRows->count() }} visible
@if($reportType === 'day') @elseif($reportType === 'booking') @elseif($reportType === 'booking_item') @elseif($reportType === 'customer') @elseif($reportType === 'category') @else @endif @forelse($reportRows as $row) @if($reportType === 'day') @elseif($reportType === 'booking') @elseif($reportType === 'booking_item') @elseif($reportType === 'customer') @elseif($reportType === 'category') @else @endif @empty @endforelse
Date Qty Discounts Gross Sales Net Sales Taxes Total Bookings
Booking Code Status Date Customer Qty Discounts Gross Net Taxes Total Paid Balance Start End
Booking Code Status Product SKU Date Customer Qty Discounts Gross Net Taxes Total Start End
Customer Email Phone Qty Discounts Gross Net Taxes Total Paid Balance Bookings
Category Qty Discounts Gross Net Taxes Total Bookings
Product ↑↓ SKU ↑↓ Category ↑↓ Quantity ↑↓ Discounts ↑↓ Gross Sales ↑↓ Net Sales ↑↓ Taxes ↑↓ Total ↑↓ Bookings ↑↓
{{ $row->date->format('M j, Y') }} {{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} {{ number_format($row->booking_count) }}
{{ $row->booking_number }} {{ $row->status_label }} {{ $row->date->format('m/d/Y') }}
{{ $row->customer_name }}
{{ $row->customer_email }}
{{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} ${{ number_format($row->paid_total, 2) }} ${{ number_format($row->balance, 2) }} {{ $row->start_datetime->format('m/d/Y') }} {{ $row->end_datetime->format('m/d/Y') }}
{{ $row->booking_number }} {{ $row->status_label }} {{ $row->item_name }} {{ $row->sku ?: '-' }} {{ $row->date->format('m/d/Y') }} {{ $row->customer_name }} {{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} {{ $row->start_datetime->format('m/d/Y') }} {{ $row->end_datetime->format('m/d/Y') }}
{{ $row->customer_name }} {{ $row->customer_email }} {{ $row->customer_phone ?: '-' }} {{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} ${{ number_format($row->paid_total, 2) }} ${{ number_format($row->balance, 2) }} {{ number_format($row->booking_count) }}
{{ $row->category_name }} {{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} {{ number_format($row->booking_count) }}
{{ $row->item_name }}
Product sales summary
{{ $row->sku ?: '-' }} {{ $row->category_name ?: 'Uncategorized' }} {{ number_format($row->quantity) }} ${{ number_format($row->discounts, 2) }} ${{ number_format($row->gross_sales, 2) }} ${{ number_format($row->net_sales, 2) }} ${{ number_format($row->taxes, 2) }} ${{ number_format($row->total, 2) }} {{ number_format($row->booking_count) }}
No sales data found for the selected filters.
@endsection @section('head-extra') @endsection