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

313 lines
12 KiB
PHP
Raw Normal View History

2019-01-15 14:17:15 +01:00
<?php
namespace App\Http\Controllers;
use App\Contact;
use App\Site;
2019-02-20 16:26:32 +01:00
use App\Log;
2019-02-13 16:37:14 +01:00
use App\Panier;
use App\Campagne;
2019-01-15 14:17:15 +01:00
use Response;
use Illuminate\Http\Request;
class ContactController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
2021-04-27 17:29:47 +02:00
{
2019-01-15 14:17:15 +01:00
$contacts = Contact::where('contact_siteId', session()->get('site')->site_id)->orderBy('contact_createdate', 'DESC')->take(10)->get();
2021-04-27 17:29:47 +02:00
return view('contact.index')->with('contacts', $contacts)->with('search', false);
2019-01-15 14:17:15 +01:00
}
public function search_contact(Request $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');
2021-04-27 17:29:47 +02:00
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();
return view('contact.index')->with('contacts', $contacts)->with('search', false);
}
2019-01-15 14:17:15 +01:00
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
2021-04-27 17:29:47 +02:00
{
2019-01-15 14:17:15 +01:00
return view('contact.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
2019-02-28 17:05:24 +01:00
$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'
]);
2019-01-15 14:17:15 +01:00
$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');
2019-02-13 16:37:14 +01:00
$contact->contact_hash = strtoupper(md5(uniqid(time(), true)));
2019-01-15 14:17:15 +01:00
2019-02-13 16:37:14 +01:00
//$site = Site::findOrFail(session()->get('site')->id)->first();
$site = session()->get('site');
2019-01-15 14:17:15 +01:00
$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();
2019-02-13 16:37:14 +01:00
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
2019-01-15 14:17:15 +01:00
2019-02-13 16:37:14 +01:00
return view('contact.edit', ['contact' => $contact, 'created' => true, 'contacts' => $contacts, 'campagnes' => $campagnes]);
2019-01-15 14:17:15 +01:00
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Campagne $campagne
* @return \Illuminate\Http\Response
*/
public function edit(Contact $contact)
2021-04-27 17:29:47 +02:00
{
2019-02-13 16:37:14 +01:00
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
return view('contact.edit', ['contact' => $contact, 'campagnes' => $campagnes]);
2019-01-15 14:17:15 +01:00
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Contact $contact
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Contact $contact)
{
2019-02-28 17:05:24 +01:00
$validatedData = $request->validate([
'contact_ref' => 'required',
'contact_nom' => 'required',
'contact_prenom' => 'required',
'contact_email' => 'required',
'contact_cp' => 'required',
'contact_ville' => 'required',
'contact_country' => 'required'
]);
2019-02-20 16:26:32 +01:00
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
2019-01-15 14:17:15 +01:00
if ($contact->update($request->all())) {
session()->flash('update_ok', 'La campagne a bien été modifiée');
} else {
session()->flash('update_nok', 'Erreur lors de l\'enregistrement');
}
2019-02-28 17:05:24 +01:00
return redirect()->route('contact.edit', ['contact' => $contact]);
2019-01-15 14:17:15 +01:00
}
public function updateContact(Request $request)
2021-04-27 17:29:47 +02:00
{
if (isset($request->admin)) {
$source = 'ADMIN';
2019-02-20 16:26:32 +01:00
} else {
2021-04-27 17:29:47 +02:00
$source = 'API';
2019-02-20 16:26:32 +01:00
}
// ---- INIT du log
2019-03-08 10:42:53 +01:00
// $log = new Log();
// $log->log_action = config('constants.updatecontact');
// $log->log_source = $source;
2019-02-20 16:26:32 +01:00
2019-01-15 14:17:15 +01:00
$error = false;
// ---- Contrôle des paramètres
2021-04-27 17:29:47 +02:00
if (isset($request->refadherent) && $request->refadherent != "") {
2019-01-15 14:17:15 +01:00
$refadherent = $request->refadherent;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->nom) && $request->nom != "") {
2019-01-15 14:17:15 +01:00
$nom = $request->nom;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->refsite) && $request->refsite != "") {
2019-01-15 14:17:15 +01:00
$refsite = $request->refsite;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->prenom) && $request->prenom != "") {
2019-01-15 14:17:15 +01:00
$prenom = $request->prenom;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->email) && $request->email != "" && filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
2019-01-15 14:17:15 +01:00
$email = $request->email;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->code_postal) && $request->code_postal != "") {
2019-01-15 14:17:15 +01:00
$code_postal = $request->code_postal;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->commune) && $request->commune != "") {
2019-01-15 14:17:15 +01:00
$commune = $request->commune;
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$error = true;
}
2021-04-27 17:29:47 +02:00
if (isset($request->pays) && $request->pays != "") {
if (filter_var($request->pays, FILTER_VALIDATE_INT)) {
2019-02-28 13:58:25 +01:00
$pays = $request->pays;
} else {
$error = true;
}
2021-04-27 17:29:47 +02:00
} else {
2019-01-15 14:17:15 +01:00
$pays = 250;
}
2021-04-27 17:29:47 +02:00
if ($error) {
2019-03-08 10:42:53 +01:00
// $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();
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'
]);
}
$contact = Contact::where(['contact_siteId' => $refsite, 'contact_ref' => $refadherent])->first();
2021-04-27 17:29:47 +02:00
if ($contact) {
2019-01-15 14:17:15 +01:00
$contact->contact_prenom = $prenom;
$contact->contact_nom = $nom;
$contact->contact_email = $email;
$contact->contact_cp = $code_postal;
$contact->contact_ville = $commune;
$contact->contact_country = $pays;
$contact->contact_updatedate = date('Y-m-d H:i:s');
} else {
$site = Site::where('site_id', $refsite)->first();
2021-04-27 17:29:47 +02:00
if ($site) {
2019-01-15 14:17:15 +01:00
$contact = new Contact();
$contact->contact_nom = $nom;
$contact->contact_prenom = $prenom;
$contact->contact_ref = $refadherent;
$contact->contact_email = $email;
$contact->contact_cp = $code_postal;
$contact->contact_ville = $commune;
$contact->contact_country = $pays;
$contact->contact_siteId = $refsite;
2021-06-08 17:57:58 +02:00
if (isset($request->hashcode) && $request->hashcode != "") {
$contact->contact_hash = $request->hashcode;
} else {
$contact->contact_hash = strtoupper(md5(uniqid(time(), true)));
}
2019-01-15 14:17:15 +01:00
} else {
2019-03-08 10:42:53 +01:00
// $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();
2019-01-15 14:17:15 +01:00
return Response::json([
'Statut' => 'KO',
'Code' => 102,
'Message' => 'Le site spécifié n\'existe pas'
2021-04-27 17:29:47 +02:00
]);
2019-01-15 14:17:15 +01:00
}
}
if ($contact->save()) {
return Response::json([
2021-04-27 17:29:47 +02:00
'Statut' => 'OK',
2019-01-15 14:17:15 +01:00
'contact' => $contact
]);
} else {
2019-03-08 10:42:53 +01:00
// $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();
2019-01-15 14:17:15 +01:00
return Response::json([
'Statut' => 'KO',
'Code' => 109,
'Message' => 'Une erreur est survenue'
]);
2021-04-27 17:29:47 +02:00
}
2019-01-15 14:17:15 +01:00
}
/**
* 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');
2019-02-13 16:37:14 +01:00
$campagnes = Campagne::where(['camp_siteId' => $contact->contact_siteId, 'camp_published' => 1])->get();
return view('contact.edit', ['contact' => $contact, 'campagnes' => $campagnes]);
2019-01-15 14:17:15 +01:00
}
}
}