ReportTransactionController.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Exports\TransactionExport;
  4. use App\Models\Outlet;
  5. use App\Models\Transaction;
  6. use Carbon\Carbon;
  7. use Maatwebsite\Excel\Facades\Excel;
  8. class ReportTransactionController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Inertia\Response
  14. */
  15. public function index()
  16. {
  17. return inertia('transaction/Report', [
  18. 'filters' => request()->all('startDate', 'endDate', 'outlet'),
  19. 'transactions' => Transaction::filter(request()->only('startDate', 'endDate', 'outlet'))
  20. ->latest()
  21. ->paginate(10)
  22. ->withQueryString()
  23. ->through(fn($transaction) => [
  24. 'startDate' => Carbon::parse($transaction->getRawOriginal('created_at'))->translatedFormat('Y-m-d'),
  25. 'createdAt' => $transaction->created_at,
  26. 'price' => $transaction->totalPriceAsFullString(),
  27. ])
  28. ,
  29. 'outlets' => Outlet::all()
  30. ->transform(fn($outlet) => [
  31. 'label' => $outlet->name,
  32. 'value' => $outlet->id,
  33. ]),
  34. ]);
  35. }
  36. /**
  37. * Export to excel
  38. */
  39. public function exportExcel()
  40. {
  41. return Excel::download(new TransactionExport(request()), 'report-transaction.xls');
  42. }
  43. }