Implement dynamic payment columns for Table 1
This commit is contained in:
@@ -18,36 +18,12 @@ class DailySalePaymentReportModuleController extends Controller
|
||||
{
|
||||
$report_date = $request->input('report_date', Carbon::today()->toDateString());
|
||||
|
||||
// Helper function (Closure) to calculate payment breakdown from a collection of payments
|
||||
$calculatePayments = function ($payments) {
|
||||
$breakdown = [
|
||||
'cash' => 0,
|
||||
'card1' => 0,
|
||||
'card2' => 0,
|
||||
'card3' => 0,
|
||||
'online_transfer' => 0,
|
||||
'link_pay' => 0
|
||||
];
|
||||
foreach ($payments as $payment) {
|
||||
$method = strtolower(trim($payment->paying_method));
|
||||
if ($method == 'cash') {
|
||||
$breakdown['cash'] += $payment->total_amount;
|
||||
} elseif ($method == 'card 1' || $method == 'card1') {
|
||||
$breakdown['card1'] += $payment->total_amount;
|
||||
} elseif ($method == 'card 2' || $method == 'card2') {
|
||||
$breakdown['card2'] += $payment->total_amount;
|
||||
} elseif ($method == 'card 3' || $method == 'card3') {
|
||||
$breakdown['card3'] += $payment->total_amount;
|
||||
} elseif (str_contains($method, 'online')) {
|
||||
$breakdown['online_transfer'] += $payment->total_amount;
|
||||
} elseif (str_contains($method, 'link')) {
|
||||
$breakdown['link_pay'] += $payment->total_amount;
|
||||
}
|
||||
}
|
||||
return $breakdown;
|
||||
};
|
||||
// Fetch dynamic payment options using DB facade since the model is missing in this branch
|
||||
$paymentOptions = DB::table('payment_options')->where('is_active', 1)
|
||||
->orderBy('id')
|
||||
->get(['id', 'name']);
|
||||
|
||||
|
||||
// --- TABLE 1: Daily Sales ---
|
||||
$sales = DB::table('sales')
|
||||
->leftJoin('users', 'sales.user_id', '=', 'users.id')
|
||||
->leftJoin('customers', 'sales.customer_id', '=', 'customers.id')
|
||||
@@ -68,25 +44,27 @@ class DailySalePaymentReportModuleController extends Controller
|
||||
$payments = DB::table('payments')
|
||||
->where('sale_id', $sale->id)
|
||||
->whereDate('created_at', $report_date)
|
||||
->select('paying_method', DB::raw('SUM(amount) as total_amount'))
|
||||
->groupBy('paying_method')
|
||||
->select('payment_option_id', DB::raw('SUM(amount) as total_amount'))
|
||||
->groupBy('payment_option_id')
|
||||
->get();
|
||||
|
||||
$breakdown = $calculatePayments($payments);
|
||||
$methodTotals = [];
|
||||
foreach ($payments as $payment) {
|
||||
$methodTotals[$payment->payment_option_id] = $payment->total_amount;
|
||||
}
|
||||
|
||||
$sales_data[] = (object) array_merge([
|
||||
$sales_data[] = (object) [
|
||||
'date' => Carbon::parse($sale->date)->format('Y-m-d'),
|
||||
'reference_no' => $sale->reference_no,
|
||||
'cashier' => $sale->cashier ?? 'N/A',
|
||||
'customer' => $sale->customer ?? 'N/A',
|
||||
'grand_total' => $sale->grand_total,
|
||||
'due_amount' => $sale->due_amount
|
||||
], $breakdown);
|
||||
'due_amount' => $sale->due_amount,
|
||||
'methods' => $methodTotals
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
return view('dailysalepaymentreportmodule::index', compact('sales_data', 'report_date'));
|
||||
return view('dailysalepaymentreportmodule::index', compact('sales_data', 'report_date', 'paymentOptions'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user