ldc-mesbr-app/app/Http/Controllers/MurController.php

323 lines
10 KiB
PHP
Raw Normal View History

2019-01-15 14:17:15 +01:00
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Campagne;
use app\Coupon;
use App\Contact;
use App\Mur;
2019-02-20 16:26:32 +01:00
use App\Log;
2019-02-13 16:37:14 +01:00
use App\Traits\CouponTrait;
use App\Traits\ThanksTrait;
2019-01-15 14:17:15 +01:00
use Response;
class MurController extends Controller
{
2019-02-13 16:37:14 +01:00
use CouponTrait;
use ThanksTrait;
2019-01-15 14:17:15 +01:00
public function show(Request $request)
{
$datas = $request->all();
2019-02-13 16:37:14 +01:00
if(isset( $datas['refcamp'])){
$ref = intval($datas['refcamp']);
$campagne = Campagne::where(['camp_id'=> $ref])->first();
} else {
2019-02-28 17:05:24 +01:00
abort(404);
2019-02-28 09:51:16 +01:00
}
if(!isset( $datas['refsite'])){
2019-02-28 17:05:24 +01:00
abort(404);
2019-02-13 16:37:14 +01:00
}
2019-02-26 16:31:42 +01:00
if(!isset($campagne) || $campagne->camp_published == 0){
abort(404);
}
2019-02-13 16:37:14 +01:00
if(isset($datas['hash'])){
$contact = Contact::where([
'contact_hash' => $datas['hash'], 'contact_siteId' => $campagne->camp_siteId
])->first();
} else {
2019-02-28 17:05:24 +01:00
abort(404);
2019-02-13 16:37:14 +01:00
}
$coupons = $this->getCouponsPublished($campagne);
2019-01-15 14:17:15 +01:00
2019-02-13 16:37:14 +01:00
foreach ($coupons as &$coupon){
$coupon->isAvailable = $this->isAvailable($coupon, $campagne, $contact);
2019-02-28 13:58:25 +01:00
$coupon->isAvailableToPrint = $this->isAvailableToPrint($coupon, $campagne);
2019-02-13 16:37:14 +01:00
}
unset($coupon);
2019-01-15 14:17:15 +01:00
2019-02-13 16:37:14 +01:00
// Montant total et Nombre réductions disponible
$montantDispo = 0;
$montantTotal = 0;
$nbCoupon = 0;
2019-02-28 13:58:25 +01:00
$nbCouponToPrint = 0;
2019-02-13 16:37:14 +01:00
foreach($coupons as $coupon){
$montantTotal += $coupon->coupon_value;
if($coupon->isAvailable == true){
$montantDispo += $coupon->coupon_value;
$nbCoupon++;
}
2019-02-28 13:58:25 +01:00
if($coupon->isAvailableToPrint == true){
$nbCouponToPrint++;
}
2019-02-13 16:37:14 +01:00
}
2019-01-15 14:17:15 +01:00
session()->put('campagne', $campagne);
session()->put('site', $campagne->site);
session()->put('contact', $contact);
$view = view('landings::' . $ref . '.index')
2019-03-07 08:43:51 +01:00
->with(['ref'=> $ref, 'coupons' => $coupons, 'contact' => $contact, 'nb' => $nbCoupon, 'nbAvailableToPrint' => $nbCouponToPrint, 'montantDispo' => $montantDispo]);
2019-02-13 16:37:14 +01:00
echo($view);
}
public function printMur(Request $request)
{
if(isset($request->coupons)){
session()->put('coupons', $request->coupons);
$coupons = $request->coupons;
}
if($request->session()->has('campagne')) {
$campagne = $request->session()->get('campagne');
2019-03-07 12:25:05 +01:00
} else {
abort(419);
}
2019-02-13 16:37:14 +01:00
$ref = $campagne->camp_id;
$view = view('landings::' . $ref . '.imprimer')
->with(['ref'=> $ref, 'coupons' => $coupons, 'contact' => $request->session()->get('contact')]);
2019-01-15 14:17:15 +01:00
echo($view);
}
public function deleteControlContact(Request $request)
2019-02-20 16:26:32 +01:00
{
if(isset($request->admin)){
$source = 'ADMIN';
} else {
$source = 'API';
}
// ---- INIT du log
$log = new Log();
$log->log_action = config('constants.delctrlcontact');
$log->log_source = $source;
2019-01-15 14:17:15 +01:00
$error = false;
// ---- Contrôle des paramètres
if(isset($request->refcamp) && $request->refcamp != ""){
$refcamp = $request->refcamp;
}else{
$error = true;
}
if(isset($request->refadherent) && $request->refadherent != ""){
$refadherent = $request->refadherent;
}else{
$error = true;
}
// Erreur si paramètres mal renseignés
if($error){
2019-02-20 16:26:32 +01:00
$log->log_params = json_encode(['refcamp' => $request->refcamp, 'refadherent' => $request->refadherent]);
$log->log_statut = 'NOK';
$log->log_message = "Des paramètres de la requête sont mal renseignés ou non présents";
$log->save();
2019-01-15 14:17:15 +01:00
return Response::json([
'Statut' => 'KO',
'Code' => 101,
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
]);
}
2019-02-13 16:37:14 +01:00
//Check de la campagne
$campagne = Campagne::where('camp_id', $refcamp)->first();
2019-02-20 16:26:32 +01:00
if(!$campagne){
$log->log_params = json_encode(['refcamp' => $request->refcamp, 'refadherent' => $request->refadherent]);
$log->log_statut = 'NOK';
$log->log_message = "La campagne n'existe pas";
$log->save();
return Response::json([
'Statut' => 'KO',
'Code' => 103,
'Message' => 'La campagne n\'existe pas'
]);
}
2019-01-15 14:17:15 +01:00
//Check du contact
2019-02-13 16:37:14 +01:00
$contact = Contact::where(['contact_ref' => $refadherent, 'contact_siteId' => $campagne->camp_siteId])->first();
2019-01-15 14:17:15 +01:00
if(!$contact){
2019-02-20 16:26:32 +01:00
$log->log_params = json_encode(['refcamp' => $request->refcamp, 'refadherent' => $request->refadherent]);
$log->log_refsite = $campagne->camp_siteId;
$log->log_statut = 'NOK';
$log->log_message = "Le contact n'existe pas";
$log->save();
2019-01-15 14:17:15 +01:00
return Response::json([
'Statut' => 'KO',
'Code' => 104,
'Message' => 'Le contact n\'existe pas'
]);
}
if($campagne){
//Update
2019-02-13 16:37:14 +01:00
$mur = Mur::where(['mur_campId' => $refcamp, 'mur_contactId' => $contact->contact_id])->update(['mur_deleted' => '1']);
if($mur != 0){
2019-02-20 16:26:32 +01:00
$log->log_params = json_encode(['refcamp' => $request->refcamp, 'refadherent' => $request->refadherent]);
$log->log_refsite = $campagne->camp_siteId;
$log->log_contactId = $contact->contact_id;
$log->log_statut = 'OK';
$log->log_message = $mur." enregistrements ont été mis à jour.";
$log->save();
2019-02-13 16:37:14 +01:00
return Response::json([
'Statut' => 'OK',
'Message' => $mur." enregistrements ont été mis à jour."
]);
} else {
2019-02-20 16:26:32 +01:00
$log->log_params = json_encode(['refcamp' => $request->refcamp, 'refadherent' => $request->refadherent]);
$log->log_refsite = $campagne->camp_siteId;
$log->log_contactId = $contact->contact_id;
$log->log_statut = 'OK';
$log->log_message = 'Aucun contrôle à effacer';
$log->save();
2019-02-13 16:37:14 +01:00
return Response::json([
'Statut' => 'KO',
'Code' => 110,
'Message' => 'Aucun contrôle à effacer'
]);
}
2019-01-15 14:17:15 +01:00
}
return;
}
public function montantDispoCampagne(Request $request)
{
// ---- Contrôle des paramètres
if(isset($request->refcamp) && $request->refcamp != ""){
$refcamp = $request->refcamp;
}else{
return Response::json([
'Statut' => 'KO',
'Code' => 101,
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
]);
}
// ------ Recuperation de la campagne
$camp = Campagne::where(['camp_id' => $refcamp])->first();
if(!$camp){
return Response::json([
'Statut' => 'KO',
'Code' => 103,
'Message' => 'La campagne n\'existe pas'
]);
}
// ------ Récupération des coupons de la campagne
$coupons = $camp->coupons()->where(['coupon_published' => 1])->get();
if(count($coupons) == 0){
return Response::json([
'Statut' => 'KO',
'Code' => 105,
'Message' => 'La campagne est vide'
]);
}
// ---- Montant total et Nombre réductions disponible
$montantTotal = 0;
foreach($coupons as $coupon){
$montantTotal += $coupon->coupon_value;
}
$montantTotal = number_format($montantTotal, 2, ",", " ");
$montantTotal = str_pad($montantTotal, 6, "0", STR_PAD_LEFT);
return Response::json([
'Statut' => 'OK',
'Message' => $montantTotal
]);
}
public function montantDispoContact(Request $request)
{
$error = false;
if(isset($request->refcamp) && $request->refcamp != ""){
$refcamp = $request->refcamp;
}else{
$error = true;
}
if(isset($request->refsite) && $request->refsite != ""){
$refsite = $request->refsite;
}else{
$error = true;
}
if(isset($request->refadherent) && $request->refadherent != ""){
$refadherent = $request->refadherent;
}else{
$error = true;
}
if ($error) {
return Response::json([
'Statut' => 'KO',
'Code' => 101,
'Message' => 'Des paramètres de la requête sont mal renseignés ou non présents'
]);
}
$campagne = Campagne::where(['camp_id' => $refcamp])->where('camp_type', 'IN', array(0,2))->first();
if (!$campagne) {
return Response::json([
'Statut' => 'KO',
'Code' => 103,
'Message' => 'La campagne n\'existe pas'
]);
}
$contact = Contact::where(['contact_siteId' => $refsite, 'contact_ref' => $refadherent])->first();
if (!$contact) {
return Response::json([
'Statut' => 'KO',
'Code' => 104,
'Message' => 'Le contact n\'existe pas'
]);
}
$coupons = $this->getCouponsPublished($campagne);
2019-01-15 14:17:15 +01:00
foreach($coupons as &$coupon){
2019-02-13 16:37:14 +01:00
$coupon->isAvailable = $this->isAvailable($coupon, $campagne, $contact);
2019-01-15 14:17:15 +01:00
}
unset($coupon);
$montantDispo = 0;
foreach($coupons as $coupon){
if($coupon->isAvailable == true){
$montantDispo += $coupon->coupon_value;
}
}
$montantDispo = number_format($montantDispo, 2, ",", " ");
$montantDispo = str_pad($montantDispo, 6, "0", STR_PAD_LEFT);
return Response::json([
'Statut' => 'OK',
'Message' => $montantDispo
]);
}
}