[php] Store function
Viewer
- public function store(Request $request)
- {
- $request->validate([
- 'paymentProof' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
- ]);
- $user_id = auth()->id();
- $directory = 'public/' . $user_id . '/PaymentProofs';
- if (!Storage::exists($directory)) {
- Storage::makeDirectory($directory, 0777, true);
- }
- $file = $request->file('paymentProof');
- $filename = $file->getClientOriginalName();
- $file->storeAs($directory, $filename);
- // Tentukan jenis pembayaran
- $paymentCategory = $request->paymentCategory;
- // Tentukan jumlah pembayaran berdasarkan kategori
- $paymentAmount = 0;
- if ($paymentCategory === 'formulir') {
- $school = School::first();
- $paymentAmount = $school->schoolBiayaFormulir;
- } elseif ($paymentCategory === 'administrasi') {
- $paymentAmount = $request->input('paymentAmount');
- }
- // Temukan pembayaran yang ada untuk pengguna ini berdasarkan kategori pembayaran
- $payment = Payment::where('user_id', $user_id)
- ->where('paymentCategory', $paymentCategory)
- ->first();
- // Jika pembayaran sudah ada, update informasi pembayaran
- if ($payment) {
- $payment->update([
- 'paymentDate' => now(),
- 'paymentAmount' => $paymentAmount,
- 'paymentStatus' => 'Verifying',
- 'paymentProof' => $filename,
- 'updated_at_submit' => now()
- ]);
- } else {
- // Jika belum ada, buat pembayaran baru
- $payment = new Payment([
- 'user_id' => $user_id,
- 'paymentDate' => now(),
- 'paymentAmount' => $paymentAmount,
- 'paymentStatus' => 'Verifying',
- 'paymentCategory' => $paymentCategory,
- 'paymentProof' => $filename,
- 'updated_at_submit' => now()
- ]);
- $payment->save();
- }
- // Tentukan status pendaftaran berdasarkan kategori pembayaran
- $registrationStatus = '';
- if ($paymentCategory === 'formulir') {
- $registrationStatus = RegistrationStatus::STATUS_FORM_PAYMENT_VERIFICATION_PENDING;
- } elseif ($paymentCategory === 'administrasi') {
- $registrationStatus = RegistrationStatus::STATUS_ADMINISTRATIVE_PAYMENT_VERIFICATION_PENDING;
- }
- // Update status pendaftaran pada model Registration
- $registration = Registration::where('user_id', $user_id)->first();
- $registration->registrationStatus = $registrationStatus;
- $registration->save();
- return redirect()->back()->with('success', 'Payment proof uploaded successfully!');
- }
Editor
You can edit this paste and save as new: