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)) { //File::makeDirectory(public_path('/landings/' . $campagne->camp_id)); if($campagne->camp_type == 0){ File::copyDirectory(resource_path('/views/template/mur'), public_path('/landings/' . $campagne->camp_id)); } elseif ($campagne->camp_type == 1) { File::copyDirectory(resource_path('/views/template/panier'), public_path('/landings/' . $campagne->camp_id)); } elseif ($campagne->camp_type == 2) { File::copyDirectory(resource_path('/views/template/murnoselection'), public_path('/landings/' . $campagne->camp_id)); } elseif ($campagne->camp_type == 3) { File::copyDirectory(resource_path('/views/template/panierselection'), public_path('/landings/' . $campagne->camp_id)); } } 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) { $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(); if(!isset($request->camp_limitedPrinting)){ $campagne->camp_limitedPrinting = 0; $campagne->save(); } 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 redirect()->route('campagne.edit', ['campagne' => $campagne]); } /** * Remove the specified resource from storage. * * @param \App\Campagne $campagne * @return \Illuminate\Http\Response */ public function destroy(Campagne $campagne) { $campagne->camp_published = 0; $campagne->save(); //File::deleteDirectory(public_path('/landings/' . $campagne->camp_id)); 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_name = $request->input('notif_name'); $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(); // } // } public function getDetail(Request $request){ $error = false; // ---- Contrôle des paramètres if(isset($request->refcamp) && $request->refcamp != ""){ $refcamp = $request->refcamp; $campagne = Campagne::where(['camp_id' => $refcamp])->first(); if(!$campagne){ return Response::json([ 'Statut' => 'KO', 'Code' => 103, 'Message' => 'La campagne n\'existe pas' ]); } }else{ $error = true; } if(isset($request->refsite) && $request->refsite != ""){ $refsite = $request->refsite; $site = Site::where(['site_id' => $refsite])->first(); if(!$site){ return Response::json([ 'Statut' => 'KO', 'Code' => 102, 'Message' => 'Le site n\'existe pas' ]); }; }else{ $error = true; } if($campagne->camp_siteId != $site->site_id){ return Response::json([ 'Statut' => 'KO', 'Code' => 108, 'Message' => 'Pas de campagne pour ce site' ]); } if($error){ return Response::json([ 'Statut' => 'KO', 'Code' => 101, 'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents' ]); } $enligne = ($campagne->camp_published == 1)? "oui" : "non"; switch ($campagne->camp_type) { case 0: $type = "mur"; break; case 1: $type = "panier"; break; case 2: $type = "mur sans sélection"; break; case 3: $type = "panier avec sélection"; break; } $data = Array ( 'Site' => $site->site_nom, 'Ref campagne' => $campagne->camp_id, 'Nom campagne' =>$campagne->camp_name, "En ligne" => $enligne, "Type" => $type, ); $coupons = $campagne->coupons()->get(); if($coupons->count() > 0){ foreach($coupons as $coupon){ //var_dump($coupon->coupon_id); // ---- Calcul du nombre de BR consommé $diffuseMur = Mur::where(['mur_campId' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->count(); $diffusePanier01 = PanierContent::where(['panier_content_couponId' => $coupon->coupon_id])->sum('panier_content_quantity'); $diffusePanier02 = PanierContent::where(['panier_content_couponId' => $coupon->coupon_id])->sum('panier_content_printed'); $diffusePanier = $diffusePanier01 + $diffusePanier02; if(!$diffusePanier) $diffusePanier = 0; $diffuse = $diffuseMur + $diffusePanier; // ---- Calcul de la quantité restante $qRestante = $this->getFullQuantity($coupon) - $this->getUsedQuantity($coupon); // ---- En ligne oui/non $enligne = ($coupon->coupon_published == 1)? "oui" : "non"; // ---- Calcul de la date de fin de diffusion $dateFinDiffusion = "n/c"; if($coupon->coupon_maxdatediffusion != null ){ $dateFinDiffusion = date("d/m/Y", strtotime($coupon->coupon_maxdatediffusion)); } // ---- Calcul de la date de fin de validité $dateFinValidite = "n/c"; if($coupon->coupon_maxdatevalidity != null ){ $dateFinValidite = date("d/m/Y", strtotime($coupon->coupon_maxdatevalidity)); } $codeTraitement = Array ( "Code traitement" => $coupon->coupon_code, "Nom" => $coupon->coupon_name, "Nb à diffuser" => $this->getFullQuantity($coupon), "Nb diffusé" => $diffuse, "Quantité restante" => $qRestante, "Valeur faciale" => $coupon->coupon_value."€", "En ligne" => $enligne, "Date de fin de diffusion" => $dateFinDiffusion, "Date de fin de validité" => $dateFinValidite, ); $data['Coupons'][] = $codeTraitement; } } return Response::json([ 'Statut' => 'OK', 'Détails Campagne' => $data ]); } public function getDiffCamp(Request $request) { $error = false; // ---- Contrôle des paramètres if(isset($request->refcamp) && $request->refcamp != ""){ $refcamp = $request->refcamp; $campagne = Campagne::where(['camp_id' => $refcamp])->first(); if(!$campagne){ return Response::json([ 'Statut' => 'KO', 'Code' => 103, 'Message' => 'La campagne n\'existe pas' ]); } }else{ $error = true; } if(isset($request->refsite) && $request->refsite != ""){ $refsite = $request->refsite; $site = Site::where(['site_id' => $refsite])->first(); if(!$site){ return Response::json([ 'Statut' => 'KO', 'Code' => 102, 'Message' => 'Le site n\'existe pas' ]); }; }else{ $error = true; } if(isset($request->refadherent) && $request->refadherent != ""){ $refadherent = $request->refadherent; $contact = Contact::where(['contact_siteId' => $refsite, 'contact_ref' => $refadherent])->first(); if (!$contact) { return Response::json([ 'Statut' => 'KO', 'Code' => 104, 'Message' => 'Le contact n\'existe pas' ]); } }else{ $error = true; } if($error){ return Response::json([ 'Statut' => 'KO', 'Code' => 101, 'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents' ]); } $data = Array ( 'Statut' => 'OK', 'Site' => $site->site_nom, 'Ref campagne' => $campagne->camp_id, 'Nom campagne' =>$campagne->camp_name, "Ref contact" => $refadherent, "Email contact" => $contact->contact_email, ); $coupons = $campagne->coupons()->get(); if($coupons->count() > 0){ foreach($coupons as &$coupon){ if($this->isAvailable($coupon, $campagne, $contact)) { $dispo = 1; } else { $dispo = 0; } $codeTraitement = Array ( "Code traitement" => $coupon->coupon_code, "Nom" => $coupon->coupon_name, "Nb disponible" => $dispo, ); $data['Codes traitement'][] = $codeTraitement; } } return Response::json($data); } }