Пример #1
0
 public function generate($vendor_slug, $tour_slug, $schedule_id)
 {
     // -------------------------------------------------
     // check vendor
     // -------------------------------------------------
     $vendor = Vendor::SlugIs($vendor_slug)->first();
     if (!$vendor) {
         App::abort(404);
     }
     // -------------------------------------------------
     // check tour
     // -------------------------------------------------
     $tour = $vendor->tours()->slugIs($tour_slug)->first();
     if (!$tour) {
         App::abort(404);
     }
     // -------------------------------------------------
     // schedule
     // -------------------------------------------------
     $schedule = $tour->schedules()->find($schedule_id);
     if (!$schedule) {
         App::abort(404);
     }
     // -------------------------------------------------
     // generate voucher
     // -------------------------------------------------
     $book = Book::where('user_id', '=', Auth::id())->ofSchedule($schedule->id)->first();
     if (!$book) {
         $book = new Book();
         $book->fill(['discount_currency' => $schedule->currency, 'discount' => $schedule->discount, 'discount_code' => str_random(6), 'user_id' => Auth::id(), 'schedule_id' => $schedule->id]);
         if (!$book->save()) {
             return redirect()->back()->withErrors($book->getErrors);
         }
     }
     return redirect()->route('web.me.index');
 }