Files
bm/public_html/routes/web.php
2025-09-24 13:26:28 +02:00

593 lines
22 KiB
PHP

<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
use App\CulturecardTicket;
use App\Event;
use App\Http\Controllers\BookController;
use App\Library\FormatSeatWithNumbering;
use App\Order;
use App\Seat;
use App\SingleSeatsUser;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Mail;
use Symfony\Component\Console\Input\Input;
Route::get('/', function () {
if (Cookie::has('booking') && !Auth::check()) {
return redirect('login');
}
if (Cookie::has('booking')) {
return redirect('storebooking');
}
return redirect('/home');
});
Route::get('/login', function () {
return view('/auth/login');
});
Route::get('/activate', function () {
return view('/activate');
});
Route::get('/speisekarte', function () {
$text = DB::table('wirt')
->select(DB::raw('text'))
->where('name', '=', 'Speisekarte')
->first();
$text = $text->text;
return view('/static/speisekarte')->with('text', $text);
});
Route::get('/gasthaus/{part}', function ($part) {
$text = DB::table('wirt')
->select(DB::raw('text'))
->where('name', '=', $part)
->first();
if($text != null){
$text = $text->text;
return view('/static/speisekarte')->with('text', $text)->with('title', $part);
}else{
return abort(404);
}
});
Route::get('/edit_wirt/{part}', function ($part) {
if(Auth::check() && (Auth::user()->id=="12457" || Auth::user()->id=="1" || Auth::user()->id=="16398")){ //wirt
$text = DB::table('wirt')
->select(DB::raw('text'))
->where('name', '=', $part)
->first();
$text = $text->text;
return view('wirt/edit_wirt')->with('text', $text)->with('part', $part);
}else{
return "Um eine Gasthaussseite zu bearbeiten, bitte zuerst als Wirt einloggen <a href'/login'>Zum Login</a>";
}
});
Route::post('/edit_wirt', function (Request $request) {
if(Auth::check() && (Auth::user()->id=="12457" || Auth::user()->id=="1" || Auth::user()->id=="16398")){ //wirt
$text = $request->get('text');
$part = $request->get('part');
DB::statement("UPDATE wirt SET text = '".$text."' where name='".$part."'");
\Session::flash('flash_message', 'Seite wurde erfolgreich geändert!');
return redirect('/gasthaus_bruckmuehle');
}else{
return "Um die Speisekarte zu bearbeiten, bitte zuerst als Wirt einloggen <a href'/login'>Zum Login</a>";
}
});
Route::get('/tmp', function(Request $request){
$member = User::find(16478);
$next = User::where(DB::raw('CONCAT(lastname, " ",firstname)'), '>', $member->lastname." ".$member->firstname)
->orderBy(DB::raw('CONCAT(lastname, " ",firstname)'), 'asc')->first();
dd($next);
});
Route::put('/activate', function (Request $request) {
$mail = $request->get('email');
$pin = $request->get('pin');
$pw = $request->get('password');
$user = User::where('email', $mail)->first();
if ($user->resetPw == 0) return "Benutzer mit dieser Mailadresse existiert nicht, oder hat sein Passwort bereits geändert.";
if ($user->resetPwNumber != $pin) return "Falschen Code angegeben. Bitte auf den Link in der Mail klicken.";
$user->password = bcrypt($pw);
$user->resetPw = 0;
$user->save();
return "Passwort wurde erfolgreich geändert. <a href='/'>Weiter</a>";
});
Route::resource('/event', 'UserEventController');
Route::resource('/book', 'BookController');
Route::get('/storebooking', [
'as' => 'storebooking', 'uses' => 'BookController@storeBooking'
]);
Route::group(['middleware' => 'auth'], function () {
Route::resource('/tickets', 'UserTicketController');
Route::get('/paywithculturecard', function () {
return view('/paywithculturecard');
});
});
Route::group(['middleware' => 'auth', 'admin'], function () {
Route::get('admin/finanzliste', 'ReservationController@finance');
Route::get('admin/stats', 'ReservationController@stats');
Route::resource('admin/events', 'EventController');
Route::resource('admin/usercategories', 'UsercategoryController');
Route::resource('admin/seating', 'SeatingController');
Route::resource('admin/user', 'UserController');
Route::resource('admin/reservations', 'ReservationController');
Route::resource('admin/invoice', 'InvoiceController');
Route::resource('admin/print', 'PrintController');
Route::resource('admin/ticket', 'TicketController');
Route::resource('admin/singleticket', 'SingleTicketController');
Route::get('admin/new-culture-card', 'NewCultureCardController@show');
Route::get('admin/eventoverview/{id}', 'EventController@overview');
Route::get('admin/eventoverviewlist/{id}', 'EventController@overviewList');
Route::get('admin/eventoverviewlistall/{id}', 'EventController@overviewListAll');
Route::get('admin/addticketforculturecard/{id}', function($id){
$culturecardTicket = new CulturecardTicket();
$culturecardTicket->culturecard_id = $id;
$culturecardTicket->singleseat_id = 4483;
$culturecardTicket->save();
echo "Erfolgreich hinzugefügt <a href='/home'>Zur Startseite</a>";
});
Route::get('admin/deleteticket/{id}', function($id){
$culturecardTicket = CulturecardTicket::find($id);
$culturecardTicket->delete();
echo "Erfolgreich gelöscht <a href='/home'>ZURÜCK</a>";
});
Route::get('admin/orderPayWithCultureCard/{id}', function($id){
$ssu = SingleSeatsUser::find($id);
$order = $ssu->order()->first();
$ssu->order()->dissociate($order);
$newOrder = new Order;
$newOrder->user_id = $order->user_id;
$newOrder->paid = 1;
$newOrder->notes = $order->notes;
$newOrder->porto = $order->porto;
$culturecardTicket = new CulturecardTicket();
if($order->user()->first()->culturecard_user()->orderBy('created_at', 'desc')->first() == null){
return "Kein ausreichendes Guthaben auf der Kulturkarte. <a href='/'>Zur Startseite</a>";
}
$culturecardTicket->culturecard_id = $order->user()->first()->culturecard_user()->orderBy('created_at', 'desc')->first()->culturecard()->first()->id;
$culturecardTicket->singleseat_id = $ssu->singleSeat()->first()->id;
$culturecardTicket->save();
$newOrder->save();
$ssu->order()->associate($newOrder->id);
$order->save();
$ssu->paymentmethod_id = 5; //kulturkarte
$ssu->save();
return redirect('admin/reservations/' . $newOrder->id);
});
Route::resource('admin/culturecard', 'CulturecardController');
Route::post('admin/updateevent/{id}', 'EventController@update');
Route::get('admin/deletesingleseat/{id}', function ($id) {
$ssu = \App\SingleSeatsUser::find($id);
$order_id = $ssu->order_id;
$singleSeat = $ssu->singleSeat()->first();
$singleSeat->booked = 0;
$singleSeat->save();
$order = $ssu->order()->first();
$ssu->delete();
if (count($order->singleseatusers()->get()) == 0) {
$order = Order::find($order_id);
$order->delete();
return redirect('admin/reservations');
}
return redirect('admin/reservations/' . $order_id);
});
Route::get('reservationData', [
'as' => 'reservationData',
'uses' => function () {
$search = Illuminate\Support\Facades\Input::get('search')["value"];
if(is_null($search)){
$data = DB::select( DB::raw("select (select concat_ws('',firstname, ' ', lastname) from users where id = order1.user_id) as firstname, (select concat_ws('',lastname, ' ', firstname) from users where id = order1.user_id) as lastname, (select (select (select (select title from events where id=s1.event_id limit 1) from seats as s1 where id=ss1.seat_id limit 1) from single_seats as ss1 where id=ssu1.single_seat_id limit 1) from single_seat_user as ssu1 where order_id=order1.id limit 1) as eventtitle, id, case when Paid=0 then \"nein\" else \"ja\" end as paidValue, concat('<button onclick=\"window.open(\'/admin/invoice/',id,'?print=1\', \'_blank\');\">RD</button>') as btn2, concat('<button onclick=\"window.open(\'/admin/invoice/',id,'?print=0\', \'_blank\');\">RA</button>') as btn3, concat('<button onclick=\"window.open(\'/admin/print/',id,'?print=0\', \'_blank\');\">TD</button>') as btn4, concat('<a href=\"/admin/reservations/',id, '\" title=\"Bearbeiten\"><i class=\"fa fa-pencil\" aria-hidden=\"true\"></i></a>') as btn5,concat('<form method=\"POST\" action=\"https://bruckmuehle.at/admin/reservations/', id, '\" accept-charset=\"UTF-8\"><input name=\"_method\" value=\"DELETE\" type=\"hidden\"><input name=\"_token\" value=\"".csrf_token()."\" type=\"hidden\"><input class=\"btn btn-danger\" value=\"Delete\" type=\"submit\"></form>') as btn6 from orders as order1;") );
}else{
$data = DB::select( DB::raw("select (select concat_ws('',firstname, ' ', lastname) from users where id = order1.user_id) as firstname, (select concat_ws('',lastname, ' ', firstname) from users where id = order1.user_id) as lastname, (select (select (select (select title from events where id=s1.event_id limit 1) from seats as s1 where id=ss1.seat_id limit 1) from single_seats as ss1 where id=ssu1.single_seat_id limit 1) from single_seat_user as ssu1 where order_id=order1.id limit 1) as eventtitle, id, case when Paid=0 then \"nein\" else \"ja\" end as paidValue, concat('<button onclick=\"window.open(\'/admin/invoice/',id,'?print=1\', \'_blank\');\">RD</button>') as btn2, concat('<button onclick=\"window.open(\'/admin/invoice/',id,'?print=0\', \'_blank\');\">RA</button>') as btn3, concat('<button onclick=\"window.open(\'/admin/print/',id,'?print=0\', \'_blank\');\">TD</button>') as btn4, concat('<a href=\"/admin/reservations/',id, '\" title=\"Bearbeiten\"><i class=\"fa fa-pencil\" aria-hidden=\"true\"></i></a>') as btn5,concat('<form method=\"POST\" action=\"https://bruckmuehle.at/admin/reservations/', id, '\" accept-charset=\"UTF-8\"><input name=\"_method\" value=\"DELETE\" type=\"hidden\"><input name=\"_token\" value=\"".csrf_token()."\" type=\"hidden\"><input class=\"btn btn-danger\" value=\"Delete\" type=\"submit\"></form>') as btn6 from orders as order1 where (select concat_ws('',firstname, ' ', lastname) from users where id = order1.user_id) like '%".$search."%' OR (select concat_ws('',lastname, ' ', firstname) from users where id=order1.user_id) like '%".$search."%' OR (select (select (select (select title from events where id=s1.event_id limit 1) from seats as s1 where id=ss1.seat_id limit 1) from single_seats as ss1 where id=ssu1.single_seat_id limit 1) from single_seat_user as ssu1 where order_id=order1.id limit 1) like '%".$search."%' OR id like '%".$search."%';") );
}
return (Datatables::of(collect($data))->make());
}
]);
Route::get('userData', [
'as' => 'userData',
'uses' => function () {
$searchQuery = request()->search["value"];
if(is_null($searchQuery)){
$searchQuery = "%";
}else{
$searchQuery = "%".$searchQuery."%";
}
$data = DB::select( DB::raw("SELECT Concat_ws('', firstname, ' ', lastname) AS name1, Concat_ws('', lastname, ' ', firstname) AS name2, email, Concat('<a href=\"https://bruckmuehle.at/admin/user/', id, '/edit\" class=\"btn btn-warning\">Bearbeiten</a>'), Concat('<form method=\"POST\" action=\"https://bruckmuehle.at/admin/user/', id,'\" accept-charset=\"UTF-8\"><input name=\"_method\" value=\"DELETE\" type=\"hidden\"><input name=\"_token\" value=\"".csrf_token()."\" type=\"hidden\"><input class=\"btn btn-danger\" value=\"Delete\" type=\"submit\"></form>') FROM users WHERE deleted_at is null HAVING name1 LIKE '".$searchQuery."' OR name2 LIKE '".$searchQuery."' OR email LIKE '".$searchQuery."'; ") );
return Datatables::of(collect($data))->make();
}
]);
Route::get('printSeatMap/{id}', 'BookControllerHelper\ShowBookController@printSeatMap');
Route::get('printSeatMap/{id}/new', 'BookControllerHelper\ShowBookController@printSeatMapNew');
Route::get('admin/soldSeatTimeline/{eventId}', function ($eventId) {
$seat = Seat::where('event_id', $eventId)->first();
return view('/admin/stats/soldSeatTimeline')->with('seatId', $seat->id);
});
});
Route::get('/kulturhaus', function () {
return view('/static/organisation');
});
Route::post('/sendmsg', function (Request $request) {
$post_data = http_build_query(
array(
'secret' => 'AIzaSyDGZYhmexb-BQ6NWo15lm-d0-B3TCKVnLc',
'response' => $request['g-recaptcha-response'],
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $post_data
)
);
$context = stream_context_create($opts);
$response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context);
$result = json_decode($response);
if (!$result->success) {
\Session::flash('flash_error', 'Fehler! Nachricht wurde nicht versendet, der eingegebene reCAPTCHA Code ist falsch!');
return redirect('/kontakt');
}
$msg = "KONTAKTFORMULAR \n\n";
$msg .= "An: " . $request->input('to') . "\n";
$msg .= "Anrede: " . $request->input('gender') . "\n";
$msg .= "Vorname: " . $request->input('firstname') . "\n";
$msg .= "Nachname: " . $request->input('surname') . "\n";
$msg .= "Straße: " . $request->input('street') . "\n";
$msg .= "PLZ: " . $request->input('zip') . "\n";
$msg .= "Ort: " . $request->input('city') . "\n";
$msg .= "Telefon: " . $request->input('phone') . "\n";
$msg .= "E-Mail: " . $request->input('mail') . "\n";
$msg .= "Bemerkungen: " . $request->input('text') . "\n";
//Mail::to("kulturhaus@bruckmuehle.at")
Mail::to($request->input('to'))
->send(new \App\Mail\ContactMail($msg));
\Session::flash('flash_message', 'Die Nachricht wurde erfolgreich versandt!');
return redirect('/home');
});
Route::get('/tmp/{seatX}/{seatY}', function($seatX, $seatY) {
return view('/admin/tmp', compact('seatX', 'seatY'));
});
Route::post('/sendmsgculturcard', function (Request $request) {
$post_data = http_build_query(
array(
'secret' => '6LfdW-sqAAAAAKmSHKanx9SM4Em83pmgJPAilYmn',
'response' => $request['g-recaptcha-response'],
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $post_data
)
);
$context = stream_context_create($opts);
$response = file_get_contents('https://www.google.com/recaptcha/api/siteverify', false, $context);
$result = json_decode($response);
if (!$result->success) {
\Session::flash('flash_error', 'Fehler! Nachricht wurde nicht versendet, der eingegebene reCAPTCHA Code ist falsch!');
return redirect('/kulturcard');
}
$msg = "BESTELLUNG KULTURKARTE \n\n";
$msg .= "Anrede: " . $request->input('gender') . "\n";
$msg .= "Vorname: " . $request->input('firstname') . "\n";
$msg .= "Nachname: " . $request->input('surname') . "\n";
$msg .= "Straße: " . $request->input('street') . "\n";
$msg .= "PLZ: " . $request->input('zip') . "\n";
$msg .= "Ort: " . $request->input('city') . "\n";
$msg .= "E-Mail: " . $request->input('mail') . "\n";
Mail::to("kultur@bruckmuehle.at")
->send(new \App\Mail\ContactMail($msg));
\Session::flash('flash_message', 'Die Kulturkarte wurde erfolgreich bestellt!');
return redirect('/home');
});
Route::get('/removeCart', function () {
$cookie = Cookie::forget('booking');
return redirect('login')->withCookie($cookie);
});
Route::get('/programm', function () {
$events = Event::whereDate('end_date', '>=', Carbon::today()->toDateString())->where('hide_externally', '0')->where('hide_in_big_list', '0')->orderBy("start_date")->get();
return view('/programm', compact('events'));
});
Route::get('/home', function () {
$topEvents = Event::where('pinned', '1')->whereDate('end_date', '>=', Carbon::today()->toDateString())->orderBy("start_date")->get();
$nextEvents = Event::where('pinned', '0')->whereDate('end_date', '>=', Carbon::today()->toDateString())->orderBy("start_date")->limit(6)->get();
$events = $topEvents->merge($nextEvents);
return view('/home', compact('events'));
});
Route::get('/art', function () {
return Redirect::to('http://art.bruckmuehle.at');
});
Route::get('/ausstellungen', function () {
return view('/static/ausstellungen');
});
Route::get('/check', function(){
if(Auth::user()->admin != 1 ){
echo "normaler benutzer";
}else{
echo "admin";
}
});
Route::get('/aufsichtsrat', function () {
return view('/static/aufsichtsrat');
});
Route::get('/gh_ueber_uns', function () {
$text = DB::table('wirt')
->select(DB::raw('text'))
->where('name', '=', 'Über uns')
->first();
$text = $text->text;
return view('/static/gh_ueber_uns')->with('text', $text);
});
Route::get('/festschrift', function () {
return view('/static/festschrift');
});
Route::get('/videos', function () {
return view('/static/videos');
});
Route::get('/presse', function () {
return view('/static/presse');
});
Route::get('/photos', function () {
return view('/static/photos');
});
Route::get('/kunstler', function () {
return view('/static/kunstler');
});
Route::get('/aistfestspiele', function () {
return view('/static/aistfestspiele');
});
Route::get('/comedia', function () {
return view('/static/comedia');
});
Route::get('/archiv2', function () {
return view('/static/archiv2');
});
Route::get('/archiv', function () {
return view('/static/archiv');
});
Route::get('/job', function () {
return view('/static/job');
});
Route::get('/tab', function () {
return view('/static/tab');
});
Route::get('/kontakt_gh', function () {
return view('/static/kontakt_gh');
});
Route::get('/geschichte', function () {
return view('/static/geschichte');
});
Route::get('/partner', function () {
return view('/static/partner');
});
Route::get('/agb', function () {
return view('/static/agb');
});
Route::get('/impressum', function () {
return view('/static/impressum');
});
Route::get('/anfahrtsplan', function () {
return view('/static/anfahrt');
});
Route::get('/radio_bruckmuehle', function () {
return view('/static/radio_bruckmuehle');
});
Route::get('/tv_bruckmuehle', function () {
return view('/static/tv_bruckmuehle');
});
Route::get('/raumvermietung', function () {
return view('/static/raumvermietung');
});
Route::get('/gasthaus_bruckmuehle', function () {
$text = DB::table('wirt')
->select(DB::raw('text'))
->where('name', '=', 'Startseite')
->first();
$text = $text->text;
return view('/static/gasthaus_bruckmuehle')->with('text', $text);
});
Route::get('/organisation', function () {
return view('/static/organisation');
});
Route::get('/findling', function () {
return view('/static/findling');
});
Route::get('/galerie', function () {
return view('/static/galerie');
});
Route::get('/tagungsraum', function () {
return view('/static/tagungsraum');
});
Route::get('/foyer', function () {
return view('/static/foyer');
});
Route::get('/grosserspiegelsaal', function () {
return view('/static/großer_spiegelsaal');
});
Route::get('/kleinerspiegelsaal', function () {
return view('/static/kleiner_spiegelsaal');
});
Route::get('/vortragsraum', function () {
return view('/static/vortragsraum');
});
Route::get('/vortragsraum', function () {
return view('/static/vortragsraum');
});
Route::get('/technik', function () {
return view('/static/technik');
});
Route::get('/kontakt', function () {
return view('/static/kontakt');
});
Route::get('/organisation', function () {
return view('/static/organisation');
});
Route::get('/about', function () {
return view('/static/ueber_uns');
});
Route::get('/kulturcard', function () {
return view('/static/kulturcard');
});
Route::get('/ueber_uns', function () {
return view('/static/ueber_uns');
});
Route::get('/anfahrt', function () {
return view('/static/anfahrt');
});
Route::get('/newsletter', function () {
return view('/static/newsletter');
});
Route::get('/temp', function(){
$amountSkip = 0;
echo "Mail;Ausstellung;Kabarett;Literatur;Musik;Theater;Event;Amount<br />";
foreach(User::all() as $user){
$stat = $user->getCategoryStat();
if($stat["Ausstellung"] + $stat["Kabarett"] + $stat["Literatur"] + $stat["Musik"] + $stat["Theater"]+ $stat["Event"] > 0)
echo($user->email.";".$stat["Ausstellung"].";".$stat["Kabarett"].";".$stat["Literatur"].";".$stat["Musik"].";".$stat["Theater"].";".$stat["Event"].";".$user->getAmountOrderedTickets()."<br />");
else
$amountSkip++;
}
echo $amountSkip." people without a reservation";
});
Route::get('/mailnotsent', function () {
Mail::raw('Eine automatisiert versendete Mail (Reservierungsbestätigung, PW reset, Aktivierung, ...) wurde NICHT erfolgreich zugestellt. Checke bitte die Logs von Mailgun um den Fehler zu beheben.', function ($message){
$message->to('philipp.hofer@protonmail.com');
$message->from('software@bruckmuehle.at');
$message->subject('Mail nicht erfolgreich zugestellt!');
});
dd("succ");
});
Route::get('/kabaretts', function(Request $request){
$events = Event::whereDate('end_date', '>=', Carbon::today()->toDateString())->orderBy("start_date")->get();
return view('/kabaretts', compact('events'));
});
Auth::routes();
//Imgfly::routes();
#Route::get('/home', 'HomeController@index')->name('home');
//\URL::forceScheme('https');