Esempio n. 1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     //
     $this->validate($request, ['offer_name' => 'required', 'start_date' => 'required', 'end_date' => 'required']);
     $offer = new Offer();
     $offer->offer_name = $request->offer_name;
     $offer->description = $request->description;
     $offer->offer_type = $request->offer_type;
     $offer->amount = $request->amount;
     //dd($request);
     if ($request->has('active')) {
         $offer->active = $request->active;
     }
     $start_date = Carbon::createFromFormat('d-n-Y', $request->start_date);
     $end_date = Carbon::createFromFormat('d-n-Y', $request->end_date);
     $offer->start = $start_date->toDateTimeString();
     $offer->end = $end_date->toDateTimeString();
     $offerfor = $request->offerfor;
     //dd($offerfor);
     $offer->save();
     //dd($offer);
     if ($offerfor == 'product') {
         $productIds = $request->products;
         foreach ($productIds as $id) {
             $product = Product::find($id);
             $offer->products()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Product']);
         }
     } elseif ($offerfor == 'category') {
         $categoryIds = $request->categories;
         foreach ($categoryIds as $id) {
             $category = Category::find($id);
             $offer->categories()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Category']);
         }
     } elseif ($offerfor == 'brand') {
         $brandIds = $request->brands;
         foreach ($brandIds as $id) {
             $brand = Category::find($id);
             $offer->brands()->attach($offer->id, ['offerable_id' => $id, 'offerable_type' => 'App\\Brand']);
         }
     }
     return redirect()->route('admin.offers');
 }