Compare commits
35 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f9d88aa79 | ||
|
|
83f68ca14f | ||
|
|
152325b917 | ||
|
|
10b0b90cf7 | ||
|
|
8a0846a929 | ||
|
|
d1495826a4 | ||
|
|
3e51736020 | ||
|
|
763de9193b | ||
|
|
5f9fea1969 | ||
|
|
e01d8af5c3 | ||
|
|
defca9f9b5 | ||
|
|
afa1cb457d | ||
|
|
f79f06f424 | ||
|
|
8cba7bb154 | ||
|
|
4fe7b33acc | ||
|
|
e94b3f5420 | ||
|
|
91cedeed97 | ||
|
|
0da20547a9 | ||
|
|
66c71bff68 | ||
|
|
57239713d1 | ||
|
|
56d37dbf22 | ||
|
|
ec09989aaa | ||
|
|
aa405e8458 | ||
|
|
8ec203c145 | ||
|
|
3c59b7b5d0 | ||
|
|
66687182bb | ||
|
|
6f0f4400b9 | ||
|
|
7856c51842 | ||
|
|
5ae716eb06 | ||
|
|
708c103030 | ||
|
|
6d42ff878d | ||
|
|
a6b6cf1ab9 | ||
|
|
b3d358816b | ||
|
|
89f7dd0638 | ||
|
|
7e381502c2 |
130 changed files with 27660 additions and 10502 deletions
|
|
@ -2,12 +2,31 @@
|
|||
|
||||
namespace App;
|
||||
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Models\PrintedWalls;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Kwaadpepper\Enum\Traits\CastsEnums;
|
||||
|
||||
class Campagne extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use CastsEnums;
|
||||
|
||||
public $enumCasts = [
|
||||
'camp_type' => CampaignTypes::class
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'camp_siteId',
|
||||
'camp_name',
|
||||
'camp_type',
|
||||
'camp_limitedPrinting',
|
||||
'camp_published'
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string
|
||||
|
|
@ -85,14 +104,8 @@ class Campagne extends Model
|
|||
return $this->belongsToMany('App\Coupon', 'campagne_coupon', 'campagne_id', 'coup_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'camp_siteId',
|
||||
'camp_name',
|
||||
'camp_type',
|
||||
'camp_limitedPrinting',
|
||||
'camp_published'
|
||||
];
|
||||
public function printedWalls()
|
||||
{
|
||||
return $this->hasMany(PrintedWalls::class, 'camp_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
119
app/Console/Commands/CheckAlert.php
Normal file
119
app/Console/Commands/CheckAlert.php
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Campagne;
|
||||
use App\Mail\AlertBr;
|
||||
use App\Mail\AlertBrAdmin;
|
||||
use App\Notification;
|
||||
use App\Site;
|
||||
use App\User;
|
||||
use Illuminate\Console\Command;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use App\Traits\CouponTrait;
|
||||
|
||||
class CheckAlert extends Command
|
||||
{
|
||||
use CouponTrait;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'check:alert';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$this->info('Démarrage du traitement');
|
||||
|
||||
$sites = Site::all();
|
||||
$couponSeuilGlobal = array();
|
||||
$couponDiffusionGlobal = array();
|
||||
$sendGlobal = false;
|
||||
foreach ($sites as $site) { // ---- Pour chaque site
|
||||
$campagnes = Campagne::where(['camp_siteId' => $site->site_id])->get();
|
||||
foreach ($campagnes as $campagne) {
|
||||
$sendMail = false;
|
||||
$users = array();
|
||||
$couponSeuil = array();
|
||||
$couponDiffusion = array();
|
||||
$coupons = $campagne->coupons()->get();
|
||||
foreach ($coupons as $coupon) {
|
||||
$couponAlert = false;
|
||||
if ($coupon->coupon_published) {
|
||||
$coupon->coupon_left = $this->getFullQuantity($coupon) - $this->getUsedQuantity($coupon);
|
||||
if ($coupon->coupon_left < $coupon->coupon_seuil_alert) {
|
||||
array_push($couponSeuil, $coupon);
|
||||
array_push($couponSeuilGlobal, [$site->site_nom, $coupon]);
|
||||
$sendGlobal = true;
|
||||
$couponAlert = true;
|
||||
}
|
||||
|
||||
// --- Check MaxDateDiffusion
|
||||
if ($coupon->coupon_maxdatediffusion != null && strtotime($coupon->coupon_maxdatediffusion) < (time() + (30 * 24 * 60 * 60))) { //Fin de diffusion dans moins de 30jours
|
||||
array_push($couponDiffusion, $coupon);
|
||||
array_push($couponDiffusionGlobal, [$site->site_nom, $coupon]);
|
||||
$sendGlobal = true;
|
||||
$couponAlert = true;
|
||||
}
|
||||
|
||||
if ($couponAlert) {
|
||||
$notifications = Notification::where(['notif_campId' => $campagne->camp_id])->get();
|
||||
foreach ($notifications as $notification) {
|
||||
if (!array_key_exists($notification->notif_id, $users)) {
|
||||
$userObject = [];
|
||||
$userObject['email'] = $notification->notif_email;
|
||||
$userObject['name'] = $notification->notif_name;
|
||||
$users[$notification->notif_id] = (object)$userObject;
|
||||
}
|
||||
}
|
||||
$sendMail = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($sendMail) {
|
||||
Mail::to($users)->send(new AlertBr($couponSeuil, $couponDiffusion, $site->site_nom));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($sendGlobal) {
|
||||
$this->line("Envoi mail superadmin");
|
||||
$superadmins = array();
|
||||
$admins = User::where(['roles' => 'superadmin'])->get();
|
||||
foreach ($admins as $admin) {
|
||||
$adminObject = [];
|
||||
$adminObject['email'] = $admin->email;
|
||||
$adminObject['name'] = $admin->name;
|
||||
array_push($superadmins, (object)$adminObject);
|
||||
}
|
||||
Mail::to($superadmins)->send(new AlertBrAdmin($couponSeuilGlobal, $couponDiffusionGlobal));
|
||||
}
|
||||
|
||||
$this->line("");
|
||||
$this->info('Fin du traitement');
|
||||
}
|
||||
}
|
||||
|
|
@ -4,21 +4,14 @@ namespace App\Console;
|
|||
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
use App\Coupon;
|
||||
use App\Site;
|
||||
use App\Panier;
|
||||
use App\PanierContent;
|
||||
use App\Mur;
|
||||
use App\Campagne;
|
||||
use App\Statistique;
|
||||
use App\User;
|
||||
use App\Notification;
|
||||
use App\Mail\AlertBr;
|
||||
use App\Mail\AlertBrAdmin;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use App\Traits\CouponTrait;
|
||||
use Carbon\Carbon;
|
||||
use DB;
|
||||
|
||||
class Kernel extends ConsoleKernel
|
||||
{
|
||||
|
|
@ -67,7 +60,8 @@ class Kernel extends ConsoleKernel
|
|||
}
|
||||
|
||||
// --- Check MaxDateDiffusion
|
||||
if ($coupon->coupon_maxdatediffusion != null && strtotime($coupon->coupon_maxdatediffusion) < (time() + (30 * 24 * 60 * 60))) { //Fin de diffusion dans moins de 30jours
|
||||
if ($coupon->coupon_maxdatediffusion != null && strtotime($coupon->coupon_maxdatediffusion) < (time() + (30 * 24 * 60 * 60))) {
|
||||
//Fin de diffusion dans moins de 30jours
|
||||
array_push($couponDiffusion, $coupon);
|
||||
array_push($couponDiffusionGlobal, [$site->site_nom , $coupon]);
|
||||
$sendGlobal = true;
|
||||
|
|
@ -106,54 +100,6 @@ class Kernel extends ConsoleKernel
|
|||
Mail::to($superadmins)->send(new AlertBrAdmin($couponSeuilGlobal, $couponDiffusionGlobal));
|
||||
}
|
||||
})->weekdays()->at('7:00');
|
||||
|
||||
// ---- Sauvegarde des stats tous les jours a 23:45
|
||||
// $schedule->call(function () {
|
||||
// $campagnes = Campagne::all();
|
||||
// foreach ($campagnes as $campagne) {
|
||||
|
||||
// $last_stat = Statistique::where(['stat_campId' => $campagne->camp_id])->orderBy('created_at', 'DESC')->first();
|
||||
// if(isset($last_stat->created_at)){
|
||||
// $dateStart = $last_stat->created_at;
|
||||
// } else {
|
||||
// $dateStart = Carbon::now()->setTime(0,0,0)->subMonth()->format('Y-m-d H:i:s');
|
||||
// }
|
||||
|
||||
// $coupons = $campagne->coupons()->get();
|
||||
// foreach ($coupons as $coupon) {
|
||||
// if ($campagne->camp_type == 0 || $campagne->camp_type == 2) { //Calcul des BR consommé pour les murs
|
||||
|
||||
// $counts = Mur::selectRaw('count(*) as count, DATE_FORMAT(mur_createdate, "%Y-%m-%d") as date')
|
||||
// ->where(['mur_couponId' => $coupon->coupon_id, 'mur_campid' => $campagne->camp_id])
|
||||
// ->whereBetween('mur_createdate', [$dateStart, Carbon::now()->setTime(23,59,59)->format('Y-m-d H:i:s')])
|
||||
// ->groupBy(DB::raw("DATE_FORMAT(mur_createdate, '%Y-%m-%d')"))
|
||||
// ->pluck('count', 'date');
|
||||
|
||||
// foreach($counts as $date => $count){
|
||||
// $stat = new Statistique();
|
||||
// $stat->stat_campId = $campagne->camp_id;
|
||||
// $stat->stat_couponId = $coupon->coupon_id;
|
||||
// $stat->stat_couponPrinted = $count;
|
||||
// $stat->created_at = $date;
|
||||
// $stat->save();
|
||||
// }
|
||||
|
||||
// }
|
||||
// // else { //Calcul des BR consommé pour les paniers
|
||||
// // $count = 0;
|
||||
// // $paniers = Panier::where('panier_campId', $campagne->camp_id)->where(function($query) use ($dateStart){
|
||||
// // $query->whereBetween('panier_createdate', [$dateStart, Carbon::now()->setTime(23,59,59)->format('Y-m-d H:i:s')])
|
||||
// // ->orWhereBetween('panier_updatedate', [$dateStart, Carbon::now()->setTime(23,59,59)->format('Y-m-d H:i:s')]);
|
||||
// // })->get();
|
||||
// // foreach ($paniers as $panier) {
|
||||
// // $panierContentCount = $panier->panierContents()->where(['panier_content_couponId' => $coupon->coupon_id])->sum('panier_content_printed');
|
||||
// // $count = $count + $panierContentCount;
|
||||
// // }
|
||||
// // }
|
||||
|
||||
// }
|
||||
// }
|
||||
// })->everyFifteenMinutes();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
39
app/Enums/CampaignTypes.php
Normal file
39
app/Enums/CampaignTypes.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
use Kwaadpepper\Enum\BaseEnum;
|
||||
|
||||
/**
|
||||
* @method static self mur()
|
||||
* value 0 Mur (POUR LES MURS)
|
||||
* @method static self panier()
|
||||
* value 1 Panier (POUR LES PANIERS)
|
||||
* @method static self murss()
|
||||
* value 2 Mur sans sélection (POUR LES MURS SANS SELECTION)
|
||||
* @method static self paniers()
|
||||
* value 3 Panier Sélectionnable (POUR LES PANIERS AVEC SELECTION)
|
||||
*/
|
||||
|
||||
class CampaignTypes extends BaseEnum
|
||||
{
|
||||
protected static function values(): array
|
||||
{
|
||||
return [
|
||||
'mur' => 0,
|
||||
'panier' => 1,
|
||||
'murss' => 2,
|
||||
'paniers' => 3,
|
||||
];
|
||||
}
|
||||
|
||||
protected static function labels(): array
|
||||
{
|
||||
return [
|
||||
'mur' => trans('Mur'),
|
||||
'panier' => trans('Panier'),
|
||||
'murss' => trans('Mur sans sélection'),
|
||||
'paniers' => trans('Panier Sélectionnable'),
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Enums/Countries.php
Normal file
32
app/Enums/Countries.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
use Kwaadpepper\Enum\BaseEnum;
|
||||
|
||||
/**
|
||||
* @method static self france()
|
||||
* @method static self belgique()
|
||||
* @method static self luxembourg()
|
||||
*/
|
||||
|
||||
class Countries extends BaseEnum
|
||||
{
|
||||
protected static function values(): array
|
||||
{
|
||||
return [
|
||||
'france' => 250,
|
||||
'belgique' => 56,
|
||||
'luxembourg' => 442,
|
||||
];
|
||||
}
|
||||
|
||||
protected static function labels(): array
|
||||
{
|
||||
return [
|
||||
'france' => 'France',
|
||||
'belgique' => 'Belgique',
|
||||
'luxembourg' => 'Luxembourg',
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Enums/UserRoles.php
Normal file
32
app/Enums/UserRoles.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
use Kwaadpepper\Enum\BaseEnum;
|
||||
|
||||
/**
|
||||
* @method static self superadmin()
|
||||
* @method static self admin()
|
||||
* @method static self marketing()
|
||||
*/
|
||||
|
||||
class UserRoles extends BaseEnum
|
||||
{
|
||||
protected static function values(): array
|
||||
{
|
||||
return [
|
||||
'superadmin' => 'superadmin',
|
||||
'admin' => 'admin',
|
||||
'marketing' => 'marketing'
|
||||
];
|
||||
}
|
||||
|
||||
protected static function labels(): array
|
||||
{
|
||||
return [
|
||||
'superadmin' => trans('Super-Admin'),
|
||||
'admin' => trans('Admin'),
|
||||
'marketing' => trans('Marketing')
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -3,12 +3,8 @@
|
|||
namespace App\Exceptions;
|
||||
|
||||
use App\Http\Resources\StatusResource;
|
||||
use Exception;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
|
||||
use Kwaadpepper\ExceptionHandler\Exceptions\ExceptionHandler;
|
||||
use Throwable;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
|
|
@ -56,12 +52,6 @@ class Handler extends ExceptionHandler
|
|||
if ($request->wantsJson() && $exception instanceof ModelNotFoundException) {
|
||||
return response()->json(new StatusResource(['status' => 'KO', 'code' => 404, 'message' => 'Resource not found.']), 404);
|
||||
}
|
||||
|
||||
// if ($exception instanceof \ErrorException) {
|
||||
// $response = response()->view('errors.500', [], 500);
|
||||
// return $this->toIlluminateResponse($response,$exception);
|
||||
// }
|
||||
|
||||
return parent::render($request, $exception);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Campagne;
|
||||
use App\Coupon;
|
||||
use App\Contact;
|
||||
use App\Panier;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\PanierContent;
|
||||
use App\Statistique;
|
||||
use App\Mur;
|
||||
|
|
@ -13,42 +11,14 @@ use App\Log;
|
|||
use Illuminate\Http\Request;
|
||||
use App\Traits\GenerateBR;
|
||||
use App\Traits\CouponTrait;
|
||||
use App\Http\Controllers;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class AjaxController extends Controller
|
||||
{
|
||||
use GenerateBR;
|
||||
use CouponTrait;
|
||||
|
||||
// ---- Ajoute des coupons à une campagne
|
||||
public function add_coupons_ajax(Request $request)
|
||||
{
|
||||
$camp_id = $request->input('campid');
|
||||
$campagne = Campagne::where('camp_id', $camp_id)->first();
|
||||
$ids = $request->input('ids');
|
||||
|
||||
$coupons = Coupon::find($ids);
|
||||
$campagne->coupons()->attach($coupons);
|
||||
|
||||
return json_encode($coupons);
|
||||
}
|
||||
|
||||
// ---- Efface des coupons d'une campagne
|
||||
public function remove_coupons_ajax(Request $request)
|
||||
{
|
||||
$camp_id = $request->input('campid');
|
||||
$campagne = Campagne::where('camp_id', $camp_id)->first();
|
||||
$coupon_id = $request->input('couponid');
|
||||
$coupon = Coupon::find($coupon_id);
|
||||
|
||||
$campagne->coupons()->detach($coupon_id);
|
||||
|
||||
return json_encode($coupon);
|
||||
}
|
||||
|
||||
// ---- Dépublie un coupon
|
||||
public function unpublish_coupons_ajax(Request $request)
|
||||
public function unpublishCouponsAjax(Request $request)
|
||||
{
|
||||
$coupon_id = $request->input('couponid');
|
||||
$coupon = Coupon::find($coupon_id);
|
||||
|
|
@ -59,7 +29,7 @@ class AjaxController extends Controller
|
|||
}
|
||||
|
||||
// ---- Publie un coupon
|
||||
public function publish_coupons_ajax(Request $request)
|
||||
public function publishCouponsAjax(Request $request)
|
||||
{
|
||||
$coupon_id = $request->input('couponid');
|
||||
$coupon = Coupon::find($coupon_id);
|
||||
|
|
@ -69,31 +39,8 @@ class AjaxController extends Controller
|
|||
return json_encode($coupon);
|
||||
}
|
||||
|
||||
// ---- Dépublie une campagne
|
||||
public function unpublish_camp_ajax(Request $request)
|
||||
{
|
||||
$campid = $request->input('campid');
|
||||
$campagne = Campagne::find($campid);
|
||||
$campagne->camp_published = 0;
|
||||
$campagne->save();
|
||||
|
||||
return json_encode($campagne);
|
||||
}
|
||||
|
||||
// ---- Publie une campagne
|
||||
public function publish_camp_ajax(Request $request)
|
||||
{
|
||||
$campid = $request->input('campid');
|
||||
$campagne = Campagne::find($campid);
|
||||
$campagne->camp_published = 1;
|
||||
$campagne->save();
|
||||
|
||||
return json_encode($campagne);
|
||||
}
|
||||
|
||||
|
||||
// ---- Impression des BR
|
||||
public function impression_ajax(Request $request)
|
||||
public function impressionAjax(Request $request)
|
||||
{
|
||||
|
||||
if ($request->session()->has('coupons')) {
|
||||
|
|
@ -132,7 +79,7 @@ class AjaxController extends Controller
|
|||
$coupons = '<TABLE width="100%" align="center" cellpadding="0" cellspacing="0" border="0">';
|
||||
$coupons .= '<TR><TD width="100%" align="center"><div>';
|
||||
|
||||
if ($campagne->camp_type == 0) { //---- POUR LES MURS
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur())) { //---- POUR LES MURS
|
||||
if (!isset($couponsToPrint)) {
|
||||
die();
|
||||
}
|
||||
|
|
@ -166,7 +113,7 @@ class AjaxController extends Controller
|
|||
$stat->save();
|
||||
}
|
||||
}
|
||||
} elseif ($campagne->camp_type == 1) { //---- POUR LES PANIERS
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::panier())) { //---- POUR LES PANIERS
|
||||
if (!isset($panier)) {
|
||||
die();
|
||||
}
|
||||
|
|
@ -233,7 +180,7 @@ class AjaxController extends Controller
|
|||
$panier->panier_pending = 1;
|
||||
}
|
||||
$panier->save();
|
||||
} elseif ($campagne->camp_type == 2) { //---- POUR LES MURS SANS SELECTION
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::murss())) { //---- POUR LES MURS SANS SELECTION
|
||||
$nbCoupon = 0;
|
||||
$cps = $campagne->coupons()->get();
|
||||
|
||||
|
|
@ -263,7 +210,7 @@ class AjaxController extends Controller
|
|||
$stat->save();
|
||||
}
|
||||
}
|
||||
} elseif ($campagne->camp_type == 3) { //---- POUR LES PANIERS AVEC SELECTION
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::paniers())) { //---- POUR LES PANIERS AVEC SELECTION
|
||||
if (!isset($couponsToPrint)) {
|
||||
die();
|
||||
}
|
||||
|
|
@ -335,12 +282,12 @@ class AjaxController extends Controller
|
|||
$contact = $request->session()->get('contact');
|
||||
}
|
||||
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) {
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur()) || $campagne->camp_type->equals(CampaignTypes::murss())) {
|
||||
if (!isset($contact)) {
|
||||
die();
|
||||
}
|
||||
return redirect(url('/') . '/?refsite=' . $campagne->camp_siteId . '&refcamp=' . $campagne->camp_id . '&hash=' . $contact->contact_hash);
|
||||
} elseif ($campagne->camp_type == 1 || $campagne->camp_type == 3) {
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::panier()) || $campagne->camp_type->equals(CampaignTypes::paniers())) {
|
||||
if ($request->session()->has('panier')) {
|
||||
$panier = $request->session()->get('panier');
|
||||
} else {
|
||||
|
|
@ -349,288 +296,4 @@ class AjaxController extends Controller
|
|||
return redirect(url('/') . '/?basketid=' . $panier->panier_ref);
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Charge les widget d'assistance
|
||||
public function load_widget(Request $request)
|
||||
{
|
||||
if (isset($request->camp_id)) {
|
||||
$camp_id = $request->camp_id;
|
||||
} else {
|
||||
die;
|
||||
}
|
||||
|
||||
if (isset($request->contact_hash)) {
|
||||
$contact_hash = $request->contact_hash;
|
||||
} else {
|
||||
die;
|
||||
}
|
||||
|
||||
$campagne = Campagne::where(['camp_id' => $camp_id])->first();
|
||||
$contact = Contact::where(['contact_hash' => $contact_hash])->first();
|
||||
$coupons = $campagne->coupons;
|
||||
|
||||
foreach ($coupons as $key => $coupon) {
|
||||
if (!$this->isAvailableToPrint($coupon, $campagne)) {
|
||||
$coupons->forget($key);
|
||||
}
|
||||
}
|
||||
|
||||
$allLogs = Log::where(['log_refsite' => $campagne->camp_siteId, 'log_contactId' => $contact->contact_id, 'log_statut' => 'OK'])->orderBy('created_at', 'DESC')->get();
|
||||
$logs = array();
|
||||
foreach ($allLogs as &$l) {
|
||||
$params = json_decode($l->log_params);
|
||||
if ($l->log_action == 3 || $l->log_action == 1) {
|
||||
$l->log_message = json_decode($l->log_message, true);
|
||||
}
|
||||
if (intval($params->refcamp) == $camp_id) {
|
||||
array_push($logs, $l);
|
||||
}
|
||||
}
|
||||
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) { // ---- Pour les types murs
|
||||
foreach ($coupons as &$coupon) {
|
||||
$coupon->isAvailable = $this->isAvailable($coupon, $campagne, $contact);
|
||||
}
|
||||
unset($coupon);
|
||||
|
||||
// Montant total et Nombre réductions disponible
|
||||
$montantDispo = 0;
|
||||
$montantTotal = 0;
|
||||
$nbCoupon = 0;
|
||||
foreach ($coupons as $coupon) {
|
||||
$montantTotal += $coupon->coupon_value;
|
||||
if ($coupon->isAvailable == true) {
|
||||
$montantDispo += $coupon->coupon_value;
|
||||
$nbCoupon++;
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($coupons) == $nbCoupon) {
|
||||
$reset = false;
|
||||
} else {
|
||||
$reset = true;
|
||||
}
|
||||
|
||||
$campagne->url = url('/') . "/?refsite=" . $campagne->camp_siteId . "&refcamp=" . $camp_id . "&hash=" . $contact->contact_hash;
|
||||
|
||||
$returnHTML = view('widgets.mur')
|
||||
->with([
|
||||
'campagne' => $campagne,
|
||||
'reset' => $reset,
|
||||
'montantTotal' => $montantTotal,
|
||||
'montantDispo' => $montantDispo,
|
||||
'logs' => $logs,
|
||||
'contact' => $contact])
|
||||
->renderSections()['widget'];
|
||||
|
||||
return json_encode(array('success' => true, 'html' => $returnHTML));
|
||||
} else { // ---- Pour les types paniers
|
||||
$panier = Panier::where(['panier_campId' => $campagne->camp_id, 'panier_contactId' => $contact->contact_id, 'panier_pending' => 1])->first();
|
||||
if ($panier) {
|
||||
$panier_ref = $panier->panier_ref;
|
||||
foreach ($coupons as &$coupon) {
|
||||
$paniercontent = PanierContent::where(['panier_content_couponId' => $coupon->coupon_id, 'panier_content_panierId' => $panier->panier_id])->first();
|
||||
if ($paniercontent) {
|
||||
$coupon->qty = $paniercontent->panier_content_quantity;
|
||||
} else {
|
||||
$coupon->qty = 0;
|
||||
}
|
||||
}
|
||||
$campagne->url = url('/') . "/?basketid=" . $panier_ref;
|
||||
unset($coupon);
|
||||
} else {
|
||||
$panier_ref = "";
|
||||
foreach ($coupons as &$coupon) {
|
||||
$coupon->qty = 0;
|
||||
}
|
||||
$campagne->url = "Pas d'url disponible (panier non créé)";
|
||||
}
|
||||
|
||||
$returnHTML = view('widgets.panier')
|
||||
->with([
|
||||
'campagne' => $campagne,
|
||||
'contact' => $contact,
|
||||
'panier' => $panier_ref,
|
||||
'logs' => $logs,
|
||||
'coupons' => $coupons
|
||||
])
|
||||
->renderSections()['widget'];
|
||||
return json_encode(array('success' => true, 'html' => $returnHTML));
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Montre les campagnes avec un compte de démo
|
||||
public function show_demo(Request $request)
|
||||
{
|
||||
if (isset($request->camp_id)) {
|
||||
$camp_id = $request->camp_id;
|
||||
} else {
|
||||
die;
|
||||
}
|
||||
|
||||
$campagne = Campagne::where(['camp_id' => $camp_id])->first();
|
||||
$siteId = $campagne->camp_siteId;
|
||||
$demoContact = Contact::where(['contact_siteId' => $siteId, 'contact_ref' => 'DEMO'])->first();
|
||||
|
||||
if (!isset($demoContact)) {
|
||||
$req = new \Illuminate\Http\Request();
|
||||
$req->setMethod('POST');
|
||||
$req->request->add([
|
||||
'refsite' => $siteId,
|
||||
'refadherent' => 'DEMO',
|
||||
'prenom' => 'Compte',
|
||||
'nom' => 'Démonstration',
|
||||
'email' => 'demo@demo.fr',
|
||||
'code_postal' => '72000',
|
||||
'commune' => 'Le Mans',
|
||||
'pays' => 250
|
||||
]);
|
||||
|
||||
$contact = new Controllers\ContactController();
|
||||
$res = $contact->updateContact($req);
|
||||
$demoContact = Contact::where(['contact_siteId' => $siteId, 'contact_ref' => 'DEMO'])->first();
|
||||
}
|
||||
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) {
|
||||
// ---- DEMONSTRATION POUR LES MURS
|
||||
$myRequest = new \Illuminate\Http\Request();
|
||||
$myRequest->setMethod('POST');
|
||||
$myRequest->request->add(['refcamp' => $camp_id, 'refadherent' => 'DEMO', 'admin' => 1]);
|
||||
|
||||
// ---- EFFACER LES CONTROLES SI EXISTANT
|
||||
$mur = new Controllers\MurController();
|
||||
$res = $mur->deleteControlContact($myRequest);
|
||||
|
||||
// ---- RETOURNE l'URL
|
||||
$url = "/?refsite=" . $siteId . "&refcamp=" . $camp_id . "&hash=" . $demoContact->contact_hash;
|
||||
return json_encode($url);
|
||||
} else {
|
||||
// ---- DEMONSTRATION POUR LES PANIERS
|
||||
$panier = Panier::where(['panier_campId' => $camp_id, 'panier_contactId' => $demoContact->contact_id, 'panier_pending' => 1])->first();
|
||||
|
||||
if ($panier) {
|
||||
$url = "/?basketid=" . $panier->panier_ref;
|
||||
} else {
|
||||
// --- Pas de panier Création d'un nouveau
|
||||
// --- Récuperation des coupons de la campagne
|
||||
$coupons = $campagne->coupons()->get();
|
||||
|
||||
foreach ($coupons as $key => $coupon) {
|
||||
if (!$this->isAvailableToPrint($coupon, $campagne)) {
|
||||
$coupons->forget($key);
|
||||
}
|
||||
}
|
||||
|
||||
$couponsTotal = sizeof($coupons);
|
||||
$couponsAdded = 0;
|
||||
$basketContent = "";
|
||||
|
||||
foreach ($coupons as $coupon) {
|
||||
$basketContent .= "(1)" . $coupon->coupon_code;
|
||||
$couponsAdded++;
|
||||
if ($couponsAdded != $couponsTotal) {
|
||||
$basketContent .= ",";
|
||||
}
|
||||
}
|
||||
// --- création de l'objet request
|
||||
$req = new \Illuminate\Http\Request();
|
||||
$req->setMethod('POST');
|
||||
$req->request->add([
|
||||
'refsite' => $siteId,
|
||||
'refcamp' => $camp_id,
|
||||
'refadherent' => $demoContact->contact_ref,
|
||||
'nom' => $demoContact->contact_nom,
|
||||
'prenom' => $demoContact->contact_prenom,
|
||||
'email' => $demoContact->contact_email,
|
||||
'code_postal' => $demoContact->contact_cp,
|
||||
'commune' => $demoContact->contact_ville,
|
||||
'pays' => $demoContact->contact_country,
|
||||
'panier' => $basketContent,
|
||||
'admin' => 1
|
||||
]);
|
||||
$panier = new Controllers\PanierController();
|
||||
$res = $panier->updateBasket($req);
|
||||
$url = "/?basketid=" . $res->original['Panier']->Panier;
|
||||
}
|
||||
return json_encode($url);
|
||||
}
|
||||
}
|
||||
|
||||
// ---- MAINTENANCE : CLEAN DE LA BDD
|
||||
|
||||
// ---- Fonction de récap des contacts que l'on va effacer
|
||||
public function get_clean_contacts_detail(Request $request)
|
||||
{
|
||||
$contacts = Contact::where('contact_updatedate', '<', Carbon::now()->subMonth())->get();
|
||||
$date = Carbon::now();
|
||||
$contact_count = 0;
|
||||
foreach ($contacts as $contact) {
|
||||
$paniers = $contact->paniers()->get();
|
||||
$canbeDeleted = true;
|
||||
foreach ($paniers as $panier) {
|
||||
if ($panier->panier_pending == 1) {
|
||||
$canbeDeleted = false;
|
||||
}
|
||||
}
|
||||
if ($canbeDeleted) {
|
||||
$contact_count++;
|
||||
//$testcontact .= $contact->contact_id.", ";
|
||||
}
|
||||
}
|
||||
return json_encode(['date' => $date, 'contact_count' => $contact_count]);
|
||||
}
|
||||
|
||||
// ---- Fonction de nettoyage de la base contact
|
||||
public function clean_contacts(Request $request)
|
||||
{
|
||||
$contacts = Contact::where('contact_updatedate', '<', Carbon::now()->subMonth())->get();
|
||||
$testcontact = "";
|
||||
foreach ($contacts as $contact) {
|
||||
$paniers = $contact->paniers()->get();
|
||||
$canbeDeleted = true;
|
||||
foreach ($paniers as $panier) {
|
||||
if ($panier->panier_pending == 1) {
|
||||
$canbeDeleted = false;
|
||||
}
|
||||
}
|
||||
$murs = $contact->murs()->get();
|
||||
if (isset($murs) && !empty($murs)) {
|
||||
$canbeDeleted = false;
|
||||
}
|
||||
if ($canbeDeleted) {
|
||||
$contact->delete();
|
||||
$testcontact .= $contact->contact_id . ", ";
|
||||
}
|
||||
}
|
||||
return json_encode($testcontact);
|
||||
}
|
||||
|
||||
// ---- Fonction de nettoyage de la base mur
|
||||
public function clean_walls(Request $request)
|
||||
{
|
||||
$murs = Mur::where('mur_createdate', '<', Carbon::now()->subYear())->where(['mur_deleted' => 1])->get();
|
||||
$testmur = "";
|
||||
foreach ($murs as $mur) {
|
||||
$mur->delete();
|
||||
$testmur .= $mur->mur_id . ", ";
|
||||
}
|
||||
return json_encode($testmur);
|
||||
}
|
||||
|
||||
// ---- Fonction de nettoyage de la base panier et panierContent
|
||||
public function clean_baskets(Request $request)
|
||||
{
|
||||
$paniers = Panier::where('panier_createdate', '<', Carbon::now()->subMonth(2))->where(['panier_pending' => 0])->get();
|
||||
$testpanier = "";
|
||||
foreach ($paniers as $panier) {
|
||||
$testpanier .= $panier->panier_id . ": ";
|
||||
$panierContents = $panier->panierContents()->get();
|
||||
foreach ($panierContents as $panierContent) {
|
||||
$testpanier .= $panierContent->panier_content_id . ', ';
|
||||
$panierContent->delete();
|
||||
}
|
||||
$panier->delete();
|
||||
}
|
||||
return json_encode($testpanier);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api\v1;
|
|||
|
||||
use App\Campagne;
|
||||
use App\Coupon;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Coupons\PrintRequest;
|
||||
use App\Http\Resources\StatusResource;
|
||||
|
|
@ -13,7 +14,6 @@ use App\Statistique;
|
|||
use App\Traits\CouponTrait;
|
||||
use App\Traits\GenerateBR;
|
||||
use PDF;
|
||||
|
||||
use LDC\LDCCRM\CrmApiV2;
|
||||
|
||||
class CouponsController extends Controller
|
||||
|
|
@ -29,11 +29,11 @@ class CouponsController extends Controller
|
|||
$couponsToPrint = explode(",", $datas['coupons']);
|
||||
|
||||
if ($campagne->site->crm_token === null) {
|
||||
return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Token is missing for site_id : '. $campagne->site->site_id]);
|
||||
return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Token is missing for site_id : ' . $campagne->site->site_id]);
|
||||
}
|
||||
|
||||
if ($campagne->site->crm_password === null) {
|
||||
return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Password is missing for site_id : '. $campagne->site->site_id]);
|
||||
return new StatusResource(['status' => 'KO', 'code' => 500, 'message' => 'CRM Password is missing for site_id : ' . $campagne->site->site_id]);
|
||||
}
|
||||
|
||||
if (empty($couponsToPrint)) {
|
||||
|
|
@ -47,8 +47,7 @@ class CouponsController extends Controller
|
|||
* @var \LDC\LDCCRM\Models\Customer
|
||||
*/
|
||||
$crmInfos = $crm->getCustomer($customer->hashcode);
|
||||
|
||||
}catch (\Exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
// TODO : Update error message
|
||||
return new StatusResource(['status' => 'KO', 'code' => 422, 'message' => 'Customer not found.']);
|
||||
}
|
||||
|
|
@ -61,7 +60,7 @@ class CouponsController extends Controller
|
|||
// TODO : Logs
|
||||
|
||||
$coupons = [];
|
||||
if ($campagne->camp_type == 0) { //---- POUR LES MURS
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur())) { //---- POUR LES MURS
|
||||
foreach ($couponsToPrint as $key => $coupon_code) {
|
||||
$cp = Coupon::where(['coupon_code' => $coupon_code])->first();
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api\v1;
|
|||
|
||||
use App\Calendrier;
|
||||
use App\Campagne;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Murs\MursShowRequest;
|
||||
use App\Http\Resources\CouponsResource;
|
||||
|
|
@ -22,7 +23,7 @@ class MurController extends Controller
|
|||
if ($campagne->camp_published === 0) {
|
||||
return new StatusResource(['status' => 'KO', 'code' => 404, 'message' => 'Campaign not found.']);
|
||||
}
|
||||
if ($campagne->camp_type !== 0) {
|
||||
if (!$campagne->camp_type->equals(CampaignTypes::mur())) {
|
||||
return new StatusResource(['status' => 'KO', 'code' => 403, 'message' => 'Campaign type error.']);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace App\Http\Controllers\Auth;
|
|||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
|
|
|
|||
22
app/Http/Controllers/BrandChangeController.php
Normal file
22
app/Http/Controllers/BrandChangeController.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\BrandChange\InvokeBrandChange;
|
||||
|
||||
class BrandChangeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\InvokeBrandChange $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(InvokeBrandChange $request)
|
||||
{
|
||||
// TODO : Revoir le passage du site
|
||||
$site = \App\Site::find($request->site_id);
|
||||
session()->put('site', $site);
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
|
@ -6,19 +6,26 @@ use App\Campagne;
|
|||
use App\Site;
|
||||
use App\Coupon;
|
||||
use App\Contact;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Http\Requests\Campaign\AddCouponsCampaign;
|
||||
use App\Http\Requests\Campaign\DeleteCampaign;
|
||||
use App\Http\Requests\Campaign\RemoveCouponCampaign;
|
||||
use App\Http\Requests\Campaign\StoreCampaign;
|
||||
use App\Http\Requests\Campaign\UpdateCampaign;
|
||||
use App\Mur;
|
||||
use App\Panier;
|
||||
use App\PanierContent;
|
||||
use App\Notification;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use App\Traits\CouponTrait;
|
||||
use Response;
|
||||
use App\Http\Controllers;
|
||||
use App\Http\Requests\Campaign\RemoveNotifCampaign;
|
||||
use App\Http\Requests\Campaign\ShowDemoCampaign;
|
||||
use App\Http\Requests\Campaign\StoreNotifCampaign;
|
||||
use App\Panier;
|
||||
|
||||
class CampagneController extends Controller
|
||||
{
|
||||
//use BarcodeGenerator;
|
||||
use CouponTrait;
|
||||
|
||||
/**
|
||||
|
|
@ -28,8 +35,11 @@ class CampagneController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
$campagnes = Campagne::where('camp_siteId', session()->get('site')->site_id)->get();
|
||||
return view('campagne.index')->with('campagnes', $campagnes);
|
||||
// TODO : Revoir le passage du site id ?
|
||||
$siteId = session()->get('site')->site_id;
|
||||
|
||||
$campagnes = Campagne::where('camp_siteId', $siteId)->get();
|
||||
return view('campagnes.index')->with('campagnes', $campagnes);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -39,38 +49,32 @@ class CampagneController extends Controller
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('campagne.create');
|
||||
return view('campagnes.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param StoreCampaign $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store(StoreCampaign $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');
|
||||
}
|
||||
$campagne->camp_siteId = session()->get('site')->site_id;
|
||||
|
||||
// TODO : Revoir le passage du site
|
||||
$site = session()->get('site');
|
||||
|
||||
$campagne = new Campagne();
|
||||
$campagne->fill(array_merge($request->validated(), ['camp_siteId' => $site->site_id]));
|
||||
$campagne->save();
|
||||
|
||||
if ($site->campagnes()->save($campagne)) {
|
||||
//File::makeDirectory(public_path('/landings/' . $campagne->camp_id));
|
||||
if ($campagne->camp_type == 0) {
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur())) {
|
||||
File::copyDirectory(resource_path('/views/template/mur'), public_path('/landings/' . $campagne->camp_id));
|
||||
} elseif ($campagne->camp_type == 1) {
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::panier())) {
|
||||
File::copyDirectory(resource_path('/views/template/panier'), public_path('/landings/' . $campagne->camp_id));
|
||||
} elseif ($campagne->camp_type == 2) {
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::murss())) {
|
||||
File::copyDirectory(resource_path('/views/template/murnoselection'), public_path('/landings/' . $campagne->camp_id));
|
||||
} elseif ($campagne->camp_type == 3) {
|
||||
} elseif ($campagne->camp_type->equals(CampaignTypes::paniers())) {
|
||||
File::copyDirectory(resource_path('/views/template/panierselection'), public_path('/landings/' . $campagne->camp_id));
|
||||
}
|
||||
}
|
||||
|
|
@ -86,45 +90,35 @@ class CampagneController extends Controller
|
|||
*/
|
||||
public function edit(Campagne $campagne)
|
||||
{
|
||||
$site = Site::findOrFail(session()->get('site')->id)->first();
|
||||
// TODO : Revoir le passage du site id
|
||||
$siteId = session()->get('site')->id;
|
||||
|
||||
$couponsLinked = $campagne->coupons()->get();
|
||||
$campid = $campagne->camp_id;
|
||||
$couponsNotLinked = Coupon::whereDoesntHave('campagnes', function ($q) use ($campagne) {
|
||||
$q->where('campagne_id', $campagne->camp_id);
|
||||
})->where('coupon_siteId', $siteId)->where('coupon_published', 1)->get();
|
||||
|
||||
$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]);
|
||||
return view('campagnes.edit', ['campagne' => $campagne, 'coupons' => $couponsNotLinked]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param UpdateCampaign $request
|
||||
* @param \App\Campagne $campagne
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Campagne $campagne)
|
||||
public function update(UpdateCampaign $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();
|
||||
$campagne->fill($request->validated());
|
||||
|
||||
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');
|
||||
if ($campagne->save()) {
|
||||
session()->flash('update_ok', __('La campagne a bien été modifiée'));
|
||||
} else {
|
||||
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
|
||||
session()->flash('update_nok', __("Erreur lors de l'enregistrement"));
|
||||
}
|
||||
|
||||
return redirect()->route('campagne.edit', ['campagne' => $campagne]);
|
||||
|
|
@ -133,45 +127,60 @@ class CampagneController extends Controller
|
|||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Campagne $campagne
|
||||
* @param DeleteCampaign $request
|
||||
* @param \App\Campagne $campaign
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Campagne $campagne)
|
||||
public function destroy(DeleteCampaign $request, 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);
|
||||
return view('campagnes.edit')->with('campagne', $campagne);
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Ajoute des coupons à une campagne
|
||||
public function addCoupons(AddCouponsCampaign $request, Campagne $campaign)
|
||||
{
|
||||
$coupons = Coupon::find($request->ids);
|
||||
$campaign->coupons()->attach($coupons);
|
||||
return json_encode($coupons);
|
||||
}
|
||||
|
||||
// ---- Efface des coupons d'une campagne
|
||||
public function removeCoupon(RemoveCouponCampaign $request, Campagne $campaign, Coupon $coupon)
|
||||
{
|
||||
$campaign->coupons()->detach($coupon);
|
||||
return json_encode($coupon);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function saveNotification(Request $request)
|
||||
public function saveNotification(StoreNotifCampaign $request, Campagne $campaign)
|
||||
{
|
||||
$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->fill(array_merge($request->validated(), ['notif_campId' => $campaign->camp_id]));
|
||||
$notification->save();
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RemoveNotifCampaign $request
|
||||
* @param \App\Notification $notification
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function deleteNotification($id)
|
||||
public function deleteNotification(RemoveNotifCampaign $request, Notification $notification)
|
||||
{
|
||||
$notification = Notification::find($id);
|
||||
if ($notification->delete()) {
|
||||
return redirect()->back();
|
||||
} else {
|
||||
|
|
@ -180,23 +189,104 @@ class CampagneController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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();
|
||||
// }
|
||||
// }
|
||||
// ---- Montre les campagnes avec un compte de démo
|
||||
public function showDemo(ShowDemoCampaign $request, Campagne $campaign)
|
||||
{
|
||||
$siteId = $campaign->camp_siteId;
|
||||
$demoContact = Contact::where(['contact_siteId' => $siteId, 'contact_ref' => 'DEMO'])->first();
|
||||
|
||||
if (!isset($demoContact)) {
|
||||
$req = new \Illuminate\Http\Request();
|
||||
$req->setMethod('POST');
|
||||
$req->request->add([
|
||||
'refsite' => $siteId,
|
||||
'refadherent' => 'DEMO',
|
||||
'prenom' => 'Compte',
|
||||
'nom' => 'Démonstration',
|
||||
'email' => 'demo@demo.fr',
|
||||
'code_postal' => '72000',
|
||||
'commune' => 'Le Mans',
|
||||
'pays' => 250
|
||||
]);
|
||||
|
||||
$contact = new Controllers\ContactController();
|
||||
$res = $contact->updateContact($req);
|
||||
$demoContact = Contact::where(['contact_siteId' => $siteId, 'contact_ref' => 'DEMO'])->first();
|
||||
}
|
||||
|
||||
if ($campaign->camp_type->equals(CampaignTypes::mur()) || $campaign->camp_type->equals(CampaignTypes::murss())) {
|
||||
// ---- DEMONSTRATION POUR LES MURS
|
||||
$myRequest = new \Illuminate\Http\Request();
|
||||
$myRequest->setMethod('POST');
|
||||
$myRequest->request->add(['refcamp' => $campaign->camp_id, 'refadherent' => 'DEMO', 'admin' => 1]);
|
||||
|
||||
// ---- EFFACER LES CONTROLES SI EXISTANT
|
||||
$mur = new Controllers\MurController();
|
||||
$res = $mur->deleteControlContact($myRequest);
|
||||
|
||||
// ---- RETOURNE l'URL
|
||||
$url = "/?refsite=" . $siteId . "&refcamp=" . $campaign->camp_id . "&hash=" . $demoContact->contact_hash;
|
||||
return json_encode($url);
|
||||
} else {
|
||||
// ---- DEMONSTRATION POUR LES PANIERS
|
||||
$panier = Panier::where(['panier_campId' => $campaign->camp_id, 'panier_contactId' => $demoContact->contact_id, 'panier_pending' => 1])->first();
|
||||
|
||||
if ($panier) {
|
||||
$url = "/?basketid=" . $panier->panier_ref;
|
||||
} else {
|
||||
// --- Pas de panier Création d'un nouveau
|
||||
// --- Récuperation des coupons de la campagne
|
||||
$coupons = $campaign->coupons()->get();
|
||||
|
||||
foreach ($coupons as $key => $coupon) {
|
||||
if (!$this->isAvailableToPrint($coupon, $campaign)) {
|
||||
$coupons->forget($key);
|
||||
}
|
||||
}
|
||||
|
||||
$couponsTotal = count($coupons);
|
||||
$couponsAdded = 0;
|
||||
$basketContent = "";
|
||||
|
||||
foreach ($coupons as $coupon) {
|
||||
$basketContent .= "(1)" . $coupon->coupon_code;
|
||||
$couponsAdded++;
|
||||
if ($couponsAdded != $couponsTotal) {
|
||||
$basketContent .= ",";
|
||||
}
|
||||
}
|
||||
// --- création de l'objet request
|
||||
$req = new \Illuminate\Http\Request();
|
||||
$req->setMethod('POST');
|
||||
$req->request->add([
|
||||
'refsite' => $siteId,
|
||||
'refcamp' => $campaign->camp_id,
|
||||
'refadherent' => $demoContact->contact_ref,
|
||||
'nom' => $demoContact->contact_nom,
|
||||
'prenom' => $demoContact->contact_prenom,
|
||||
'email' => $demoContact->contact_email,
|
||||
'code_postal' => $demoContact->contact_cp,
|
||||
'commune' => $demoContact->contact_ville,
|
||||
'pays' => $demoContact->contact_country,
|
||||
'panier' => $basketContent,
|
||||
'admin' => 1
|
||||
]);
|
||||
$panier = new \App\Http\Controllers\PanierController();
|
||||
$res = $panier->updateBasket($req);
|
||||
$url = "/?basketid=" . $res->original['Panier']->Panier;
|
||||
}
|
||||
return json_encode($url);
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Dépublie une campagne
|
||||
public function togglePublish(Request $request, Campagne $campaign, int $state)
|
||||
{
|
||||
$campaign->camp_published = $state;
|
||||
$campaign->save();
|
||||
|
||||
return json_encode($campaign);
|
||||
}
|
||||
|
||||
public function getDetail(Request $request)
|
||||
{
|
||||
|
|
@ -208,7 +298,7 @@ class CampagneController extends Controller
|
|||
$refcamp = $request->refcamp;
|
||||
$campagne = Campagne::where(['camp_id' => $refcamp])->first();
|
||||
if (!$campagne) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -221,7 +311,7 @@ class CampagneController extends Controller
|
|||
$refsite = $request->refsite;
|
||||
$site = Site::where(['site_id' => $refsite])->first();
|
||||
if (!$site) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 102,
|
||||
'Message' => 'Le site n\'existe pas'
|
||||
|
|
@ -232,7 +322,7 @@ class CampagneController extends Controller
|
|||
}
|
||||
|
||||
if ($campagne->camp_siteId != $site->site_id) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 108,
|
||||
'Message' => 'Pas de campagne pour ce site'
|
||||
|
|
@ -240,7 +330,7 @@ class CampagneController extends Controller
|
|||
}
|
||||
|
||||
if ($error) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -249,16 +339,16 @@ class CampagneController extends Controller
|
|||
|
||||
$enligne = ($campagne->camp_published == 1) ? "oui" : "non";
|
||||
switch ($campagne->camp_type) {
|
||||
case 0:
|
||||
case CampaignTypes::mur():
|
||||
$type = "mur";
|
||||
break;
|
||||
case 1:
|
||||
case CampaignTypes::panier():
|
||||
$type = "panier";
|
||||
break;
|
||||
case 2:
|
||||
case CampaignTypes::murss():
|
||||
$type = "mur sans sélection";
|
||||
break;
|
||||
case 3:
|
||||
case CampaignTypes::paniers():
|
||||
$type = "panier avec sélection";
|
||||
break;
|
||||
}
|
||||
|
|
@ -319,7 +409,7 @@ class CampagneController extends Controller
|
|||
$data['Coupons'][] = $codeTraitement;
|
||||
}
|
||||
}
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Détails Campagne' => $data
|
||||
]);
|
||||
|
|
@ -333,7 +423,7 @@ class CampagneController extends Controller
|
|||
$refcamp = $request->refcamp;
|
||||
$campagne = Campagne::where(['camp_id' => $refcamp])->first();
|
||||
if (!$campagne) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -346,7 +436,7 @@ class CampagneController extends Controller
|
|||
$refsite = $request->refsite;
|
||||
$site = Site::where(['site_id' => $refsite])->first();
|
||||
if (!$site) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 102,
|
||||
'Message' => 'Le site n\'existe pas'
|
||||
|
|
@ -360,7 +450,7 @@ class CampagneController extends Controller
|
|||
$refadherent = $request->refadherent;
|
||||
$contact = Contact::where(['contact_siteId' => $refsite, 'contact_ref' => $refadherent])->first();
|
||||
if (!$contact) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 104,
|
||||
'Message' => 'Le contact n\'existe pas'
|
||||
|
|
@ -371,7 +461,7 @@ class CampagneController extends Controller
|
|||
}
|
||||
|
||||
if ($error) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -404,6 +494,6 @@ class CampagneController extends Controller
|
|||
$data['Codes traitement'][] = $codeTraitement;
|
||||
}
|
||||
}
|
||||
return Response::json($data);
|
||||
return response()->json($data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ChangeMarqueController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$siteId = $request->input('site_id');
|
||||
$currentRoute = $request->input('current_route');
|
||||
$site = \App\Site::findOrFail($siteId);
|
||||
session()->put('site', $site);
|
||||
|
||||
return redirect('/bo/' . $currentRoute);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,14 +4,21 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\Contact;
|
||||
use App\Site;
|
||||
use App\Campagne;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Http\Requests\Contact\LoadWidgetContact;
|
||||
use App\Http\Requests\Contact\SearchContact;
|
||||
use App\Http\Requests\Contact\StoreContact;
|
||||
use App\Http\Requests\Contact\UpdateContact;
|
||||
use App\Log;
|
||||
use App\Panier;
|
||||
use App\Campagne;
|
||||
use Response;
|
||||
use App\PanierContent;
|
||||
use App\Traits\CouponTrait;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ContactController extends Controller
|
||||
{
|
||||
use CouponTrait;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
|
|
@ -20,46 +27,34 @@ class ContactController extends Controller
|
|||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)->orderBy('contact_createdate', 'DESC')->take(10)->get();
|
||||
|
||||
return view('contact.index')->with('contacts', $contacts)->with('search', false);
|
||||
return view('contact.index')->with('search', false);
|
||||
}
|
||||
|
||||
|
||||
public function search_contact(Request $request)
|
||||
public function search(SearchContact $request)
|
||||
{
|
||||
session()->put('active_route', 'contact');
|
||||
$page = $request->input('page');
|
||||
$name = $request->input('searchName');
|
||||
$firstname = $request->input('searchFirstname');
|
||||
$email = $request->input('searchEmail');
|
||||
$cp = $request->input('searchCp');
|
||||
$ville = $request->input('searchVille');
|
||||
$country = $request->input('searchCountry');
|
||||
session()->put('active_route', 'contact');
|
||||
|
||||
if (isset($name) || isset($firstname) || isset($email) || isset($cp) || isset($ville) || isset($country)) {
|
||||
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)
|
||||
->searchFirstname($firstname)
|
||||
->searchName($name)
|
||||
->searchEmail($email)
|
||||
->searchCp($cp)
|
||||
->searchVille($ville)
|
||||
->searchCountry($country)
|
||||
->paginate(2, ['*'], 'page', $page);
|
||||
$searchData = array(
|
||||
'name' => $name,
|
||||
'firstname' => $firstname,
|
||||
'email' => $email,
|
||||
'cp' => $cp,
|
||||
'ville' => $ville,
|
||||
'pays' => $country
|
||||
);
|
||||
return view('contact.index')->with('contacts', $contacts)->with('search', true)->with('searchData', $searchData);
|
||||
} else {
|
||||
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)->orderBy('contact_createdate', 'DESC')->take(10)->get();
|
||||
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)
|
||||
->searchFirstname($request->searchFirstname)
|
||||
->searchName($request->searchName)
|
||||
->searchEmail($request->searchEmail)
|
||||
->searchCp($request->searchCp)
|
||||
->searchVille($request->searchVille)
|
||||
->searchCountry($request->searchCountry)
|
||||
->orderBy('contact_createdate', 'DESC')
|
||||
->paginate(15, ['*'], 'page', $request->page);
|
||||
|
||||
return view('contact.index')->with('contacts', $contacts)->with('search', false);
|
||||
}
|
||||
$searchData = array(
|
||||
'name' => $request->searchName,
|
||||
'firstname' => $request->searchFirstname,
|
||||
'email' => $request->searchEmail,
|
||||
'cp' => $request->searchCp,
|
||||
'ville' => $request->searchVille,
|
||||
'pays' => $request->searchCountry
|
||||
);
|
||||
|
||||
return view('contact.index')->with('contacts', $contacts)->with('search', true)->with('searchData', $searchData);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -75,42 +70,21 @@ class ContactController extends Controller
|
|||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param StoreContact $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store(StoreContact $request)
|
||||
{
|
||||
$validatedData = $request->validate([
|
||||
'contact_ref' => 'required|unique:contact',
|
||||
'contact_nom' => 'required',
|
||||
'contact_prenom' => 'required',
|
||||
'contact_email' => 'required',
|
||||
'contact_cp' => 'required',
|
||||
'contact_ville' => 'required',
|
||||
'contact_country' => 'required'
|
||||
]);
|
||||
|
||||
$contact = new Contact();
|
||||
$contact->contact_nom = $request->input('contact_nom');
|
||||
$contact->contact_prenom = $request->input('contact_prenom');
|
||||
$contact->contact_ref = $request->input('contact_ref');
|
||||
$contact->contact_email = $request->input('contact_email');
|
||||
$contact->contact_cp = $request->input('contact_cp');
|
||||
$contact->contact_ville = $request->input('contact_ville');
|
||||
$contact->contact_country = $request->input('contact_country');
|
||||
$contact->contact_hash = strtoupper(md5(uniqid(time(), true)));
|
||||
|
||||
//$site = Site::findOrFail(session()->get('site')->id)->first();
|
||||
// TODO : Revoir le passage du site
|
||||
$site = session()->get('site');
|
||||
|
||||
$contact = new Contact();
|
||||
$contact->fill($request->validated());
|
||||
$contact->contact_hash = strtoupper(md5(uniqid(time(), true)));
|
||||
$contact->contact_siteId = $site->site_id;
|
||||
|
||||
$contact->save();
|
||||
|
||||
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)->orderBy('contact_createdate', 'DESC')->take(10)->get();
|
||||
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
|
||||
|
||||
return view('contact.edit', ['contact' => $contact, 'created' => true, 'contacts' => $contacts, 'campagnes' => $campagnes]);
|
||||
return redirect()->route('contact.edit', ['contact' => $contact]);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -132,44 +106,39 @@ class ContactController extends Controller
|
|||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param UpdateContact $request
|
||||
* @param \App\Contact $contact
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Contact $contact)
|
||||
public function update(UpdateContact $request, Contact $contact)
|
||||
{
|
||||
$validatedData = $request->validate([
|
||||
'contact_ref' => 'required',
|
||||
'contact_nom' => 'required',
|
||||
'contact_prenom' => 'required',
|
||||
'contact_email' => 'required',
|
||||
'contact_cp' => 'required',
|
||||
'contact_ville' => 'required',
|
||||
'contact_country' => 'required'
|
||||
]);
|
||||
|
||||
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
|
||||
if ($contact->update($request->all())) {
|
||||
session()->flash('update_ok', 'La campagne a bien été modifiée');
|
||||
$contact->fill($request->validated());
|
||||
if ($contact->save()) {
|
||||
session()->flash('update_ok', __('La campagne a bien été modifiée'));
|
||||
} else {
|
||||
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
|
||||
session()->flash('update_nok', "Erreur lors de l'enregistrement");
|
||||
}
|
||||
|
||||
return redirect()->route('contact.edit', ['contact' => $contact]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Contact $contact
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Contact $contact)
|
||||
{
|
||||
if ($contact->delete()) {
|
||||
return redirect()->route('contact.index');
|
||||
} else {
|
||||
session()->flash('delete_nok', __('Erreur lors de la suppression'));
|
||||
redirect()->route('contact.edit', ['contact' => $contact]);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateContact(Request $request)
|
||||
{
|
||||
if (isset($request->admin)) {
|
||||
$source = 'ADMIN';
|
||||
} else {
|
||||
$source = 'API';
|
||||
}
|
||||
// ---- INIT du log
|
||||
// $log = new Log();
|
||||
// $log->log_action = config('constants.updatecontact');
|
||||
// $log->log_source = $source;
|
||||
|
||||
$error = false;
|
||||
// ---- Contrôle des paramètres
|
||||
if (isset($request->refadherent) && $request->refadherent != "") {
|
||||
|
|
@ -219,11 +188,7 @@ class ContactController extends Controller
|
|||
}
|
||||
|
||||
if ($error) {
|
||||
// $log->log_params = json_encode(['refadherent' => $request->refadherent, 'refsite'=>$request->refsite, 'nom' => $request->nom, 'prenom' => $request->prenom, 'email' => $request->email, 'code postal' => $request->code_postal, 'commune' => $request->commune]);
|
||||
// $log->log_statut = 'NOK';
|
||||
// $log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
// $log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -262,12 +227,7 @@ class ContactController extends Controller
|
|||
$contact->contact_hash = strtoupper(md5(uniqid(time(), true)));
|
||||
}
|
||||
} else {
|
||||
// $log->log_params = json_encode(['refadherent' => $request->refadherent, 'refsite'=>$request->refsite, 'nom' => $request->nom, 'prenom' => $request->prenom, 'email' => $request->email, 'code postal' => $request->code_postal, 'commune' => $request->commune]);
|
||||
// $log->log_refsite = $request->refsite;
|
||||
// $log->log_statut = 'NOK';
|
||||
// $log->log_message = "Le site spécifié n'existe pas";
|
||||
// $log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 102,
|
||||
'Message' => 'Le site spécifié n\'existe pas'
|
||||
|
|
@ -276,17 +236,12 @@ class ContactController extends Controller
|
|||
}
|
||||
|
||||
if ($contact->save()) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'contact' => $contact
|
||||
]);
|
||||
} else {
|
||||
// $log->log_params = json_encode(['refadherent' => $request->refadherent, 'refsite'=>$request->refsite, 'nom' => $request->nom, 'prenom' => $request->prenom, 'email' => $request->email, 'code postal' => $request->code_postal, 'commune' => $request->commune]);
|
||||
// $log->log_refsite = $request->refsite;
|
||||
// $log->log_statut = 'NOK';
|
||||
// $log->log_message = "Une erreur est survenue";
|
||||
// $log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 109,
|
||||
'Message' => 'Une erreur est survenue'
|
||||
|
|
@ -294,22 +249,101 @@ class ContactController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\Contact $contact
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Contact $contact)
|
||||
public function loadWidget(LoadWidgetContact $request, Contact $contact)
|
||||
{
|
||||
if ($contact->delete()) {
|
||||
return redirect(route('contact.index'));
|
||||
$camp_id = $request->camp_id;
|
||||
$campagne = Campagne::where(['camp_id' => $camp_id])->first();
|
||||
$coupons = $campagne->coupons;
|
||||
|
||||
foreach ($coupons as $key => $coupon) {
|
||||
if (!$this->isAvailableToPrint($coupon, $campagne)) {
|
||||
$coupons->forget($key);
|
||||
}
|
||||
}
|
||||
|
||||
$allLogs = Log::where(['log_refsite' => $campagne->camp_siteId, 'log_contactId' => $contact->contact_id, 'log_statut' => 'OK'])->orderBy('created_at', 'DESC')->get();
|
||||
$logs = array();
|
||||
foreach ($allLogs as &$l) {
|
||||
$params = json_decode($l->log_params);
|
||||
if ($l->log_action == 3 || $l->log_action == 1) {
|
||||
$l->log_message = json_decode($l->log_message, true);
|
||||
}
|
||||
if (intval($params->refcamp) == $camp_id) {
|
||||
array_push($logs, $l);
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Pour les types murs
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur()) || $campagne->camp_type->equals(CampaignTypes::murss())) {
|
||||
foreach ($coupons as &$coupon) {
|
||||
$coupon->isAvailable = $this->isAvailable($coupon, $campagne, $contact);
|
||||
}
|
||||
unset($coupon);
|
||||
|
||||
// Montant total et Nombre réductions disponible
|
||||
$montantDispo = 0;
|
||||
$montantTotal = 0;
|
||||
$nbCoupon = 0;
|
||||
foreach ($coupons as $coupon) {
|
||||
$montantTotal += $coupon->coupon_value;
|
||||
if ($coupon->isAvailable == true) {
|
||||
$montantDispo += $coupon->coupon_value;
|
||||
$nbCoupon++;
|
||||
}
|
||||
}
|
||||
|
||||
if (count($coupons) === $nbCoupon) {
|
||||
$reset = false;
|
||||
} else {
|
||||
$reset = true;
|
||||
}
|
||||
|
||||
$campagne->url = url('/') . "/?refsite=" . $campagne->camp_siteId . "&refcamp=" . $camp_id . "&hash=" . $contact->contact_hash;
|
||||
|
||||
$returnHTML = view('widgets.mur')
|
||||
->with([
|
||||
'campagne' => $campagne,
|
||||
'reset' => $reset,
|
||||
'montantTotal' => $montantTotal,
|
||||
'montantDispo' => $montantDispo,
|
||||
'logs' => $logs,
|
||||
'contact' => $contact])
|
||||
->renderSections()['widget'];
|
||||
|
||||
return json_encode(array('success' => true, 'html' => $returnHTML));
|
||||
} else {
|
||||
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
||||
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
|
||||
return view('contact.edit', ['contact' => $contact, 'campagnes' => $campagnes]);
|
||||
// ---- Pour les types paniers
|
||||
$panier = Panier::where(['panier_campId' => $campagne->camp_id, 'panier_contactId' => $contact->contact_id, 'panier_pending' => 1])->first();
|
||||
if ($panier) {
|
||||
$panier_ref = $panier->panier_ref;
|
||||
foreach ($coupons as &$coupon) {
|
||||
$paniercontent = PanierContent::where(['panier_content_couponId' => $coupon->coupon_id, 'panier_content_panierId' => $panier->panier_id])->first();
|
||||
if ($paniercontent) {
|
||||
$coupon->qty = $paniercontent->panier_content_quantity;
|
||||
} else {
|
||||
$coupon->qty = 0;
|
||||
}
|
||||
}
|
||||
$campagne->url = url('/') . "/?basketid=" . $panier_ref;
|
||||
unset($coupon);
|
||||
} else {
|
||||
$panier_ref = "";
|
||||
foreach ($coupons as &$coupon) {
|
||||
$coupon->qty = 0;
|
||||
}
|
||||
$campagne->url = "Pas d'url disponible (panier non créé)";
|
||||
}
|
||||
|
||||
$returnHTML = view('widgets.panier')
|
||||
->with([
|
||||
'campagne' => $campagne,
|
||||
'contact' => $contact,
|
||||
'panier' => $panier_ref,
|
||||
'logs' => $logs,
|
||||
'coupons' => $coupons
|
||||
])
|
||||
->renderSections()['widget'];
|
||||
return json_encode(array('success' => true, 'html' => $returnHTML));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,18 +3,15 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use App\Coupon;
|
||||
use App\Site;
|
||||
use App\Campagne;
|
||||
use App\Mur;
|
||||
use App\Panier;
|
||||
use App\Mouvement;
|
||||
use App\Calendrier;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use App\Http\Requests\Coupons\StoreCoupons;
|
||||
use App\Http\Requests\Coupons\UpdateCoupons;
|
||||
use App\Traits\GenerateBR;
|
||||
use App\Traits\CouponTrait;
|
||||
use Validator;
|
||||
|
||||
class CouponController extends Controller
|
||||
{
|
||||
|
|
@ -28,22 +25,16 @@ class CouponController extends Controller
|
|||
*/
|
||||
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();
|
||||
|
||||
// TODO : Revoir le passage du site
|
||||
$site = session()->get('site');
|
||||
$coupons = Coupon::where('coupon_siteId', $site->id)->get();
|
||||
foreach ($coupons as $coupon) {
|
||||
// ---- Calcul de la quantité mise à disposition grace aux fonctions dans CouponTrait.php
|
||||
$coupon->coupon_quantity = $this->getFullQuantity($coupon);
|
||||
// ---- Calcul de la quantité restante toutes campagnes comprises grace aux fonctions dans CouponTrait.php
|
||||
$coupon->coupon_left = 0; //$coupon->coupon_quantity - $this->getUsedQuantity($coupon);
|
||||
$coupon->coupon_left = $coupon->coupon_quantity - $this->getUsedQuantity($coupon);
|
||||
}
|
||||
|
||||
return view('coupon.index', ['coupons' => $coupons, 'camps' => $campIds]);
|
||||
return view('coupon.index', ['coupons' => $coupons]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -53,51 +44,31 @@ class CouponController extends Controller
|
|||
*/
|
||||
public function create()
|
||||
{
|
||||
$campagnes = Campagne::where('camp_siteId', session()->get('site')->site_id)->get()
|
||||
->pluck('camp_name', 'camp_id');
|
||||
// TODO : Revoir le passage du site
|
||||
$site = session()->get('site');
|
||||
|
||||
$campagnes = Campagne::where('camp_siteId', $site->id)->get()->pluck('camp_name', 'camp_id');
|
||||
$site = Site::findOrFail($site->id);
|
||||
|
||||
$site = Site::where(['id' => session()->get('site')->id])->first();
|
||||
return view('coupon.create')->with('campagnes', $campagnes)->with('site', $site);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param StoreCoupons $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store(StoreCoupons $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
|
||||
$v = Validator::make($data, [
|
||||
'coupon_validity_text' => 'required',
|
||||
'coupon_legal_mentions' => 'required',
|
||||
'coupon_decoration_image' => 'required|image|mimes:jpeg,png',
|
||||
'coupon_logo_image' => 'required|image|mimes:jpeg,png',
|
||||
'coupon_rcs' => 'required',
|
||||
'coupon_site_contact' => 'required',
|
||||
]);
|
||||
|
||||
$v->sometimes('coupon_gs1code', 'required|image|mimes:jpeg', function ($input) {
|
||||
return isset($input->coupon_norme);
|
||||
});
|
||||
|
||||
if ($v->fails()) {
|
||||
return redirect('bo/coupon/' . $coupon->coupon_id . '/edit')
|
||||
->withErrors($v)
|
||||
->withInput();
|
||||
}
|
||||
|
||||
|
||||
$site_id = $request->site_id;
|
||||
|
||||
$datas = $this->saveImg($request);
|
||||
|
||||
|
||||
$coupon = new Coupon();
|
||||
$coupon->coupon_code = $datas['coupon_code'];
|
||||
$coupon->coupon_name = $datas['coupon_name'];
|
||||
$coupon->coupon_value = $datas['coupon_value'];
|
||||
$coupon->fill($datas);
|
||||
|
||||
// TODO : A revoir au moment ou on enlevera les images mobiles
|
||||
if (isset($datas['coupon_thumbnail1'])) {
|
||||
$coupon->coupon_thumbnail1 = $datas['coupon_thumbnail1'];
|
||||
}
|
||||
|
|
@ -113,47 +84,21 @@ class CouponController extends Controller
|
|||
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'];
|
||||
}
|
||||
if (isset($datas['coupon_published'])) {
|
||||
$coupon->coupon_published = $datas['coupon_published'];
|
||||
} else {
|
||||
|
||||
//TODO : Voir si on peut mettre le set a 0 dans la request
|
||||
if (!isset($datas['coupon_published'])) {
|
||||
$coupon->coupon_published = 0;
|
||||
}
|
||||
if (isset($datas['coupon_legal_mentions_splitted'])) {
|
||||
$coupon->coupon_legal_mentions_splitted = $datas['coupon_legal_mentions_splitted'];
|
||||
} else {
|
||||
if (!isset($datas['coupon_legal_mentions_splitted'])) {
|
||||
$coupon->coupon_legal_mentions_splitted = 0;
|
||||
}
|
||||
$coupon->coupon_validity = $datas['coupon_validity'];
|
||||
$coupon->coupon_mindatediffusion = $datas['coupon_mindatediffusion'];
|
||||
$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_decoration_image'])) {
|
||||
$coupon->coupon_decoration_image = $datas['coupon_decoration_image'];
|
||||
}
|
||||
if (isset($datas['coupon_logo_image'])) {
|
||||
$coupon->coupon_logo_image = $datas['coupon_logo_image'];
|
||||
}
|
||||
$coupon->coupon_rcs = $datas['coupon_rcs'];
|
||||
$coupon->coupon_site_contact = $datas['coupon_site_contact'];
|
||||
$coupon->coupon_seuil_alert = $datas['coupon_seuil_alert'];
|
||||
|
||||
$site = Site::find($request->input('site_id'));
|
||||
$br_path = $this->generateBase($request, $coupon);
|
||||
$coupon->coupon_image = $br_path;
|
||||
$coupon->coupon_siteId = $site_id;
|
||||
$coupon->save();
|
||||
|
||||
$site = Site::findOrFail($site_id);
|
||||
$site->coupons()->save($coupon);
|
||||
|
||||
if (isset($datas['initial_quantity'])) {
|
||||
|
|
@ -162,15 +107,6 @@ class CouponController extends Controller
|
|||
$coupon->mouvements()->save($mouvement);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($datas['startdate'])) {
|
||||
foreach ($datas['startdate'] as $key => $value) {
|
||||
$calendar = new Calendrier();
|
||||
|
|
@ -179,23 +115,7 @@ class CouponController extends Controller
|
|||
$coupon->calendriers()->save($calendar);
|
||||
}
|
||||
}
|
||||
|
||||
$br_path = $this->generateBase($request, $coupon);
|
||||
$coupon->coupon_image = $br_path;
|
||||
$coupon->save();
|
||||
|
||||
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]);
|
||||
return redirect()->route('coupon.edit', ['coupon' => $coupon]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -212,33 +132,13 @@ class CouponController extends Controller
|
|||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param UpdateCoupons $request
|
||||
* @param \App\Coupon $coupon
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, Coupon $coupon)
|
||||
public function update(UpdateCoupons $request, Coupon $coupon)
|
||||
{
|
||||
|
||||
$data = $request->all();
|
||||
|
||||
$v = Validator::make($data, [
|
||||
'coupon_decoration_image' => 'image|mimes:jpeg,png',
|
||||
'coupon_logo_image' => 'image|mimes:jpeg,png',
|
||||
]);
|
||||
|
||||
$v->sometimes('coupon_gs1code', 'required|image|mimes:jpeg', function ($input) {
|
||||
if (isset($input->coupon_gs1code_image_hidden)) {
|
||||
return false;
|
||||
}
|
||||
return isset($input->coupon_norme);
|
||||
});
|
||||
|
||||
if ($v->fails()) {
|
||||
return redirect('bo/coupon/' . $coupon->coupon_id . '/edit')
|
||||
->withErrors($v)
|
||||
->withInput();
|
||||
}
|
||||
|
||||
//TODO : Voir si on peut mettre le set a 0 dans la request
|
||||
if (!isset($request->coupon_enablelimitquantity)) {
|
||||
$coupon->coupon_enablelimitquantity = 0;
|
||||
}
|
||||
|
|
@ -254,11 +154,17 @@ class CouponController extends Controller
|
|||
if (!isset($request->coupon_legal_mentions_splitted)) {
|
||||
$coupon->coupon_legal_mentions_splitted = 0;
|
||||
}
|
||||
if ($coupon->update($this->saveImg($request))) {
|
||||
$datas = $this->saveImg($request);
|
||||
|
||||
$datas = $this->saveImg($request);
|
||||
// On sauvegarde les informations
|
||||
if ($coupon->update($datas)) {
|
||||
// Si l'update est OK on met à jour l'image du BR
|
||||
$br_path = $this->generateBase($request, $coupon);
|
||||
$coupon->coupon_image = $br_path;
|
||||
$coupon->update($this->saveImg($request));
|
||||
$coupon->save();
|
||||
|
||||
// Si on ajoute des BR
|
||||
// TODO : Gestion de l'erreur si on ajoute une ligne vide
|
||||
if (isset($datas['mouvementNbre'])) {
|
||||
foreach ($datas['mouvementNbre'] as $key => $value) {
|
||||
$mouvement = new Mouvement();
|
||||
|
|
@ -267,6 +173,8 @@ class CouponController extends Controller
|
|||
$coupon->mouvements()->save($mouvement);
|
||||
}
|
||||
}
|
||||
// Si on ajoute une plage de diffusion
|
||||
// TODO : Gestion de l'erreur si on ajoute une ligne vide
|
||||
if (isset($datas['startdate'])) {
|
||||
$coupon->calendriers()->delete();
|
||||
foreach ($datas['startdate'] as $key => $value) {
|
||||
|
|
@ -297,10 +205,10 @@ class CouponController extends Controller
|
|||
$coupon->coupon_published = 0;
|
||||
$coupon->save();
|
||||
if ($coupon->delete()) {
|
||||
return redirect(route('coupon.index'));
|
||||
return redirect()->route('coupon.index');
|
||||
} else {
|
||||
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
||||
return view('coupon.edit')->with('coupon', $coupon);
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -313,8 +221,6 @@ class CouponController extends Controller
|
|||
{
|
||||
$datas = collect($request->all());
|
||||
|
||||
$imgs = collect(array());
|
||||
|
||||
foreach ($datas as $key => $item) {
|
||||
if ($key == 'coupon_image' || $key == 'coupon_gs1code' || $key == 'coupon_decoration_image' || $key == 'coupon_logo_image' || (substr($key, 7, 9) == 'thumbnail' && strlen($key) < 18)) {
|
||||
if (isset($item)) {
|
||||
|
|
|
|||
34
app/Http/Controllers/CustomersController.php
Normal file
34
app/Http/Controllers/CustomersController.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Campagne;
|
||||
use App\Http\Requests\Customers\SearchCustomers;
|
||||
use App\Models\Customers;
|
||||
use App\Models\PrintedWalls;
|
||||
use App\Site;
|
||||
|
||||
class CustomersController extends Controller
|
||||
{
|
||||
public function index(SearchCustomers $request, Site $site)
|
||||
{
|
||||
$campaigns = [];
|
||||
$customer = null;
|
||||
$email = $request->email;
|
||||
|
||||
$site->load("campagnes");
|
||||
|
||||
if ($email) {
|
||||
$customer = Customers::where('email', $email)->first();
|
||||
if ($customer) {
|
||||
$publishedCampaign = $site->campagnes->where('camp_published', 1)->pluck('camp_id');
|
||||
|
||||
$campaigns = Campagne::where('camp_published', 1)->whereHas('printedWalls', function ($q) use ($customer, $publishedCampaign) {
|
||||
$q->where('customer_id', $customer->id)->whereIn('camp_id', $publishedCampaign);
|
||||
})->get();
|
||||
}
|
||||
}
|
||||
|
||||
return view('customers.index', compact('site', 'customer', 'campaigns', 'email'));
|
||||
}
|
||||
}
|
||||
|
|
@ -3,14 +3,13 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use CpChart\Data;
|
||||
use CpChart\Image;
|
||||
use App\Traits\CouponTrait;
|
||||
use App\Traits\GraphTrait;
|
||||
use App\Campagne;
|
||||
use App\Site;
|
||||
use App\Coupon;
|
||||
use App\Http\Requests\Export\PDFExport;
|
||||
use Datetime;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
|
|
@ -36,11 +35,12 @@ class ExportController extends Controller
|
|||
}
|
||||
|
||||
//------ AJAX Export
|
||||
public function export_coupons(Request $request)
|
||||
public function exportCoupons(PDFExport $request)
|
||||
{
|
||||
$ids = $request->input('ids');
|
||||
$startdate = date('Y-m-d', strtotime($request->input('startdate')));
|
||||
$enddate = date('Y-m-d', strtotime($request->input('enddate')));
|
||||
$ids = $request->ids;
|
||||
$startdate = $request->startdate;
|
||||
$enddate = $request->enddate;
|
||||
|
||||
$coupons = Coupon::find($ids);
|
||||
|
||||
$labels = $this->getLabelsForStats($startdate, $enddate);
|
||||
|
|
@ -49,8 +49,7 @@ class ExportController extends Controller
|
|||
|
||||
foreach ($coupons as $coupon) {
|
||||
$cpName = str_replace(' ', '', $coupon->coupon_name);
|
||||
$now = strtotime(now());
|
||||
$full_path = 'export/' . $cpName . '_' . $now . '.pdf';
|
||||
$full_path = 'export/' . $cpName . '_' . date('d_m_Y') . '.pdf';
|
||||
$dataCoupon = $this->getDataForCouponAllCamp($labels, $coupon);
|
||||
$coupon->couponQuantity = $this->getFullQuantity($coupon);
|
||||
$coupon->couponFullPrinted = $this->getUsedQuantity($coupon);
|
||||
|
|
@ -73,13 +72,10 @@ class ExportController extends Controller
|
|||
$myPicture->drawScale(array("DrawSubTicks" => true, 'LabelSkip' => 1, 'LabelRotation' => 25, "Mode" => SCALE_MODE_START0, "CycleBackground" => true,"GridR" => 102,"GridG" => 102,"GridB" => 102));
|
||||
$myPicture->setShadow(true, array("X" => 1,"Y" => 1,"R" => 0,"G" => 0,"B" => 0,"Alpha" => 10));
|
||||
$myPicture->drawLineChart(array("DisplayColor" => DISPLAY_AUTO));
|
||||
$LabelSettings = array("NoTitle" => true);
|
||||
$myPicture->Render('export/temp.png');
|
||||
|
||||
$view = view('export.template')->with(['src' => 'export/temp.png', 'coupon' => $coupon, 'startdate' => $startdate, 'enddate' => $enddate])->render();
|
||||
|
||||
//var_dump($view);
|
||||
|
||||
$pdf->loadHTML($view);
|
||||
$pdf->save($full_path);
|
||||
array_push($paths, $full_path);
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Campagne;
|
||||
use Barryvdh\Debugbar\Facade as Debugbar;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$test = Campagne::find(102);
|
||||
|
||||
Debugbar::info($test);
|
||||
|
||||
return view('home')->with([
|
||||
'test' => $test,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,15 +2,14 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Campagne;
|
||||
use App\Coupon;
|
||||
use App\Http\Requests\Users\StoreUsers;
|
||||
use App\Http\Requests\Users\UpdateUsers;
|
||||
use App\Site;
|
||||
use App\User;
|
||||
use App\Log;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class MaintenanceController extends Controller
|
||||
{
|
||||
|
|
@ -19,15 +18,8 @@ class MaintenanceController extends Controller
|
|||
{
|
||||
$users = User::all();
|
||||
|
||||
foreach ($users as &$user) {
|
||||
$sites = $user->sites()->get();
|
||||
$user->linkedSites = "";
|
||||
foreach ($sites as $site) {
|
||||
$user->linkedSites .= '<p>' . $site->site_nom . '</p>';
|
||||
}
|
||||
}
|
||||
$dates = array(date('m/Y'));
|
||||
for ($i = 1; $i < 12; $i++) {
|
||||
for ($i = 1; $i < 6; $i++) {
|
||||
$datebefore = date("m/Y", strtotime("-" . $i . " months"));
|
||||
array_push($dates, $datebefore);
|
||||
}
|
||||
|
|
@ -37,15 +29,6 @@ class MaintenanceController extends Controller
|
|||
array_push($count, [$month, $logs]);
|
||||
}
|
||||
|
||||
// $logArray = array();
|
||||
// foreach ($logs as $logMonth) {
|
||||
// $count = count($logMonth);
|
||||
// foreach ($logMonth as $log) {
|
||||
// $date = Carbon::parse($log->created_at)->format('m/Y');
|
||||
// }
|
||||
// array_push($logArray, [$date, $count]);
|
||||
// }
|
||||
|
||||
return view('maintenance.index')->with(['users' => $users, 'logs' => $count]);
|
||||
}
|
||||
|
||||
|
|
@ -55,38 +38,17 @@ class MaintenanceController extends Controller
|
|||
return view('user.create')->with(['sites' => $sites]);
|
||||
}
|
||||
|
||||
public function userstore(Request $request)
|
||||
public function userstore(StoreUsers $request)
|
||||
{
|
||||
|
||||
$validatedData = $request->validate([
|
||||
'email' => 'required|unique:users|email',
|
||||
'name' => 'required',
|
||||
'password' => 'required'
|
||||
]);
|
||||
|
||||
$nom = $request->name;
|
||||
$email = $request->email;
|
||||
$password = $request->password;
|
||||
$role = $request->roles;
|
||||
|
||||
$user = new User();
|
||||
$user->name = $nom;
|
||||
$user->email = $email;
|
||||
$user->password = Hash::make($password);
|
||||
$user->roles = $role;
|
||||
$user->fill($request->validated());
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->save();
|
||||
|
||||
//MAJ des sites liés
|
||||
if (isset($request->site)) {
|
||||
$siteids = $request->site;
|
||||
$sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray();
|
||||
$user->sites()->sync($sites);
|
||||
}
|
||||
$sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray();
|
||||
$user->sites()->sync($sites);
|
||||
|
||||
|
||||
$sites = Site::all();
|
||||
$usersites = $user->sites()->get()->pluck('site_id')->toArray();
|
||||
return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]);
|
||||
return redirect()->route('maintenance.user.edit', ['user' => $user]);
|
||||
}
|
||||
|
||||
public function useredit(User $user)
|
||||
|
|
@ -96,27 +58,14 @@ class MaintenanceController extends Controller
|
|||
return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]);
|
||||
}
|
||||
|
||||
public function userdestroy(User $user)
|
||||
{
|
||||
if ($user->delete()) {
|
||||
return redirect(route('maintenance.show'));
|
||||
} else {
|
||||
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
||||
return view('maintenance.user.edit')->with('user', $user);
|
||||
}
|
||||
}
|
||||
|
||||
public function userupdate(Request $request, User $user)
|
||||
public function userupdate(UpdateUsers $request, User $user)
|
||||
{
|
||||
//MAJ du User
|
||||
$user->name = $request->name;
|
||||
$user->email = $request->email;
|
||||
$user->roles = $request->roles;
|
||||
$user->fill($request->validated());
|
||||
$user->save();
|
||||
|
||||
//MAJ des sites liés
|
||||
$siteids = $request->site;
|
||||
$sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray();
|
||||
$sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray();
|
||||
$user->sites()->sync($sites);
|
||||
|
||||
$marques = Auth::user()->sites;
|
||||
|
|
@ -125,26 +74,16 @@ class MaintenanceController extends Controller
|
|||
});
|
||||
|
||||
session()->put('marques', $submarques);
|
||||
return redirect()->route('maintenance.show');
|
||||
}
|
||||
|
||||
$users = User::all();
|
||||
|
||||
foreach ($users as &$user) {
|
||||
$sites = $user->sites()->get();
|
||||
$user->linkedSites = "";
|
||||
foreach ($sites as $site) {
|
||||
$user->linkedSites .= '<p>' . $site->site_nom . '</p>';
|
||||
}
|
||||
public function userdestroy(User $user)
|
||||
{
|
||||
if ($user->delete()) {
|
||||
return redirect()->route('maintenance.show');
|
||||
} else {
|
||||
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
||||
return view('maintenance.user.edit')->with('user', $user);
|
||||
}
|
||||
$dates = array('02/2019');
|
||||
for ($i = 1; $i < 12; $i++) {
|
||||
$datebefore = date("m/Y", strtotime("-" . $i . " months"));
|
||||
array_push($dates, $datebefore);
|
||||
}
|
||||
$count = array();
|
||||
foreach ($dates as $month) {
|
||||
$logs = Log::where(['log_statut' => 'NOK'])->whereMonth('created_at', $month)->count();
|
||||
array_push($count, [$month, $logs]);
|
||||
}
|
||||
return view('maintenance.index')->with(['users' => $users, 'logs' => $count]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Mouvement;
|
||||
use App\Coupon;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class MouvementController extends Controller
|
||||
{
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$mouvement = new Mouvement();
|
||||
$mouvement->mouvement_type = $request->input('mouvement_type');
|
||||
$mouvement->mouvement_nombre = $request->input('mouvement_nombre');
|
||||
$mouvement->mouvement_commentaire = $request->input('mouvement_commentaire');
|
||||
|
||||
$coupon = Coupon::find($request->input('coupon_id'));
|
||||
|
||||
$coupon->mouvements()->save($mouvement);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,13 +4,11 @@ namespace App\Http\Controllers;
|
|||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Campagne;
|
||||
use app\Coupon;
|
||||
use App\Contact;
|
||||
use App\Mur;
|
||||
use App\Log;
|
||||
use App\Traits\CouponTrait;
|
||||
use App\Traits\ThanksTrait;
|
||||
use Response;
|
||||
|
||||
class MurController extends Controller
|
||||
{
|
||||
|
|
@ -29,7 +27,7 @@ class MurController extends Controller
|
|||
if (!isset($datas['refsite'])) {
|
||||
abort(404);
|
||||
}
|
||||
if (!isset($campagne) || $campagne->camp_published == 0 || ($campagne->camp_type != 0 && $campagne->camp_type != 2)) {
|
||||
if (!isset($campagne) || $campagne->camp_published == 0 || ($campagne->camp_type->value != 0 && $campagne->camp_type->value != 2)) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
|
|
@ -124,7 +122,7 @@ class MurController extends Controller
|
|||
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -139,7 +137,7 @@ class MurController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "La campagne n'existe pas";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -157,7 +155,7 @@ class MurController extends Controller
|
|||
$log->log_message = "Le contact n'existe pas";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 104,
|
||||
'Message' => 'Le contact n\'existe pas'
|
||||
|
|
@ -174,7 +172,7 @@ class MurController extends Controller
|
|||
$log->log_statut = 'OK';
|
||||
$log->log_message = $mur . " enregistrements ont été mis à jour.";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Message' => $mur . " enregistrements ont été mis à jour."
|
||||
]);
|
||||
|
|
@ -185,7 +183,7 @@ class MurController extends Controller
|
|||
$log->log_statut = 'OK';
|
||||
$log->log_message = 'Aucun contrôle à effacer';
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 110,
|
||||
'Message' => 'Aucun contrôle à effacer'
|
||||
|
|
@ -202,7 +200,7 @@ class MurController extends Controller
|
|||
if (isset($request->refcamp) && $request->refcamp != "") {
|
||||
$refcamp = $request->refcamp;
|
||||
} else {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -212,7 +210,7 @@ class MurController extends Controller
|
|||
// ------ Recuperation de la campagne
|
||||
$camp = Campagne::where(['camp_id' => $refcamp])->first();
|
||||
if (!$camp) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -222,7 +220,7 @@ class MurController extends Controller
|
|||
// ------ Récupération des coupons de la campagne
|
||||
$coupons = $camp->coupons()->where(['coupon_published' => 1])->get();
|
||||
if (count($coupons) == 0) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 105,
|
||||
'Message' => 'La campagne est vide'
|
||||
|
|
@ -238,7 +236,7 @@ class MurController extends Controller
|
|||
$montantTotal = number_format($montantTotal, 2, ",", " ");
|
||||
$montantTotal = str_pad($montantTotal, 6, "0", STR_PAD_LEFT);
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Message' => $montantTotal
|
||||
]);
|
||||
|
|
@ -266,7 +264,7 @@ class MurController extends Controller
|
|||
}
|
||||
|
||||
if ($error) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -276,7 +274,7 @@ class MurController extends Controller
|
|||
$campagne = Campagne::where(['camp_id' => $refcamp])->where('camp_type', 'IN', array(0,2))->first();
|
||||
|
||||
if (!$campagne) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -285,7 +283,7 @@ class MurController extends Controller
|
|||
|
||||
$contact = Contact::where(['contact_siteId' => $refsite, 'contact_ref' => $refadherent])->first();
|
||||
if (!$contact) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 104,
|
||||
'Message' => 'Le contact n\'existe pas'
|
||||
|
|
@ -309,7 +307,7 @@ class MurController extends Controller
|
|||
$montantDispo = number_format($montantDispo, 2, ",", " ");
|
||||
$montantDispo = str_pad($montantDispo, 6, "0", STR_PAD_LEFT);
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Message' => $montantDispo
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ use App\Panier;
|
|||
use App\Campagne;
|
||||
use App\Coupon;
|
||||
use App\Contact;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Site;
|
||||
use App\Log;
|
||||
use App\PanierContent;
|
||||
use App\Traits\CouponTrait;
|
||||
use App\Traits\ThanksTrait;
|
||||
use Response;
|
||||
|
||||
class PanierController extends Controller
|
||||
{
|
||||
|
|
@ -40,7 +40,7 @@ class PanierController extends Controller
|
|||
}
|
||||
session()->put('campagne', $campagne);
|
||||
|
||||
if ($campagne->camp_type == 1) {
|
||||
if ($campagne->camp_type->equals(CampaignTypes::panier())) {
|
||||
$coupons = $this->getCouponsPublished($campagne);
|
||||
} else {
|
||||
$panierContents = $this->getPanierContentPublished($panier);
|
||||
|
|
@ -97,7 +97,7 @@ class PanierController extends Controller
|
|||
$log->log_message = "Le panier n'existe pas";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 106,
|
||||
'Message' => 'Le panier n\'existe pas'
|
||||
|
|
@ -115,7 +115,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -136,7 +136,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -148,7 +148,7 @@ class PanierController extends Controller
|
|||
foreach ($coupons as $code => $qty) {
|
||||
array_push($panierCoupons, ['cp_code' => $code, 'qty' => $qty]);
|
||||
}
|
||||
if (sizeof($coupons) == 0) {
|
||||
if (count($coupons) == 0) {
|
||||
die();
|
||||
}
|
||||
} else {
|
||||
|
|
@ -156,7 +156,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -196,7 +196,7 @@ class PanierController extends Controller
|
|||
$log->log_message = "Le coupon ne correspond pas aux coupons liés a la campagne";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 110,
|
||||
'Message' => 'Le coupon ne correspond pas aux coupons liés a la campagne'
|
||||
|
|
@ -254,12 +254,12 @@ class PanierController extends Controller
|
|||
|
||||
$response->panierContent = $panCont;
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Panier' => $response
|
||||
]);
|
||||
} else {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Panier' => $panier
|
||||
]);
|
||||
|
|
@ -269,7 +269,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Le panier n'existe pas";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 106,
|
||||
'Message' => 'Le panier n\'existe pas'
|
||||
|
|
@ -280,7 +280,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Le panier n'existe pas";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 106,
|
||||
'Message' => 'Le panier n\'existe pas'
|
||||
|
|
@ -292,13 +292,13 @@ class PanierController extends Controller
|
|||
if (isset($request->refcamp) && $request->refcamp != "") {
|
||||
$refcamp = $request->refcamp;
|
||||
$campagne = Campagne::where(['camp_id' => $refcamp])->first();
|
||||
if (!$campagne || $campagne->camp_published == 0 || ($campagne->camp_type != 1 && $campagne->camp_type != 3)) {
|
||||
if (!$campagne || $campagne->camp_published->equals(CampaignTypes::mur()) || ($campagne->camp_type->value != 1 && $campagne->camp_type->value != 3)) {
|
||||
$log->log_params = json_encode(['refcamp' => $refcamp]);
|
||||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "La campagne n'existe pas ou n'est pas un panier";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas ou n\'est pas un panier'
|
||||
|
|
@ -320,7 +320,7 @@ class PanierController extends Controller
|
|||
if (isset($request->refsite) && $request->refsite != "") {
|
||||
$refsite = $request->refsite;
|
||||
if ($refsite != $campagne->camp_siteId) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne ne correspond à aucune campagnes du site'
|
||||
|
|
@ -381,7 +381,7 @@ class PanierController extends Controller
|
|||
}
|
||||
}
|
||||
}
|
||||
if (sizeof($coupons) == 0) {
|
||||
if (count($coupons) == 0) {
|
||||
die();
|
||||
}
|
||||
} else {
|
||||
|
|
@ -403,7 +403,7 @@ class PanierController extends Controller
|
|||
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 101,
|
||||
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
|
||||
|
|
@ -442,7 +442,7 @@ class PanierController extends Controller
|
|||
$log->log_message = "Le site spécifié n'existe pas";
|
||||
$log->save();
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 102,
|
||||
'Message' => 'Le site spécifié n\'existe pas'
|
||||
|
|
@ -454,7 +454,7 @@ class PanierController extends Controller
|
|||
$log->log_statut = 'NOK';
|
||||
$log->log_message = "Une erreur est survenue";
|
||||
$log->save();
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 109,
|
||||
'Message' => 'Une erreur est survenue'
|
||||
|
|
@ -551,12 +551,12 @@ class PanierController extends Controller
|
|||
|
||||
$response->panierContent = $panCont;
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Panier' => $response
|
||||
]);
|
||||
} else {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Panier' => $panier
|
||||
]);
|
||||
|
|
@ -570,7 +570,7 @@ class PanierController extends Controller
|
|||
if (isset($request->basketid) && $request->basketid != "") {
|
||||
$basketid = $request->basketid;
|
||||
} else {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 106,
|
||||
'Message' => 'Le panier n\'existe pas'
|
||||
|
|
@ -579,7 +579,7 @@ class PanierController extends Controller
|
|||
|
||||
$panier = Panier::where('panier_ref', $basketid)->first();
|
||||
if (!$panier) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 106,
|
||||
'Message' => 'Le panier n\'existe pas'
|
||||
|
|
@ -594,7 +594,7 @@ class PanierController extends Controller
|
|||
|
||||
$contact = $panier->contact()->where(['contact_id' => $panier->panier_contactId])->first();
|
||||
if (!$contact) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 104,
|
||||
'Message' => 'Le contact n\'existe pas'
|
||||
|
|
@ -603,7 +603,7 @@ class PanierController extends Controller
|
|||
|
||||
$campagne = $panier->campagne()->where(['camp_id' => $panier->panier_campId])->first();
|
||||
if (!$campagne) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 103,
|
||||
'Message' => 'La campagne n\'existe pas'
|
||||
|
|
@ -612,7 +612,7 @@ class PanierController extends Controller
|
|||
|
||||
$site = $campagne->site()->first();
|
||||
if ($site === null) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 102,
|
||||
'Message' => 'Le site n\'existe pas'
|
||||
|
|
@ -621,7 +621,7 @@ class PanierController extends Controller
|
|||
|
||||
$allPanierContent = $panier->panierContents()->get();
|
||||
if ($allPanierContent->count() == 0) {
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'KO',
|
||||
'Code' => 108,
|
||||
'Message' => 'Le panier n\'a pas de coupons liés'
|
||||
|
|
@ -649,7 +649,7 @@ class PanierController extends Controller
|
|||
|
||||
$response->panierContent = $panCont;
|
||||
|
||||
return Response::json([
|
||||
return response()->json([
|
||||
'Statut' => 'OK',
|
||||
'Informations Panier' => $response
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\Site;
|
||||
use App\User;
|
||||
use App\Notification;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Statistique;
|
||||
use App\Campagne;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
|
@ -26,24 +25,9 @@ class StatistiqueController extends Controller
|
|||
if (isset($site->campagnes)) {
|
||||
$campagnes = $site->campagnes;
|
||||
foreach ($campagnes as $campagne) {
|
||||
switch ($campagne->camp_type) {
|
||||
case 0:
|
||||
$campagne->camp_type = "Mur";
|
||||
break;
|
||||
case 1:
|
||||
$campagne->camp_type = "Panier";
|
||||
break;
|
||||
case 2:
|
||||
$campagne->camp_type = "Mur sans sélection";
|
||||
break;
|
||||
case 3:
|
||||
$campagne->camp_type = "Panier Sélectionnable";
|
||||
break;
|
||||
}
|
||||
$coupons = $campagne->coupons;
|
||||
foreach ($coupons as $coupon) {
|
||||
foreach ($campagne->coupons as $coupon) {
|
||||
$coupon->quantity = $this->getFullQuantity($coupon);
|
||||
$coupon->remain = $this->getFullQuantity($coupon) - $this->getUsedQuantity($coupon);
|
||||
$coupon->remain = $coupon->quantity - $this->getUsedQuantity($coupon);
|
||||
$coupon->diffused = $this->getDiffusedQuantity($coupon);
|
||||
$coupon->isPrintable = $this->isAvailableToPrint($coupon, $campagne);
|
||||
$coupon->isPaused = $this->isPausedToPrint($coupon, $campagne);
|
||||
|
|
@ -63,20 +47,6 @@ class StatistiqueController extends Controller
|
|||
{
|
||||
$count = 0;
|
||||
$colors = config('constants.colors');
|
||||
switch ($campagne->camp_type) {
|
||||
case 0:
|
||||
$campagne->camp_type = "Mur";
|
||||
break;
|
||||
case 1:
|
||||
$campagne->camp_type = "Panier";
|
||||
break;
|
||||
case 2:
|
||||
$campagne->camp_type = "Mur sans sélection";
|
||||
break;
|
||||
case 3:
|
||||
$campagne->camp_type = "Panier Sélectionnable";
|
||||
break;
|
||||
}
|
||||
|
||||
$coupons = $campagne->coupons;
|
||||
foreach ($coupons as $coupon) {
|
||||
|
|
@ -85,7 +55,7 @@ class StatistiqueController extends Controller
|
|||
$coupon->diffused = $this->getDiffusedQuantity($coupon);
|
||||
$coupon->isPrintable = $this->isAvailableToPrint($coupon, $campagne);
|
||||
$coupon->isPaused = $this->isPausedToPrint($coupon, $campagne);
|
||||
$coupon->color = $coupon->color = "#" . str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT) . str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT) . str_pad( dechex( mt_rand( 0, 255 ) ), 2, '0', STR_PAD_LEFT);
|
||||
$coupon->color = $coupon->color = "#" . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT) . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT) . str_pad(dechex(mt_rand(0, 255)), 2, '0', STR_PAD_LEFT);
|
||||
$count++;
|
||||
}
|
||||
$enddate = date('Y-m-d');
|
||||
|
|
@ -93,7 +63,7 @@ class StatistiqueController extends Controller
|
|||
return view('stats.detail')->with(['campagne' => $campagne, 'startdate' => $startdate, 'enddate' => $enddate]);
|
||||
}
|
||||
|
||||
public function load_stats(Request $request)
|
||||
public function loadStats(Request $request)
|
||||
{
|
||||
$campid = $request->campid;
|
||||
$startdate = $request->startdate;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Auth;
|
||||
use Closure;
|
||||
|
||||
class Marketing
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace App\Http\Middleware;
|
|||
|
||||
use Auth;
|
||||
use Closure;
|
||||
use App\Site;
|
||||
|
||||
class SaveCurrentRoute
|
||||
{
|
||||
|
|
|
|||
32
app/Http/Requests/BrandChange/InvokeBrandChange.php
Normal file
32
app/Http/Requests/BrandChange/InvokeBrandChange.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\BrandChange;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class InvokeBrandChange extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'site_id' => 'exists:site,id|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Campaign/AddCouponsCampaign.php
Normal file
32
app/Http/Requests/Campaign/AddCouponsCampaign.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class AddCouponsCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'ids' => 'required'
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Campaign/DeleteCampaign.php
Normal file
32
app/Http/Requests/Campaign/DeleteCampaign.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class DeleteCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Campaign/RemoveCouponCampaign.php
Normal file
32
app/Http/Requests/Campaign/RemoveCouponCampaign.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class RemoveCouponCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Campaign/RemoveNotifCampaign.php
Normal file
32
app/Http/Requests/Campaign/RemoveNotifCampaign.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class RemoveNotifCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Campaign/ShowDemoCampaign.php
Normal file
32
app/Http/Requests/Campaign/ShowDemoCampaign.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ShowDemoCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
//
|
||||
];
|
||||
}
|
||||
}
|
||||
35
app/Http/Requests/Campaign/StoreCampaign.php
Normal file
35
app/Http/Requests/Campaign/StoreCampaign.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class StoreCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'camp_name' => 'min:5|required',
|
||||
'camp_type' => 'integer|required',
|
||||
'camp_published' => 'integer|required',
|
||||
'camp_limitedPrinting' => 'sometimes|integer|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
39
app/Http/Requests/Campaign/StoreNotifCampaign.php
Normal file
39
app/Http/Requests/Campaign/StoreNotifCampaign.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class StoreNotifCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'notif_name' => 'min:5|required',
|
||||
'notif_email' => [
|
||||
'required',
|
||||
Rule::unique('notification')->where(function ($query) {
|
||||
return $query->where('notif_campId', $this->campaign->camp_id);
|
||||
}),
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
35
app/Http/Requests/Campaign/UpdateCampaign.php
Normal file
35
app/Http/Requests/Campaign/UpdateCampaign.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Campaign;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UpdateCampaign extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'camp_name' => 'min:5|required',
|
||||
'camp_type' => 'integer|required',
|
||||
'camp_published' => 'integer|required',
|
||||
'camp_limitedPrinting' => 'sometimes|integer|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/Contact/LoadWidgetContact.php
Normal file
32
app/Http/Requests/Contact/LoadWidgetContact.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Contact;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class LoadWidgetContact extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'camp_id' => 'required|exists:campagne,camp_id'
|
||||
];
|
||||
}
|
||||
}
|
||||
38
app/Http/Requests/Contact/SearchContact.php
Normal file
38
app/Http/Requests/Contact/SearchContact.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Contact;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class SearchContact extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'page' => 'sometimes|integer|nullable',
|
||||
'searchName' => 'sometimes|alpha|max:50|nullable',
|
||||
'searchFirstname' => 'sometimes|alpha|max:50|nullable',
|
||||
'searchEmail' => 'sometimes|email|max:100|nullable',
|
||||
'searchCp' => 'sometimes|integer|max:10|nullable',
|
||||
'searchVille' => 'sometimes|alpha|max:50|nullable',
|
||||
'searchCountry' => 'sometimes|integer|nullable',
|
||||
];
|
||||
}
|
||||
}
|
||||
38
app/Http/Requests/Contact/StoreContact.php
Normal file
38
app/Http/Requests/Contact/StoreContact.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Contact;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class StoreContact extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'contact_ref' => 'required|unique:contact',
|
||||
'contact_nom' => 'min:3|max:50|required',
|
||||
'contact_prenom' => 'min:3|max:50|required',
|
||||
'contact_email' => 'email|required',
|
||||
'contact_cp' => 'max:10|required',
|
||||
'contact_ville' => 'max:50|required',
|
||||
'contact_country' => 'integer|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
42
app/Http/Requests/Contact/UpdateContact.php
Normal file
42
app/Http/Requests/Contact/UpdateContact.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Contact;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UpdateContact extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'contact_ref' => [
|
||||
'required',
|
||||
Rule::unique('contact')->ignore($this->contact->contact_id, 'contact_id'),
|
||||
],
|
||||
'contact_nom' => 'min:3|max:50|required',
|
||||
'contact_prenom' => 'min:3|max:50|required',
|
||||
'contact_email' => 'email|required',
|
||||
'contact_cp' => 'max:10|required',
|
||||
'contact_ville' => 'max:50|required',
|
||||
'contact_country' => 'integer|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
75
app/Http/Requests/Coupons/StoreCoupons.php
Normal file
75
app/Http/Requests/Coupons/StoreCoupons.php
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Coupons;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class StoreCoupons extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'coupon_code' => [
|
||||
'required',
|
||||
Rule::unique('coupon', 'coupon_code')
|
||||
],
|
||||
'coupon_name' => 'string|required',
|
||||
'coupon_value' => 'numeric|required',
|
||||
'coupon_validity_text' => 'required',
|
||||
'coupon_legal_mentions' => 'required',
|
||||
'coupon_decoration_image' => 'required|image|mimes:jpeg,png',
|
||||
'coupon_logo_image' => 'required|image|mimes:jpeg,png',
|
||||
'coupon_rcs' => 'required',
|
||||
'coupon_site_contact' => 'required',
|
||||
'coupon_seuil_alert' => 'integer|required',
|
||||
|
||||
'coupon_enablelimitperiod' => 'sometimes|integer|required',
|
||||
'coupon_enablelimitquantity' => 'sometimes|integer|required',
|
||||
'coupon_mindatediffusion' => 'nullable',
|
||||
'coupon_maxdatediffusion' => 'nullable',
|
||||
'coupon_validity' => 'integer|required',
|
||||
'coupon_maxdatevalidity' => 'nullable',
|
||||
|
||||
'coupon_legal_mentions_splitted' => 'sometimes|integer|required',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure the validator instance.
|
||||
*
|
||||
* @param \Illuminate\Validation\Validator $validator
|
||||
* @return void
|
||||
*/
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->sometimes('coupon_gs1code', 'required|image|mimes:jpeg', function ($input) {
|
||||
return isset($input->coupon_norme);
|
||||
});
|
||||
|
||||
$validator->sometimes('coupon_limitquantity', 'integer|required', function ($input) {
|
||||
return !is_null($input->coupon_enablelimitquantity);
|
||||
});
|
||||
|
||||
$validator->sometimes('coupon_limitperiod', 'integer|required', function ($input) {
|
||||
return !is_null($input->coupon_enablelimitperiod);
|
||||
});
|
||||
}
|
||||
}
|
||||
82
app/Http/Requests/Coupons/UpdateCoupons.php
Normal file
82
app/Http/Requests/Coupons/UpdateCoupons.php
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Coupons;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UpdateCoupons extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'coupon_code' => [
|
||||
'required',
|
||||
Rule::unique('coupon', 'coupon_code')->ignore($this->coupon->coupon_id, 'coupon_id')
|
||||
],
|
||||
'coupon_name' => 'string|required',
|
||||
'coupon_value' => 'numeric|required',
|
||||
'coupon_seuil_alert' => 'integer|required',
|
||||
'coupon_enablelimitperiod' => 'sometimes|integer|required',
|
||||
'coupon_enablelimitquantity' => 'sometimes|integer|required',
|
||||
'coupon_mindatediffusion' => 'nullable',
|
||||
'coupon_maxdatediffusion' => 'nullable',
|
||||
'coupon_validity' => 'integer|required',
|
||||
'coupon_maxdatevalidity' => 'nullable',
|
||||
|
||||
'coupon_treatment_center' => 'integer|required',
|
||||
'coupon_validity_text' => 'required',
|
||||
'coupon_legal_mentions' => 'required',
|
||||
|
||||
'coupon_rcs' => 'required',
|
||||
'coupon_site_contact' => 'email|required',
|
||||
|
||||
'coupon_norme' => 'sometimes|integer|required',
|
||||
'coupon_published' => 'sometimes|integer|required',
|
||||
'coupon_legal_mentions_splitted' => 'sometimes|integer|required',
|
||||
'coupon_decoration_image' => 'image|mimes:jpeg,png',
|
||||
'coupon_logo_image' => 'image|mimes:jpeg,png',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure the validator instance.
|
||||
*
|
||||
* @param \Illuminate\Validation\Validator $validator
|
||||
* @return void
|
||||
*/
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->sometimes('coupon_gs1code', 'required|image|mimes:jpeg', function ($input) {
|
||||
if (isset($input->coupon_gs1code_image_hidden)) {
|
||||
return false;
|
||||
}
|
||||
return isset($input->coupon_norme);
|
||||
});
|
||||
|
||||
$validator->sometimes('coupon_limitquantity', 'integer|required', function ($input) {
|
||||
return !is_null($input->coupon_enablelimitquantity);
|
||||
});
|
||||
|
||||
$validator->sometimes('coupon_limitperiod', 'integer|required', function ($input) {
|
||||
return !is_null($input->coupon_enablelimitperiod);
|
||||
});
|
||||
}
|
||||
}
|
||||
33
app/Http/Requests/Customers/SearchCustomers.php
Normal file
33
app/Http/Requests/Customers/SearchCustomers.php
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Customers;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class SearchCustomers extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check()
|
||||
&& in_array(Auth::user()->roles, [UserRoles::superadmin()->value, UserRoles::admin()->value]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'sometimes|email|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
34
app/Http/Requests/Export/PDFExport.php
Normal file
34
app/Http/Requests/Export/PDFExport.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Export;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class PDFExport extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'ids' => 'required',
|
||||
'startdate' => 'date|required',
|
||||
'enddate' => 'date|required'
|
||||
];
|
||||
}
|
||||
}
|
||||
36
app/Http/Requests/Users/StoreUsers.php
Normal file
36
app/Http/Requests/Users/StoreUsers.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Users;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class StoreUsers extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'required|unique:users|email',
|
||||
'name' => 'required',
|
||||
'password' => 'min:8|required',
|
||||
'site' => 'required',
|
||||
'roles' => 'required'
|
||||
];
|
||||
}
|
||||
}
|
||||
39
app/Http/Requests/Users/UpdateUsers.php
Normal file
39
app/Http/Requests/Users/UpdateUsers.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\Users;
|
||||
|
||||
use App\Enums\UserRoles;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class UpdateUsers extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check() && (Auth::user()->roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => [
|
||||
'required',
|
||||
Rule::unique('users')->ignore($this->user->id)
|
||||
],
|
||||
'name' => 'required',
|
||||
'site' => 'required',
|
||||
'roles' => 'required'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@ namespace App\Mail;
|
|||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class AlertBr extends Mailable
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ namespace App\Mail;
|
|||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class AlertBrAdmin extends Mailable
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ class Customers extends Model
|
|||
{
|
||||
|
||||
protected $primaryKey = 'hashcode';
|
||||
|
||||
protected $keyType = 'string';
|
||||
|
||||
protected $fillable = ['hashcode', 'email', 'country'];
|
||||
|
|
@ -37,4 +38,9 @@ class Customers extends Model
|
|||
return 250; //France
|
||||
}
|
||||
}
|
||||
|
||||
public function printedWalls()
|
||||
{
|
||||
return $this->hasMany(PrintedWalls::class, 'customer_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ class Notification extends Model
|
|||
*/
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = ['notif_name', 'notif_email', 'notif_campId'];
|
||||
|
||||
/**
|
||||
* ManyToOne
|
||||
* Notification -> Campagne
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@
|
|||
namespace App\Notifications;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Auth\Notifications\ResetPassword as ResetPasswordNotification;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||
|
||||
class AuthServiceProvider extends ServiceProvider
|
||||
|
|
@ -14,7 +13,7 @@ class AuthServiceProvider extends ServiceProvider
|
|||
* @var array
|
||||
*/
|
||||
protected $policies = [
|
||||
'App\Model' => 'App\Policies\ModelPolicy',
|
||||
//'App\Model' => 'App\Policies\ModelPolicy',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ use App\Campagne;
|
|||
use App\Coupon;
|
||||
use App\Contact;
|
||||
use App\Calendrier;
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Models\Customers;
|
||||
use App\Models\PrintedWalls;
|
||||
use App\Mouvement;
|
||||
use App\Mur;
|
||||
use App\Statistique;
|
||||
use App\Panier;
|
||||
use App\PanierContent;
|
||||
use DateTime;
|
||||
|
||||
trait CouponTrait
|
||||
{
|
||||
|
|
@ -150,22 +150,29 @@ trait CouponTrait
|
|||
|
||||
public function isAvailableToPrint(Coupon $coupon, Campagne $campagne)
|
||||
{
|
||||
$availableToPrint = true;
|
||||
// ---- Contrôle de la publication
|
||||
if ($coupon->coupon_published == 0) {
|
||||
$availableToPrint = false;
|
||||
/**
|
||||
* Contrôle de la publication de la campagne
|
||||
*/
|
||||
if ($campagne->camp_published === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// ---- Contrôle de la publication du coupon
|
||||
if ($coupon->coupon_published === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// ---- Contrôle la date de début de diffusion
|
||||
if ($coupon->coupon_mindatediffusion != null) {
|
||||
if ($coupon->coupon_mindatediffusion !== null) {
|
||||
if (strtotime(date('Y-m-d')) < strtotime($coupon->coupon_mindatediffusion)) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Contrôle la date de validité
|
||||
if ($coupon->coupon_maxdatediffusion != null) {
|
||||
if ($coupon->coupon_maxdatediffusion !== null) {
|
||||
if (strtotime(date('Y-m-d')) > strtotime($coupon->coupon_maxdatediffusion)) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -179,31 +186,24 @@ trait CouponTrait
|
|||
}
|
||||
}
|
||||
if (!$pub) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($campagne->camp_published == 0) {
|
||||
$availableToPrint = false;
|
||||
}
|
||||
|
||||
return $availableToPrint;
|
||||
return true;
|
||||
}
|
||||
|
||||
public function isPausedToPrint(Coupon $coupon, Campagne $campagne)
|
||||
{
|
||||
$availableToPrint = true;
|
||||
|
||||
// ---- Contrôle la date de début de diffusion
|
||||
if ($coupon->coupon_mindatediffusion != null) {
|
||||
if ($coupon->coupon_mindatediffusion !== null) {
|
||||
if (strtotime(date('Y-m-d')) < strtotime($coupon->coupon_mindatediffusion)) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// ---- Contrôle la date de validité
|
||||
if ($coupon->coupon_maxdatediffusion != null) {
|
||||
if ($coupon->coupon_maxdatediffusion !== null) {
|
||||
if (strtotime(date('Y-m-d')) > strtotime($coupon->coupon_maxdatediffusion)) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -217,11 +217,11 @@ trait CouponTrait
|
|||
}
|
||||
}
|
||||
if (!$pub) {
|
||||
$availableToPrint = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return $availableToPrint;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -266,26 +266,22 @@ trait CouponTrait
|
|||
|
||||
public function getFullQuantity(Coupon $coupon)
|
||||
{
|
||||
$mouvements = $coupon->mouvements()->get();
|
||||
$nombre = array();
|
||||
foreach ($mouvements as $mouvement) {
|
||||
array_push($nombre, $mouvement->mouvement_nombre);
|
||||
}
|
||||
return array_sum($nombre);
|
||||
return (int)Mouvement::where('mouvement_couponId', $coupon->coupon_id)->sum('mouvement_nombre');
|
||||
}
|
||||
|
||||
public function getUsedQuantity(Coupon $coupon)
|
||||
{
|
||||
$countPrinted = 0;
|
||||
$couponId = $coupon->coupon_id;
|
||||
$campagnes = $coupon->campagnes()->get();
|
||||
foreach ($campagnes as $campagne) {
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) { // Murs
|
||||
$murs = Mur::where(['mur_campid' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->get();
|
||||
$countPrinted = $countPrinted + count($murs);
|
||||
} else { // Paniers
|
||||
foreach ($coupon->campagnes as $campagne) {
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur()) || $campagne->camp_type->equals(CampaignTypes::murss())) {
|
||||
// Murs
|
||||
$murs = Mur::where(['mur_campid' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->count();
|
||||
$countPrinted += $murs;
|
||||
} else {
|
||||
// Paniers
|
||||
// TODO : Revoir la requete
|
||||
$campagneId = $campagne->camp_id;
|
||||
$countPrinted = PanierContent::where('panier_content_couponId', $couponId)->whereHas('panier', function ($query) use ($campagneId) {
|
||||
$countPrinted = PanierContent::where('panier_content_couponId', $coupon->coupon_id)->whereHas('panier', function ($query) use ($campagneId) {
|
||||
$query->where('panier_campId', $campagneId);
|
||||
})->sum('panier_content_printed');
|
||||
}
|
||||
|
|
@ -296,15 +292,16 @@ trait CouponTrait
|
|||
public function getDiffusedQuantity(Coupon $coupon)
|
||||
{
|
||||
$countPrinted = 0;
|
||||
$couponId = $coupon->coupon_id;
|
||||
$campagnes = $coupon->campagnes()->get();
|
||||
foreach ($campagnes as $campagne) {
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) { // Murs
|
||||
$murs = Mur::where(['mur_campid' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->get();
|
||||
$countPrinted = $countPrinted + count($murs);
|
||||
} else { // Paniers
|
||||
foreach ($coupon->campagnes as $campagne) {
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur()) || $campagne->camp_type->equals(CampaignTypes::murss())) {
|
||||
// Murs
|
||||
$murs = Mur::where(['mur_campid' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->count();
|
||||
$countPrinted += $murs;
|
||||
} else {
|
||||
// Paniers
|
||||
// TODO : Revoir la requete
|
||||
$campagneId = $campagne->camp_id;
|
||||
$panierContents = PanierContent::where('panier_content_couponId', $couponId)->whereHas('panier', function ($query) use ($campagneId) {
|
||||
$panierContents = PanierContent::where('panier_content_couponId', $coupon->coupon_id)->whereHas('panier', function ($query) use ($campagneId) {
|
||||
$query->where('panier_campId', $campagneId);
|
||||
})->get();
|
||||
$panierContentCountPrinted = $panierContents->sum('panier_content_printed');
|
||||
|
|
@ -322,7 +319,7 @@ trait CouponTrait
|
|||
$enddate = date('Y-m-d H:i:s', strtotime($enddate));
|
||||
$campagnes = $coupon->campagnes()->get();
|
||||
foreach ($campagnes as $campagne) {
|
||||
if ($campagne->camp_type == 0 || $campagne->camp_type == 2) { // Murs
|
||||
if ($campagne->camp_type->equals(CampaignTypes::mur()) || $campagne->camp_type->equals(CampaignTypes::murss())) { // Murs
|
||||
$murs = Mur::where(['mur_campid' => $campagne->camp_id, 'mur_couponId' => $coupon->coupon_id])->whereBetween('mur_createdate', [$startdate, $enddate])->get();
|
||||
$countPrinted = $countPrinted + count($murs);
|
||||
} else { // Paniers
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@
|
|||
namespace App\Traits;
|
||||
|
||||
use App\Models\Customers;
|
||||
use Picqer\Barcode\BarcodeGenerator;
|
||||
use Picqer\Barcode\BarcodeGeneratorPNG;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Coupon;
|
||||
use App\Site;
|
||||
|
|
@ -38,7 +36,6 @@ trait GenerateBR
|
|||
$text = $coupon->coupon_site_contact;
|
||||
if (strlen($text) < 30) {
|
||||
$ImageFond = imagecreate(165, 27);
|
||||
$box1 = imagettfbbox(8, 0, $arial, $text);
|
||||
$white = imagecolorallocate($ImageFond, 255, 255, 255);
|
||||
$black = imagecolorallocate($ImageFond, 0, 0, 0);
|
||||
$this->imagettftextSp($ImageFond, 8, 0, 5, 23, $black, $arial, $text, 0.01);
|
||||
|
|
@ -46,7 +43,6 @@ trait GenerateBR
|
|||
imagecopy($mask, $ImageFond, 743, 365, 0, 0, imagesx($ImageFond), imagesy($ImageFond));
|
||||
} else {
|
||||
$ImageFond = imagecreate(195, 27);
|
||||
$box1 = imagettfbbox(7, 0, $arial, $text);
|
||||
$white = imagecolorallocate($ImageFond, 255, 255, 255);
|
||||
$black = imagecolorallocate($ImageFond, 0, 0, 0);
|
||||
$this->imagettftextSp($ImageFond, 7, 0, 5, 23, $black, $arial, $text, 0);
|
||||
|
|
@ -59,7 +55,6 @@ trait GenerateBR
|
|||
if ($coupon->coupon_legal_mentions_splitted == 0) {
|
||||
$txt_mentions = $coupon->coupon_legal_mentions . " " . $coupon->coupon_rcs;
|
||||
$ImageMentionFond = imagecreate(415, 100);
|
||||
$boxMentions = imagettfbbox(7, 0, $arial, $txt_mentions);
|
||||
$white = imagecolorallocate($ImageMentionFond, 255, 255, 255);
|
||||
imagefilledrectangle($ImageMentionFond, 0, 0, 414, 99, $white);
|
||||
$black = imagecolorallocate($ImageMentionFond, 0, 0, 0);
|
||||
|
|
@ -89,9 +84,9 @@ trait GenerateBR
|
|||
$black = imagecolorallocate($ImageFond, 0, 0, 0);
|
||||
$blue = imagecolorallocate($ImageFond, 8, 169, 223);
|
||||
$grey = imagecolorallocate($ImageFond, 219, 219, 221);
|
||||
$this->imagettftext_contour($ImageFond, 95, 0, 5, 110, $grey, $impact, $textMontant, $blue, 3, 3, 3, 3);
|
||||
$this->imagettftext_contour($ImageFond, 50, 0, 220, 55, $grey, $arial, $textEuro, $blue, 2, 2, 2, 2);
|
||||
$this->imagettftext_contour($ImageFond, 16, 0, 0, 150, $grey, $impact, $libReduc, $blue, 1, 1, 1, 1);
|
||||
$this->imagettftextContour($ImageFond, 95, 0, 5, 110, $grey, $impact, $textMontant, $blue, 3, 3, 3, 3);
|
||||
$this->imagettftextContour($ImageFond, 50, 0, 220, 55, $grey, $arial, $textEuro, $blue, 2, 2, 2, 2);
|
||||
$this->imagettftextContour($ImageFond, 16, 0, 0, 150, $grey, $impact, $libReduc, $blue, 1, 1, 1, 1);
|
||||
imagecolortransparent($ImageFond, $white);
|
||||
imagecopy($mask, $ImageFond, 360, 10, 0, 0, imagesx($ImageFond), imagesy($ImageFond));
|
||||
|
||||
|
|
@ -110,7 +105,6 @@ trait GenerateBR
|
|||
$textFiliLines = explode("\r\n", $textFili);
|
||||
$ImageFond = imagecreate(402, 240);
|
||||
$white = imagecolorallocate($ImageFond, 255, 255, 255);
|
||||
$blackOpac = imagecolorallocatealpha($ImageFond, 0, 0, 0, 20);
|
||||
$y = 0;
|
||||
foreach ($textFiliLines as $textFiliLine) {
|
||||
$y = $y + 20;
|
||||
|
|
@ -227,7 +221,7 @@ trait GenerateBR
|
|||
|
||||
|
||||
|
||||
function imagettftext_contour($image, $fontsize, $angle, $x, $y, $color, $font, $text, $color_contour, $contour_haut = 1, $contour_bas = 1, $contour_gauche = 1, $contour_droite = 1)
|
||||
function imagettftextContour($image, $fontsize, $angle, $x, $y, $color, $font, $text, $color_contour, $contour_haut = 1, $contour_bas = 1, $contour_gauche = 1, $contour_droite = 1)
|
||||
{
|
||||
$coords_x = array();
|
||||
$coords_y = array();
|
||||
|
|
|
|||
|
|
@ -2,13 +2,7 @@
|
|||
|
||||
namespace App\Traits;
|
||||
|
||||
use App\Campagne;
|
||||
use App\Coupon;
|
||||
use App\Contact;
|
||||
use App\Calendrier;
|
||||
use App\Mur;
|
||||
use App\Statistique;
|
||||
use App\Panier;
|
||||
use DateTime;
|
||||
|
||||
trait GraphTrait
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace App\Traits;
|
||||
|
||||
use App\Campagne;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
trait ThanksTrait
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace App;
|
||||
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use App\Notifications\ResetPassword;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
"barryvdh/laravel-dompdf": "^0.9.0",
|
||||
"doctrine/dbal": "^2.8",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"kwaadpepper/enum": "^2.0",
|
||||
"kwaadpepper/exception-handler": "^0.0.3",
|
||||
"laravel/framework": "^8.0",
|
||||
"laravel/tinker": "^2.0",
|
||||
"laravel/ui": "^3.0",
|
||||
|
|
@ -29,6 +31,7 @@
|
|||
"mockery/mockery": "^1.0",
|
||||
"nunomaduro/collision": "^5.0",
|
||||
"phpunit/phpunit": "^9.0",
|
||||
"slevomat/coding-standard": "^7.0",
|
||||
"squizlabs/php_codesniffer": "^3.3"
|
||||
},
|
||||
"repositories": [
|
||||
|
|
|
|||
243
composer.lock
generated
243
composer.lock
generated
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "5a3ebedda9d69b70bcd95eec2618c1fb",
|
||||
"content-hash": "4790c5a14a3a43378f3b3d89c7346e36",
|
||||
"packages": [
|
||||
{
|
||||
"name": "barryvdh/laravel-dompdf",
|
||||
|
|
@ -1264,6 +1264,67 @@
|
|||
},
|
||||
"time": "2021-08-13T10:11:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kwaadpepper/exception-handler",
|
||||
"version": "0.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Kwaadpepper/exception-handler.git",
|
||||
"reference": "979e8add45fea601b221e95595366fb446e8c6b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Kwaadpepper/exception-handler/zipball/979e8add45fea601b221e95595366fb446e8c6b7",
|
||||
"reference": "979e8add45fea601b221e95595366fb446e8c6b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/support": "~7|~8",
|
||||
"laravel/framework": "~7|~8"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^6.13",
|
||||
"phpunit/phpunit": "~9.0",
|
||||
"squizlabs/php_codesniffer": "^3.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Kwaadpepper\\ExceptionHandler\\ExceptionHandlerServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Kwaadpepper\\ExceptionHandler\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jérémy Munsch",
|
||||
"email": "github@jeremydev.ovh",
|
||||
"homepage": "https://jeremydev.ovh"
|
||||
}
|
||||
],
|
||||
"description": "Send emails when exceptions occurs",
|
||||
"homepage": "https://github.com/kwaadpepper/exception-handler",
|
||||
"keywords": [
|
||||
"email",
|
||||
"exception",
|
||||
"laravel",
|
||||
"policies"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Kwaadpepper/exception-handler/issues",
|
||||
"source": "https://github.com/Kwaadpepper/exception-handler/tree/0.0.3"
|
||||
},
|
||||
"time": "2021-09-15T17:06:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
"version": "v8.38.0",
|
||||
|
|
@ -6093,6 +6154,76 @@
|
|||
},
|
||||
"time": "2020-12-15T10:57:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
||||
"version": "v0.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
|
||||
"reference": "fe390591e0241955f22eb9ba327d137e501c771c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c",
|
||||
"reference": "fe390591e0241955f22eb9ba327d137e501c771c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0 || ^2.0",
|
||||
"php": ">=5.3",
|
||||
"squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "*",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"sensiolabs/security-checker": "^4.1.0"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Franck Nijhof",
|
||||
"email": "franck.nijhof@dealerdirect.com",
|
||||
"homepage": "http://www.frenck.nl",
|
||||
"role": "Developer / IT Manager"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
||||
"homepage": "http://www.dealerdirect.com",
|
||||
"keywords": [
|
||||
"PHPCodeSniffer",
|
||||
"PHP_CodeSniffer",
|
||||
"code quality",
|
||||
"codesniffer",
|
||||
"composer",
|
||||
"installer",
|
||||
"phpcs",
|
||||
"plugin",
|
||||
"qa",
|
||||
"quality",
|
||||
"standard",
|
||||
"standards",
|
||||
"style guide",
|
||||
"stylecheck",
|
||||
"tests"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
|
||||
"source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
|
||||
},
|
||||
"time": "2020-12-07T18:04:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.4.0",
|
||||
|
|
@ -7066,6 +7197,55 @@
|
|||
},
|
||||
"time": "2021-03-17T13:42:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "0.5.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "fac86158ffc7392e49636f77e63684c026df43b8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fac86158ffc7392e49636f77e63684c026df43b8",
|
||||
"reference": "fac86158ffc7392e49636f77e63684c026df43b8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-parallel-lint/php-parallel-lint": "^1.2",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^0.12.87",
|
||||
"phpstan/phpstan-strict-rules": "^0.12.5",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"symfony/process": "^5.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PHPStan\\PhpDocParser\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/0.5.6"
|
||||
},
|
||||
"time": "2021-08-31T08:08:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "9.2.6",
|
||||
|
|
@ -8451,6 +8631,67 @@
|
|||
],
|
||||
"time": "2020-09-28T06:39:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slevomat/coding-standard",
|
||||
"version": "7.0.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slevomat/coding-standard.git",
|
||||
"reference": "cc80e59f9b4ca642f02dc1b615c37a9afc2a0f80"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slevomat/coding-standard/zipball/cc80e59f9b4ca642f02dc1b615c37a9afc2a0f80",
|
||||
"reference": "cc80e59f9b4ca642f02dc1b615c37a9afc2a0f80",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7",
|
||||
"php": "^7.1 || ^8.0",
|
||||
"phpstan/phpdoc-parser": "0.5.1 - 0.5.6",
|
||||
"squizlabs/php_codesniffer": "^3.6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phing/phing": "2.17.0",
|
||||
"php-parallel-lint/php-parallel-lint": "1.3.1",
|
||||
"phpstan/phpstan": "0.12.98",
|
||||
"phpstan/phpstan-deprecation-rules": "0.12.6",
|
||||
"phpstan/phpstan-phpunit": "0.12.22",
|
||||
"phpstan/phpstan-strict-rules": "0.12.11",
|
||||
"phpunit/phpunit": "7.5.20|8.5.5|9.5.9"
|
||||
},
|
||||
"type": "phpcodesniffer-standard",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SlevomatCodingStandard\\": "SlevomatCodingStandard"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
|
||||
"support": {
|
||||
"issues": "https://github.com/slevomat/coding-standard/issues",
|
||||
"source": "https://github.com/slevomat/coding-standard/tree/7.0.15"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/kukulich",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-09T10:29:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.6.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
<?php
|
||||
|
||||
use App\Enums\CampaignTypes;
|
||||
use App\Enums\Countries;
|
||||
use App\Enums\UserRoles;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|
|
@ -214,6 +218,9 @@ return [
|
|||
'Html' => Collective\Html\HtmlFacade::class,
|
||||
'Debugbar' => Barryvdh\Debugbar\Facade::class,
|
||||
'PDF' => Barryvdh\DomPDF\Facade::class,
|
||||
'CampaignTypes' => CampaignTypes::class,
|
||||
'Countries' => Countries::class,
|
||||
'UserRoles' => UserRoles::class,
|
||||
],
|
||||
|
||||
];
|
||||
|
|
|
|||
17
config/exception-handler.php
Normal file
17
config/exception-handler.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
/**
|
||||
* Send mail when app debug is turn off
|
||||
* so you can be warned if an unhandled exception occurs
|
||||
*/
|
||||
'enableMaiLog' => !config('app.debug'),
|
||||
|
||||
/**
|
||||
* Put a developper secured mailbox in here
|
||||
* so you can receive email if things go mad
|
||||
*/
|
||||
'contactsList' => [
|
||||
'equipe.web@ldc.fr'
|
||||
]
|
||||
];
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldCalendrierTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
DB::table('migrations')->truncate();
|
||||
Schema::create('calendrier', function (Blueprint $table) {
|
||||
$table->id('calendrier_id');
|
||||
|
||||
$table->bigInteger('calendrier_couponId')->default(0);
|
||||
|
||||
$table->timestamp('calendrier_startdate')->useCurrent();
|
||||
$table->timestamp('calendrier_enddate')->useCurrent()->useCurrentOnUpdate();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('calendrier');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldCampagneTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('campagne', function (Blueprint $table) {
|
||||
$table->id('camp_id');
|
||||
|
||||
$table->string('camp_name', 500)->default('');
|
||||
$table->unsignedTinyInteger('camp_type')->default(0)
|
||||
->comment('0 = mur; 1 = panier; 2 = mur sous forme de panier');
|
||||
$table->smallInteger('camp_limitedPrinting')->default(0)
|
||||
->comment('Limite l\'impression des paniers à un BR à la fois');
|
||||
$table->smallInteger('camp_published')->default(1);
|
||||
|
||||
$table->string('camp_siteId', 50);
|
||||
|
||||
$table->timestamp('camp_createdate')->useCurrent();
|
||||
$table->timestamp('camp_updatedate')->useCurrent()->useCurrentOnUpdate();
|
||||
$table->timestamp('camp_deleted_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('campagne');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldContactTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('contact', function (Blueprint $table) {
|
||||
$table->id('contact_id');
|
||||
|
||||
$table->string('contact_ref', 200)->default(''); // broken key
|
||||
$table->string('contact_prenom', 200)->default('');
|
||||
$table->string('contact_nom', 200)->default('');
|
||||
$table->string('contact_email', 200)->default(''); // broken key
|
||||
$table->string('contact_cp', 50)->default('');
|
||||
$table->string('contact_ville', 200)->default('');
|
||||
|
||||
$table->smallInteger('contact_country')->default(250);
|
||||
$table->string('contact_hash', 50)->nullable();
|
||||
|
||||
$table->string('contact_siteId', 50);
|
||||
|
||||
$table->timestamp('contact_createdate')->useCurrent();
|
||||
$table->timestamp('contact_updatedate')->useCurrent()->useCurrentOnUpdate();
|
||||
|
||||
// me demandez pas pourquoi iso prod (-_-")
|
||||
$table->index(['contact_ref', 'contact_email'], 'contact_ref');
|
||||
$table->index(['contact_email', 'contact_ref'], 'contact_email');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('contact');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldCouponTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('coupon', function (Blueprint $table) {
|
||||
$table->id('coupon_id');
|
||||
|
||||
$table->string('coupon_code', 50);
|
||||
$table->string('coupon_gs1code', 500);
|
||||
$table->string('coupon_name', 500);
|
||||
$table->float('coupon_value', 0);
|
||||
|
||||
$table->string('coupon_thumbnail1', 500);
|
||||
$table->string('coupon_thumbnail2', 500);
|
||||
$table->string('coupon_thumbnail3', 500);
|
||||
$table->string('coupon_thumbnail4', 500);
|
||||
$table->string('coupon_image', 500);
|
||||
|
||||
$table->integer('coupon_enablelimitquantity')->default(0);
|
||||
$table->integer('coupon_limitquantity')->default(1);
|
||||
$table->integer('coupon_enablelimitperiod')->default(1);
|
||||
$table->integer('coupon_limitperiod')->default(0);
|
||||
$table->integer('coupon_validity')->default(30);
|
||||
|
||||
$table->date('coupon_mindatediffusion')->nullable();
|
||||
$table->date('coupon_maxdatediffusion')->nullable();
|
||||
$table->date('coupon_maxdatevalidity')->nullable();
|
||||
|
||||
$table->unsignedTinyInteger('coupon_norme')->default(0)
|
||||
->comment('0 = par défaut; 1 = Benelux');
|
||||
$table->integer('coupon_published')->default(1);
|
||||
|
||||
$table->string('coupon_decoration_image', 500)->nullable();
|
||||
$table->string('coupon_logo_image', 500)->nullable();
|
||||
$table->string('coupon_validity_text', 500)->nullable();
|
||||
$table->string('coupon_rcs', 500)->nullable();
|
||||
$table->string('coupon_legal_mentions', 1000)->nullable();
|
||||
|
||||
$table->tinyInteger('coupon_legal_mentions_splitted')->default(0);
|
||||
|
||||
$table->string('coupon_site_contact', 500)->nullable();
|
||||
|
||||
$table->unsignedInteger('coupon_seuil_alert')->default(100);
|
||||
$table->integer('coupon_treatment_center')->default(0);
|
||||
|
||||
$table->bigInteger('coupon_siteId');
|
||||
|
||||
$table->timestamp('coupon_createdate')->useCurrent();
|
||||
$table->timestamp('coupon_updatedate')->useCurrent()->useCurrentOnUpdate();
|
||||
$table->timestamp('coupon_deleted_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('coupon');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldCampagneCouponTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('campagne_coupon', function (Blueprint $table) {
|
||||
$table->foreignId('campagne_id');
|
||||
$table->foreign('campagne_id')->references('camp_id')->on('campagne')->cascadeOnDelete();
|
||||
$table->foreignId('coup_id');
|
||||
$table->foreign('coup_id')->references('coupon_id')->on('coupon')->cascadeOnDelete();
|
||||
$table->unique(['campagne_id', 'coup_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('campagne_coupon');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldCustomersTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('customers', function (Blueprint $table) {
|
||||
$table->id(); // TODO remove this in the future
|
||||
|
||||
$table->string('hashcode', 36)->unique();
|
||||
$table->string('email', 255)->unique();
|
||||
$table->integer('country')->default(250);
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('customers');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldLogsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('logs', function (Blueprint $table) {
|
||||
$table->id();
|
||||
|
||||
$table->tinyInteger('log_action');
|
||||
$table->string('log_source', 255);
|
||||
|
||||
$table->text('log_params')->nullable();
|
||||
$table->string('log_statut');
|
||||
$table->text('log_message');
|
||||
|
||||
$table->string('log_refsite', 255)->nullable();
|
||||
$table->bigInteger('log_contactId')->nullable();
|
||||
|
||||
$table->timestamp('created_at')->useCurrent();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('logs');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldMouvementTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('mouvement', function (Blueprint $table) {
|
||||
$table->id('mouvement_id');
|
||||
|
||||
$table->unsignedInteger('mouvement_couponId');
|
||||
$table->integer('mouvement_nombre');
|
||||
$table->string('mouvement_commentaire')->nullable();
|
||||
|
||||
$table->timestamp('mouvement_created_at')->useCurrent()->useCurrentOnUpdate();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('mouvement');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldMurTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('mur', function (Blueprint $table) {
|
||||
$table->id('mur_id');
|
||||
|
||||
$table->integer('mur_campId'); // broken foreign key
|
||||
$table->integer('mur_contactId'); // broken foreign key
|
||||
$table->integer('mur_couponId'); // broken foreign key
|
||||
|
||||
$table->boolean('mur_deleted')->default(false);
|
||||
|
||||
$table->timestamp('mur_createdate')->useCurrent();
|
||||
|
||||
// me demandez pas pourquoi iso prod (-_-")
|
||||
$table->index(['mur_campId'], 'FK_mur_campagne');
|
||||
$table->index(['mur_contactId'], 'mur_contactId');
|
||||
$table->index(['mur_couponId'], 'mur_couponId');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('mur');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldNotificationTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('old_notification', function (Blueprint $table) {
|
||||
$table->id('notif_id');
|
||||
|
||||
$table->string('notif_email')->default('');
|
||||
$table->string('notif_name')->nullable();
|
||||
|
||||
$table->integer('notif_campId');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('old_notification');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldPanierTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('old_panier', function (Blueprint $table) {
|
||||
$table->id('panier_id');
|
||||
|
||||
$table->string('panier_ref', 100)->default('');
|
||||
|
||||
$table->boolean('panier_pending')
|
||||
->comment('1 = en cours; 0 = terminé');
|
||||
|
||||
$table->integer('panier_campId');
|
||||
$table->integer('panier_contactId');
|
||||
|
||||
$table->timestamp('panier_createdate')->useCurrent();
|
||||
$table->timestamp('panier_updatedate')->useCurrent()->useCurrentOnUpdate();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('old_panier');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldPanierContentTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('panier_content', function (Blueprint $table) {
|
||||
$table->id('panier_content_id');
|
||||
|
||||
$table->integer('panier_content_quantity')->default(0);
|
||||
$table->integer('panier_content_printed')->default(0);
|
||||
|
||||
$table->integer('panier_content_panierId')->default(0);
|
||||
$table->integer('panier_content_couponId');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('panier_content');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldPasswordResetsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('password_resets', function (Blueprint $table) {
|
||||
|
||||
$table->string('email')->index('password_resets_email_index');
|
||||
$table->string('token');
|
||||
$table->timestamp('created_at')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('password_resets');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldPrintedWallsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('printed_walls', function (Blueprint $table) {
|
||||
$table->bigInteger('camp_id');
|
||||
$table->bigInteger('coupon_id');
|
||||
$table->bigInteger('customer_id');
|
||||
|
||||
// me demandez pas pourquoi iso prod (-_-")
|
||||
$table->index('camp_id', 'FK_printed_wall_campagne');
|
||||
$table->index('coupon_id', 'FK_printed_wall_coupon');
|
||||
$table->index('customer_id', 'FK_printed_wall_customers');
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('printed_walls');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldSiteTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('site', function (Blueprint $table) {
|
||||
$table->id();
|
||||
|
||||
$table->string('site_nom', 200)->default('');
|
||||
$table->string('site_logo', 500)->default('');
|
||||
$table->string('site_contact', 500)->default('');
|
||||
$table->string('site_rcs', 100)->nullable();
|
||||
$table->string('site_libelle', 200)->nullable();
|
||||
$table->string('crm_token')->nullable();
|
||||
$table->string('crm_password')->nullable();
|
||||
|
||||
$table->string('site_id', 50);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('site');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldStatistiquesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('statistiques', function (Blueprint $table) {
|
||||
$table->id();
|
||||
|
||||
$table->integer('stat_couponPrinted');
|
||||
|
||||
$table->integer('stat_campId');
|
||||
$table->integer('stat_couponId');
|
||||
|
||||
$table->timestamp('created_at')->useCurrent();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('statistiques');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldUsersTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('users', function (Blueprint $table) {
|
||||
$table->id();
|
||||
|
||||
$table->string('name');
|
||||
$table->string('email');
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
$table->rememberToken();
|
||||
|
||||
$table->string('roles', 50);
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('users');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateOldSiteUserTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('site_user', function (Blueprint $table) {
|
||||
$table->foreignId('user_id');
|
||||
$table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
|
||||
$table->foreignId('site_id');
|
||||
$table->foreign('site_id')->references('id')->on('site')->cascadeOnDelete();
|
||||
$table->unique(['user_id', 'site_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('site_user');
|
||||
}
|
||||
}
|
||||
18543
package-lock.json
generated
18543
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -21,5 +21,8 @@
|
|||
"popper.js": "^1.12",
|
||||
"sweetalert": "^2.0.8",
|
||||
"vue": "^2.5.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"node-sass": "^6.0.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,4 +87,5 @@
|
|||
<rule ref="PSR1.Classes.ClassDeclaration.MissingNamespace">
|
||||
<exclude-pattern>*/database/migrations/*</exclude-pattern>
|
||||
</rule>
|
||||
<rule ref="SlevomatCodingStandard.Namespaces.UnusedUses" />
|
||||
</ruleset>
|
||||
|
|
|
|||
2
public/js/ajax.js
vendored
2
public/js/ajax.js
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue