User Groups and Rights, Fewo
This commit is contained in:
parent
c0c2a1822c
commit
26ecb09cdc
22 changed files with 1316 additions and 787 deletions
910
.idea/workspace.xml
generated
910
.idea/workspace.xml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -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'])) {
|
||||
|
|
|
|||
|
|
@ -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 '<a href="' . route('admin_user_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('admin', function (User $user) {
|
||||
return '<a href="#" data-url="'.route('admin_user_load_modal', $user->id).'" data-data="'.$user->id.'" class="update_modal_data_show">'.HTMLHelper::getRoleLabel($user->admin).'</a>';
|
||||
})
|
||||
->addColumn('confirmed', function (User $user) {
|
||||
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('active', function (User $user) {
|
||||
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('action_delete', function (User $user) {
|
||||
return '<a href="' . route('admin_user_delete', [$user->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="far fa-trash"></span></a>';
|
||||
})
|
||||
->orderColumn('confirmed', 'confirmed $1')
|
||||
->orderColumn('active', 'active $1')
|
||||
->orderColumn('admin', 'active $1')
|
||||
->rawColumns(['action_edit', 'admin', 'confirmed', 'active', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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 '<a href="' . route('admin_user_edit', [$user->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('admin', function (User $user) {
|
||||
return '<a href="#" data-toggle="modal" data-target="#modals-default" data-id="'.$user->id.'" data-email="'.$user->email.'" data-admin="'.$user->admin.'" data-active="'.$user->active.'" data-confirmed="'.$user->confirmed.'">'.HTMLHelper::getRoleLabel($user->admin).'</a>';
|
||||
})
|
||||
->addColumn('confirmed', function (User $user) {
|
||||
return $user->confirmed ? '<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('active', function (User $user) {
|
||||
return $user->active ? ' <span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('action_delete', function (User $user) {
|
||||
return '<a href="' . route('admin_user_delete', [$user->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="far fa-trash"></span></a>';
|
||||
})
|
||||
->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
|
||||
|
|
|
|||
|
|
@ -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 "<br>";
|
||||
$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();
|
||||
|
|
|
|||
|
|
@ -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'));
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
26
app/Http/Middleware/AuthPermission.php
Executable file
26
app/Http/Middleware/AuthPermission.php
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Auth;
|
||||
|
||||
class AuthPermission
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next, $key)
|
||||
{
|
||||
if ( Auth::check() && Auth::user()->isPermission($key) )
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
return redirect('/home');
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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, ',', '.');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 .= '<option value="'.$role_id.'">'.$value.'</option>\n';
|
||||
$attr = ($role_id == $id) ? 'selected="selected"' : '';
|
||||
$ret .= '<option value="'.$role_id.'" '.$attr.'>'.$value.'</option>\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){
|
||||
|
|
|
|||
38
app/User.php
38
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
|
||||
*/
|
||||
|
|
|
|||
39
config/permissions.php
Executable file
39
config/permissions.php
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'groups' =>[
|
||||
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'
|
||||
]
|
||||
];
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -26,14 +26,7 @@ class CreateFewoSeasonTable extends Migration
|
|||
$table->longText('description')->nullable();
|
||||
$table->integer('only_weekday')->nullable();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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 <div> 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,
|
||||
|
|
|
|||
59
resources/views/admin/user_modal.blade.php
Normal file
59
resources/views/admin/user_modal.blade.php
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h5 class="modal-title">{{__('User')}}<span class="font-weight-light">{{__('create/edit')}}</span></h5>
|
||||
</div>
|
||||
{!! Form::open(['url' => route('admin_user_update_modal', ['user']), 'class' => 'form-horizontal']) !!}
|
||||
|
||||
<div class="modal-body">
|
||||
<input type="hidden" name="id" id="id" value="{{ $user->id }}">
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="email" class="form-label">{{__('E-Mail')}}</label>
|
||||
{{ Form::text('email', $user->email, array('placeholder'=>__('E-Mail'), 'class'=>'form-control', 'readonly')) }}
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="admin" class="form-label">{{__('Role')}}</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="admin">
|
||||
{!! HTMLHelper::getRolesOptions($user->admin) !!}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
@foreach($groups as $role_id => $permissions)
|
||||
<h6>{{$roles[$role_id]}}</h6>
|
||||
@foreach($permissions as $key=>$val)
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
{!! Form::checkbox('permissions['.$key.']', 1, $user->isPermission($key), ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label custom-control-label-{{$val['color']}}">{{$val['name']}}</span>
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
<hr>
|
||||
@endforeach
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
{!! Form::checkbox('confirmed', 1, $user->confirmed, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{__('verified')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
{!! Form::checkbox('active', 1, $user->active, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{__('active')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
|
@ -29,79 +29,20 @@
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modals-default">
|
||||
<div id="updateModalShow" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalUpdate" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" class="form-control" name="id">
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{__('User')}}<span class="font-weight-light">{{__('create/edit')}}</span></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="email" class="form-label">{{__('E-Mail')}}</label>
|
||||
<input type="text" class="form-control" name="email" placeholder="{{__('E-Mail')}}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="admin" class="form-label">{{__('Role')}}</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="admin">
|
||||
{!! HTMLHelper::getRolesOptions() !!}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
<input type="checkbox" class="custom-control-input" name="confirmed" checked>
|
||||
<span class="custom-control-label">{{__('verified')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
<input type="checkbox" class="custom-control-input" name="active" checked>
|
||||
<span class="custom-control-label">{{__('active')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal-content" id="update-modal-content">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('#modals-default').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
$(this).find(".modal-content input[name='id']").val(button.data('id'));
|
||||
$(this).find(".modal-body input[name='email']").val(button.data('email'));
|
||||
$(this).find(".modal-body select[name='admin']").val(button.data('admin'));
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
|
||||
$(this).find(".modal-body input[name='confirmed']").prop( "checked", button.data('confirmed'));
|
||||
});
|
||||
|
||||
$('.datatables-users').dataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"ajax": '{!! route('data_table_users') !!}',
|
||||
"ajax": '{!! route('admin_users_data_table') !!}',
|
||||
"columns": [
|
||||
{ data: 'action_edit', orderable: false, searchable: false},
|
||||
{ data: 'name', name: 'name' },
|
||||
|
|
@ -115,9 +56,19 @@
|
|||
"iDisplayLength": 50,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
},
|
||||
"initComplete": function(settings, json) {
|
||||
$(".update_modal_data_show").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
update_modal_data_show(e, $(this));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -12,67 +12,78 @@
|
|||
<a href="{{ route('home') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-home"></i><div>{{__('Home')}}</div></a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="sidenav-item{{ Request::is('user/edit') ? ' active' : '' }}">
|
||||
<a href="{{ route('user_edit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-create"></i><div>{{ __('Your Data') }}</div></a>
|
||||
</li>
|
||||
|
||||
@if(Auth::user()->isAdmin())
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN CRM</li>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('travel/*') ? ' open' : '' }} {{ Request::is('drafts') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-airplane"></i>
|
||||
<div>Reiseprogramme</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('travel/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_programs') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-airplane"></i><div>Programme</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('drafts') ? ' active' : '' }}">
|
||||
<a href="{{ route('drafts') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>Vorlagen</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
@if(Auth::user()->isPermission('my-dat'))
|
||||
<li class="sidenav-item{{ Request::is('user/edit') ? ' active' : '' }}">
|
||||
<a href="{{ route('user_edit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-create"></i><div>{{ __('Your Data') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
|
||||
<li class="sidenav-item{{ Request::is('requests') ? ' open' : '' }} {{ Request::is('bookings') ? ' open' : '' }} {{ Request::is('booking/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-md-bed"></i>
|
||||
<div>Buchungen</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('requests') ? ' active' : '' }}">
|
||||
<a href="{{ route('requests') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-search"></i><div>Anfragen</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('bookings') ? ' active' : '' }} {{ Request::is('booking/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('bookings') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-bed"></i><div>Buchungen</div></a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="sidenav-item{{ Request::is('travel_users') ? ' open' : '' }} {{ Request::is('travel_user/*') ? ' open' : '' }} {{ Request::is('booking/*') ? ' open' : '' }} {{ Request::is('travel_user_booking_fewos') ? ' open' : '' }} {{ Request::is('travel_user_booking_fewo/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-people"></i>
|
||||
<div>Kundenverwaltung</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('travel_users') ? ' active' : '' }} {{ Request::is('travel_user/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>Kunden (FeWo)</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('travel_user_booking_fewos') ? ' active' : '' }} {{ Request::is('travel_user_booking_fewo/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_user_booking_fewos') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-bed"></i><div>Buchungen (FeWo)</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@if(Auth::user()->isAdmin())
|
||||
@if(Auth::user()->isPermission('crm'))
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN CRM</li>
|
||||
@if(Auth::user()->isPermission('crm-tp'))
|
||||
<li class="sidenav-item{{ Request::is('travel/*') ? ' open' : '' }} {{ Request::is('drafts') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-airplane"></i>
|
||||
<div>Reiseprogramme</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
@if(Auth::user()->isPermission('crm-tp-pr'))
|
||||
<li class="sidenav-item{{ Request::is('travel/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_programs') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-airplane"></i><div>Programme</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-tp-dr'))
|
||||
<li class="sidenav-item{{ Request::is('drafts') ? ' active' : '' }}">
|
||||
<a href="{{ route('drafts') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>Vorlagen</div></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-bo'))
|
||||
<li class="sidenav-item{{ Request::is('requests') ? ' open' : '' }} {{ Request::is('bookings') ? ' open' : '' }} {{ Request::is('booking/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-md-bed"></i>
|
||||
<div>Buchungen</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
@if(Auth::user()->isPermission('crm-bo-re'))
|
||||
<li class="sidenav-item{{ Request::is('requests') ? ' active' : '' }}">
|
||||
<a href="{{ route('requests') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-search"></i><div>Anfragen</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-bo-bo'))
|
||||
<li class="sidenav-item{{ Request::is('bookings') ? ' active' : '' }} {{ Request::is('booking/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('bookings') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-bed"></i><div>Buchungen</div></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-cm'))
|
||||
<li class="sidenav-item{{ Request::is('travel_users') ? ' open' : '' }} {{ Request::is('travel_user/*') ? ' open' : '' }} {{ Request::is('booking/*') ? ' open' : '' }} {{ Request::is('travel_user_booking_fewos') ? ' open' : '' }} {{ Request::is('travel_user_booking_fewo/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-people"></i>
|
||||
<div>Kundenverwaltung</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
@if(Auth::user()->isPermission('crm-cm-cf'))
|
||||
<li class="sidenav-item{{ Request::is('travel_users') ? ' active' : '' }} {{ Request::is('travel_user/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>Kunden (FeWo)</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-cm-bf'))
|
||||
<li class="sidenav-item{{ Request::is('travel_user_booking_fewos') ? ' active' : '' }} {{ Request::is('travel_user_booking_fewo/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_user_booking_fewos') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-bed"></i><div>Buchungen (FeWo)</div></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-old-cm'))
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN CRM altes System</li>
|
||||
|
||||
|
|
@ -105,58 +116,68 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN CMS</li>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('cms/content') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>Inhalte</div></a>
|
||||
</li>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('cms/travel_magazine') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_travel_magazine') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-map"></i><div>Reiseführer</div></a>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="sidenav-item{{ Request::is('cms/feedback') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_feedback') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-chatboxes"></i><div>Feedback</div></a>
|
||||
</li>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('cms/sidebar') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_sidebar') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list"></i><div>Sidebar</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('cms'))
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN CMS</li>
|
||||
@if(Auth::user()->isPermission('cms-cn'))
|
||||
<li class="sidenav-item{{ Request::is('cms/content') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>Inhalte</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('cms-tg'))
|
||||
<li class="sidenav-item{{ Request::is('cms/travel_magazine') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_travel_magazine') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-map"></i><div>Reiseführer</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('cms-fb'))
|
||||
<li class="sidenav-item{{ Request::is('cms/feedback') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_feedback') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-chatboxes"></i><div>Feedback</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('cms-sb'))
|
||||
<li class="sidenav-item{{ Request::is('cms/sidebar') ? ' active' : '' }}">
|
||||
<a href="{{ route('cms_sidebar') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list"></i><div>Sidebar</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if(Auth::user()->isSuperAdmin())
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">SUPERADMIN</li>
|
||||
|
||||
|
||||
|
||||
@if(Auth::user()->isPermission('sua-st'))
|
||||
<li class="sidenav-item{{ Request::is('admin/settings/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-settings"></i>
|
||||
<div>Einstellungen</div>
|
||||
</a>
|
||||
|
||||
<ul class="sidenav-menu">
|
||||
@if(Auth::user()->isPermission('sua-st-tp'))
|
||||
<li class="sidenav-item{{ Request::is('admin/settings/travel/program') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_settings_travel_program') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-airplane"></i><div>{{ __('Reiseprogramme') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('sua-st-tc'))
|
||||
<li class="sidenav-item{{ Request::is('admin/settings/travel/country') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_settings_travel_country') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-globe"></i><div>{{ __('Reiseländer') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('sua-st-tn'))
|
||||
<li class="sidenav-item{{ Request::is('admin/settings/travel/nationality') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_settings_travel_nationality') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>{{ __('Nationalitäten') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('sua-ur-rt'))
|
||||
<li class="sidenav-item{{ Request::is('admin/users') ? ' active' : '' }} {{ Request::is('admin/user/edit/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-ribbon"></i><div>{{ __('User Rechte') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- <li class="sidenav-item{{ Request::is('admin/translate/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
|
|
|
|||
|
|
@ -36,11 +36,16 @@
|
|||
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="adults">{{ __('Erwachsene') }}</label>
|
||||
{{ Form::text('adults', $travel_user_booking_fewo->adults, array('placeholder'=>__('Erwachsene'), 'class'=>'form-control')) }}
|
||||
<select class="selectpicker" data-style="btn-light" name="adults" required>
|
||||
{!! HTMLHelper::getRangeOptions($travel_user_booking_fewo->adults, $max_adults, '', 0) !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="children">{{ __('Kinder') }}</label>
|
||||
{{ Form::text('children', $travel_user_booking_fewo->children, array('placeholder'=>__('Kinder'), 'class'=>'form-control')) }}
|
||||
<select class="selectpicker" data-style="btn-light" name="children" required>
|
||||
{!! HTMLHelper::getRangeOptions($travel_user_booking_fewo->children, $max_children, '', 0) !!}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="persons">{{ __('Personen Gesamt') }}*</label>
|
||||
|
|
@ -58,29 +63,38 @@
|
|||
<label class="form-label" for="to_date">{{ __('Datum bis') }}*</label>
|
||||
{{ Form::text('to_date', $travel_user_booking_fewo->to_date, array('placeholder'=>__('Datum bis'), 'class'=>'form-control datepicker-base', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<em>Änderungen werden nicht bei den Reservierungen geändert!</em>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="price_travel">{{ __('Preis Übernachtungen') }}*</label>
|
||||
{{ Form::text('price_travel', $travel_user_booking_fewo->price_travel, array('placeholder'=>__('Preis Übernachtungen'), 'class'=>'form-control')) }}
|
||||
@if(isset($travel_user_booking_fewo->daily_prices))
|
||||
@foreach($travel_user_booking_fewo->daily_prices as $s => $d)
|
||||
<div class="form-group col-sm-12">
|
||||
{{$s}} | {{$d['fromDay']}} - {{$d['toDay']}} | {{$d['numberDays']}} Tage x {{$d['perNight']}} € / pro Nacht | <strong>{{$d['price']}} € Gesamt</strong>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_travel">{{ __('Mitpreis alle Tage') }}</label>
|
||||
{{ Form::text('price_travel', $travel_user_booking_fewo->price_travel, array('placeholder'=>__('Preis Übernachtungen'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="price_service">{{ __('Preis Service-Gebühr') }}*</label>
|
||||
{{ Form::text('price_service', $travel_user_booking_fewo->price_service, array('placeholder'=>__('Preis Service-Gebühr'), 'class'=>'form-control')) }}
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_service">{{ __('Preis Service-Gebühr') }}</label>
|
||||
{{ Form::text('price_service', $travel_user_booking_fewo->price_service, array('placeholder'=>__('Preis Service-Gebühr'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="price_deposit">{{ __('Preis Kaution') }}*</label>
|
||||
{{ Form::text('price_deposit', $travel_user_booking_fewo->price_deposit, array('placeholder'=>__('Preis Kaution'), 'class'=>'form-control')) }}
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_deposit">{{ __('Preis Kaution') }}</label>
|
||||
{{ Form::text('price_deposit', $travel_user_booking_fewo->price_deposit, array('placeholder'=>__('Preis Kaution'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-3">
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="price_balance">{{ __('Provisionsausgleich durch Vertriebskanal') }}</label>
|
||||
{{ Form::text('price_balance', $travel_user_booking_fewo->price_balance, array('placeholder'=>__(' Provisionsausgleich durch Vertriebskanal'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="price_total">{{ __('Preis Gesamt') }}*</label>
|
||||
{{ Form::text('price_total', $travel_user_booking_fewo->price_total, array('placeholder'=>__('Preis Gesamt'), 'class'=>'form-control', 'readonly')) }}
|
||||
{{ Form::text('price_total', $travel_user_booking_fewo->price_total, array('placeholder'=>__('Preis Gesamt'), 'class'=>'form-control')) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -104,7 +118,11 @@
|
|||
<div class="form-group col-sm-4">
|
||||
<label class="custom-control custom-checkbox">
|
||||
{!! Form::checkbox('is_calendar_stern_tours', 1, $travel_user_booking_fewo->is_calendar_stern_tours, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{__('STERN TOURS')}}</span>
|
||||
<span class="custom-control-label">{{__('STERN TOURS')}} <br>Reservierung:
|
||||
@if($travel_user_booking_fewo->fewo_reservation && isset($travel_user_booking_fewo->fewo_reservation->from_date))
|
||||
{{ $travel_user_booking_fewo->fewo_reservation->from_date->format('d.m.Y') }} - {{ $travel_user_booking_fewo->fewo_reservation->to_date->format('d.m.Y') }}
|
||||
@endif
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -137,8 +155,25 @@
|
|||
{{ Form::textarea('notice', $travel_user_booking_fewo->notice, ['class' => 'form-control', 'rows'=>4]) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function floatNumber(n) {
|
||||
'use strict';
|
||||
n = n.replace(/\./g, '').replace(',', '.');
|
||||
return parseFloat(n);
|
||||
}
|
||||
$( document ).ready(function() {
|
||||
$('input.input-auto-calc').on('change', function () {
|
||||
price_travel = floatNumber($("input[name='price_travel']").val());
|
||||
price_service = floatNumber($("input[name='price_service']").val());
|
||||
price_deposit = floatNumber($("input[name='price_deposit']").val());
|
||||
price_balance =floatNumber($("input[name='price_balance']").val());
|
||||
price_total = parseFloat(price_travel + price_service + price_deposit + price_balance);
|
||||
price_total = parseFloat((Math.round(price_total * 100) / 100)).toFixed(2).replace(".", ",");
|
||||
$("input[name='price_total']").val(price_total);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
|||
232
routes/web.php
232
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');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue