diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..1c4abf2 Binary files /dev/null and b/.DS_Store differ diff --git a/app/Http/Controllers/FrontOffice/FrontOfficeController.php b/app/Http/Controllers/FrontOffice/FrontOfficeController.php new file mode 100644 index 0000000..27ecb86 --- /dev/null +++ b/app/Http/Controllers/FrontOffice/FrontOfficeController.php @@ -0,0 +1,163 @@ +all()); + $keyword = $request->q; + Log::info($keyword); + + if (!$keyword) { + return response()->json([ + 'status' => false, + 'message' => 'Input kosong' + ]); + } + + // $data = TransaksiParkir::where('no_pol', $keyword) + $data = DB::table('transaksi_parkir')->where('no_pol', $keyword) + ->select(DB::raw( + 'CAST(id AS TEXT) as id, no_pol, waktu_masuk, id_kendaraan, pic_body_masuk' + )) + // ->where('status', 1) + // ->orWhere('no_pol', $keyword) + ->orderByDesc('waktu_masuk') + ->first(); + + if (!empty($data->pic_body_masuk) && is_resource($data->pic_body_masuk)) { + $data->pic_body_masuk = base64_encode(stream_get_contents($data->pic_body_masuk)) ?? 'Not Image'; + } else { + $data->pic_body_masuk = 'No Image'; + } + // $pic_body_masuk = (string) $data->pic_body_masuk; + + // $data->pic_body_masuk_base64 = $data->pic_body_masuk + // ? 'data:image/jpeg;base64,' . base64_encode($pic_body_masuk ) + // : null; + + // Log::info($data); + + if (!$data) { + return response()->json([ + 'status' => false, + 'message' => 'Data tidak ditemukan' + ]); + } + + return response()->json([ + 'status' => true, + // 'data' => $data + 'data' => [ + 'id' => (string) $data->id, + 'no_pol' => $data->no_pol, + 'waktu_masuk' => $data->waktu_masuk, + 'vehicle_capt' => $data->pic_body_masuk + ] + ]); + } + + public function image($id) + { + $picture = TransaksiParkir::select('pic_body_masuk')->where('no_pol', $id) + ->where('status', 1) + ->orderByDesc('waktu_masuk') + ->first(); + + // return response($picture->pic_body_masuk) + // ->header('Content-Type', 'image/jpeg'); + + // ❌ kalau tidak ada data + if (!$picture || !$picture->pic_body_masuk) { + return response()->file(public_path('images/no-image.jpg')); + } + + return response($picture->pic_body_masuk) + ->header('Content-Type', 'image/jpeg') + ->header('Cache-Control', 'public, max-age=86400'); // cache 1 hari + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + Log::info('Method Store : ' . json_encode($request->all())); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + Log::info($request->all()); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } +} diff --git a/app/Http/Controllers/FrontOffice/FrontOfficeControllerController.php b/app/Http/Controllers/FrontOffice/FrontOfficeControllerController.php deleted file mode 100644 index 3b43af1..0000000 --- a/app/Http/Controllers/FrontOffice/FrontOfficeControllerController.php +++ /dev/null @@ -1,114 +0,0 @@ -q; - - if (!$keyword) { - return response()->json([ - 'status' => false, - 'message' => 'Input kosong' - ]); - } - - $data = TransaksiParkir::where('no_pol', $keyword) - ->orWhere('no_pol', $keyword) - ->first(); - - if (!$data) { - return response()->json([ - 'status' => false, - 'message' => 'Data tidak ditemukan' - ]); - } - - return response()->json([ - 'status' => true, - 'data' => $data - ]); - } - - /** - * Show the form for creating a new resource. - * - * @return \Illuminate\Http\Response - */ - public function create() - { - // - } - - /** - * Store a newly created resource in storage. - * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response - */ - public function store(Request $request) - { - // - } - - /** - * Display the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function show($id) - { - // - } - - /** - * Show the form for editing the specified resource. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function edit($id) - { - // - } - - /** - * Update the specified resource in storage. - * - * @param \Illuminate\Http\Request $request - * @param int $id - * @return \Illuminate\Http\Response - */ - public function update(Request $request, $id) - { - // - } - - /** - * Remove the specified resource from storage. - * - * @param int $id - * @return \Illuminate\Http\Response - */ - public function destroy($id) - { - // - } -} diff --git a/public/images/no-image.jpg b/public/images/no-image.jpg new file mode 100644 index 0000000..b45211e Binary files /dev/null and b/public/images/no-image.jpg differ diff --git a/resources/views/.DS_Store b/resources/views/.DS_Store index 34a6200..f3805e1 100644 Binary files a/resources/views/.DS_Store and b/resources/views/.DS_Store differ diff --git a/resources/views/apps/member/index.blade.php b/resources/views/apps/member/index.blade.php index 6bf38dd..9f688f7 100644 --- a/resources/views/apps/member/index.blade.php +++ b/resources/views/apps/member/index.blade.php @@ -53,7 +53,7 @@ class="img-fluid logo-img"> --}} Member masih aktif -

silahkan pilih produk di bawah ini :

+

silahkan pilih produk di bawah ini :

- -
- -
+ + + + + + + +
+
+
-
-
-
-

Detail Transaksi

-
- -
- - - + + +
+
+ +
+
+
+ +
Detail Transaksi
+ +
+ @csrf + {{-- @method('PUT') --}} + + +
+ +
+ + +
+ + +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ + +
+ +
+ +
+
+ + +
+ Pilih transaksi untuk melihat detail +
+
+ + +
+
+
+ + Preview Kendaraan + + + Tidak ada gambar + + +
+
+
+
+
+
    -
  • +
  • - +
    @@ -137,12 +226,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
    14
  • -
  • +
  • - +
    @@ -154,13 +242,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
    14
  • -
  • +
  • - +
    @@ -177,12 +263,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
      -
    • +
    • - +
      @@ -194,12 +279,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
      14
    • -
    • +
    • - +
      @@ -211,13 +295,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
      14
    • -
    • +
    • - +
      @@ -234,13 +316,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
        -
      • +
      • - +
        @@ -252,13 +332,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
        14
      • -
      • +
      • - +
        @@ -270,13 +348,11 @@ class="list-group-item d-flex justify-content-between align-items-start">
        14
      • -
      • +
      • - +
        @@ -309,31 +385,119 @@ class="list-group-item d-flex justify-content-between align-items-start"> -@endsection \ No newline at end of file +@endsection diff --git a/routes/web.php b/routes/web.php index 645ffe3..54b2bef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -17,7 +17,7 @@ use App\Http\Controllers\SetupController; use App\Http\Controllers\StikerController; use App\Http\Controllers\StreamerController; -use App\Http\Controllers\FrontOffice\FrontOfficeControllerController; +use App\Http\Controllers\FrontOffice\FrontOfficeController; use App\Http\Controllers\Tools\StikerExtendedController; use App\Http\Controllers\Tools\TransactionChangeController; use App\Http\Controllers\VerifyTransController; @@ -84,8 +84,9 @@ }); Route::prefix('/front-office')->group(function () { - Route::resource('check-in-out', FrontOfficeControllerController::class); - Route::get('/check-in-out/search', [FrontOfficeControllerController::class, 'search'])->name('check-in-out.search'); + Route::get('/check-in-out/search', [FrontOfficeController::class, 'search'])->name('check-in-out.search'); + Route::get('/check-in-out/image/{id}', [FrontOfficeController::class, 'image']); + Route::resource('check-in-out', FrontOfficeController::class); }); // Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');