162 lines
4.6 KiB
PHP
162 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Campagne;
|
|
use App\Site;
|
|
use App\Coupon;
|
|
use App\Notification;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class CampagneController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
$campagnes = Campagne::where('camp_siteId', session()->get('site')->site_id)->get();
|
|
|
|
return view('campagne.index')->with('campagnes', $campagnes);
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function create()
|
|
{
|
|
return view('campagne.create');
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$campagne = new Campagne();
|
|
$campagne->camp_name = $request->input('camp_name');
|
|
$campagne->camp_type = $request->input('camp_type');
|
|
$campagne->camp_published = $request->input('camp_published');
|
|
if (null !== $request->input('camp_limitedPrinting')) {
|
|
$campagne->camp_limitedPrinting = $request->input('camp_limitedPrinting');
|
|
}
|
|
|
|
$site = Site::findOrFail(session()->get('site')->id)->first();
|
|
|
|
if ($site->campagnes()->save($campagne)) {
|
|
$campId = str_pad(strval($campagne->camp_id), 5, '00000', STR_PAD_LEFT);
|
|
|
|
Storage::makeDirectory('/landings/' . $campId);
|
|
}
|
|
|
|
return redirect(route('campagne.edit', ['campagne' => $campagne]));
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*
|
|
* @param \App\Campagne $campagne
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function edit(Campagne $campagne)
|
|
{
|
|
$site = Site::findOrFail(session()->get('site')->id)->first();
|
|
|
|
$couponsLinked = $campagne->coupons()->get();
|
|
$campid = $campagne->camp_id;
|
|
|
|
$couponsNotLinked = Coupon::whereDoesntHave('campagnes', function($q) use ($campid){
|
|
$q->where('campagne_id', $campid);
|
|
})->where('coupon_siteId', session()->get('site')->id)->get();
|
|
|
|
return view('campagne.edit', ['campagne' => $campagne, 'coupons' => $couponsNotLinked, 'couponsLinked' => $couponsLinked]);
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \App\Campagne $campagne
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function update(Request $request, Campagne $campagne)
|
|
{
|
|
if ($campagne->update($request->all())) {
|
|
session()->flash('update_ok', 'La campagne a bien été modifiée');
|
|
} else {
|
|
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
|
|
}
|
|
|
|
return view('campagne.edit')->with('campagne', $campagne);
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*
|
|
* @param \App\Campagne $campagne
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function destroy(Campagne $campagne)
|
|
{
|
|
if ($campagne->delete()) {
|
|
return redirect(route('campagne.index'));
|
|
} else {
|
|
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
|
return view('campagne.edit')->with('campagne', $campagne);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param \Illuminate\Http\Request $request
|
|
*
|
|
* @return array
|
|
*/
|
|
public function saveNotification(Request $request)
|
|
{
|
|
$notification = new Notification();
|
|
$notification->notif_email = $request->input('notif_email');
|
|
$notification->notif_campId = $request->input('notif_campId');
|
|
$notification->save();
|
|
return redirect()->back();
|
|
}
|
|
|
|
/**
|
|
* @param \App\Notification $notification
|
|
*
|
|
* @return array
|
|
*/
|
|
public function deleteNotification($id)
|
|
{
|
|
$notification = Notification::find($id);
|
|
if ($notification->delete()) {
|
|
return redirect()->back();
|
|
} else {
|
|
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
|
return redirect()->back();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param \App\Coupon $coupon
|
|
*
|
|
* @return array
|
|
*/
|
|
public function deleteCoupon($id)
|
|
{
|
|
$coupon = Coupon::find($id);
|
|
if ($notification->delete()) {
|
|
return redirect()->back();
|
|
} else {
|
|
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
|
return redirect()->back();
|
|
}
|
|
}
|
|
}
|