diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index f29e8ef..9810814 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,43 +2,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
@@ -87,47 +71,86 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- datepic
- datepicker
- url
translations
draft
version
@@ -153,6 +176,11 @@
array
extends Eloquent
travel_booking_fewo_channel_id
+ _at
+ price_total
+ is_calendar_stern_tours
+ update_modal_data_show
+ custom
@@ -161,11 +189,11 @@
$PROJECT_DIR$/database/migrations
$PROJECT_DIR$
$PROJECT_DIR$/app/Http/Controllers
- $PROJECT_DIR$/resources
$PROJECT_DIR$/resources/assets
$PROJECT_DIR$/resources/views
$PROJECT_DIR$/app
$PROJECT_DIR$/app/Models
+ $PROJECT_DIR$/resources
@@ -183,16 +211,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -203,20 +221,13 @@
-
-
-
-
-
-
-
@@ -230,10 +241,27 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -349,9 +377,9 @@
-
+
-
+
@@ -393,6 +421,13 @@
+
+
+
+
+
+
+
@@ -405,6 +440,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -421,46 +466,15 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -481,18 +495,18 @@
+
+
+
+
+
+
+
-
-
-
-
-
-
-
@@ -603,17 +617,25 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -666,76 +688,17 @@
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -746,228 +709,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -975,59 +716,334 @@
-
+
-
-
-
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Http/Controllers/API/FewoController.php b/app/Http/Controllers/API/FewoController.php
index 5a79b9f..da745f8 100755
--- a/app/Http/Controllers/API/FewoController.php
+++ b/app/Http/Controllers/API/FewoController.php
@@ -22,8 +22,6 @@ class FewoController extends Controller
public function action($action)
{
-
-
if ($action == "create_travel_users") {
$data = \Input::all();
if(!isset($data['travel_user']) && !is_array($data['travel_user'])) {
diff --git a/app/Http/Controllers/AdminUserController.php b/app/Http/Controllers/AdminUserController.php
index fe526fd..1d3ea35 100755
--- a/app/Http/Controllers/AdminUserController.php
+++ b/app/Http/Controllers/AdminUserController.php
@@ -6,11 +6,13 @@ namespace App\Http\Controllers;
use App\Models\Account;
use App\Repositories\UserRepository;
+use App\Services\HTMLHelper;
use App\User;
use Illuminate\Support\Facades\Mail;
use Input;
-use Illuminate\Http\Request;
+use Request;
use Validator;
+use DataTables;
@@ -58,7 +60,7 @@ class AdminUserController extends Controller
*/
public function store(Request $request)
{
- $data = Input::all();
+ /* $data = Input::all();
$user = User::findOrFail($data['id']);
$user->admin = $data['admin'];
@@ -68,6 +70,7 @@ class AdminUserController extends Controller
\Session()->flash('alert-save', true);
+ */
return redirect('/admin/users');
}
@@ -82,4 +85,72 @@ class AdminUserController extends Controller
}
+ public function loadModal($id){
+
+ if(Request::ajax()) {
+ $user = User::findOrFail($id);
+
+
+ $data = [
+ 'user' => $user,
+ 'groups' => config('permissions.groups'),
+ 'roles' => config('permissions.roles')
+ ];
+ return view("admin.user_modal", $data )->render();
+ }
+ return false;
+ }
+
+ public function updateModal($step = false){
+
+ if($step == 'user'){
+ $data = Input::all();
+ $user = User::findOrFail($data['id']);
+
+ $user->permissions = isset($data['permissions']) ? $data['permissions'] : [];
+ $user->admin = $data['admin'];
+ $user->confirmed = isset($data['confirmed']) ? true : false;
+ $user->active = isset($data['active']) ? true : false;
+ $user->save();
+
+ }
+
+ \Session()->flash('alert-save', true);
+ return redirect('/admin/users');
+ }
+
+
+
+//
+ public function getUsers()
+ {
+ //confirmation_code_remider is delete 2
+ $query = User::where('deleted_at', '=', null);
+
+ return \DataTables::eloquent($query)
+ ->addColumn('action_edit', function (User $user) {
+ return ' ';
+ })
+ ->addColumn('admin', function (User $user) {
+ return ''.HTMLHelper::getRoleLabel($user->admin).' ';
+ })
+ ->addColumn('confirmed', function (User $user) {
+ return $user->confirmed ? ' ' : ' ';
+ })
+ ->addColumn('active', function (User $user) {
+ return $user->active ? ' ' : ' ';
+ })
+ ->addColumn('action_delete', function (User $user) {
+ return ' ';
+ })
+ ->orderColumn('confirmed', 'confirmed $1')
+ ->orderColumn('active', 'active $1')
+ ->orderColumn('admin', 'active $1')
+ ->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete'])
+ ->make(true);
+ }
+
+
+
+
}
\ No newline at end of file
diff --git a/app/Http/Controllers/DataTableController.php b/app/Http/Controllers/DataTableController.php
index 3b25e13..dfe60c2 100644
--- a/app/Http/Controllers/DataTableController.php
+++ b/app/Http/Controllers/DataTableController.php
@@ -44,34 +44,6 @@ class DataTableController extends Controller
->make(true);
}*/
- public function getUsers()
- {
- //confirmation_code_remider is delete 2
- $query = User::where('deleted_at', '=', null);
-
- return \DataTables::eloquent($query)
- ->addColumn('action_edit', function (User $user) {
- return ' ';
- })
- ->addColumn('admin', function (User $user) {
- return ''.HTMLHelper::getRoleLabel($user->admin).' ';
- })
- ->addColumn('confirmed', function (User $user) {
- return $user->confirmed ? ' ' : ' ';
- })
- ->addColumn('active', function (User $user) {
- return $user->active ? ' ' : ' ';
- })
- ->addColumn('action_delete', function (User $user) {
- return ' ';
- })
- ->orderColumn('confirmed', 'confirmed $1')
- ->orderColumn('active', 'active $1')
- ->orderColumn('admin', 'active $1')
- ->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete'])
- ->make(true);
- }
-
public function getBookings()
{
//confirmation_code_remider is delete 2
diff --git a/app/Http/Controllers/TravelUserBookingFewoController.php b/app/Http/Controllers/TravelUserBookingFewoController.php
index a8637c5..3cf83b4 100755
--- a/app/Http/Controllers/TravelUserBookingFewoController.php
+++ b/app/Http/Controllers/TravelUserBookingFewoController.php
@@ -3,9 +3,12 @@
namespace App\Http\Controllers;
+use App\Models\FewoPrice;
use App\Models\FewoReservation;
+use App\Models\FewoSeason;
use App\Models\TravelUser;
use App\Models\TravelUserBookingFewo;
+use Carbon\Carbon;
use Input;
use Validator;
@@ -29,16 +32,21 @@ class TravelUserBookingFewoController extends Controller
public function detail($id)
{
+ $max_adults = 10;
+ $max_children = 10;
if($id == "new") {
$travel_user_booking_fewo = new TravelUserBookingFewo();
$id = 'new';
-
}else{
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
+ $max_adults = isset($travel_user_booking_fewo->fewo_lodging->maximum_adults) ? $travel_user_booking_fewo->fewo_lodging->maximum_adults : 10;
+ $max_children = isset($travel_user_booking_fewo->fewo_lodging->maximum_childs) ? $travel_user_booking_fewo->fewo_lodging->maximum_childs : 10;;
$id = $travel_user_booking_fewo->id;
}
$data = [
'travel_user_booking_fewo' => $travel_user_booking_fewo,
+ 'max_adults' => $max_adults,
+ 'max_children' => $max_children,
'id' => $id,
];
return view('travel.user.booking.detail', $data);
@@ -49,6 +57,39 @@ class TravelUserBookingFewoController extends Controller
{
$data = Input::all();
+ //check for data
+ $check_for_reservation = true;
+ $fewo_reservation_id = 0;
+ if($id > 0) {
+ $model = TravelUserBookingFewo::findOrFail($id);
+ if($data['from_date'] == $model->from_date && $data['to_date'] == $model->to_date){
+ $check_for_reservation = false;
+ }
+ $fewo_reservation_id = $model->fewo_reservation_id;
+
+ }
+ if($check_for_reservation){
+ $from_date = Carbon::parse($data['from_date'])->format('Y-m-d');
+ $to_date = Carbon::parse($data['to_date'])->format('Y-m-d');
+ echo " ";
+ $fewos = FewoReservation::where('lodging_id', $data['fewo_lodging_id'])
+ ->where('id', '!=', $fewo_reservation_id)
+ ->where('from_date', '<', $to_date)
+ ->where('to_date', '>', $from_date)
+ ->get();
+ if($fewos->count()){
+ $error = [];
+ foreach ($fewos as $fewo){
+ $error[] = "Reservierung gefunden: ".$fewo->from_date->format('d.m.Y')." - ".$fewo->to_date->format('d.m.Y');
+ }
+ return back()->withInput(Input::all())->withErrors($error);
+ }
+
+ }
+
+
+
+ //check for
$rules = array(
'travel_user_id' => 'required',
@@ -57,27 +98,158 @@ class TravelUserBookingFewoController extends Controller
'to_date'=>'required',
'travel_booking_fewo_channel_id' => 'required',
'status' => 'required'
-
);
$validator = Validator::make(Input::all(), $rules);
+ /* $message = 'my custom validation rule message' . $data['from_date'];
+ Validator::extend('my_custom_validation_rule', function ($attribute, $value, $parameters) {
+ //
+ }, $message);
+ */
if ($validator->fails()) {
return back()->withInput(Input::all())->withErrors($validator);
}
+ $set_price = true;
+ $data['is_calendar_fewo_direct'] = isset($data['is_calendar_fewo_direct']) ? true : false;
+ $data['is_calendar_hrs'] = isset($data['is_calendar_hrs']) ? true : false;
+ $data['is_calendar_stern_tours'] = isset($data['is_calendar_stern_tours']) ? true : false;
+
+
if($id == "new") {
$model = TravelUserBookingFewo::create($data);
+
}else{
$model = TravelUserBookingFewo::findOrFail($id);
+ if($data['from_date'] == $model->from_date && $data['to_date'] == $model->to_date){
+ $set_price = false;
+ }
$model->fill($data)->save();
}
+ $res = $this->calculatePriceNew($model);
+ $model->daily_prices = $res['season'];
+ if($set_price){
+ $model->price_travel = $res['price_travel'];
+ $model->price_service = $res['price_service'];
+ $model->price_deposit = $res['price_deposit'];
+ $model->price_total = $res['price_total'] + $model->getPriceBalanceRaw();
+
+ if($fewo_reservation = $model->fewo_reservation){
+ $model->fewo_reservation->from_date = $model->getFromDateRaw();
+ $model->fewo_reservation->to_date = $model->getToDateRaw();
+ $model->fewo_reservation->save();
+
+ }
+ }
+ if($fewo_reservation = $model->fewo_reservation){
+ if($model->is_calendar_stern_tours){
+ $model->fewo_reservation->from_date = $model->getFromDateRaw();
+ $model->fewo_reservation->to_date = $model->getToDateRaw();
+ }else{
+ $model->fewo_reservation->from_date = null;
+ $model->fewo_reservation->to_date = null;
+ }
+ $model->fewo_reservation->save();
+ }else{
+ if($model->is_calendar_stern_tours){
+
+ $res = FewoReservation::create([
+ 'lodging_id' => $model->fewo_lodging_id,
+ 'from_date' => $model->getFromDateRaw(),
+ 'to_date' => $model->getToDateRaw(),
+ 'status' => 0,
+ 'type' => 0]);
+ $model->fewo_reservation_id = $res->id;
+ $model->save();
+ }
+ }
+
+ $model->save();
+
\Session()->flash('alert-save', '1');
return redirect(route('travel_user_booking_fewo_detail', [$model->id]));
}
+ private function calculatePriceNew(TravelUserBookingFewo $travel_user_booking_fewo){
+
+ $FewoSeasons = FewoSeason::where('from_date', '<', $travel_user_booking_fewo->getToDateRaw())
+ ->where('to_date', '>=', $travel_user_booking_fewo->getFromDateRaw())
+ ->get();
+ $seasons = [];
+ foreach ($FewoSeasons as $fewoSeason){
+ $FewoPrices = FewoPrice::where('lodging_id', $travel_user_booking_fewo->fewo_lodging_id)->where('season_id', $fewoSeason->id)->get();
+ $price = [];
+ foreach ($FewoPrices as $fewoPrice){
+ $price = $fewoPrice;
+ }
+ $seasons[] = [
+ 'name' => $fewoSeason->name,
+ 'fromDay' => $fewoSeason->from_date->format("Y-m-d"),
+ 'toDay' => $fewoSeason->to_date->format("Y-m-d"),
+ 'minimum_stay' => $fewoSeason->minimum_stay,
+ 'price' => $price,
+ ];
+
+ }
+ $fromDate = Carbon::parse($travel_user_booking_fewo->getFromDateRaw());
+ $toDate = Carbon::parse($travel_user_booking_fewo->gettoDateRaw());
+
+ $interval = \DateInterval::createFromDateString('1 day');
+ $period = new \DatePeriod($fromDate, $interval, $toDate);
+ $check_days = array();
+
+
+ $result = [];
+ $result['price_total'] = 0;
+ $result['price_travel'] = 0;
+ $result['price_deposit'] = $travel_user_booking_fewo->getPriceDepositRaw();
+ $result['price_service'] = 0;
+ $result['days'] = 0;
+ $result['season'] = [];
+ $frist_day = false;
+
+ //days
+ foreach ($period as $dt) {
+
+ foreach ($seasons as $season) {
+ if($dt->format("Y-m-d") >= $season['fromDay'] && $dt->format("Y-m-d") <= $season['toDay']){
+ $check_days[] = $dt->format("d.m.Y");
+ $price = $season['price'];
+ $name = $season['name'];
+
+ if(!isset($result['season'][$name])){
+ $result['season'][$name]['fromDay'] = $dt->format("d.m.Y");
+ $result['price_service'] = $price->flat_price;
+ $result['season'][$name]['price'] = 0;
+ $result['season'][$name]['numberDays'] = 0;
+ $result['season'][$name]['perNight'] = $price->per_night;
+ $result['season'][$name]['minimumStay'] = $season['minimum_stay'];
+ }
+
+ if(!$frist_day){
+ $result['season'][$name]['price'] += $price->per_night;
+ $result['season'][$name]['numberDays'] ++;
+ $result['season'][$name]['toDay'] = $dt->format("d.m.Y");
+ $result['price_travel'] += $price->per_night;
+
+ $result['days'] ++;
+
+ }else{
+ $frist_day = true;
+ }
+
+ }
+ }
+
+ }
+ $result['price_total'] = $result['price_deposit'] + $result['price_travel'] + $result['price_service'];
+ return $result;
+
+ }
+
public function delete($id){
$model = TravelUserBookingFewo::findOrFail($id);
$FewoReservations = FewoReservation::where('lodging_id', $model->fewo_lodging_id)->where('from_date', $model->getFromDateRaw())->where('to_date', $model->getToDateRaw())->get();
diff --git a/app/Http/Controllers/TravelUserController.php b/app/Http/Controllers/TravelUserController.php
index 963d4e5..e33bbea 100755
--- a/app/Http/Controllers/TravelUserController.php
+++ b/app/Http/Controllers/TravelUserController.php
@@ -82,6 +82,9 @@ class TravelUserController extends Controller
$model = TravelUser::findOrFail($id);
$model->email = time()."@delete.de";
$model->save();
+ foreach ($model->travel_user_booking_fewos as $travel_user_booking_fewo) {
+ $travel_user_booking_fewo->delete();
+ }
$model->delete();
\Session()->flash('alert-success', __('Vorlage gelöscht'));
return redirect(route('travel_users'));
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 8bda5a9..932f721 100755
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -56,6 +56,7 @@ class Kernel extends HttpKernel
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'admin' => \App\Http\Middleware\Admin::class,
'superadmin' => \App\Http\Middleware\SuperAdmin::class,
+ 'auth.permission' => \App\Http\Middleware\AuthPermission::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
diff --git a/app/Http/Middleware/AuthPermission.php b/app/Http/Middleware/AuthPermission.php
new file mode 100755
index 0000000..de7b9a5
--- /dev/null
+++ b/app/Http/Middleware/AuthPermission.php
@@ -0,0 +1,26 @@
+isPermission($key) )
+ {
+ return $next($request);
+ }
+ return redirect('/home');
+
+ }
+}
diff --git a/app/Models/TravelUserBookingFewo.php b/app/Models/TravelUserBookingFewo.php
index 2e08b6a..b9e3675 100644
--- a/app/Models/TravelUserBookingFewo.php
+++ b/app/Models/TravelUserBookingFewo.php
@@ -53,9 +53,6 @@ class TravelUserBookingFewo extends Model
{
use \Illuminate\Database\Eloquent\SoftDeletes;
-
-
-
protected static $statues = [
0 => 'Anfrage von STERN TOURS',
1 => 'Angebot versandt',
@@ -79,6 +76,7 @@ class TravelUserBookingFewo extends Model
protected $casts = [
'travel_user_id' => 'int',
'fewo_lodging_id' => 'int',
+ 'fewo_reservation_id' => 'int',
'persons' => 'int',
'adults' => 'int',
'children' => 'int',
@@ -86,6 +84,7 @@ class TravelUserBookingFewo extends Model
'price_travel' => 'float',
'price_deposit' => 'float',
'price_service' => 'float',
+ 'price_balance' => 'float',
'price_total' => 'float',
'travel_booking_fewo_channel_id' => 'int',
'is_calendar_fewo_direct' => 'bool',
@@ -103,6 +102,7 @@ class TravelUserBookingFewo extends Model
protected $fillable = [
'travel_user_id',
'fewo_lodging_id',
+ 'fewo_reservation_id',
'invoice_number',
'adults',
'children',
@@ -114,6 +114,7 @@ class TravelUserBookingFewo extends Model
'price_travel',
'price_deposit',
'price_service',
+ 'price_balance',
'price_total',
'travel_booking_fewo_channel_id',
'notice',
@@ -129,6 +130,11 @@ class TravelUserBookingFewo extends Model
return $this->belongsTo(\App\Models\FewoLodging::class);
}
+ public function fewo_reservation()
+ {
+ return $this->belongsTo(\App\Models\FewoReservation::class, 'fewo_reservation_id');
+ }
+
public function travel_booking_fewo_channel()
{
return $this->belongsTo(\App\Models\TravelBookingFewoChannel::class);
@@ -241,8 +247,7 @@ class TravelUserBookingFewo extends Model
public function getPriceTravelAttribute($value)
{
- if(!$value){ return ""; }
- // 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
+ if(!$value){ return 0; }
return number_format(($this->attributes['price_travel']), 2, ',', '.');
}
@@ -260,8 +265,7 @@ class TravelUserBookingFewo extends Model
public function getPriceDepositAttribute($value)
{
- if(!$value){ return ""; }
- // 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
+ if(!$value){ return 0; }
return number_format(($this->attributes['price_deposit']), 2, ',', '.');
}
@@ -279,9 +283,7 @@ class TravelUserBookingFewo extends Model
public function getPriceServiceAttribute($value)
{
- if(!$value){ return ""; }
-
- // 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
+ if(!$value){ return 0; }
return number_format(($this->attributes['price_service']), 2, ',', '.');
}
@@ -290,19 +292,32 @@ class TravelUserBookingFewo extends Model
return isset($this->attributes['price_service']) ? $this->attributes['price_service'] : 0;
}
+ //price_balance
+ public function setPriceBalanceAttribute($value)
+ {
+ $value = Util::_format_number($value);
+ $this->attributes['price_balance'] = floatval(str_replace(',', '.', $value));
+ }
+ public function getPriceBalanceAttribute($value)
+ {
+ if(!$value){ return 0; }
+ return number_format(($this->attributes['price_balance']), 2, ',', '.');
+ }
+ public function getPriceBalanceRaw()
+ {
+ return isset($this->attributes['price_balance']) ? $this->attributes['price_balance'] : 0;
+ }
+
//price_total
public function setPriceTotalAttribute($value)
{
- //$value = Util::_format_number($value);
- $value = $this->getPriceDepositRaw() + $this->getPriceServiceRaw() + $this->getPriceTravelRaw();
- $this->attributes['price_total'] = floatval($value);
+ $value = Util::_format_number($value);
+ $this->attributes['price_total'] = floatval(str_replace(',', '.', $value));
}
- public function getPriceTotalAttribute()
+ public function getPriceTotalAttribute($value)
{
- // 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
- $value = $this->getPriceDepositRaw() + $this->getPriceServiceRaw() + $this->getPriceTravelRaw();
- $this->attributes['price_total'] = floatval($value);
+ if(!$value){ return 0; }
return number_format(($this->attributes['price_total']), 2, ',', '.');
}
diff --git a/app/Services/HTMLHelper.php b/app/Services/HTMLHelper.php
index 952d045..d1b870a 100644
--- a/app/Services/HTMLHelper.php
+++ b/app/Services/HTMLHelper.php
@@ -86,10 +86,11 @@ class HTMLHelper
}
- public static function getRolesOptions(){
+ public static function getRolesOptions($id = 0){
$ret = "";
foreach (self::$roles as $role_id => $value){
- $ret .= ''.$value.' \n';
+ $attr = ($role_id == $id) ? 'selected="selected"' : '';
+ $ret .= ''.$value.' \n';
}
return $ret;
}
@@ -128,9 +129,9 @@ class HTMLHelper
return $ret;
}
- public static function getRangeOptions($id = false, $range = 30, $name = ""){
+ public static function getRangeOptions($id = false, $range = 30, $name = "", $start=1){
- $range = range(1, $range);
+ $range = range($start, $range);
$ret = "";
foreach ($range as $item){
diff --git a/app/User.php b/app/User.php
index e1b68cc..ffdcd1a 100755
--- a/app/User.php
+++ b/app/User.php
@@ -74,6 +74,10 @@ class User extends Authenticatable
use SoftDeletes;
+
+
+ protected $permissionData = [];
+
protected $dates = ['deleted_at'];
protected $table = 'users';
@@ -96,6 +100,11 @@ class User extends Authenticatable
'password', 'remember_token', 'token',
];
+ protected $casts = [
+ 'permissions' => 'array',
+ ];
+
+
public function account()
{
@@ -142,6 +151,35 @@ class User extends Authenticatable
return false;
}
+
+ private function setPermissionsDefault(){
+ $groups = config('permissions.groups');
+ $permissions = [];
+ foreach ($groups as $role_id => $perms){
+ if($role_id <= $this->admin){
+ foreach ($perms as $key => $val){
+ $permissions[$key] = 1;
+ }
+ }
+ }
+ $this->permissions = $permissions;
+
+ }
+ public function isPermission($key){
+
+ //default by role
+ if(!is_array($this->permissions)){
+ $this->setPermissionsDefault();
+ }
+
+ if($key == strtolower($key)){
+ if(isset($this->permissions[$key]) && $this->permissions[$key] == 1){
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* @return string
*/
diff --git a/config/permissions.php b/config/permissions.php
new file mode 100755
index 0000000..9888322
--- /dev/null
+++ b/config/permissions.php
@@ -0,0 +1,39 @@
+[
+ 0 => [
+ 'my-dat' => ['name' => 'Ihre Daten' , 'color' => 'client'],
+ ],
+ 1 => [
+ 'crm' => ['name' => 'ADMIN CRM ' , 'color' => 'admin'],
+ 'crm-tp' => ['name' => 'ADMIN CRM > Reiseprogramme' , 'color' => 'admin'],
+ 'crm-tp-pr' => ['name' => 'ADMIN CRM > Reiseprogramme > Programme' , 'color' => 'admin'],
+ 'crm-tp-dr' => ['name' => 'ADMIN CRM > Reiseprogramme > Vorlagen' , 'color' => 'admin'],
+ 'crm-bo' => ['name' => 'ADMIN CRM > Buchungen' , 'color' => 'admin'],
+ 'crm-bo-re' => ['name' => 'ADMIN CRM > Buchungen > Anfragen' , 'color' => 'admin'],
+ 'crm-bo-bo' => ['name' => 'ADMIN CRM > Buchungen > Buchungen' , 'color' => 'admin'],
+ 'crm-cm' => ['name' => 'ADMIN CRM > Kundenverwaltung' , 'color' => 'admin'],
+ 'crm-cm-cf' => ['name' => 'ADMIN CRM > Kundenverwaltung > Kunden (FeWo)' , 'color' => 'admin'],
+ 'crm-cm-bf' => ['name' => 'ADMIN CRM > Kundenverwaltung > Buchungen (FeWo)' , 'color' => 'admin'],
+ 'crm-old-cm' => ['name' => 'ADMIN CRM altes System > Kundenverwaltung' , 'color' => 'info'],
+ 'cms' => ['name' => 'ADMIN CMS' , 'color' => 'secondary'],
+ 'cms-cn' => ['name' => 'ADMIN CMS > Inhalte' , 'color' => 'secondary'],
+ 'cms-tg' => ['name' => 'ADMIN CMS > Reiseführer' , 'color' => 'secondary'],
+ 'cms-fb' => ['name' => 'ADMIN CMS > Feedback' , 'color' => 'secondary'],
+ 'cms-sb' => ['name' => 'ADMIN CMS > Sidebar' , 'color' => 'secondary'],
+ ],
+ 2 => [
+ 'sua-st' => ['name' => 'SUPERADMIN > Einstellungen' , 'color' => 'superadmin'],
+ 'sua-st-tp' => ['name' => 'SUPERADMIN > Einstellungen > Reisprogramme' , 'color' => 'superadmin'],
+ 'sua-st-tc' => ['name' => 'SUPERADMIN > Einstellungen > Reiseländer' , 'color' => 'superadmin'],
+ 'sua-st-tn' => ['name' => 'SUPERADMIN > Einstellungen > Nationalitäten' , 'color' => 'superadmin'],
+ 'sua-ur-rt' => ['name' => 'SUPERADMIN > User Rechte' , 'color' => 'danger'],
+ ],
+ ],
+ 'roles' => [
+ 0 => 'Kunde',
+ 1 => 'Admin',
+ 2 => 'SuperAdmin'
+ ]
+];
\ No newline at end of file
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index 790c90f..1cc2ab9 100755
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -36,10 +36,13 @@ class CreateUsersTable extends Migration
$table->char('lang', 2)->index();
+
$table->rememberToken();
$table->timestamp('last_login')->nullable();
+ $table->string('permissions');
+
$table->timestamps();
$table->softDeletes();
diff --git a/database/migrations/2019_03_20_132600_create_fewo_season_table.php b/database/migrations/2019_03_20_132600_create_fewo_season_table.php
index d2d46c3..033622d 100644
--- a/database/migrations/2019_03_20_132600_create_fewo_season_table.php
+++ b/database/migrations/2019_03_20_132600_create_fewo_season_table.php
@@ -26,14 +26,7 @@ class CreateFewoSeasonTable extends Migration
$table->longText('description')->nullable();
$table->integer('only_weekday')->nullable();
-
-
-
-
});
-
-
-
}
/**
diff --git a/database/migrations/2019_03_21_123748_create_travel_user_booking_fewos_table.php b/database/migrations/2019_03_21_123748_create_travel_user_booking_fewos_table.php
index 037329e..060ce10 100644
--- a/database/migrations/2019_03_21_123748_create_travel_user_booking_fewos_table.php
+++ b/database/migrations/2019_03_21_123748_create_travel_user_booking_fewos_table.php
@@ -18,6 +18,7 @@ class CreateTravelUserBookingFewosTable extends Migration
$table->unsignedInteger('travel_user_id')->index();
$table->integer('fewo_lodging_id')->index();
+ $table->integer('fewo_reservation_id')->index();
$table->string('invoice_number')->nullable();
@@ -34,6 +35,7 @@ class CreateTravelUserBookingFewosTable extends Migration
$table->decimal('price_travel', 13, 2)->nullable();
$table->decimal('price_deposit', 8, 2)->nullable();
$table->decimal('price_service', 8, 2)->nullable();
+ $table->decimal('price_balance', 8, 2)->nullable();
$table->decimal('price_total', 13, 2)->nullable();
@@ -55,15 +57,19 @@ class CreateTravelUserBookingFewosTable extends Migration
$table->softDeletes();
+ $table->foreign('travel_user_id')
+ ->references('id')
+ ->on('travel_users')
+ ->onDelete('CASCADE');
$table->foreign('fewo_lodging_id')
->references('id')
->on('fewo_lodging')
->onDelete('CASCADE');
- $table->foreign('travel_user_id')
+ $table->foreign('fewo_reservation_id')
->references('id')
- ->on('travel_users')
+ ->on('fewo_reservation')
->onDelete('CASCADE');
diff --git a/public/css/application.css b/public/css/application.css
index 998e004..5aa6325 100644
--- a/public/css/application.css
+++ b/public/css/application.css
@@ -38,3 +38,55 @@
border-color: #c1998f;
}
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-primary::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-primary::before {
+ border-color: #648859 !important;
+ background-color: #648859 !important;
+}
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-secondary::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-secondary::before {
+ border-color: #f2bf24 !important;
+ background-color: #f2bf24 !important;
+}
+
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-info::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-info::before {
+ border-color: #28c3d7 !important;
+ background-color: #28c3d7 !important;
+}
+
+
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-warning::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-warning::before {
+ border-color: #ff844d !important;
+ background-color: #ff844d !important;
+}
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-danger::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-danger::before {
+ border-color: #d9534f !important;
+ background-color: #d9534f !important;
+}
+
+
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-client::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-client::before {
+ border-color: #83878b !important;
+ background-color: #83878B !important;
+}
+
+
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-admin::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-admin::before {
+ border-color: #f2bf24 !important;
+ background-color: #f2bf24 !important;
+}
+
+
+.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label-superadmin::before,
+.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label-superadmin::before {
+ border-color: #648859 !important;
+ background-color: #648859 !important;
+}
+
+
+
diff --git a/public/js/custom.js b/public/js/custom.js
index 9cd76aa..16c8f96 100644
--- a/public/js/custom.js
+++ b/public/js/custom.js
@@ -3,6 +3,45 @@ $(function () {
// $('[data-toggle="tooltip"]').tooltip();
});
+function update_modal_data_show(e, $ele) {
+ e.preventDefault();
+
+ var ele = $ele,
+ url = ele.data('url'),
+ data = {id:ele.data('data')} ,
+ contentType = 'application/x-www-form-urlencoded; charset=UTF-8';
+
+ console.log(data);
+ console.log(url);
+ $.ajax({
+ url: url,
+ data: data,
+ type: "POST",
+ dataType: "html",
+ cache: false,
+ contentType: contentType,
+ encode: true,
+ headers: {
+ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
+ },
+ success: function(data) {
+ // do what ever you want here. add content to
if it was not 1 .
+ console.log(data);
+ $('#update-modal-content').html(data);
+ $('.selectpicker').selectpicker(["refresh"]);
+ $('.input-daterange').datepicker({toggleActive: true,format: 'dd.mm.yyyy'});
+ // $.Nestable.init();
+ $('#updateModalShow').modal('show');
+ },
+ error: function(xhr, status, errorThrown) {
+ console.log(xhr);
+ console.log(xhr.responseText);
+ console.log(status);
+ console.log("Sorry, there was a problem!");
+ }
+ });
+ return false;
+}
function update_modal_data_load(e, $ele) {
var ele = $ele,
diff --git a/resources/views/admin/user_modal.blade.php b/resources/views/admin/user_modal.blade.php
new file mode 100644
index 0000000..62c5a73
--- /dev/null
+++ b/resources/views/admin/user_modal.blade.php
@@ -0,0 +1,59 @@
+
+
+{!! Form::open(['url' => route('admin_user_update_modal', ['user']), 'class' => 'form-horizontal']) !!}
+
+
+
+
+
+
+
+
+ @foreach($groups as $role_id => $permissions)
+
{{$roles[$role_id]}}
+ @foreach($permissions as $key=>$val)
+
+
+ {!! Form::checkbox('permissions['.$key.']', 1, $user->isPermission($key), ['class'=>'custom-control-input']) !!}
+ {{$val['name']}}
+
+
+ @endforeach
+
+ @endforeach
+
+
+
+ {!! Form::checkbox('confirmed', 1, $user->confirmed, ['class'=>'custom-control-input']) !!}
+ {{__('verified')}}
+
+
+
+
+
+ {!! Form::checkbox('active', 1, $user->active, ['class'=>'custom-control-input']) !!}
+ {{__('active')}}
+
+
+
+
+
+{!! Form::close() !!}
\ No newline at end of file
diff --git a/resources/views/admin/users.blade.php b/resources/views/admin/users.blade.php
index b5ecb5f..f5de3b2 100644
--- a/resources/views/admin/users.blade.php
+++ b/resources/views/admin/users.blade.php
@@ -29,79 +29,20 @@
-
-
-
-
+
+
@endsection
\ No newline at end of file
diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php
index ba4ab7a..04670f2 100755
--- a/resources/views/layouts/includes/layout-sidenav.blade.php
+++ b/resources/views/layouts/includes/layout-sidenav.blade.php
@@ -12,67 +12,78 @@
{{__('Home')}}
-
-
- {{ __('Your Data') }}
-
-
- @if(Auth::user()->isAdmin())
-
-
-
-
-
-
- Reiseprogramme
-
-
+ @if(Auth::user()->isPermission('my-dat'))
+
+ {{ __('Your Data') }}
+ @endif
-
-
-
-
- Buchungen
-
-
-
-
-
-
-
-
- Kundenverwaltung
-
-
-
-
-
-
-
-
+ @if(Auth::user()->isAdmin())
+ @if(Auth::user()->isPermission('crm'))
+
+
+ @if(Auth::user()->isPermission('crm-tp'))
+
+
+
+ Reiseprogramme
+
+
+
+ @endif
+ @if(Auth::user()->isPermission('crm-bo'))
+
+
+
+ Buchungen
+
+
+
+ @endif
+ @if(Auth::user()->isPermission('crm-cm'))
+
+
+
+ Kundenverwaltung
+
+
+
+ @endif
+ @endif
+ @if(Auth::user()->isPermission('crm-old-cm'))
@@ -105,58 +116,68 @@
-
-
-
-
-
- Inhalte
-
-
-
- Reiseführer
-
-
-
-
- Feedback
-
-
-
@endif
+ @if(Auth::user()->isPermission('cms'))
+
+
+ @if(Auth::user()->isPermission('cms-cn'))
+
+ Inhalte
+
+ @endif
+ @if(Auth::user()->isPermission('cms-tg'))
+
+ Reiseführer
+
+ @endif
+ @if(Auth::user()->isPermission('cms-fb'))
+
+ Feedback
+
+ @endif
+ @if(Auth::user()->isPermission('cms-sb'))
+
+ @endif
+ @endif
+ @endif
@if(Auth::user()->isSuperAdmin())
-
+ @if(Auth::user()->isPermission('sua-st'))
Einstellungen
-
-
-
-
+ @endif
+ @if(Auth::user()->isPermission('sua-ur-rt'))
{{ __('User Rechte') }}
+ @endif
{{--
diff --git a/resources/views/travel/user/booking/form.blade.php b/resources/views/travel/user/booking/form.blade.php
index 4a3c52d..ad31b77 100755
--- a/resources/views/travel/user/booking/form.blade.php
+++ b/resources/views/travel/user/booking/form.blade.php
@@ -36,11 +36,16 @@
{{ __('Erwachsene') }}
- {{ Form::text('adults', $travel_user_booking_fewo->adults, array('placeholder'=>__('Erwachsene'), 'class'=>'form-control')) }}
+
+ {!! HTMLHelper::getRangeOptions($travel_user_booking_fewo->adults, $max_adults, '', 0) !!}
+
{{ __('Kinder') }}
- {{ Form::text('children', $travel_user_booking_fewo->children, array('placeholder'=>__('Kinder'), 'class'=>'form-control')) }}
+
+ {!! HTMLHelper::getRangeOptions($travel_user_booking_fewo->children, $max_children, '', 0) !!}
+
+
{{ __('Personen Gesamt') }}*
@@ -58,29 +63,38 @@
{{ __('Datum bis') }}*
{{ Form::text('to_date', $travel_user_booking_fewo->to_date, array('placeholder'=>__('Datum bis'), 'class'=>'form-control datepicker-base', 'required'=>true)) }}
-
- Änderungen werden nicht bei den Reservierungen geändert!
-
-
\ No newline at end of file
+
+
+
+
diff --git a/routes/web.php b/routes/web.php
index 63a15a8..56ef0cb 100755
--- a/routes/web.php
+++ b/routes/web.php
@@ -80,131 +80,135 @@ Route::group(['middleware' => ['auth']], function()
/* Route::get('/user/edit', 'UserController@userEdit')->name('user_edit');
*/
- Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit');
- Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit');
+ Route::group(['middleware' => ['auth.permission:my-dat']], function() {
+
+ Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit');
+ Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit');
- Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password');
- Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password');
-
- Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first');
- Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first');
-
- Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email');
- Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email');
-
- Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account');
- Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account');
-
- Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form');
+ Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password');
+ Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password');
+ Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first');
+ Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first');
+ Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email');
+ Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email');
+ Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account');
+ Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account');
+ Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form');
+ });
});
Route::group(['middleware' => ['admin']], function()
{
- //drafts
- Route::get('/drafts/{step?}', 'DraftController@index')->name('drafts');
- Route::get('/draft/detail/{id}', 'DraftController@detail')->name('draft_detail');
- Route::post('/draft/detail/{id}', 'DraftController@store')->name('draft_detail');
+ Route::group(['middleware' => ['auth.permission:crm-tp-pr']], function() {
+ //Reiseprogramme Programme
+ Route::get('/travel/programs/{step?}', 'TravelProgramController@index')->name('travel_programs');
- Route::get('/draft/item/delete/{id}', 'DraftController@itemDelete')->name('draft_item_delete');
- Route::get('/draft/delete/{id}', 'DraftController@delete')->name('draft_delete');
+ Route::get('/travel/program/detail/{id}', 'TravelProgramController@detail')->name('travel_program_detail');
+ Route::post('/travel/program/detail/{id}', 'TravelProgramController@store')->name('travel_program_detail');
- Route::post('/draft/type/update', 'DraftController@typeUpdate')->name('draft_type_update');
- Route::get('/draft/type/delete/{id}', 'DraftController@typeDelete')->name('draft_type_delete');
+ Route::post('/travel/program/class/update', 'TravelProgramController@classUpdate')->name('travel_program_class_update');
+ Route::get('/travel/program/class/delete/{id}', 'TravelProgramController@classDelete')->name('travel_program_class_delete');
- Route::get('/draft/load/new', 'DraftController@loadNew')->name('draft_load_new');
- Route::post('/draft/load/new', 'DraftController@loadNewAction')->name('draft_load_new');
+ Route::post('/travel/program/draft/update', 'TravelProgramController@draftUpdate')->name('travel_program_draft_update');
+ Route::get('/travel/program/draft/delete/{id}', 'TravelProgramController@draftDelete')->name('travel_program_draft_delete');
+ });
- Route::get('/draft/load/old', 'DraftController@loadOld')->name('draft_load_old');
- Route::post('/draft/load/old', 'DraftController@loadOldAction')->name('draft_load_old');
+ Route::group(['middleware' => ['auth.permission:crm-tp-dr']], function() {
+ //Reiseprogramme Vorlagen
+ Route::get('/drafts/{step?}', 'DraftController@index')->name('drafts');
- //travel Programs
- Route::get('/travel/programs/{step?}', 'TravelProgramController@index')->name('travel_programs');
+ Route::get('/draft/detail/{id}', 'DraftController@detail')->name('draft_detail');
+ Route::post('/draft/detail/{id}', 'DraftController@store')->name('draft_detail');
- Route::get('/travel/program/detail/{id}', 'TravelProgramController@detail')->name('travel_program_detail');
- Route::post('/travel/program/detail/{id}', 'TravelProgramController@store')->name('travel_program_detail');
+ Route::get('/draft/item/delete/{id}', 'DraftController@itemDelete')->name('draft_item_delete');
+ Route::get('/draft/delete/{id}', 'DraftController@delete')->name('draft_delete');
- Route::post('/travel/program/class/update', 'TravelProgramController@classUpdate')->name('travel_program_class_update');
- Route::get('/travel/program/class/delete/{id}', 'TravelProgramController@classDelete')->name('travel_program_class_delete');
+ Route::post('/draft/type/update', 'DraftController@typeUpdate')->name('draft_type_update');
+ Route::get('/draft/type/delete/{id}', 'DraftController@typeDelete')->name('draft_type_delete');
- Route::post('/travel/program/draft/update', 'TravelProgramController@draftUpdate')->name('travel_program_draft_update');
- Route::get('/travel/program/draft/delete/{id}', 'TravelProgramController@draftDelete')->name('travel_program_draft_delete');
+ Route::get('/draft/load/new', 'DraftController@loadNew')->name('draft_load_new');
+ Route::post('/draft/load/new', 'DraftController@loadNewAction')->name('draft_load_new');
- //bookings
- Route::get('data/table/bookings', 'DataTableController@getBookings')->name('data_table_bookings');
- Route::get('/bookings/{step?}', 'BookingController@index')->name('bookings');
- Route::get('/booking/detail/{id}', 'BookingController@detail')->name('booking_detail');
- Route::post('/booking/detail/{id}', 'BookingController@store')->name('booking_detail');
+ Route::get('/draft/load/old', 'DraftController@loadOld')->name('draft_load_old');
+ Route::post('/draft/load/old', 'DraftController@loadOldAction')->name('draft_load_old');
+ });
- Route::get('/booking/draft_item/delete/{id}', 'BookingController@draftItemDelete')->name('booking_draft_item_delete');
+ Route::group(['middleware' => ['auth.permission:crm-bo-re']], function() {
+ //Buchungen > Anfragen
+ Route::get('/requests/{step?}', 'RequestController@index')->name('requests');
+ //Route::get('/lead/detail/{id}', 'LeadController@detail')->name('lead_detail');
+ Route::get('data/table/requests', 'DataTableController@getRequests')->name('data_table_requests');
+ });
+ Route::group(['middleware' => ['auth.permission:crm-bo-bo']], function() {
+ //Buchungen > Buchungen
+ Route::get('data/table/bookings', 'DataTableController@getBookings')->name('data_table_bookings');
+ Route::get('/bookings/{step?}', 'BookingController@index')->name('bookings');
+ Route::get('/booking/detail/{id}', 'BookingController@detail')->name('booking_detail');
+ Route::post('/booking/detail/{id}', 'BookingController@store')->name('booking_detail');
+ Route::get('/booking/draft_item/delete/{id}', 'BookingController@draftItemDelete')->name('booking_draft_item_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:crm-bo-bo']], function() {
+ //Kundenverwaltung > Kunden (FeWo
+ Route::get('/travel_users', 'TravelUserController@index')->name('travel_users');
+ Route::get('/data/table/travel_users', 'TravelUserController@getTravelUsers')->name('data_table_travel_users');
+ Route::get('/travel_user/detail/{id}', 'TravelUserController@detail')->name('travel_user_detail');
+ Route::post('/travel_user/detail/{id}', 'TravelUserController@store')->name('travel_user_detail');
+ Route::get('/travel_user/delete/{id}', 'TravelUserController@delete')->name('travel_user_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:crm-bo-bf']], function() {
+ //Kundenverwaltung > Buchungen (FeWo
+ Route::get('/travel_user_booking_fewos', 'TravelUserBookingFewoController@index')->name('travel_user_booking_fewos');
+ Route::get('/data/table/travel_user_booking_fewos', 'TravelUserBookingFewoController@getTravelUserBookingFewos')->name('data_table_travel_user_booking_fewos');
+ Route::get('/travel_user_booking_fewo/detail/{id}', 'TravelUserBookingFewoController@detail')->name('travel_user_booking_fewo_detail');
+ Route::post('/travel_user_booking_fewo/detail/{id}', 'TravelUserBookingFewoController@store')->name('travel_user_booking_fewo_detail');
+ Route::get('/travel_user_booking_fewo/delete/{id}', 'TravelUserBookingFewoController@delete')->name('travel_user_booking_fewo_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:cms-cn']], function() {
+ // CMS Inhalte
+ Route::get('/cms/content', 'CMS\CMSContentController@index')->name('cms_content');
+ Route::post('/cms/content/store', 'CMS\CMSContentController@store')->name('cms_content_store');
+ Route::post('/cms/content/load/modal', 'CMS\CMSContentController@loadModal')->name('cms_content_load_modal');
+ Route::get('/cms/content/delete/{id}', 'CMS\CMSContentController@delete')->name('cms_content_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:cms-tg']], function() {
+ // CMS Reiseführer
+ Route::get('/cms/travel_magazine', 'CMS\CMSTravelMagazineController@index')->name('cms_travel_magazine');
+ Route::get('/cms/travel_magazine/detail/{id}', 'CMS\CMSTravelMagazineController@detail')->name('cms_travel_magazine_detail');
+ Route::post('/cms/travel_magazine/detail/{id}', 'CMS\CMSTravelMagazineController@store')->name('cms_travel_magazine_detail');
+ Route::get('/cms/travel_magazine/delete/{id}', 'CMS\CMSTravelMagazineController@delete')->name('cms_travel_magazine_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:cms-fb']], function() {
+ // CMS Feedback
+ Route::get('/cms/feedback', 'CMS\CMSFeedbackController@index')->name('cms_feedback');
+ Route::get('/cms/feedback/detail/{id}', 'CMS\CMSFeedbackController@detail')->name('cms_feedback_detail');
+ Route::post('/cms/feedback/detail/{id}', 'CMS\CMSFeedbackController@store')->name('cms_feedback_detail');
+ Route::get('/cms/feedback/delete/{id}', 'CMS\CMSFeedbackController@delete')->name('cms_feedback_delete');
+ });
- Route::get('/requests/{step?}', 'RequestController@index')->name('requests');
- Route::get('/lead/detail/{id}', 'LeadController@detail')->name('lead_detail');
- Route::get('data/table/requests', 'DataTableController@getRequests')->name('data_table_requests');
-
-
- //travel_users
- Route::get('/travel_users', 'TravelUserController@index')->name('travel_users');
- Route::get('/data/table/travel_users', 'TravelUserController@getTravelUsers')->name('data_table_travel_users');
- Route::get('/travel_user/detail/{id}', 'TravelUserController@detail')->name('travel_user_detail');
- Route::post('/travel_user/detail/{id}', 'TravelUserController@store')->name('travel_user_detail');
- Route::get('/travel_user/delete/{id}', 'TravelUserController@delete')->name('travel_user_delete');
-
-
- //travel_user_booking_fewo
- Route::get('/travel_user_booking_fewos', 'TravelUserBookingFewoController@index')->name('travel_user_booking_fewos');
- Route::get('/data/table/travel_user_booking_fewos', 'TravelUserBookingFewoController@getTravelUserBookingFewos')->name('data_table_travel_user_booking_fewos');
- Route::get('/travel_user_booking_fewo/detail/{id}', 'TravelUserBookingFewoController@detail')->name('travel_user_booking_fewo_detail');
- Route::post('/travel_user_booking_fewo/detail/{id}', 'TravelUserBookingFewoController@store')->name('travel_user_booking_fewo_detail');
- Route::get('/travel_user_booking_fewo/delete/{id}', 'TravelUserBookingFewoController@delete')->name('travel_user_booking_fewo_delete');
-
- //CMS
- //feedback
- Route::get('/cms/feedback', 'CMS\CMSFeedbackController@index')->name('cms_feedback');
- Route::get('/cms/feedback/detail/{id}', 'CMS\CMSFeedbackController@detail')->name('cms_feedback_detail');
- Route::post('/cms/feedback/detail/{id}', 'CMS\CMSFeedbackController@store')->name('cms_feedback_detail');
- Route::get('/cms/feedback/delete/{id}', 'CMS\CMSFeedbackController@delete')->name('cms_feedback_delete');
-
-
- Route::get('/cms/travel_magazine', 'CMS\CMSTravelMagazineController@index')->name('cms_travel_magazine');
- Route::get('/cms/travel_magazine/detail/{id}', 'CMS\CMSTravelMagazineController@detail')->name('cms_travel_magazine_detail');
- Route::post('/cms/travel_magazine/detail/{id}', 'CMS\CMSTravelMagazineController@store')->name('cms_travel_magazine_detail');
- Route::get('/cms/travel_magazine/delete/{id}', 'CMS\CMSTravelMagazineController@delete')->name('cms_travel_magazine_delete');
-
-
- Route::get('/cms/sidebar', 'CMS\CMSSidebarController@index')->name('cms_sidebar');
- Route::get('/cms/sidebar/detail/{id}', 'CMS\CMSSidebarController@detail')->name('cms_sidebar_detail');
- Route::post('/cms/sidebar/detail/{id}', 'CMS\CMSSidebarController@store')->name('cms_sidebar_detail');
- Route::get('/cms/sidebar/delete/{id}', 'CMS\CMSSidebarController@delete')->name('cms_sidebar_delete');
-
- Route::get('/cms/content', 'CMS\CMSContentController@index')->name('cms_content');
- Route::post('/cms/content/store', 'CMS\CMSContentController@store')->name('cms_content_store');
- Route::post('/cms/content/load/modal', 'CMS\CMSContentController@loadModal')->name('cms_content_load_modal');
- Route::get('/cms/content/delete/{id}', 'CMS\CMSContentController@delete')->name('cms_content_delete');
+ Route::group(['middleware' => ['auth.permission:cms-sb']], function() {
+ // CMS Sidebar
+ Route::get('/cms/sidebar', 'CMS\CMSSidebarController@index')->name('cms_sidebar');
+ Route::get('/cms/sidebar/detail/{id}', 'CMS\CMSSidebarController@detail')->name('cms_sidebar_detail');
+ Route::post('/cms/sidebar/detail/{id}', 'CMS\CMSSidebarController@store')->name('cms_sidebar_detail');
+ Route::get('/cms/sidebar/delete/{id}', 'CMS\CMSSidebarController@delete')->name('cms_sidebar_delete');
+ });
});
//login pages for worker
Route::group(['middleware' => ['superadmin']], function() {
- //leads
- Route::get('/admin/users', 'AdminUserController@index')->name('admin_users');
- Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit');
- Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store');
- Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete');
Route::get('data_table', 'DataTableController@datatable')->name('data_table');
// Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads');
- Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users');
-
-
Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all');
Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit');
Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update');
@@ -213,22 +217,36 @@ Route::group(['middleware' => ['superadmin']], function() {
Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit');
Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update');
+ Route::group(['middleware' => ['auth.permission:sua-st-tp']], function() {
+ //SUPERADMIN > Einstellungen > Reisprogramme
+ Route::get('/admin/settings/travel/program/{id?}', 'Settings\TravelAgendaController@index')->name('admin_settings_travel_program');
+ Route::post('/admin/settings/travel/program/update', 'Settings\TravelAgendaController@update')->name('admin_settings_travel_program_update');
+ Route::get('/admin/settings/travel/program/delete/{id}', 'Settings\TravelAgendaController@delete')->name('admin_settings_travel_program_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:sua-st-tc']], function() {
+ //SUPERADMIN > Einstellungen > Reiseländer
+ Route::get('/admin/settings/travel/country', 'Settings\TravelCountryController@index')->name('admin_settings_travel_country');
+ Route::get('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@detail')->name('admin_settings_travel_country_detail');
+ Route::post('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@store')->name('admin_settings_travel_country_detail');
+ Route::get('/admin/settings/travel/country/delete/{id}', 'Settings\TravelCountryController@delete')->name('admin_settings_travel_country_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:sua-st-tn']], function() {
+ //SUPERADMIN > Einstellungen > Nationalitäten
+ Route::get('/admin/settings/travel/nationality', 'Settings\TravelNationalityController@index')->name('admin_settings_travel_nationality');
+ Route::post('/admin/settings/travel/nationality/update', 'Settings\TravelNationalityController@update')->name('admin_settings_travel_nationality_update');
+ Route::get('/admin/settings/travel/nationality/delete/{id}', 'Settings\TravelNationalityController@delete')->name('admin_settings_travel_nationality_delete');
+ });
+ Route::group(['middleware' => ['auth.permission:sua-ur-rt']], function() {
+ //SUPERADMIN > User Rechte
+ Route::get('/admin/users', 'AdminUserController@index')->name('admin_users');
+ Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit');
+ Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store');
+ Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete');
+ Route::get('/admin/users/data_table', 'AdminUserController@getUsers')->name('admin_users_data_table');
- Route::get('/admin/settings/travel/country', 'Settings\TravelCountryController@index')->name('admin_settings_travel_country');
- Route::get('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@detail')->name('admin_settings_travel_country_detail');
- Route::post('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@store')->name('admin_settings_travel_country_detail');
- Route::get('/admin/settings/travel/country/delete/{id}', 'Settings\TravelCountryController@delete')->name('admin_settings_travel_country_delete');
-
-
- Route::get('/admin/settings/travel/nationality', 'Settings\TravelNationalityController@index')->name('admin_settings_travel_nationality');
- Route::post('/admin/settings/travel/nationality/update', 'Settings\TravelNationalityController@update')->name('admin_settings_travel_nationality_update');
- Route::get('/admin/settings/travel/nationality/delete/{id}', 'Settings\TravelNationalityController@delete')->name('admin_settings_travel_nationality_delete');
-
-
- Route::get('/admin/settings/travel/program/{id?}', 'Settings\TravelAgendaController@index')->name('admin_settings_travel_program');
- Route::post('/admin/settings/travel/program/update', 'Settings\TravelAgendaController@update')->name('admin_settings_travel_program_update');
- Route::get('/admin/settings/travel/program/delete/{id}', 'Settings\TravelAgendaController@delete')->name('admin_settings_travel_program_delete');
-
+ Route::post('/admin/users/load/modal/{id}', 'AdminUserController@loadModal')->name('admin_user_load_modal');
+ Route::post('/admin/users/update/modal/{step}', 'AdminUserController@updateModal')->name('admin_user_update_modal');
+ });
});