126 lines
3.7 KiB
PHP
Executable file
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]));
|
|
}
|
|
|
|
}
|
|
|
|
|