'Kerjasama' ]); } public function create(){ return view('dashboard.media-cooperations.create', [ 'title' => 'Tambah Kerjasama', 'media' => Media::all() ]); } public function store(CooperationRequest $request){ $validatedData = $request->validated(); $validatedData['enhancer_id'] = Auth::id(); $validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations', 'public')['randomFileName']; $validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations', 'public')['randomFileName']; $createdCooperation = Cooperation::create($validatedData); $createdCooperation->media()->attach($validatedData['media_ids']); if ($createdCooperation->media()->count() > 0) { return redirect()->back()->with('success-status', 'Berhasil menambahkan kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal menambahkan kerjasama'); } } public function edit($id){ $cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id)); return view('dashboard.media-cooperations.edit', [ 'title' => 'Ubah Kerjasama', 'cooperation' => $cooperation, 'media' => Media::all(), 'selectedMediaIds' => $cooperation->media->pluck('id')->toArray() ]); } public function update(CooperationRequest $request, $id){ $validatedData = $request->validated(); $cooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id)); $validatedData['enhancer_id'] = Auth::id(); if($request->hasFile('banner')){ delete_file('app/public/uploads/cooperations/'.$cooperation->banner); $validatedData['banner'] = store_file($validatedData['banner'], '/uploads/cooperations', 'public')['randomFileName']; }else{ $validatedData['banner'] = $cooperation->banner; } if($request->hasFile('offer_file_template')){ delete_file('app/public/uploads/cooperations/'.$cooperation->offer_file_template); $validatedData['offer_file_template'] = store_file($validatedData['offer_file_template'], '/uploads/cooperations', 'public')['randomFileName']; }else{ $validatedData['offer_file_template'] = $cooperation->offer_file_template; } $cooperation->update($validatedData); if ($request->has('media_ids')) { $cooperation->media()->sync($validatedData['media_ids']); } if ($cooperation->media()->count() > 0) { return redirect()->back()->with('success-status', 'Berhasil mengubah kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal mengubah kerjasama'); } } public function show($id){ $mediaCooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id)); return view('dashboard.media-cooperations.show', [ 'title' => 'Detail Kerjasama', 'mediaCooperation' => $mediaCooperation ]); } public function mediaProposal($id){ $mediaCooperation = Cooperation::with(['media'])->findOrFail(decrypt_id($id)); return view('dashboard.media-cooperations.media-proposals.index', [ 'title' => 'Data Pengajuan Kerjasama', 'mediaCooperation' => $mediaCooperation ]); } public function mediaProposalShow($id, $proposalId){ $proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId)); return view('dashboard.media-cooperations.media-proposals.show',[ 'title' => 'Detail Ajuan Kerjasama', 'proposal' => $proposal ]); } public function mediaProposalAccept($id, $proposalId){ $proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId)); $acceptedProposal = $proposal->update([ 'status' => '1' ]); if ($acceptedProposal) { return redirect()->back()->with('success-status', 'Berhasil menyetujui pengajuan kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal menyetujui pengajuan kerjasama'); } } public function mediaProposalReject($id, $proposalId){ $proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId)); return view('dashboard.media-cooperations.media-proposals.reject',[ 'title' => 'Tolak Ajuan Kerjasama', 'proposal' => $proposal ]); } public function mediaProposalRejectAction(Request $request, $id, $proposalId){ $validatedData = $request->validate([ 'rejection_reason' => ['required'], ], [ 'rejection_reason.required' => 'Alasan penolakan wajib diisi.', ]); $proposal = CooperationProposal::with(['cooperation', 'media', 'journalists'])->findOrFail(decrypt_id($proposalId)); $acceptedProposal = $proposal->update([ 'status' => '2', 'rejection_reason' => $validatedData['rejection_reason'] ]); if ($acceptedProposal) { return redirect()->back()->with('success-status', 'Berhasil menolak pengajuan kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal menolak pengajuan kerjasama'); } } public function destroy(){} }