527 lines
17 KiB
PHP
527 lines
17 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: Marco Glietsch
|
|
* Date: 22.11.2018
|
|
* Time: 09:28
|
|
*/
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use App\Models\SubscribeChild;
|
|
use App\Models\SubscribeVaccinate;
|
|
use App\Models\SubscribeYouthFireFighter;
|
|
use App\Models\SubscribeDekon;
|
|
use App\Models\SubscribeHelperParty;
|
|
use App\Models\SubscribeEm2024;
|
|
use App\Models\SubscribePopulationExercise;
|
|
use App\Helpers\AccessHelper as Access;
|
|
use \Carbon\Carbon;
|
|
use Response;
|
|
//use Illuminate\Support\Facades\Input;
|
|
use Illuminate\Support\Facades\Request as Input;
|
|
use App\Helpers\StringHelper;
|
|
use function Illuminate\Database\Eloquent\Factories\createChildren;
|
|
|
|
class ContactController extends ExtendedController
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware(['auth' => 'contactPermissions'])->except(
|
|
'subscribe',
|
|
'subscribeSave',
|
|
'count',
|
|
'subscribeVaccinate',
|
|
'subscribeVaccinateSave',
|
|
'subscribeYouthFireFighter',
|
|
'subscribeYouthFireFighterSave',
|
|
'subscribeDekon',
|
|
'subscribeDekonSave',
|
|
'subscribeHelperParty',
|
|
'subscribeHelperPartySave',
|
|
'subscribeEm2024',
|
|
'subscribeEm2024Save',
|
|
'subscribeEm2024Info',
|
|
'subscribePopulationExercise',
|
|
'subscribePopulationExerciseSave'
|
|
);
|
|
parent::__construct();
|
|
}
|
|
|
|
/********************************/
|
|
/* Anmeldung für Nikolausaktion */
|
|
/********************************/
|
|
public function subscribe(Request $request)
|
|
{
|
|
$formdata = new SubscribeChild();
|
|
$view = view("inc.contact.subscribe");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', true);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeSave(Request $request)
|
|
{
|
|
$request->request->add(['city' => $request->city[0]]);
|
|
$formdata = $request->validate([
|
|
'firstnameParent' => 'required|min:3',
|
|
'lastnameParent' => 'required|min:3',
|
|
'firstnameChild' => 'required|min:3',
|
|
'street' => 'required|min:3',
|
|
'streetnumber' => 'required',
|
|
'city' => 'required',
|
|
'phone' => 'required|min:4',
|
|
'age' => 'required|integer',
|
|
],
|
|
[
|
|
'firstnameParent.required' => 'Pflichtfeld',
|
|
'firstnameParent.min' => 'Mindestens :min Zeichen',
|
|
'lastnameParent.required' => 'Pflichtfeld',
|
|
'lastnameParent.min' => 'Mindestens :min Zeichen',
|
|
'firstnameChild.required' => 'Pflichtfeld',
|
|
'firstnameChild.min' => 'Mindestens :min Zeichen',
|
|
'street.required' => 'Pflichtfeld',
|
|
'street.min' => 'Mindestens :min Zeichen',
|
|
'streetnumber.required' => 'Pflichtfeld',
|
|
'streetnumber.min' => 'Mindestens :min Zeichen',
|
|
'city.required' => 'Pflichtfeld',
|
|
'phone.required' => 'Pflichtfeld',
|
|
'phone.min' => 'Mindestens :min Zeichen',
|
|
'age.required' => 'Pflichtfeld',
|
|
'age.integer' => 'Muss eine Zahl sein',
|
|
]);
|
|
|
|
$checkmodel = SubscribeYou::where('lastnameParent', $request->lastnameParent)
|
|
->where('firstnameParent', $request->firstnameParent)
|
|
->where('firstnameChild', $request->firstnameChild)
|
|
->where('city', $request->city)
|
|
->get();
|
|
|
|
$view = null;
|
|
if($checkmodel->count())
|
|
{
|
|
$view = view("inc.contact.subscribeDouble");
|
|
$view->with('firstnameChild', $request->firstnameChild);
|
|
$view->with('lastnameChild', $request->lastnameParent);
|
|
}
|
|
else
|
|
{
|
|
$model = new SubscribeChild();
|
|
$model->fill($request->all());
|
|
$model->age = $request->age;
|
|
# $model->city = $request->city[0];
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribeSuccess");
|
|
}
|
|
|
|
|
|
return $view;
|
|
}
|
|
|
|
/**********************************/
|
|
/* Anmeldung zum Dekon-P Lehrgang */
|
|
/**********************************/
|
|
public function subscribeDekon(Request $request)
|
|
{
|
|
$formdata = new SubscribeDekon();
|
|
$view = view("inc.contact.subscribeDekon");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', false);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeDekonSave(Request $request)
|
|
{
|
|
$request->request->add(['city' => $request->city[0]]);
|
|
$formdata = $request->validate([
|
|
'firstname' => 'required|min:3',
|
|
'lastname' => 'required|min:3',
|
|
'city' => 'required|min:3',
|
|
'city_work' => 'required|min:3',
|
|
],
|
|
[
|
|
'firstname.required' => 'Pflichtfeld',
|
|
'firstname.min' => 'Mindestens :min Zeichen',
|
|
'lastname.required' => 'Pflichtfeld',
|
|
'lastname.min' => 'Mindestens :min Zeichen',
|
|
'city.required' => 'Pflichtfeld',
|
|
'city.min' => 'Mindestens :min Zeichen',
|
|
'city_work.required' => 'Pflichtfeld',
|
|
'city_work.min' => 'Mindestens :min Zeichen',
|
|
]);
|
|
|
|
$checkmodel = SubscribeDekon::where('lastname', $request->lastname)
|
|
->where('firstname', $request->firstname)
|
|
->where('city', $request->city);
|
|
|
|
$view = null;
|
|
|
|
$model = new SubscribeDekon();
|
|
if($checkmodel->get()->count())
|
|
{
|
|
$model = $checkmodel->first();
|
|
$model->truppmann2 = $request->has('truppmann2') ? $request->input('truppmann2') : false;
|
|
$model->atemschutz = $request->has('atemschutz') ? $request->input('atemschutz') : false;
|
|
$model->maschinist = $request->has('maschinist') ? $request->input('maschinist') : false;
|
|
}
|
|
|
|
$model->fill($request->all());
|
|
# $model->city = $request->city[0];
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribeDekonSuccess");
|
|
|
|
return $view;
|
|
}
|
|
|
|
/*********************************/
|
|
/* Anmeldung zur Kinderfeuerwehr */
|
|
/*********************************/
|
|
public function subscribeYouthFireFighter(Request $request)
|
|
{
|
|
$formdata = new SubscribeYouthFireFighter();
|
|
$view = view("inc.contact.subscribeYouthFireFighter");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', false);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeYouthFireFighterSave(Request $request)
|
|
{
|
|
$request->request->add(['city' => $request->city[0]]);
|
|
$formdata = $request->validate([
|
|
'firstnameParent' => 'required|min:3',
|
|
'lastnameParent' => 'required|min:3',
|
|
'firstnameChild' => 'required|min:3',
|
|
'birthday' => 'required|date_format:d.m.Y',
|
|
'street' => 'required|min:3',
|
|
'streetnumber' => 'required',
|
|
'city' => 'required',
|
|
'phone' => 'required|min:4',
|
|
'email' => 'required|email'
|
|
],
|
|
[
|
|
'firstnameParent.required' => 'Pflichtfeld',
|
|
'firstnameParent.min' => 'Mindestens :min Zeichen',
|
|
'lastnameParent.required' => 'Pflichtfeld',
|
|
'lastnameParent.min' => 'Mindestens :min Zeichen',
|
|
'firstnameChild.required' => 'Pflichtfeld',
|
|
'firstnameChild.min' => 'Mindestens :min Zeichen',
|
|
'street.required' => 'Pflichtfeld',
|
|
'street.min' => 'Mindestens :min Zeichen',
|
|
'streetnumber.required' => 'Pflichtfeld',
|
|
'streetnumber.min' => 'Mindestens :min Zeichen',
|
|
'city.required' => 'Pflichtfeld',
|
|
'phone.required' => 'Pflichtfeld',
|
|
'phone.min' => 'Mindestens :min Zeichen',
|
|
'email.email' => 'Es muss eine gültige Emailadresse angegeben werden',
|
|
'birthday.required' => 'Pflichtfeld',
|
|
'birthday.date_format' => 'Das Datum muss im Format tt.mm.jjjj (tag.monat.jahr) eingegeben werden',
|
|
]);
|
|
|
|
$checkmodel = SubscribeYouthFireFighter::where('lastnameParent', $request->lastnameParent)
|
|
->where('firstnameParent', $request->firstnameParent)
|
|
->where('firstnameChild', $request->firstnameChild)
|
|
->where('city', $request->city)
|
|
->get();
|
|
|
|
$view = null;
|
|
if($checkmodel->count())
|
|
{
|
|
$view = view("inc.contact.subscribeDouble");
|
|
$view->with('firstnameChild', $request->firstnameChild);
|
|
$view->with('lastnameChild', $request->lastnameParent);
|
|
}
|
|
else
|
|
{
|
|
$model = new SubscribeYouthFireFighter();
|
|
$model->fill($request->all());
|
|
$model->birthday = Carbon::createFromFormat('d.m.Y', $request->birthday);
|
|
# $model->city = $request->city[0];
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribeYouthFireFighterSuccess");
|
|
}
|
|
|
|
|
|
return $view;
|
|
}
|
|
|
|
|
|
/********************************/
|
|
/* Anmeldung zur Coronaimnpfung */
|
|
/********************************/
|
|
|
|
public function subscribeVaccinate(Request $request)
|
|
{
|
|
$formdata = new SubscribeVaccinate();
|
|
$view = view("inc.contact.subscribeVaccinate");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', false);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeVaccinateSave(Request $request)
|
|
{
|
|
$request->request->add(['city' => $request->city[0]]);
|
|
$formdata = $request->validate([
|
|
'firstname' => 'required|min:3',
|
|
'lastname' => 'required|min:3',
|
|
'birthday' => 'required|date_format:d.m.Y',
|
|
'street' => 'required|min:3',
|
|
'streetnumber' => 'required',
|
|
'city' => 'required',
|
|
'department' => 'required',
|
|
],
|
|
[
|
|
'firstname.required' => 'Pflichtfeld',
|
|
'firstname.min' => 'Mindestens :min Zeichen',
|
|
'lastname.required' => 'Pflichtfeld',
|
|
'lastname.min' => 'Mindestens :min Zeichen',
|
|
'birthday.required' => 'Pflichtfeld',
|
|
'birthday.date_format' => 'Das Datum muss im Format tt.mm.jjjj (tag.monat.jahr) eingegeben werden',
|
|
'street.required' => 'Pflichtfeld',
|
|
'street.min' => 'Mindestens :min Zeichen',
|
|
'streetnumber.required' => 'Pflichtfeld',
|
|
'streetnumber.min' => 'Mindestens :min Zeichen',
|
|
'city.required' => 'Pflichtfeld',
|
|
'department.required' => 'Pflichtfeld',
|
|
]);
|
|
|
|
$checkmodel = SubscribeVaccinate::where('lastname', $request->lastname)
|
|
->where('firstname', $request->firstname)
|
|
->get();
|
|
|
|
$view = null;
|
|
if($checkmodel->count())
|
|
{
|
|
$view = view("inc.contact.subscribeVaccinateDouble");
|
|
$view->with('firstname', $request->firstname);
|
|
$view->with('lastname', $request->lastname);
|
|
}
|
|
else
|
|
{
|
|
$model = new SubscribeVaccinate();
|
|
$model->fill($request->all());
|
|
$model->birthday = Carbon::createFromFormat('d.m.Y', $request->birthday);
|
|
$model->department = $request->department[0];
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribeVaccinateSuccess");
|
|
}
|
|
|
|
|
|
return $view;
|
|
}
|
|
|
|
|
|
/****************************/
|
|
/* Anmeldung zum Helferfest */
|
|
/****************************/
|
|
public function subscribeHelperParty(Request $request)
|
|
{
|
|
$formdata = new SubscribeYouthFireFighter();
|
|
$formdata->countChildren = 0;
|
|
$view = view("inc.contact.subscribeHelperParty");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', false);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeHelperPartySave(Request $request)
|
|
{
|
|
$formdata = $request->validate([
|
|
'firstname' => 'required|min:3',
|
|
'lastname' => 'required|min:3',
|
|
'countMatures' => 'integer',
|
|
'countChildren' => 'integer'
|
|
],
|
|
[
|
|
'firstname.required' => 'Pflichtfeld',
|
|
'firstname.min' => 'Mindestens :min Zeichen',
|
|
'lastname.required' => 'Pflichtfeld',
|
|
'lastname.min' => 'Mindestens :min Zeichen',
|
|
'countMatures.integer' => 'Es sind nur Zahlen erlaubt',
|
|
'countChildren.integer' => 'Es sind nur Zahlen erlaubt',
|
|
]);
|
|
|
|
$model = SubscribeHelperParty::where('lastname', $request->lastname)
|
|
->where('firstname', $request->firstname)
|
|
->get();
|
|
|
|
$view = null;
|
|
$view = view("inc.contact.subscribeHelperPartySuccess");
|
|
if($model->count())
|
|
{
|
|
$model = $model->first();
|
|
$model->fill($request->all());
|
|
$model->save();
|
|
$view->with('exist', true);
|
|
}
|
|
else
|
|
{
|
|
$model = new SubscribeHelperParty();
|
|
$model->fill($request->all());
|
|
$model->save();
|
|
|
|
}
|
|
$view->with('firstname', $request->firstname);
|
|
$view->with('lastname', $request->lastname);
|
|
$view->with('countMatures', $request->countMatures);
|
|
$view->with('countChildren', $request->countChildren);
|
|
|
|
|
|
return $view;
|
|
}
|
|
|
|
|
|
/*************************/
|
|
/* Anmeldung zur EM 2024 */
|
|
/*************************/
|
|
public function subscribeEm2024(Request $request)
|
|
{
|
|
$model = SubscribeEm2024::get();
|
|
$subscribers = $model->count();
|
|
$partner = $model->sum('partner');
|
|
$children = $model->sum('children');
|
|
$total = $subscribers + $partner + $children;
|
|
|
|
$limit = false;
|
|
if($total > 250)
|
|
{
|
|
$limit = true;
|
|
}
|
|
|
|
$formdata = new SubscribeEm2024();
|
|
$view = view("inc.contact.subscribeEm2024");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('limit', $limit);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeEm2024Save(Request $request)
|
|
{
|
|
$formdata = $request->validate([
|
|
'firstname' => 'required|min:3',
|
|
'lastname' => 'required|min:3',
|
|
],
|
|
[
|
|
'firstname.required' => 'Pflichtfeld',
|
|
'firstname.min' => 'Mindestens :min Zeichen',
|
|
'lastname.required' => 'Pflichtfeld',
|
|
'lastname.min' => 'Mindestens :min Zeichen',
|
|
]);
|
|
|
|
|
|
$view = null;
|
|
|
|
$model = new SubscribeEm2024();
|
|
|
|
$model->fill($request->all());
|
|
$model->partner = $request->has('partner') ? $request->input('partner') : false;
|
|
$model->children = intval($request->input('children'));
|
|
$model->ages = $request->input('ages') == NULL ? '' : $request->input('ages');
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribeEm2024Success");
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribeEm2024Info(Request $request)
|
|
{
|
|
$model = SubscribeEm2024::get();
|
|
$subscribers = $model->count();
|
|
$partner = $model->sum('partner');
|
|
$children = $model->sum('children');
|
|
$total = $subscribers + $partner + $children;
|
|
|
|
$view = view('inc.contact.subscribeEm2024Info');
|
|
$view->with('subscribers', $subscribers);
|
|
$view->with('partner', $partner);
|
|
$view->with('children', $children);
|
|
$view->with('total', $total);
|
|
|
|
return $view;
|
|
}
|
|
|
|
/*****************************************/
|
|
/* Anmeldung zur Bevölkerungsschutzübung */
|
|
/*****************************************/
|
|
public function subscribePopulationExercise(Request $request)
|
|
{
|
|
$formdata = new SubscribePopulationExercise();
|
|
$view = view("inc.contact.subscribePopulationExercise");
|
|
$view->with('url', $this->route);
|
|
$view->with('formdata', $formdata);
|
|
$view->with('expired', false);
|
|
|
|
return $view;
|
|
}
|
|
|
|
public function subscribePopulationExerciseSave(Request $request)
|
|
{
|
|
$request->request->add(['city' => $request->city[0]]);
|
|
$formdata = $request->validate([
|
|
'firstname' => 'required|min:3',
|
|
'lastname' => 'required|min:3',
|
|
'street' => 'required|min:3',
|
|
'streetnumber' => 'required',
|
|
'city' => 'required',
|
|
'phone' => 'required|min:4',
|
|
'email' => 'required|email'
|
|
],
|
|
[
|
|
'firstname.required' => 'Pflichtfeld',
|
|
'firstname.min' => 'Mindestens :min Zeichen',
|
|
'lastname.required' => 'Pflichtfeld',
|
|
'lastname.min' => 'Mindestens :min Zeichen',
|
|
'street.required' => 'Pflichtfeld',
|
|
'street.min' => 'Mindestens :min Zeichen',
|
|
'streetnumber.required' => 'Pflichtfeld',
|
|
'streetnumber.min' => 'Mindestens :min Zeichen',
|
|
'city.required' => 'Pflichtfeld',
|
|
'phone.required' => 'Pflichtfeld',
|
|
'phone.min' => 'Mindestens :min Zeichen',
|
|
'email.email' => 'Es muss eine gültige Emailadresse angegeben werden',
|
|
]);
|
|
|
|
|
|
$checkmodel = SubscribePopulationExercise::where('lastname', $request->lastname)
|
|
->where('firstname', $request->firstname)
|
|
->where('city', $request->city);
|
|
|
|
$view = null;
|
|
|
|
$model = new SubscribePopulationExercise();
|
|
if($checkmodel->get()->count())
|
|
{
|
|
$model = $checkmodel->first();
|
|
$model->driving = $request->has('driving') ? $request->input('driving') : false;
|
|
}
|
|
|
|
$model->fill($request->all());
|
|
# $model->city = $request->city[0];
|
|
$model->save();
|
|
|
|
$view = view("inc.contact.subscribePopulationExerciseSuccess");
|
|
|
|
return $view;
|
|
}
|
|
} |