middleware(ApiKetAuthenticate::class); } function listPenjemputan(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } // Tambahkan where pickup.status_penjemputan = 3 atau 4 $pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') ->where('pickup.id_pegawai', '=', $user->id_user) ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', '3') ->orWhere('pickup.status_penjemputan', '4'); }) ->get()->toArray(); $result = User::leftJoin('pickup', 'user.id_user', '=', 'pickup.id_customer') ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', 3) ->orWhere('pickup.status_penjemputan', 4); }) ->get() ->map(function ($item) { $pickup = Detail::where('kode_detail', '=', $item->kode_pu)->get(); return [ 'user' => $item->toArray(), 'pickup' => $pickup->toArray(), ]; }); return $this->sendMassage($result, 200, true); } function listKonfirmasiCustomer(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } // Tambahkan where pickup.status_penjemputan = 4 atau 5 // $pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') // ->where('pickup.id_pegawai', '=', $user->id_user) // ->whereIn('pickup.status_penjemputan', [4, 5]) // ->get(); // $cekPegawaiNotFree = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') // ->where('pickup.id_customer', '=', $user->id_user) // // ->where('user.id_role', 1) // ->where(function ($query) { // $query->orWhere('pickup.status_penjemputan', 5) // ->orWhere('pickup.status_penjemputan', 6); // }) // ->get() // // ->pluck('id_user') // ->toArray(); $result = User::leftJoin('pickup', 'user.id_user', '=', 'pickup.id_customer') ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', 5) ->orWhere('pickup.status_penjemputan', 6); }) ->get() ->map(function ($item) { $pickup = Detail::where('kode_detail', '=', $item->kode_pu)->get(); return [ 'user' => $item->toArray(), 'pickup' => $pickup->toArray(), ]; }); return $this->sendMassage($result, 200, true); } function listNegosiasi(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } // Tambahkan where pickup.status_penjemputan = 2 // DB::raw('DATE_FORMAT(detail_transaksi.created_at, "%Y-%m-%d %H:%i:%s") as tanggal_transaksi'), //masukkan formula di atas ke code di bawah // $pickup = Pickup::with('checkboxOptions')->join('user', 'user.id_user', '=', 'pickup.id_customer') // ->where('pickup.id_pegawai', '=', $user->id_user) // ->where('pickup.status_penjemputan', 1) // ->get(); $pickups = Pickup::with(['checkboxOptions', 'customer']) ->where('pickup.id_pegawai', $user->id_user) ->where('pickup.status_penjemputan', 1) ->get(); $result = $pickups->map(function ($pickup) { return [ "kode_pu" => $pickup->kode_pu, "id_customer" => $pickup->id_customer, "id_pegawai" => $pickup->id_pegawai, "status_penjemputan" => $pickup->status_penjemputan, "status" => $pickup->status, "bukti_pengiriman" => $pickup->bukti_pengiriman, "image_path" => $pickup->image_path, "image_bukti" => $pickup->image_bukti, "metode_pembayaran" => $pickup->metode_pembayaran, "keterangan" => $pickup->keterangan, "merk_kendaraan" => $pickup->merk_kendaraan, "plat_nomor" => $pickup->plat_nomor, "biaya" => $pickup->biaya, "penambahan_biaya" => $pickup->penambahan_biaya, "detail_biaya" => $pickup->detail_biaya, "created_at" => Carbon::parse($pickup->created_at)->format('Y-m-d H:i'), "updated_at" => Carbon::parse($pickup->updated_at)->format('Y-m-d H:i'), "id_user" => $pickup->user->id_user, "nama" => $pickup->user->nama, "no_telepon" => $pickup->user->no_telepon, "token" => $pickup->user->token, "alamat" => $pickup->user->alamat, "longitude" => $pickup->user->longitude, "latitude" => $pickup->user->latitude, "email" => $pickup->user->email, "password" => $pickup->user->password, "id_role" => $pickup->user->id_role, "foto" => $pickup->user->foto, "checkbox_options" => $pickup->checkboxOptions->map(function ($option) { return [ "id" => $option->id, "name" => $option->name, "price" => $option->price, "handling_fee" => $option->handling_fee, "selected" => $option->selected, "kode_pu" => $option->kode_pu, "created_at" => Carbon::parse($option->created_at)->format('Y-m-d H:i'), "updated_at" => Carbon::parse($option->updated_at)->format('Y-m-d H:i'), ]; }), ]; }); return $this->sendMassage($result, 200, true); } function listProses(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } // Tambahkan where pickup.status_penjemputan = 3 atau 4 $pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') ->where('pickup.id_pegawai', '=', $user->id_user) ->whereIn('pickup.status_penjemputan', [3, 4]) ->get(); $pickups = Pickup::with(['checkboxOptions', 'customer']) ->where('pickup.id_pegawai', $user->id_user) // ->where('user.id_role', 1) ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', 3) ->orWhere('pickup.status_penjemputan', 4); }) ->get(); // ->pluck('id_user') // ->toArray(); $result = $pickups->map(function ($pickup) { return [ "kode_pu" => $pickup->kode_pu, "id_customer" => $pickup->id_customer, "id_pegawai" => $pickup->id_pegawai, "status_penjemputan" => $pickup->status_penjemputan, "status" => $pickup->status, "bukti_pengiriman" => $pickup->bukti_pengiriman, "image_path" => $pickup->image_path, "image_bukti" => $pickup->image_bukti, "metode_pembayaran" => $pickup->metode_pembayaran, "keterangan" => $pickup->keterangan, "merk_kendaraan" => $pickup->merk_kendaraan, "plat_nomor" => $pickup->plat_nomor, "biaya" => $pickup->biaya, "penambahan_biaya" => $pickup->penambahan_biaya, "detail_biaya" => $pickup->detail_biaya, "created_at" => Carbon::parse($pickup->created_at)->format('Y-m-d H:i'), "updated_at" => Carbon::parse($pickup->updated_at)->format('Y-m-d H:i'), "id_user" => $pickup->user->id_user, "nama" => $pickup->user->nama, "no_telepon" => $pickup->user->no_telepon, "token" => $pickup->user->token, "alamat" => $pickup->user->alamat, "longitude" => $pickup->user->longitude, "latitude" => $pickup->user->latitude, "email" => $pickup->user->email, "password" => $pickup->user->password, "id_role" => $pickup->user->id_role, "foto" => $pickup->user->foto, "checkbox_options" => $pickup->checkboxOptions->map(function ($option) { return [ "id" => $option->id, "name" => $option->name, "price" => $option->price, "handling_fee" => $option->handling_fee, "selected" => $option->selected, "kode_pu" => $option->kode_pu, "created_at" => Carbon::parse($option->created_at)->format('Y-m-d H:i'), "updated_at" => Carbon::parse($option->updated_at)->format('Y-m-d H:i'), ]; }), ]; }); return $this->sendMassage($result, 200, true); } function listKonfirmasi(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } // Tambahkan where pickup.status_penjemputan = 5 $pickup = Pickup::leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') ->where('pickup.id_pegawai', '=', $user->id_user) ->where('pickup.status_penjemputan', 5) ->get([ 'pickup.*', 'user.*', DB::raw('DATE_FORMAT(pickup.created_at, "%Y-%m-%d %H:%i") as created_at'), DB::raw('DATE_FORMAT(pickup.updated_at, "%Y-%m-%d %H:%i") as updated_at') ]); return $this->sendMassage($pickup, 200, true); } function listDetail(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kode_pu; $pickup = Detail::where('kode_detail', $getKodePickup)->get(); return $this->sendMassage($pickup, 200, true); } function sendStruk(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kode_pu; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } // $status = "1"; // $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) // ->first(); // if (!$cekStatusPickup) { // return $this->sendMassage("Pickup Not Available", 400, true); // } $inputBiaya = $request->biaya; $inputPenambahanBiaya = $request->penambahan_biaya; $inputDetailBiaya = $request->detail_biaya; // $inputKeterangan = $request->keterangan; try { Pickup::where('kode_pu', $getKodePickup) ->update([ "status_penjemputan" => "2", // "keterangan" => $inputKeterangan, "biaya" => $inputBiaya, "penambahan_biaya" => $inputPenambahanBiaya, "detail_biaya" => $inputDetailBiaya, ]); return $this->sendMassage("Success Change Status", 200, true); } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } public function updateService(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kodePickup; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } $status = "4"; $cekStatusPickup = $cekPickup->where('status_penjemputan', $status)->first(); if (!$cekStatusPickup) { return $this->sendMassage("Pickup Not Available", 400, true); } if ($request->hasFile('image')) { $image = $request->file('image'); $imagePath = 'gambar/' . $image->getClientOriginalName(); // Mengompresi gambar menggunakan Intervention Image $compressedImage = Image::make($image->getRealPath()); $compressedImage->resize(800, 800, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($imagePath, 75); // Simpan gambar dengan kualitas 75% } else { return $this->sendMassage("No image file uploaded", 400, false); } try { $Pickup = new Detail(); $Pickup->kode_detail = $getKodePickup; $Pickup->image = $imagePath; $Pickup->keterangan = $request->keterangan; $Pickup->save(); return $this->sendMassage("Success Change Status", 200, true); } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function serviceDone(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kode_pu; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } $status = "4"; $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) ->first(); if (!$cekStatusPickup) { return $this->sendMassage("Pickup Not Available", 400, true); } try { Pickup::where('kode_pu', $getKodePickup) ->update(["status_penjemputan" => "5"]); return $this->sendMassage("Success Change Status", 200, true); } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function submitPickup(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kodePickup; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } // $status = "3"; // $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) // ->first(); // if (!$cekStatusPickup) { // return $this->sendMassage("Pickup Not Available", 400, true); // } try { Pickup::where('kode_pu', $getKodePickup) // ->update(["status_penjemputan" => "4", "bukti_pengiriman" => $cekPickup->kode_pu]); ->update(["status_penjemputan" => "3"]); return $this->sendMassage("Success Change Status", 200, true); } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function kirimStruk(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kode_pu; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_customer', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } $status = "5"; $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) ->first(); if (!$cekStatusPickup) { return $this->sendMassage("Pickup Not Available", 400, true); } if ($request->hasFile('image')) { $image = $request->file('image'); $imagePath = 'gambar/' . $image->getClientOriginalName(); // Mengompresi gambar menggunakan Intervention Image $compressedImage = Image::make($image->getRealPath()); $compressedImage->resize(800, 800, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($imagePath, 75); // Simpan gambar dengan kualitas 75% } else { return $this->sendMassage("No image file uploaded", 400, false); } try { if ($cekPickup->bukti_pengiriman == "booking") { if ($request->metode_pembayaran == "QRIS") { Pickup::where('kode_pu', $getKodePickup) ->update(["status" => "lunas", "image_bukti" => $imagePath]); return $this->sendMassage("Success Change Status", 200, true); } else { Pickup::where('kode_pu', $getKodePickup) ->update(["status" => "lunas", "image_bukti" => $imagePath]); return $this->sendMassage("Success Change Status", 200, true); } } else { if ($request->metode_pembayaran == "QRIS") { Pickup::where('kode_pu', $getKodePickup) // ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran, "image_bukti" => $imagePath]); ->update(["status" => "lunas", "image_bukti" => $imagePath]); return $this->sendMassage("Success Change Status", 200, true); } else { Pickup::where('kode_pu', $getKodePickup) // ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran]); ->update(["status" => "lunas", "image_bukti" => $imagePath]); return $this->sendMassage("Success Change Status", 200, true); } } } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function terimaStruk(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kode_pu; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_customer', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } $status = "2"; $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) ->first(); if (!$cekStatusPickup) { return $this->sendMassage("Pickup Not Available", 400, true); } try { if ($cekPickup->bukti_pengiriman == "booking") { if ($request->metode_pembayaran == "QRIS") { Pickup::where('kode_pu', $getKodePickup) ->update(["status_penjemputan" => "4", "metode_pembayaran" => $request->metode_pembayaran]); return $this->sendMassage("Success Change Status", 200, true); } else { Pickup::where('kode_pu', $getKodePickup) ->update(["status_penjemputan" => "4", "metode_pembayaran" => $request->metode_pembayaran]); return $this->sendMassage("Success Change Status", 200, true); } } else { if ($request->metode_pembayaran == "QRIS") { Pickup::where('kode_pu', $getKodePickup) // ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran, "image_bukti" => $imagePath]); ->update(["status_penjemputan" => "4", "biaya" => $request->harga, "Penambahan_biaya" => $request->customHarga, "detail_biaya" => $request->totalHarga, "metode_pembayaran" => $request->metode_pembayaran]); return $this->sendMassage("Success Change Status", 200, true); } else { Pickup::where('kode_pu', $getKodePickup) // ->update(["status_penjemputan" => "3", "metode_pembayaran" => $request->metode_pembayaran]); ->update(["status_penjemputan" => "4", "biaya" => $request->harga, "Penambahan_biaya" => $request->customHarga, "detail_biaya" => $request->totalHarga, "metode_pembayaran" => $request->metode_pembayaran]); return $this->sendMassage("Success Change Status", 200, true); } } } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function konfirmasiPickup(Request $request) { if ($request->kodeBukti == "cancel") { Pickup::where('kode_pu', $request->kodePickup) ->update([ "status_penjemputan" => "6", "bukti_pengiriman" => "cancel", "image_path" => "cancel", "keterangan" => "cancel", ]); return $this->sendMassage('Pembatalan Di setujui', 200, true); } $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 2) { return $this->sendMassage('Token tidak valid', 401, false); } $getKodePickup = $request->kodePickup; $cekPickup = Pickup::where('kode_pu', $getKodePickup)->where('id_pegawai', $user->id_user)->first(); if (!$cekPickup) { return $this->sendMassage("Pickup Not Available", 400, false); } $status = "5"; $cekStatusPickup = $cekPickup->where('status_penjemputan', $status) ->first(); if (!$cekStatusPickup) { return $this->sendMassage("Pickup Not Available", 400, true); } if ($request->hasFile('image')) { $imagePath = $request->file('image')->move('gambar', $request->file('image')->getClientOriginalName()); // Lanjutkan dengan proses Anda } else { return $this->sendMassage("No image file uploaded", 400, false); } try { Pickup::where('kode_pu', $getKodePickup) ->update([ "status_penjemputan" => "6", "bukti_pengiriman" => $request->keterangan, "image_path" => $imagePath, ]); return $this->sendMassage("Success Change Status", 200, true); } catch (\Exception $e) { return $this->sendMassage("Failed Change Status", 400, true); } } function submitReqPickup(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } $userLongitude = $user->longitude; $userLatitude = $user->latitude; $inputLongitude = $request->longitude; $inputLatitude = $request->latitude; if ($inputLongitude !== null && $inputLatitude !== null) { if ($userLongitude != $inputLongitude || $userLatitude != $inputLatitude) { $user->longitude = $inputLongitude; $user->latitude = $inputLatitude; $user->save(); } } if (isset($request->merk_kendaraan) && isset($request->plat_nomor) && isset($request->keterangan)) { $Pickup = new Pickup(); $Pickup->kode_pu = $request->kode_pu; $Pickup->id_customer = $user->id_user; $Pickup->id_pegawai = "PEG001"; $Pickup->status_penjemputan = "1"; $Pickup->bukti_pengiriman = "Pemesanan"; $Pickup->status = "belum_bayar"; $Pickup->merk_kendaraan = $request->merk_kendaraan; $Pickup->plat_nomor = $request->plat_nomor; $Pickup->keterangan = $request->keterangan; $Pickup->save(); $services = [ ['name' => 'Filter Oli Bosch', 'price' => 150000, 'handling_fee' => 10000], ['name' => 'Busi Denso', 'price' => 35000, 'handling_fee' => 5000], ['name' => 'Kampas Rem Aisin', 'price' => 300000, 'handling_fee' => 15000], ['name' => 'Disc Brake TRW', 'price' => 750000, 'handling_fee' => 20000], ['name' => 'Filter Udara Sakura', 'price' => 100000, 'handling_fee' => 7000], ['name' => 'Kampas Kopling Federal Parts', 'price' => 500000, 'handling_fee' => 18000], ['name' => 'Water Pump GMB', 'price' => 450000, 'handling_fee' => 16000], ['name' => 'Shock Absorber KYB', 'price' => 800000, 'handling_fee' => 22000], ['name' => 'Aki Yuasa', 'price' => 1200000, 'handling_fee' => 30000], ['name' => 'Ban Dunlop', 'price' => 900000, 'handling_fee' => 25000], ['name' => 'Oli Mesin Motul', 'price' => 250000, 'handling_fee' => 12000], ]; foreach ($services as $service) { $item = new Items(); $item->name = $service['name']; $item->price = $service['price']; // Store original price $item->handling_fee = $service['handling_fee']; // Store handling fee separately $item->selected = 0; // Default value $item->kode_pu = $request->kode_pu; $item->save(); } return $this->sendMassage("Mohon Tunggu, Kendaraan anda akan segera di jemput", 200, true); } else { return $this->sendMassage("Lengkapi data kendaraan", 400, false); } } function submitReqBooking(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } if (isset($request->merk_kendaraan) && isset($request->plat_nomor) && isset($request->keterangan)) { $Pickup = new Pickup(); $Pickup->kode_pu = $request->kode_pu; $Pickup->id_customer = $user->id_user; $Pickup->id_pegawai = "PEG001"; $Pickup->status_penjemputan = "1"; $Pickup->status = "belum_bayar"; $Pickup->bukti_pengiriman = "booking"; $Pickup->merk_kendaraan = $request->merk_kendaraan; $Pickup->plat_nomor = $request->plat_nomor; $Pickup->keterangan = $request->keterangan; $Pickup->save(); $services = [ ['name' => 'Filter Oli Bosch', 'price' => 150000, 'handling_fee' => 10000], ['name' => 'Busi Denso', 'price' => 35000, 'handling_fee' => 5000], ['name' => 'Kampas Rem Aisin', 'price' => 300000, 'handling_fee' => 15000], ['name' => 'Disc Brake TRW', 'price' => 750000, 'handling_fee' => 20000], ['name' => 'Filter Udara Sakura', 'price' => 100000, 'handling_fee' => 7000], ['name' => 'Kampas Kopling Federal Parts', 'price' => 500000, 'handling_fee' => 18000], ['name' => 'Water Pump GMB', 'price' => 450000, 'handling_fee' => 16000], ['name' => 'Shock Absorber KYB', 'price' => 800000, 'handling_fee' => 22000], ['name' => 'Aki Yuasa', 'price' => 1200000, 'handling_fee' => 30000], ['name' => 'Ban Dunlop', 'price' => 900000, 'handling_fee' => 25000], ['name' => 'Oli Mesin Motul', 'price' => 250000, 'handling_fee' => 12000], ]; foreach ($services as $service) { $item = new Items(); $item->name = $service['name']; $item->price = $service['price']; // Store original price $item->handling_fee = $service['handling_fee']; // Store handling fee separately $item->selected = 0; // Default value $item->kode_pu = $request->kode_pu; $item->save(); } return $this->sendMassage("Booking antrian berhasil", 200, true); } else { return $this->sendMassage("Lengkapi data kendaraan", 400, false); } } public function listDashboard(Request $request) { $token = $request->bearerToken(); $user = User::where('token', $token)->first(); if ($user->id_role != 1) { return $this->sendMassage('Token tidak valid', 401, false); } $pickup = Pickup::where('id_customer', $user->id_user) ->where('status_penjemputan', '1') ->orderBy('created_at', 'desc') ->get(); $cekPegawaiNotFree = Pickup::with([ 'checkboxOptions' => function ($query) { $query->where('selected', 1); } ]) ->leftJoin('user', 'user.id_user', '=', 'pickup.id_customer') ->where('pickup.id_customer', '=', $user->id_user) ->where(function ($query) { $query->orWhere('pickup.status_penjemputan', 1) ->orWhere('pickup.status_penjemputan', 2); }) ->get(); $formattedPickup = $cekPegawaiNotFree->map(function ($item) { return [ 'kode_pu' => $item->kode_pu, 'nama_customer' => $item->nama, 'id_customer' => $item->id_customer, 'id_pegawai' => $item->id_pegawai, 'status_penjemputan' => $item->status_penjemputan, 'bukti_pengiriman' => $item->bukti_pengiriman, 'image_path' => asset($item->image_path), // Menggunakan asset untuk menghasilkan URL gambar 'keterangan' => $item->keterangan, 'biaya' => $item->biaya, 'penambahan_biaya' => $item->penambahan_biaya, 'detail_biaya' => $item->detail_biaya, 'created_at' => $item->created_at, 'updated_at' => $item->updated_at, 'checkboxOptions' => $item->checkboxOptions ]; }); return $this->sendMassage($formattedPickup, 200, true); } // Function Massage public function sendMassage($text, $kode, $status) { return response()->json([ 'data' => $text, 'code' => $kode, 'status' => $status ], $kode); } }