products; return view('bo.promotions.create', compact('discTypes', 'existingProds', 'selectedProds')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'product_id' => 'required', ]); $productIds = explode(",", $request->product_id); $discType = $request->discount_type_id; $value = $request->discount_value; $date_start = $request->date_start_date . " " . $request->date_start_time; $date_end = $request->date_end_date . " " . $request->date_end_time; $promotion = new Promotion(); $promotion->discount_type_id = $discType; $promotion->discount_value = $value; $promotion->date_start = $date_start; $promotion->date_end = $date_end; $promotion->save(); // Prise en charge de la liaison avec les produits. $promotion->products()->sync($productIds); return redirect()->route('bo.promotions.index'); } /** * Show the form for editing the specified resource. * * @param integer $id * @return \Illuminate\Http\Response */ public function edit(int $id) { $promotion = Promotion::findOrFail($id); $discTypes = DiscountType::all(); $existingProds = Product::all(); $selectedProds = $promotion->products; $existingProds = $existingProds->diff($selectedProds); return view('bo.promotions.edit', compact('promotion', 'discTypes', 'existingProds', 'selectedProds')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param integer $id * @return \Illuminate\Http\Response */ public function update(Request $request, int $id) { $promotion = Promotion::findOrFail($id); $request->validate([ 'product_id' => 'required', ]); $productIds = explode(",", $request->product_id); $discType = $request->discount_type_id; $value = $request->discount_value; $date_start = $request->date_start_date . " " . $request->date_start_time; $date_end = $request->date_end_date . " " . $request->date_end_time; $promotion->discount_type_id = $discType; $promotion->discount_value = $value; $promotion->date_start = $date_start; $promotion->date_end = $date_end; $promotion->save(); // Prise en charge de la liaison avec les produits. $promotion->products()->sync($productIds); return redirect()->route('bo.promotions.edit', $promotion->id)->with('success', 'Modifications enregistrés !'); } /** * Remove the specified resource from storage. * * @param integer $id * @return \Illuminate\Http\Response */ public function destroy(int $id) { $p = Promotion::findOrFail($id); // Prise en charge de la liaison avec les produits. $p->products()->detach(); $p->delete(); return redirect()->route('bo.promotions.index'); } }