[php] Store function

Viewer

copydownloadembedprintName: Store function
  1. public function store(Request $request)
  2. {
  3.     $request->validate([
  4.         'paymentProof' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
  5.     ]);
  6.  
  7.     $user_id = auth()->id();
  8.     $directory = 'public/' . $user_id . '/PaymentProofs';
  9.     if (!Storage::exists($directory)) {
  10.         Storage::makeDirectory($directory, 0777, true);
  11.     }
  12.  
  13.     $file = $request->file('paymentProof');
  14.     $filename = $file->getClientOriginalName();
  15.     $file->storeAs($directory, $filename);
  16.  
  17.     // Tentukan jenis pembayaran
  18.     $paymentCategory = $request->paymentCategory;
  19.  
  20.     // Tentukan jumlah pembayaran berdasarkan kategori
  21.     $paymentAmount = 0;
  22.     if ($paymentCategory === 'formulir') {
  23.         $school = School::first();
  24.         $paymentAmount = $school->schoolBiayaFormulir;
  25.     } elseif ($paymentCategory === 'administrasi') {
  26.         $paymentAmount = $request->input('paymentAmount');
  27.     }
  28.  
  29.     // Temukan pembayaran yang ada untuk pengguna ini berdasarkan kategori pembayaran
  30.     $payment = Payment::where('user_id', $user_id)
  31.                         ->where('paymentCategory', $paymentCategory)
  32.                         ->first();
  33.  
  34.     // Jika pembayaran sudah ada, update informasi pembayaran
  35.     if ($payment) {
  36.         $payment->update([
  37.             'paymentDate' => now(),
  38.             'paymentAmount' => $paymentAmount,
  39.             'paymentStatus' => 'Verifying',
  40.             'paymentProof' => $filename,
  41.             'updated_at_submit' => now()
  42.         ]);
  43.     } else {
  44.         // Jika belum ada, buat pembayaran baru
  45.         $payment = new Payment([
  46.             'user_id' => $user_id,
  47.             'paymentDate' => now(),
  48.             'paymentAmount' => $paymentAmount,
  49.             'paymentStatus' => 'Verifying',
  50.             'paymentCategory' => $paymentCategory,
  51.             'paymentProof' => $filename,
  52.             'updated_at_submit' => now()
  53.         ]);
  54.         $payment->save();
  55.     }
  56.  
  57.     // Tentukan status pendaftaran berdasarkan kategori pembayaran
  58.     $registrationStatus = '';
  59.     if ($paymentCategory === 'formulir') {
  60.         $registrationStatus = RegistrationStatus::STATUS_FORM_PAYMENT_VERIFICATION_PENDING;
  61.     } elseif ($paymentCategory === 'administrasi') {
  62.         $registrationStatus = RegistrationStatus::STATUS_ADMINISTRATIVE_PAYMENT_VERIFICATION_PENDING;
  63.     }
  64.  
  65.     // Update status pendaftaran pada model Registration
  66.     $registration = Registration::where('user_id', $user_id)->first();
  67.     $registration->registrationStatus = $registrationStatus;
  68.     $registration->save();
  69.  
  70.     return redirect()->back()->with('success', 'Payment proof uploaded successfully!');
  71. }

Editor

You can edit this paste and save as new:


File Description
  • Store function
  • Paste Code
  • 07 May-2024
  • 2.61 Kb
You can Share it: