Join tour with rooms from modal

This commit is contained in:
Torsten 2022-06-20 10:50:43 +02:00
parent 757dfea5a4
commit f1ff6ed4c2
5 changed files with 29 additions and 11 deletions

View file

@ -7,5 +7,5 @@ use Illuminate\Database\Eloquent\Model;
class Booking extends Model class Booking extends Model
{ {
public $timestamps=true; public $timestamps=true;
protected $fillable=['tour_id','user_id','created_at','updated_at']; protected $fillable=['tour_id','user_id','room_id','created_at','updated_at'];
} }

View file

@ -316,10 +316,17 @@ class TourController extends Controller
} }
public function join($tour_id) { public function join($tour_id) {
Log::info("TourController::join");
$user=Auth::user(); $user=Auth::user();
Tour::join($tour_id,$user->id); Tour::join($tour_id,$user->id);
return redirect('/tour/'.$tour_id); return redirect('/tour/'.$tour_id);
} }
public function join_room($tour_id,$room_id) {
Log::info("TourController::join_room");
$user=Auth::user();
Tour::join_room($tour_id,$user->id, $room_id);
return redirect('/tour/'.$tour_id);
}
public function cancelBooking($tour_id) { public function cancelBooking($tour_id) {
$user=Auth::user(); $user=Auth::user();

View file

@ -5,6 +5,7 @@ namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Log;
class Tour extends Model class Tour extends Model
{ {
@ -26,20 +27,27 @@ class Tour extends Model
return false; return false;
} }
// old join without room parameter
public static function join($tour_id,$user_id) { public static function join($tour_id,$user_id) {
error_log("Tour::join, tour_id=".$tour_id.", user_id=".$user_id); Log::info("Tour::join, tour_id=".$tour_id.", user_id=".$user_id);
/*
Booking::firstOrCreate(
['tour_id',$tour_id],
['user_id',$user_id],
['updated_at', Carbon::now()]
);
*/
$booking = Booking::firstOrCreate( $booking = Booking::firstOrCreate(
['tour_id' => $tour_id, 'user_id' => $user_id], ['tour_id' => $tour_id, 'user_id' => $user_id],
['tour_id' => $tour_id, 'user_id' => $user_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now() ] ['tour_id' => $tour_id, 'user_id' => $user_id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now() ]
); );
error_log($booking); //Log::info($booking);
}
// new join with room parameter
public static function join_room($tour_id, $user_id, $room_id) {
Log::info("Tour::join_room, tour_id=".$tour_id.", user_id=".$user_id.", room_id=".$room_id);
$booking = Booking::firstOrCreate(
['tour_id' => $tour_id, 'user_id' => $user_id], // Retrieve if existing
['tour_id' => $tour_id, 'user_id' => $user_id, 'room_id' => $room_id,
'created_at' => Carbon::now(), 'updated_at' => Carbon::now() ] // or create new
);
$booking->room_id=$room_id;
$booking->save();
//Log::info($booking);
} }
public static function cancel($tour_id, $user_id) { public static function cancel($tour_id, $user_id) {

View file

@ -7,7 +7,7 @@
<!-- CSRF Token --> <!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title> <title>{{ config('app.name', 'Motorrag IG') }}</title>
<!-- Scripts --> <!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script> <script src="{{ asset('js/app.js') }}" defer></script>

View file

@ -48,7 +48,10 @@ Route::post('/tour/update', 'TourController@store')->middleware('auth');
Route::post('/tour/upload_gallery/{tour_id}', 'TourController@upload_gallery'); Route::post('/tour/upload_gallery/{tour_id}', 'TourController@upload_gallery');
Route::resource('/tour', TourController::class)->middleware('auth'); Route::resource('/tour', TourController::class)->middleware('auth');
// alt
Route::get('/tour/{tour_id}/join', 'TourController@join')->middleware('auth'); Route::get('/tour/{tour_id}/join', 'TourController@join')->middleware('auth');
// neu
Route::get('/tour/{tour_id}/join/{room_id}', 'TourController@join_room')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking')->middleware('auth'); Route::get('/tour/{tour_id}/cancelBooking', 'TourController@cancelBooking')->middleware('auth');
Route::get('/tour/{tour_id}/cancelBookingAdmin/{user_id}', 'TourController@cancelBookingAdmin')->middleware('auth'); Route::get('/tour/{tour_id}/cancelBookingAdmin/{user_id}', 'TourController@cancelBookingAdmin')->middleware('auth');
Route::get('/tour/{tour_id}/create_room/{capacity}', 'TourController@create_room')->middleware('auth'); Route::get('/tour/{tour_id}/create_room/{capacity}', 'TourController@create_room')->middleware('auth');