ldc-mesbr-app/app/Http/Controllers/CouponController.php
Thibault Richy 8a1054333a init
2019-01-15 14:17:15 +01:00

226 lines
7.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use App\Coupon;
use App\Site;
use App\Campagne;
use App\Mouvement;
use App\Calendrier;
class CouponController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$campIds = Campagne::where('camp_siteId', session()->get('site')->site_id)
->get()
->pluck('camp_id')
->flatten()
->toArray();
$coupons = Coupon::where('coupon_siteId', session()->get('site')->id)->get();
foreach ($coupons as $coupon) {
$mouvements = $coupon->mouvements()->get();
$nombre = array();
foreach ($mouvements as $mouvement) {
array_push($nombre, $mouvement->mouvement_nombre);
}
$coupon->coupon_quantity = array_sum($nombre);
}
return view('coupon.index', ['coupons' => $coupons, 'camps' => $campIds]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$campagnes = Campagne::where('camp_siteId', session()->get('site')->site_id)->get()
->pluck('camp_name', 'camp_id');
return view('coupon.create')->with('campagnes', $campagnes);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$datas = $this->saveImg($request);
\Debugbar::info($datas);
$coupon = new Coupon();
$coupon->coupon_code = $datas['coupon_code'];
$coupon->coupon_name = $datas['coupon_name'];
$coupon->coupon_value = $datas['coupon_value'];
if (isset($datas['coupon_thumbnail1'])) {
$coupon->coupon_thumbnail1 = $datas['coupon_thumbnail1'];
}
if (isset($datas['coupon_thumbnail2'])) {
$coupon->coupon_thumbnail2 = $datas['coupon_thumbnail2'];
}
if (isset($datas['coupon_thumbnail3'])) {
$coupon->coupon_thumbnail3 = $datas['coupon_thumbnail3'];
}
if (isset($datas['coupon_thumbnail4'])) {
$coupon->coupon_thumbnail4 = $datas['coupon_thumbnail4'];
}
if (isset($datas['coupon_image'])) {
$coupon->coupon_image = $datas['coupon_image'];
}
if (isset($datas['coupon_norme'])) {
$coupon->coupon_norme = $datas['coupon_norme'];
$coupon->coupon_gs1code = $datas['coupon_gs1code'];
}
if (isset($datas['coupon_enablelimitquantity'])) {
$coupon->coupon_enablelimitquantity = $datas['coupon_enablelimitquantity'];
$coupon->coupon_limitquantity = $datas['coupon_limitquantity'];
}
if (isset($datas['coupon_enablelimitperiod'])) {
$coupon->coupon_enablelimitperiod = $datas['coupon_enablelimitperiod'];
$coupon->coupon_limitperiod = $datas['coupon_limitperiod'];
}
$coupon->coupon_validity = $datas['coupon_validity'];
$coupon->coupon_maxdatediffusion = $datas['coupon_maxdatediffusion'];
$coupon->coupon_maxdatevalidity = $datas['coupon_maxdatevalidity'];
$coupon->coupon_validity_text = $datas['coupon_validity_text'];
$coupon->coupon_legal_mentions = $datas['coupon_legal_mentions'];
if (isset($datas['coupon_products_image'])) {
$coupon->coupon_products_image = $datas['coupon_products_image'];
}
$site = Site::find($request->input('site_id'));
$site->coupons()->save($coupon);
if (isset($datas['initial_quantity'])) {
$coupon->mouvements()->save($datas['initial_quantity']);
}
if(isset($datas['mouvementNbre'])){
foreach($datas['mouvementNbre'] as $key => $value){
$mouvement = new Mouvement();
$mouvement->mouvement_nombre = $value;
$mouvement->mouvement_created_at = $datas['mouvementDate'][$key];
$coupon->mouvements()->save($mouvement);
}
}
foreach($datas['startdate'] as $key => $value){
$calendar = new Calendrier();
$calendar->calendrier_startdate = $value;
$calendar->calendrier_enddate = $datas['enddate'][$key];
$coupon->calendriers()->save($calendar);
}
return view('coupon.edit', ['coupon' => $coupon]);
}
/**
* Display the specified resource.
*
* @param \App\Coupon $coupon
* @return \Illuminate\Http\Response
*/
public function show(Coupon $coupon)
{
return view('coupon.show', ['coupon' => $coupon]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Coupon $coupon
* @return \Illuminate\Http\Response
*/
public function edit(Coupon $coupon)
{
return view('coupon.edit', ['coupon' => $coupon]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Coupon $coupon
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Coupon $coupon)
{
if ($coupon->update($this->saveImg($request))) {
$datas = $this->saveImg($request);
if(isset($datas['mouvementNbre'])){
foreach($datas['mouvementNbre'] as $key => $value){
$mouvement = new Mouvement();
$mouvement->mouvement_nombre = $value;
$mouvement->mouvement_created_at = $datas['mouvementDate'][$key];
$coupon->mouvements()->save($mouvement);
}
}
session()->flash('update_ok', 'Mise à jour du coupon réussie !');
return view('coupon.edit', ['coupon' => $coupon]);
} else {
return view('holder');
}
return view('coupon.edit', ['coupon' => $coupon]);
}
/**
* Remove the specified resource from storage.
*
* @param \App\Coupon $coupon
* @return \Illuminate\Http\Response
*/
public function destroy(Coupon $coupon)
{
//
}
/**
* @param \Illuminate\Http\Request $request
*
* @return array
*/
private function saveImg(Request $request)
{
$datas = collect($request->all());
$imgs = collect(array());
foreach ($datas as $key => $item) {
if ($key == 'coupon_image' || $key == 'coupon_gs1code' || $key == 'coupon_products_image' || (substr($key, 7, 9) == 'thumbnail' && strlen($key) < 18)) {
if (isset($item)) {
$path = $item->store('coupons');
$path = str_replace('public/', '', $path);
$datas->put($key, $path);
} else {
$datas->put($key, $request->input($key . '_hidden'));
}
}
}
return $datas->toArray();
}
}