startDate ?? Carbon::now()->startOfMonth()->toDateString(); $endDate = $request->endDate ?? Carbon::now()->endOfMonth()->toDateString(); // Ambil data gaji kurir berdasarkan order dalam periode tertentu $courierSalaries = User::whereHas('ordersAsKurir', function ($query) use ($startDate, $endDate) { $query->whereBetween('created_at', [$startDate, $endDate]); })->with(['ordersAsKurir' => function ($query) use ($startDate, $endDate) { $query->whereBetween('created_at', [$startDate, $endDate]); }])->get()->map(function ($kurir) { $totalOrders = $kurir->ordersAsKurir->count(); return (object) [ 'courier_id' => $kurir->id, 'courier_name' => $kurir->name, 'total_orders' => $totalOrders, 'salary_per_order' => 5000, // Pastikan field ini ada di database 'total_salary' => $totalOrders * 5000, 'last_order_date' => $kurir->ordersAsKurir->max('created_at') ?? '-', ]; }); // Hitung total gaji semua kurir $totalSalary = $courierSalaries->sum('total_salary'); $query = Order::whereNotNull('kurir_id'); if ($startDate && $endDate) { $query->whereBetween('created_at', [$startDate, $endDate]); } else { // Default: bulan ini $query->whereMonth('created_at', now()->month) ->whereYear('created_at', now()->year); } $totalGajiKurir = $query->count() * 5000; return view('salary.index', compact('courierSalaries', 'totalSalary', 'startDate', 'endDate', 'totalGajiKurir')); } public function printPDF() { $kurirs = User::where('role', 'kurir')->get(); // Ambil kurir dari tabel users $pdf = Pdf::loadView('salary.print', compact('kurirs')); return $pdf->download('gaji_kurir.pdf'); } }