validated(); $validatedData['payment_request_letter'] = store_file($validatedData['payment_request_letter'], 'uploads/cooperation-completions')['randomFileName']; $validatedData['invoice'] = store_file($validatedData['invoice'], 'uploads/cooperation-completions')['randomFileName']; $validatedData['other_document'] = store_file($validatedData['other_document'], 'uploads/cooperation-completions')['randomFileName']; $validatedData['order_id'] = decrypt_id($id); $validatedData['media_id'] = Auth::user()->company->media->id; $createdCompletion = CooperationCompletion::create($validatedData); if($createdCompletion){ return redirect()->back()->with('success-status', 'Berhasil mengirim formulir.'); }else{ return redirect()->back()->with('failed-status', 'Gagal mengirim formulir.'); } } public function show($mediaOrderId, $id){ $cooperationCompletion = CooperationCompletion::findOrFail(decrypt_id($id)); return view('dashboard.cooperation-completions.show', [ 'title' => 'Detail Penyelesaian Kerjasama', 'cooperationCompletion' => $cooperationCompletion, 'mediaOrderId' => $mediaOrderId ]); } public function accept($id){ $completion = CooperationCompletion::with(['order', 'media'])->findOrFail(decrypt_id($id)); $acceptedCompletion = $completion->update([ 'status' => '1' ]); // Announcements $announcementData = [ 'headline' => 'Formulir penyelesaian kerjasama '. $completion->order->cooperation->name .' telah disetujui', 'content' => '
Admin telah menyetujui laporan formulir penyelesaian kerjasama Anda.
', 'enhancer_id' => Auth::id() ]; $createdAnnouncement = Announcement::create($announcementData); $createdAnnouncement->users()->attach($completion->media->company->user->id, ['category' => 'system']); // End Announcements if ($acceptedCompletion) { return redirect()->back()->with('success-status', 'Berhasil menyetujui penyelesaian kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal menyetujui penyelesaian kerjasama'); } } public function reject($mediaOrderId, $id){ $cooperationCompletion = CooperationCompletion::findOrFail(decrypt_id($id)); return view('dashboard.cooperation-completions.reject', [ 'title' => 'Tolak Penyelesaian Kerjasama', 'cooperationCompletion' => $cooperationCompletion, 'mediaOrderId' => $mediaOrderId ]); } public function rejectAction(Request $request, $mediaOrderId, $id){ $validatedData = $request->validate([ 'rejection_reason' => ['required'], ], [ 'rejection_reason.required' => 'Alasan penolakan wajib diisi.', ]); $completion = CooperationCompletion::with(['order', 'media'])->findOrFail(decrypt_id($id)); $rejectedCompletion = $completion->update([ 'status' => '2', 'rejection_reason' => $validatedData['rejection_reason'] ]); // Announcements $announcementData = [ 'headline' => 'Formulir penyelesaian kerjasama '. $completion->order->cooperation->name .' telah ditolak', 'content' => 'Admin telah menolak laporan formulir penyelesaian kerjasama Anda.
', 'enhancer_id' => Auth::id() ]; $createdAnnouncement = Announcement::create($announcementData); $createdAnnouncement->users()->attach($completion->media->company->user->id, ['category' => 'system']); // End Announcements if ($rejectedCompletion) { return redirect()->back()->with('success-status', 'Berhasil menolak penyelesaian kerjasama.'); } else { return redirect()->back()->with('failed-status', 'Gagal menolak penyelesaian kerjasama'); } } }