mein-sterntours/app/Http/Controllers/TravelProgramController.php
Kevin Adametz 881fc84207 08 2024
2024-08-05 11:58:09 +02:00

126 lines
3.7 KiB
PHP
Executable file

<?php
namespace App\Http\Controllers;
use App\Models\TravelClass;
use App\Models\TravelProgram;
use App\Models\TravelProgramDraft;
use App\Repositories\TravelProgramRepository;
use Request;
class TravelProgramController extends Controller
{
protected $travelProgramRepo;
public function __construct(TravelProgramRepository $travelProgramRepo)
{
$this->middleware(['admin', '2fa']);
$this->travelProgramRepo = $travelProgramRepo;
}
public function index($step = false)
{
$data = [
'travel_programs' => TravelProgram::all()->sortByDesc("id"),
'step' => $step
];
return view('travel.program.index', $data);
}
public function detail($id)
{
if($id == "new") {
$program = new TravelProgram();
$id = 'new';
}else{
$program = TravelProgram::findOrFail($id);
$id = $program->id;
}
$data = [
'program' => $program,
'id' => $id,
];
return view('travel.program.detail', $data);
}
public function store($id)
{
//TODO new must have an extra funtction!
$data = Request::all();
if(!isset($data['action'])){
abort(403, 'keine Action');
}
//save
$program = $this->travelProgramRepo->updateGeneral($id, $data);
$program = $this->travelProgramRepo->updateDetail($id, $data);
$program = $this->travelProgramRepo->updatePage($id, $data);
\Session()->flash('alert-save', '1');
if($data['action'] === 'saveGeneral'){
return redirect(route('travel_program_detail', [$program->id])."#collapseBookingNotice");
}
if($data['action'] === 'saveDetails'){
return redirect(route('travel_program_detail', [$program->id])."#collapseTravelProgramDetails");
}
if($data['action'] === 'savePage'){
return redirect(route('travel_program_detail', [$program->id])."#collapseTravelProgramPage");
}
return redirect(route('travel_program_detail', [$id]));
}
/*
* PROGRAM CLASSES
*/
/**
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function classUpdate(){
$data = Request::all();
$this->travelProgramRepo->updateClass($data);
\Session()->flash('alert-save', '1');
return redirect(route('travel_program_detail', [$data['program_id']]));
}
public function classDelete($id){
$travel_class = TravelClass::findOrFail($id);
$pId = $travel_class->program_id;
if(count($travel_class->travel_program_drafts)){
\Session()->flash('alert-error', 'Eintrag wird bei den Vorlagen verwendet');
return redirect(route('travel_program_detail', [$pId]));
}
$travel_class->delete();
\Session()->flash('alert-success', 'Programm Kategorie gelöscht');
return redirect(route('travel_program_detail', [$pId]));
}
/*
* PROGRAM DRAFTS
*/
/**
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function draftUpdate(){
$data = Request::all();
$this->travelProgramRepo->updateDraft($data);
\Session()->flash('alert-save', '1');
return redirect(route('travel_program_detail', [$data['travel_program_id']]));
}
public function draftDelete($id){
$travel_program_draft = TravelProgramDraft::findOrFail($id);
$pId = $travel_program_draft->travel_program_id;
$travel_program_draft->delete();
\Session()->flash('alert-success', 'Programm Vorlage gelöscht');
return redirect(route('travel_program_detail', [$pId]));
}
}