get(); $latestTransfers = $transfers->groupBy('peti_id')->map(function ($group) { return $group->first(); }); $data = [ 'transfer' => $latestTransfers, 'active' => 'menu-transfer', ]; return view('dashboard.Transfer.index', $data); } /** * Show the form for creating a new resource. */ public function create() { $petiWithStatusNotZeroOrEmptyAndActive = Peti::where(function ($query) { $query->whereHas('assetStatuses', function ($subquery) { $subquery->where('status', '!=', 0) ->where('created_at', '=', function ($maxQuery) { $maxQuery->selectRaw('MAX(created_at)') ->from('asset_statuses') ->whereColumn('peti_id', 'petis.id'); }); })->orWhereDoesntHave('assetStatuses'); })->where('status', 'aktif')->get(); $data = [ 'customer' => Customer::get(), 'peti' => $petiWithStatusNotZeroOrEmptyAndActive, 'warehouse' => m_warehouse::get(), 'active' => 'menu-transfer', ]; return view('dashboard.Transfer.create', $data); } /** * Store a newly created resource in storage. */ public function store(ValidasiCreateTransfer $request) { // dd($request); try { // Mendapatkan informasi pengguna yang sedang login $currentUser = Auth::user(); // Validasi data dari request $validatedData = $request->validated(); // Menambahkan informasi pengguna ke dalam data yang akan disimpan $validatedData['mobile_id'] = Uuid::v4(); // Menambahkan ID Mobile $validatedData['created_by'] = $currentUser->fullname; $validatedData['updated_by'] = $currentUser->fullname; // Membuat entitas Transfer Transfer::create($validatedData); return redirect()->route('dashboard.transfer.index')->with('success', 'Data Transfer Peti berhasil ditambahkan'); } catch (\Throwable $th) { return redirect()->back()->with('error', 'Data Transfer Peti gagal ditransfer'); } } //proses tambah data transfer beserta update data peti // public function store(ValidasiCreateTransfer $request) // { // // dd($request); // try { // // Mendapatkan informasi pengguna yang sedang login // $currentUser = Auth::user(); // // Validasi data dari request // $validatedData = $request->validated(); // // Menambahkan informasi pengguna ke dalam data yang akan disimpan // $validatedData['mobile_id'] = Uuid::v4(); // Menambahkan ID Mobile // $validatedData['created_by'] = $currentUser->fullname; // $validatedData['updated_by'] = $currentUser->fullname; // // Membuat entitas Transfer // $transfer = Transfer::create($validatedData); // // dd($transfer); // // Mengupdate warehouse_id pada model Peti // Peti::where('id', $transfer->peti_id) // ->update([ // 'warehouse_id' => $transfer->destination_warehouse, // 'customer_id' => $transfer->name_customer, // tambahan update customer id // ]); // return redirect()->route('dashboard.transfer.index')->with('success', 'Data Transfer Peti berhasil ditambahkan'); // } catch (\Throwable $th) { // return redirect()->back()->with('error', 'Data Transfer Peti gagal ditransfer'); // } // } /** * Display the specified resource. */ // public function show($id) // { // $data = [ // 'active' => 'menu-transfer', // ]; // return view('dashboard.Transfer.show', $data); // } /** * Show the form for editing the specified resource. */ public function edit($id) { $data = [ 'transfer' => Transfer::findOrFail($id), 'peti' => Peti::get(), 'customer' => Customer::get(), 'warehouse' => m_warehouse::get(), 'active' => 'menu-transfer', ]; return view('dashboard.Transfer.edit', $data); } /** * Update the specified resource in storage. */ public function update(ValidasiUpdateTransfer $request, $id) { // dd($request->all()); try { // Mendapatkan informasi pengguna yang sedang login $currentUser = Auth::user(); // Validasi data dari request $validatedData = $request->validated(); // Menambahkan informasi pengguna ke dalam data yang akan disimpan $validatedData['updated_by'] = $currentUser->fullname; // Mencari transfer berdasarkan ID $transfer = Transfer::find($id); if (!$transfer) { return redirect()->route('dashboard.transfer.index')->with('error', 'Data Transfer Peti tidak ditemukan'); } // Memperbarui data transfer $transfer->update($validatedData); return redirect()->route('dashboard.transfer.index')->with('success', 'Data Transfer Peti berhasil diperbaharui'); } catch (\Throwable $th) { return redirect()->back()->with('error', 'Data Transfer Peti gagal diperbaharui'); } } //proses tambah data transfer beserta update data peti // public function update(ValidasiUpdateTransfer $request, $id) // { // try { // // Mendapatkan informasi pengguna yang sedang login // $currentUser = Auth::user(); // // Validasi data dari request // $validatedData = $request->validated(); // // Menambahkan informasi pengguna ke dalam data yang akan disimpan // $validatedData['updated_by'] = $currentUser->fullname; // // Mencari transfer berdasarkan ID // $transfer = Transfer::find($id); // if (!$transfer) { // return redirect()->route('dashboard.transfer.index')->with('error', 'Data Transfer Peti tidak ditemukan'); // } // // Memperbarui data transfer // $transfer->update($validatedData); // // Mengupdate warehouse_id pada model Peti // Peti::where('id', $transfer->peti_id) // ->update([ // 'warehouse_id' => $transfer->destination_warehouse, // 'customer_id' => $transfer->name_customer, // ]); // return redirect()->route('dashboard.transfer.index')->with('success', 'Data Transfer Peti berhasil diperbaharui'); // } catch (\Throwable $th) { // return redirect()->back()->with('error', 'Data Transfer Peti gagal diperbaharui'); // } // } /** * Remove the specified resource from storage. */ public function destroy($id) { // dd("oke"); try { $typetransfer = Transfer::findOrFail($id); $typetransfer->delete(); return redirect()->back()->with('success', 'Data transfer peti berhasil dihapus'); } catch (\Throwable $th) { return redirect()->back()->with('error', 'Data transfer peti gagal dihapus'); } } // Proses select2 autocomplete public function autoCompleteSearch(Request $request): JsonResponse { $petiData = []; $customerData = []; if ($request->filled('q')) { $petiData = Peti::select("fix_lot", "id") ->where('fix_lot', 'LIKE', '%' . $request->get('q') . '%') ->where(function ($query) { $query->whereHas('assetStatuses', function ($subquery) { $subquery->where('status', '!=', 0) ->where('created_at', '=', function ($maxQuery) { $maxQuery->selectRaw('MAX(created_at)') ->from('asset_statuses') ->whereColumn('peti_id', 'petis.id'); }); })->orWhereDoesntHave('assetStatuses'); }) ->where('status', 'AKTIF') ->get(); } return response()->json(['peti' => $petiData, 'customer' => $customerData]); } }