Travel Group / Programms
This commit is contained in:
parent
9baa1a6233
commit
a718baf971
23 changed files with 808 additions and 89 deletions
14
.env
14
.env
|
|
@ -43,14 +43,20 @@ MAIL_BBC=kevin@adametz.media
|
|||
MAIL_FEWO_EMPLOYEE=kevin@adametz.media
|
||||
#MAIL_FEWO_EMPLOYEE=katrin.nikolai@stern-tours.de,gerda.fritsch@stern-tours.de
|
||||
#MAIL_BBC=kontakt@stern-tours.de,thomas.stern@stern-tours.de
|
||||
MAIL_FROM_ADDRESS=info@mein.sterntours.de
|
||||
MAIL_FROM_NAME="Reisebüro STERN TOURS"
|
||||
|
||||
MAIL_DRIVER=smtp
|
||||
MAIL_HOST=mail.your-server.de
|
||||
MAIL_FROM_NAME="Reisebüro STERN TOURS"
|
||||
#MAIL_FROM_ADDRESS=stern@sterntours.de
|
||||
#MAIL_HOST=zimbra.managedemail.de
|
||||
#MAIL_USERNAME=stern@stern-tours.de
|
||||
#MAIL_PASSWORD=13C!NlecB!Phil4beAxKl
|
||||
MAIL_PORT=587
|
||||
MAIL_ENCRYPTION=TLS
|
||||
|
||||
MAIL_FROM_ADDRESS=info@mein.sterntours.de
|
||||
MAIL_HOST=mail.your-server.de
|
||||
MAIL_USERNAME=info@mein.sterntours.de
|
||||
MAIL_PASSWORD=B7f8Ojt98v6tMz8W
|
||||
MAIL_ENCRYPTION=TLS
|
||||
|
||||
#MAIL_FROM_ADDRESS=stern@stern-tours.de
|
||||
#MAIL_HOST=zimbra.managedemail.de
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace App\Http\Controllers\IQ;
|
||||
|
||||
use Request;
|
||||
use App\Models\IQTravelItemPlace;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\IQTravelGroup;
|
||||
use App\Models\IQTravelGroupItem;
|
||||
|
|
@ -99,7 +98,7 @@ class TravelGroupController extends Controller
|
|||
->addColumn('action_edit', function (IQTravelGroup $iq_travel_group) {
|
||||
return '<a href="'.route('iq_travel_group_detail', [$iq_travel_group->id]).'" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('trave_items', function (IQTravelGroup $iq_travel_group) {
|
||||
->addColumn('travel_items', function (IQTravelGroup $iq_travel_group) {
|
||||
$ret = "";
|
||||
if($iq_travel_group->i_q_travel_group_items->count()){
|
||||
foreach($iq_travel_group->i_q_travel_group_items as $i_q_travel_group_item){
|
||||
|
|
@ -120,7 +119,7 @@ class TravelGroupController extends Controller
|
|||
return '<a href="' . route('iq_travel_group_delete', [$iq_travel_group->id, 'iq_travel_group']) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->rawColumns(['action_edit', 'id', 'active', 'trave_items', 'action_delete'])
|
||||
->rawColumns(['action_edit', 'id', 'active', 'travel_items', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class TravelItemController extends Controller
|
|||
->addColumn('country', function (IQTravelItem $iq_travel_item) {
|
||||
return $iq_travel_item->travel_country ? $iq_travel_item->travel_country->name : '';
|
||||
})
|
||||
->addColumn('trave_places', function (IQTravelItem $iq_travel_item) {
|
||||
->addColumn('travel_places', function (IQTravelItem $iq_travel_item) {
|
||||
$ret = "";
|
||||
if($iq_travel_item->i_q_travel_item_places->count()){
|
||||
foreach($iq_travel_item->i_q_travel_item_places as $i_q_travel_item_place){
|
||||
|
|
@ -130,7 +130,7 @@ class TravelItemController extends Controller
|
|||
return '<a href="' . route('iq_travel_item_delete', [$iq_travel_item->id, 'iq_travel_item']) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->rawColumns(['action_edit', 'id', 'active', 'draft_type', 'trave_places', 'action_delete'])
|
||||
->rawColumns(['action_edit', 'id', 'active', 'draft_type', 'travel_places', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,22 +3,21 @@
|
|||
namespace App\Http\Controllers\IQ;
|
||||
|
||||
use Request;
|
||||
use App\Models\IQTravelItemPlace;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\IQTravelGroup;
|
||||
use App\Models\IQTravelGroupItem;
|
||||
use App\Models\IQTravelProgram;
|
||||
use App\Models\IQTravelProgramItem;
|
||||
use App\Repositories\IQ\TravelRepository;
|
||||
|
||||
class TravelProgrammController extends Controller
|
||||
{
|
||||
|
||||
protected $tavelRepo;
|
||||
protected $travelRepo;
|
||||
|
||||
|
||||
public function __construct(TravelRepository $tavelRepo)
|
||||
public function __construct(TravelRepository $travelRepo)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
$this->tavelRepo = $tavelRepo;
|
||||
$this->travelRepo = $travelRepo;
|
||||
}
|
||||
|
||||
public function index()
|
||||
|
|
@ -33,11 +32,11 @@ class TravelProgrammController extends Controller
|
|||
public function detail($id, $step = false)
|
||||
{
|
||||
if($id === "new") {
|
||||
$model = new IQTravelGroup();
|
||||
$model = new IQTravelProgram();
|
||||
$id = 'new';
|
||||
$model->active = 1;
|
||||
}else{
|
||||
$model = IQTravelGroup::findOrFail($id);
|
||||
$model = IQTravelProgram::findOrFail($id);
|
||||
$id = $model->id;
|
||||
}
|
||||
|
||||
|
|
@ -46,7 +45,7 @@ class TravelProgrammController extends Controller
|
|||
'id' => $id,
|
||||
|
||||
];
|
||||
return view('iq.travel.group.detail', $data);
|
||||
return view('iq.travel.programm.detail', $data);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -55,15 +54,15 @@ class TravelProgrammController extends Controller
|
|||
$data = Request::all();
|
||||
if(isset($data['action'])){
|
||||
if($data['action'] === 'saveAll'){
|
||||
$travel_group = $this->tavelRepo->updateTravelGroup($id, $data);
|
||||
$travel_program = $this->travelRepo->updateTravelProgram($id, $data);
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('iq_travel_group_detail', [$travel_group->id]));
|
||||
return redirect(route('iq_travel_programm_detail', [$travel_program->id]));
|
||||
|
||||
}
|
||||
if($data['action'] === 'save-iq_travel_item_group'){
|
||||
$travel_group_item = $this->tavelRepo->updateTravelGroupItem($id, $data);
|
||||
if($data['action'] === 'save-iq_travel_program_items'){
|
||||
$travel_program = $this->travelRepo->createTravelProgramItems($id, $data);
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('iq_travel_group_detail', [$id]));
|
||||
return redirect(route('iq_travel_programm_detail', [$id]));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -72,37 +71,46 @@ class TravelProgrammController extends Controller
|
|||
|
||||
public function delete($id, $del=false){
|
||||
|
||||
if($del === 'i_q_travel_group_item'){
|
||||
$IQTravelGroupItem = IQTravelGroupItem::findOrFail($id);
|
||||
$r_id = $IQTravelGroupItem->i_q_travel_group_id;
|
||||
if($del === 'i_q_travel_program_item'){
|
||||
$IQTravelProgramItem = IQTravelProgramItem::findOrFail($id);
|
||||
$IQTravelProgram = $IQTravelProgramItem->i_q_travel_program;
|
||||
//TODO check need ???
|
||||
$IQTravelGroupItem->delete();
|
||||
$IQTravelProgramItem->delete();
|
||||
$this->travelRepo->sortPosTravelProgramItems($IQTravelProgram);
|
||||
\Session()->flash('alert-success', __('Eintrag gelöscht'));
|
||||
return redirect(route('iq_travel_group_detail', [$r_id]));
|
||||
return redirect(route('iq_travel_programm_detail', [$IQTravelProgram->id]));
|
||||
}
|
||||
if($del === 'iq_travel_group'){
|
||||
$IQTravelGroup = IQTravelGroup::findOrFail($id);
|
||||
if($del === 'iq_travel_programm'){
|
||||
$IQTravelProgram = IQTravelProgram::findOrFail($id);
|
||||
//TODO check need ???
|
||||
$IQTravelGroup->delete();
|
||||
$IQTravelProgram->delete();
|
||||
\Session()->flash('alert-success', __('Eintrag gelöscht'));
|
||||
return redirect(route('iq_travel_groups'));
|
||||
return redirect(route('iq_travel_programms'));
|
||||
}
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function getTravelGroups()
|
||||
public function getTravelProgramms()
|
||||
{
|
||||
$query = IQTravelGroup::with('i_q_travel_group_items')->with('i_q_travel_group_items.i_q_travel_item')->select('i_q_travel_groups.*');
|
||||
//->with('i_q_travel_program_items.i_q_travel_item')
|
||||
$query = IQTravelProgram::with('i_q_travel_program_items')->select('i_q_travel_programs.*');
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('action_edit', function (IQTravelGroup $iq_travel_group) {
|
||||
return '<a href="'.route('iq_travel_group_detail', [$iq_travel_group->id]).'" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
->addColumn('action_edit', function (IQTravelProgram $iq_travel_program) {
|
||||
return '<a href="'.route('iq_travel_programm_detail', [$iq_travel_program->id]).'" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('trave_items', function (IQTravelGroup $iq_travel_group) {
|
||||
|
||||
->addColumn('typ', function (IQTravelProgram $iq_travel_program) {
|
||||
return $iq_travel_program->typ ? IQTravelProgram::$status_type[$iq_travel_program->typ] : '-';
|
||||
})
|
||||
->addColumn('country', function (IQTravelProgram $iq_travel_program) {
|
||||
return $iq_travel_program->travel_country ? $iq_travel_program->travel_country->name : '';
|
||||
})
|
||||
->addColumn('travel_items', function (IQTravelProgram $iq_travel_program) {
|
||||
$ret = "";
|
||||
if($iq_travel_group->i_q_travel_group_items->count()){
|
||||
foreach($iq_travel_group->i_q_travel_group_items as $i_q_travel_group_item){
|
||||
/*if($iq_travel_program->i_q_travel_group_items->count()){
|
||||
foreach($iq_travel_program->i_q_travel_group_items as $i_q_travel_group_item){
|
||||
$ret .= $i_q_travel_group_item->i_q_travel_item->name;
|
||||
$ret .= $i_q_travel_group_item->i_q_travel_item->draft_type_id ? ' | <span class="py-0 px-2" style="background-color:'.$i_q_travel_group_item->i_q_travel_item->draft_type->color.'">'.$i_q_travel_group_item->i_q_travel_item->draft_type->name.'</span>' : '';
|
||||
|
||||
|
|
@ -110,17 +118,17 @@ class TravelProgrammController extends Controller
|
|||
$ret .= "<br>";
|
||||
}
|
||||
$ret = rtrim($ret, '<br>');
|
||||
}
|
||||
}*/
|
||||
return $ret;
|
||||
})
|
||||
->addColumn('active', function (IQTravelGroup $iq_travel_group) {
|
||||
return get_active_badge($iq_travel_group->active);
|
||||
->addColumn('active', function (IQTravelProgram $iq_travel_program) {
|
||||
return get_active_badge($iq_travel_program->active);
|
||||
})
|
||||
->addColumn('action_delete', function (IQTravelGroup $iq_travel_group) {
|
||||
return '<a href="' . route('iq_travel_group_delete', [$iq_travel_group->id, 'iq_travel_group']) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
|
||||
->addColumn('action_delete', function (IQTravelProgram $iq_travel_program) {
|
||||
return '<a href="' . route('iq_travel_programm_delete', [$iq_travel_program->id, 'iq_travel_programm']) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->rawColumns(['action_edit', 'id', 'active', 'trave_items', 'action_delete'])
|
||||
->rawColumns(['action_edit', 'id', 'active', 'travel_items', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use App\Models\IQContentSite;
|
|||
use App\Models\TravelCountry;
|
||||
use App\Models\IQTravelGroupItem;
|
||||
use App\Models\IQTravelItemPlace;
|
||||
use App\Models\IQTravelProgramItem;
|
||||
use App\Models\TravelCompanyService;
|
||||
use App\Models\TravelCountryService;
|
||||
use App\Models\ServiceProviderService;
|
||||
|
|
@ -93,7 +94,15 @@ class ModalController extends Controller
|
|||
$ret = view("admin.modal.iq_travel_group-item", compact('data', 'value'))->render();
|
||||
}
|
||||
|
||||
|
||||
if($data['action'] === 'modal-iq_travel_program-item'){
|
||||
if($data['id'] === 'new'){
|
||||
$value = new IQTravelProgramItem();
|
||||
$value->pos = 0;
|
||||
}else{
|
||||
$value = IQTravelProgramItem::find($data['id']);
|
||||
}
|
||||
$ret = view("admin.modal.iq_travel_program-item", compact('data', 'value'))->render();
|
||||
}
|
||||
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ class IQTravelGroup extends Model
|
|||
|
||||
public function i_q_travel_group_items()
|
||||
{
|
||||
return $this->hasMany(IQTravelGroupItem::class)->orderBy('pos', 'DESC');
|
||||
return $this->hasMany(IQTravelGroupItem::class)->orderBy('pos', 'ASC');
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ class IQTravelItem extends Model
|
|||
|
||||
public function i_q_travel_item_places()
|
||||
{
|
||||
return $this->hasMany(IQTravelItemPlace::class)->orderBy('pos', 'DESC');
|
||||
return $this->hasMany(IQTravelItemPlace::class)->orderBy('pos', 'ASC');
|
||||
}
|
||||
|
||||
public function draft_type()
|
||||
|
|
|
|||
159
app/Models/IQTravelProgram.php
Normal file
159
app/Models/IQTravelProgram.php
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use App\Services\Util;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
||||
/**
|
||||
* Class IQTravelProgram
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $code
|
||||
* @property int $travel_country_id
|
||||
* @property string $description
|
||||
* @property string $highlights
|
||||
* @property string $not_included
|
||||
* @property string $weekdays
|
||||
* @property int $days_duration
|
||||
* @property float $discount
|
||||
* @property float $deposit_pro
|
||||
* @property float $price_adult_total
|
||||
* @property float $price_children_total
|
||||
* @property string $travel_insurance
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @property TravelCountry $travel_country
|
||||
* @property Collection|IQTravelProgramItem[] $i_q_travel_program_items
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class IQTravelProgram extends Model
|
||||
{
|
||||
protected $connection = 'mysql_stern';
|
||||
|
||||
protected $table = 'i_q_travel_programs';
|
||||
|
||||
protected $casts = [
|
||||
'travel_country_id' => 'int',
|
||||
'days_duration' => 'int',
|
||||
'typ' => 'int',
|
||||
'discount' => 'float',
|
||||
'deposit_pro' => 'float',
|
||||
'price_adult_total' => 'float',
|
||||
'price_children_total' => 'float',
|
||||
'active' => 'bool',
|
||||
'weekdays' => 'array',
|
||||
'travel_insurance' => 'array',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'code',
|
||||
'typ',
|
||||
'travel_country_id',
|
||||
'description',
|
||||
'highlights',
|
||||
'not_included',
|
||||
'weekdays',
|
||||
'days_duration',
|
||||
'discount',
|
||||
'deposit_pro',
|
||||
'price_adult_total',
|
||||
'price_children_total',
|
||||
'travel_insurance',
|
||||
'active'
|
||||
];
|
||||
|
||||
public static $status_type = [
|
||||
0 => '-',
|
||||
4 => '--- ist noch genau zu definieren',
|
||||
1 => 'individuelles Angebot',
|
||||
2 => 'Reiseangebot',
|
||||
3 => 'Reisekonfigurator',
|
||||
|
||||
];
|
||||
|
||||
public static $days = [
|
||||
0 => 'Sonntag',
|
||||
1 => 'Montag',
|
||||
2 => 'Dienstag',
|
||||
3 => 'Mittwoch',
|
||||
4 => 'Donnerstag',
|
||||
5 => 'Freitag',
|
||||
6 => 'Samstag'
|
||||
];
|
||||
|
||||
public function travel_country()
|
||||
{
|
||||
return $this->belongsTo(TravelCountry::class);
|
||||
}
|
||||
|
||||
public function i_q_travel_program_items()
|
||||
{
|
||||
return $this->hasMany(IQTravelProgramItem::class)->orderBy('pos', 'ASC');
|
||||
}
|
||||
|
||||
|
||||
//price_adult_total
|
||||
public function getPriceAdultTotalAttribute()
|
||||
{
|
||||
return isset($this->attributes['price_adult_total']) ? Util::_number_format($this->attributes['price_adult_total']) : null;
|
||||
}
|
||||
public function setPriceAdultTotalAttribute($value)
|
||||
{
|
||||
$this->attributes['price_adult_total'] = $value ? Util::_clean_float($value) : null;
|
||||
}
|
||||
public function getPriceAdultTotalRaw()
|
||||
{
|
||||
|
||||
return isset($this->attributes['price_adult_total']) ? $this->attributes['price_adult_total'] : 0;
|
||||
}
|
||||
public function setPriceAdultTotalRaw($value)
|
||||
{
|
||||
return $this->attributes['price_adult_total'] = $value;
|
||||
}
|
||||
|
||||
|
||||
//price_children_total
|
||||
public function getPriceChildrenTotalAttribute()
|
||||
{
|
||||
return isset($this->attributes['price_children_total']) ? Util::_number_format($this->attributes['price_children_total']) : null;
|
||||
}
|
||||
public function setPriceChildrenTotalAttribute($value)
|
||||
{
|
||||
$this->attributes['price_children_total'] = $value ? Util::_clean_float($value) : null;
|
||||
}
|
||||
public function getPriceChildrenTotalRaw()
|
||||
{
|
||||
return isset($this->attributes['price_children_total']) ? $this->attributes['price_children_total'] : 0;
|
||||
}
|
||||
public function setPriceChildrenTotalRaw($value)
|
||||
{
|
||||
return $this->attributes['price_children_total'] = $value;
|
||||
}
|
||||
|
||||
|
||||
public static function getWeekdaysOptions($weekdays = []){
|
||||
|
||||
if($weekdays === null){
|
||||
$weekdays = [];
|
||||
}
|
||||
$options = range(0, 6);
|
||||
$ret = '';
|
||||
foreach ($options as $option){
|
||||
$attr = (in_array($option, $weekdays)) ? 'selected="selected"' : '';
|
||||
$ret .= '<option value="'.$option.'" '.$attr.'>'.(isset(self::$days[$option]) ? self::$days[$option] : '').'</option>\n';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
70
app/Models/IQTravelProgramItem.php
Normal file
70
app/Models/IQTravelProgramItem.php
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class IQTravelProgramItem
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $i_q_travel_program_id
|
||||
* @property int $i_q_travel_item_id
|
||||
* @property int $i_q_travel_group_id
|
||||
* @property int $typ
|
||||
* @property int $pos
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @property IQTravelGroup $i_q_travel_group
|
||||
* @property IQTravelItem $i_q_travel_item
|
||||
* @property IQTravelProgram $i_q_travel_program
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class IQTravelProgramItem extends Model
|
||||
{
|
||||
|
||||
protected $connection = 'mysql_stern';
|
||||
|
||||
protected $table = 'i_q_travel_program_items';
|
||||
|
||||
protected $casts = [
|
||||
'i_q_travel_program_id' => 'int',
|
||||
'i_q_travel_item_id' => 'int',
|
||||
'i_q_travel_group_id' => 'int',
|
||||
'typ' => 'int',
|
||||
'pos' => 'int',
|
||||
'active' => 'bool'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'i_q_travel_program_id',
|
||||
'i_q_travel_item_id',
|
||||
'i_q_travel_group_id',
|
||||
'typ',
|
||||
'pos',
|
||||
'active'
|
||||
];
|
||||
|
||||
public function i_q_travel_group()
|
||||
{
|
||||
return $this->belongsTo(IQTravelGroup::class);
|
||||
}
|
||||
|
||||
public function i_q_travel_item()
|
||||
{
|
||||
return $this->belongsTo(IQTravelItem::class);
|
||||
}
|
||||
|
||||
public function i_q_travel_program()
|
||||
{
|
||||
return $this->belongsTo(IQTravelProgram::class);
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,8 @@ use App\Models\IQTravelGroup;
|
|||
use App\Models\IQTravelGroupItem;
|
||||
use App\Models\IQTravelItem;
|
||||
use App\Models\IQTravelItemPlace;
|
||||
use App\Models\IQTravelProgram;
|
||||
use App\Models\IQTravelProgramItem;
|
||||
use App\Repositories\BaseRepository;
|
||||
|
||||
class TravelRepository extends BaseRepository {
|
||||
|
|
@ -17,6 +19,78 @@ class TravelRepository extends BaseRepository {
|
|||
}
|
||||
|
||||
|
||||
public function updateTravelProgram($id, $data)
|
||||
{
|
||||
|
||||
$data['travel_country_id'] = $data['travel_country_id'] ? $data['travel_country_id'] : null;
|
||||
|
||||
if($id == "new"){
|
||||
$this->model = IQTravelProgram::create($data);
|
||||
}
|
||||
else{
|
||||
$this->model = IQTravelProgram::findOrFail($id);
|
||||
$this->model->fill($data);
|
||||
$this->model->save();
|
||||
}
|
||||
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
public function createTravelProgramItems($id, $data)
|
||||
{
|
||||
$this->model = IQTravelProgram::findOrFail($id);
|
||||
$data['pos'] = isset($data['pos']) ? intval($data['pos']) : 0;
|
||||
$data['typ'] = isset($data['typ']) ? intval($data['typ']) : 0;
|
||||
$data['i_q_travel_program_id'] = $data['iq_travel_program_id'];
|
||||
|
||||
$pos = $this->sortPosTravelProgramItems($this->model);
|
||||
|
||||
if($data['iq_travel_program_item_id'] == "new"){
|
||||
if(isset($data['i_q_travel_item_ids']) && is_array($data['i_q_travel_item_ids'])){
|
||||
foreach($data['i_q_travel_item_ids'] as $key=>$i_q_travel_item_id){
|
||||
IQTravelProgramItem::create([
|
||||
'i_q_travel_program_id' => $this->model->id,
|
||||
'i_q_travel_item_id' => intval($i_q_travel_item_id),
|
||||
'i_q_travel_group_id' => null,
|
||||
'typ' => $data['typ'],
|
||||
'pos' => $pos,
|
||||
]);
|
||||
$pos++;
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($data['i_q_travel_group_ids']) && is_array($data['i_q_travel_group_ids'])){
|
||||
foreach($data['i_q_travel_group_ids'] as $key=>$i_q_travel_group_id){
|
||||
$IQTravelGroup = IQTravelGroup::findOrFail($i_q_travel_group_id);
|
||||
if($IQTravelGroup->i_q_travel_group_items){
|
||||
foreach($IQTravelGroup->i_q_travel_group_items as $IQTravelGroupItem){
|
||||
IQTravelProgramItem::create([
|
||||
'i_q_travel_program_id' => $this->model->id,
|
||||
'i_q_travel_item_id' => $IQTravelGroupItem->i_q_travel_item_id,
|
||||
'i_q_travel_group_id' => $IQTravelGroupItem->i_q_travel_group_id,
|
||||
'typ' => $data['typ'],
|
||||
'pos' => $pos,
|
||||
]);
|
||||
$pos++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
public function sortPosTravelProgramItems($IQTravelProgram){
|
||||
$pos = 1;
|
||||
if($IQTravelProgram->i_q_travel_program_items){
|
||||
foreach ($IQTravelProgram->i_q_travel_program_items as $IQTravelProgramItem){
|
||||
$IQTravelProgramItem->pos = $pos;
|
||||
$IQTravelProgramItem->save();
|
||||
$pos++;
|
||||
}
|
||||
}
|
||||
return $pos;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,27 @@
|
|||
<?php
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Airline;
|
||||
use App\Models\CMSAuthor;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\Country;
|
||||
use Form;
|
||||
use App\Models\Draft;
|
||||
use App\Models\Airline;
|
||||
use App\Models\Country;
|
||||
use App\Models\CMSAuthor;
|
||||
use App\Models\DraftType;
|
||||
use App\Models\FewoLodging;
|
||||
use App\Models\Insurance;
|
||||
use App\Models\IQTravelItem;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\TravelUser;
|
||||
use App\Models\FewoLodging;
|
||||
use App\Models\TravelClass;
|
||||
use App\Models\TravelGuide;
|
||||
use App\Models\TravelPlace;
|
||||
use App\Models\IQTravelItem;
|
||||
use App\Models\IQTravelGroup;
|
||||
use App\Models\TravelCompany;
|
||||
use App\Models\TravelCountry;
|
||||
use App\Models\TravelGuide;
|
||||
use App\Models\TravelNationality;
|
||||
use App\Models\TravelPlace;
|
||||
use App\Models\TravelProgram;
|
||||
use App\Models\TravelUser;
|
||||
use Form;
|
||||
use App\Models\IQTravelGroupItem;
|
||||
use App\Models\TravelNationality;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
|
||||
class HTMLHelper
|
||||
{
|
||||
|
|
@ -296,6 +298,19 @@ class HTMLHelper
|
|||
return $ret;
|
||||
}
|
||||
|
||||
public static function getIQTravelGroupsOptions($id = false, $order = "ASC", $empty=false){
|
||||
$options = IQTravelGroup::where('active',1)->orderBy('id', $order)->get();
|
||||
$ret = '';
|
||||
if($empty){
|
||||
$ret = '<option value="">Bitte wählen</option>\n';
|
||||
}
|
||||
foreach ($options as $option){
|
||||
$attr = ($option->id === $id) ? 'selected="selected"' : '';
|
||||
$ret .= '<option value="'.$option->id.'" '.$attr.'>'.$option->name.'</option>\n';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public static function getCustomerMailDirsOptions(CMSContent $customer_mail_dir, $checked = []){
|
||||
//$checked = [];
|
||||
$model = $customer_mail_dir->getArrayContent('model');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateIQTravelProgramsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql_stern')->create('i_q_travel_programs', function (Blueprint $table) {
|
||||
|
||||
$table->increments('id');
|
||||
|
||||
$table->string('name')->nullable();
|
||||
$table->string('code')->nullable();
|
||||
$table->unsignedTinyInteger('typ')->nullable();
|
||||
|
||||
$table->integer('travel_country_id')->nullable();
|
||||
|
||||
$table->text('description')->nullable();
|
||||
$table->text('highlights')->nullable();
|
||||
$table->text('not_included')->nullable();
|
||||
|
||||
$table->string('weekdays')->nullable();
|
||||
$table->tinyInteger('days_duration')->unsigned()->nullable();
|
||||
|
||||
$table->decimal('discount', 5, 2)->nullable();
|
||||
$table->decimal('deposit_pro', 5, 2)->nullable();
|
||||
$table->decimal('price_adult_total', 10, 2)->nullable();
|
||||
$table->decimal('price_children_total', 10, 2)->nullable();
|
||||
|
||||
$table->string('travel_insurance')->nullable();
|
||||
|
||||
$table->boolean('active')->default(true);
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('travel_country_id')
|
||||
->references('id')
|
||||
->on('travel_country');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql_stern')->dropIfExists('i_q_travel_programs');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateIQTravelProgramItemsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql_stern')->create('i_q_travel_program_items', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
|
||||
$table->unsignedInteger('i_q_travel_program_id')->index();
|
||||
$table->unsignedInteger('i_q_travel_item_id')->nullable()->index();
|
||||
$table->unsignedInteger('i_q_travel_group_id')->nullable()->index();
|
||||
|
||||
$table->unsignedTinyInteger('typ')->nullable();
|
||||
$table->unsignedTinyInteger('pos')->nullable();
|
||||
$table->boolean('active')->default(true);
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('i_q_travel_program_id')
|
||||
->references('id')
|
||||
->on('i_q_travel_programs')
|
||||
->onDelete('cascade');
|
||||
|
||||
$table->foreign('i_q_travel_item_id')
|
||||
->references('id')
|
||||
->on('i_q_travel_items')
|
||||
->onDelete('cascade');
|
||||
|
||||
$table->foreign('i_q_travel_group_id')
|
||||
->references('id')
|
||||
->on('i_q_travel_groups')
|
||||
->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql_stern')->dropIfExists('i_q_travel_program_items');
|
||||
}
|
||||
}
|
||||
|
|
@ -14,13 +14,12 @@
|
|||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label for="travel_place_id" class="form-label">{{__('Reiseort')}}*</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="travel_place_id" data-live-search="true" required>
|
||||
{!! HTMLHelper::getTravelPlaceOptions($value->travel_place_id, 'ASC', true) !!}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pos" class="form-label">{{ __('Position') }}</label>
|
||||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
|
|
|
|||
37
resources/views/admin/modal/iq_travel_prgram-item.blade.php
Normal file
37
resources/views/admin/modal/iq_travel_prgram-item.blade.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<div class="modal-content">
|
||||
{!! Form::open(['url' => $data['url'], 'class' => '', 'enctype' => 'multipart/form-data']) !!}
|
||||
{{ Form::hidden('iq_travel_program_item_id', $data['id']) }}
|
||||
{{ Form::hidden('iq_travel_program_id', $data['iq_travel_program_id']) }}
|
||||
{{ Form::hidden('back', $data['back']) }}
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
Reisebaustein
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="i_q_travel_item_id" class="form-label">{{__('Reisebaustein')}}*</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="i_q_travel_item_id" data-live-search="true" required>
|
||||
{!! HTMLHelper::getIQTravelItemsOptions($value->i_q_travel_item_id, 'ASC', true) !!}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="pos" class="form-label">{{ __('Position') }}</label>
|
||||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary" name="action" value="save-iq_travel_item_group">speichern</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<div class="modal-content">
|
||||
{!! Form::open(['url' => $data['url'], 'class' => '', 'enctype' => 'multipart/form-data']) !!}
|
||||
{{ Form::hidden('iq_travel_program_item_id', $data['id']) }}
|
||||
{{ Form::hidden('iq_travel_program_id', $data['iq_travel_program_id']) }}
|
||||
{{ Form::hidden('back', $data['back']) }}
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
Reisebausteingruppe
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="i_q_travel_item_id" class="form-label">{{__('Reisebaustein')}}*</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="i_q_travel_item_id" data-live-search="true" required>
|
||||
{!! HTMLHelper::getIQTravelItemsOptions($value->i_q_travel_item_id, 'ASC', true) !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pos" class="form-label">{{ __('Position') }}</label>
|
||||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary" name="action" value="save-iq_travel_item_group">speichern</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
39
resources/views/admin/modal/iq_travel_program-item.blade.php
Normal file
39
resources/views/admin/modal/iq_travel_program-item.blade.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<div class="modal-content">
|
||||
{!! Form::open(['url' => $data['url'], 'class' => '', 'enctype' => 'multipart/form-data']) !!}
|
||||
{{ Form::hidden('iq_travel_program_item_id', $data['id']) }}
|
||||
{{ Form::hidden('iq_travel_program_id', $data['iq_travel_program_id']) }}
|
||||
{{ Form::hidden('back', $data['back']) }}
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
Reisebaustein
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="i_q_travel_item_id" class="form-label">{{__('Reisebaustein')}} (Mehrfachauswahl möglich)</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="i_q_travel_item_ids[]" data-live-search="true" multiple>
|
||||
{!! HTMLHelper::getIQTravelItemsOptions($value->i_q_travel_item_id, 'ASC', false) !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="i_q_travel_group_id" class="form-label">{{__('Reisebaustein Gruppe')}} (Mehrfachauswahl möglich)</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="i_q_travel_group_ids[]" data-live-search="true" multiple>
|
||||
{!! HTMLHelper::getIQTravelGroupsOptions($value->i_q_travel_group_id, 'ASC', false) !!}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary" name="action" value="save-iq_travel_program_items">hinzufügen</button>
|
||||
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
|
|
@ -16,12 +16,23 @@
|
|||
<div class="card-body">
|
||||
<h4>Allgemein</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<div class="form-group col-sm-10">
|
||||
<label class="form-label" for="name">{{ __('Name') }} *</label>
|
||||
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('active', 0) }}
|
||||
{{ Form::checkbox('active', 1, $model->active, array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label">sichtbar</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
{{-- <div class="form-row">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="min_persons">min. Personen</span></label>
|
||||
<select class="custom-select" data-style="btn-light" name="min_persons" id="min_persons">
|
||||
|
|
@ -63,32 +74,22 @@
|
|||
{!! HTMLHelper::getRangeOptions($model->days_start, 60, ' Tag:e') !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-4 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('active', 0) }}
|
||||
{{ Form::checkbox('active', 1, $model->active, array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label">sichtbar</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>--}}
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
<div class="form-group col-sm-12 col-md-6">
|
||||
<div class="form-group col-sm-12 col-md-12">
|
||||
<label class="form-label" for="description">Beschreibung</span></label>
|
||||
{{ Form::textarea('description', $model->description, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-12 col-md-6">
|
||||
{{-- <div class="form-group col-sm-12 col-md-6">
|
||||
<label class="form-label" for="highlights">Highlights</span></label>
|
||||
{{ Form::textarea('highlights', $model->highlights, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
</div>--}}
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
"columns": [
|
||||
{ data: 'action_edit', orderable: false, searchable: false},
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'trave_items', name: 'trave_items', orderable: false, searchable: false },
|
||||
{ data: 'travel_items', name: 'travel_items', orderable: false, searchable: false },
|
||||
{ data: 'active', name: 'active' },
|
||||
{ data: 'action_delete', orderable: false, searchable: false},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
{ data: 'name', name: 'name' },
|
||||
{ data: 'draft_type', name: 'draft_type', orderable: false, searchable: false },
|
||||
{ data: 'country', name: 'country', orderable: false, searchable: false },
|
||||
{ data: 'trave_places', name: 'trave_places', orderable: false, searchable: false },
|
||||
{ data: 'travel_places', name: 'travel_places', orderable: false, searchable: false },
|
||||
{ data: 'active', name: 'active' },
|
||||
{ data: 'action_delete', orderable: false, searchable: false},
|
||||
],
|
||||
|
|
|
|||
151
resources/views/iq/travel/programm/detail.blade.php
Normal file
151
resources/views/iq/travel/programm/detail.blade.php
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
{!! Form::open(['url' => route('iq_travel_programm_detail', [$id]), 'class' => 'form-horizontal']) !!}
|
||||
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Reiseprogramm
|
||||
<div class="float-right">
|
||||
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>
|
||||
<a href="{{route('iq_travel_programms')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
|
||||
</div>
|
||||
</h4>
|
||||
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h4>Allgemein</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="name">{{ __('Name') }} *</label>
|
||||
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label for="typ" class="form-label">Typ</label>
|
||||
{{ Form::select('typ', \App\Models\IQTravelProgram::$status_type , $model->typ, array('class'=>'custom-select', 'id'=>'typ')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label for="travel_country_id" class="form-label">Reiseland</label>
|
||||
{{ Form::select('travel_country_id', \App\Services\Model::getTravelCountryArray(true) , $model->travel_country_id, array('class'=>'custom-select', 'id'=>'travel_country_id')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6">
|
||||
<label for="weekdays" class="form-label">{{__('Wochentage')}}</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="weekdays[]" multiple>
|
||||
{!! \App\Models\IQTravelProgram::getWeekdaysOptions($model->weekdays) !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="code">{{ __('Code') }}</label>
|
||||
{{ Form::text('code', $model->code, array('placeholder'=>__('Code / Kürzel'), 'class'=>'form-control', 'id'=>'code')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('active', 0) }}
|
||||
{{ Form::checkbox('active', 1, $model->active, array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label">sichtbar</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
<div class="form-group col-sm-12 col-md-6">
|
||||
<label class="form-label" for="description">Beschreibung</span></label>
|
||||
{{ Form::textarea('description', $model->description, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-12 col-md-6">
|
||||
<label class="form-label" for="highlights">Highlights</span></label>
|
||||
{{ Form::textarea('highlights', $model->highlights, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>Reisebausteine <span class="text-muted">für diese Programm</span></h4>
|
||||
|
||||
@if($model->id)
|
||||
<div class="alert alert-danger">In Arbeit, hier fehlen noch mehr Felder, Drag and Drop, automatische Brechnungen, etc.</div>
|
||||
<div class="table-responsive" id="booking_files_table">
|
||||
<table class="table table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 2%;"> </th>
|
||||
<th style="width: 6%;">{{__('POS')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Typ')}}</th>
|
||||
<th>{{__('Land')}}</th>
|
||||
<th>{{__('Ort(e)')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if($model->i_q_travel_program_items)
|
||||
@foreach($model->i_q_travel_program_items as $i_q_travel_program_item)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<!--<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{$i_q_travel_program_item->id}}"
|
||||
data-iq_travel_program_id="{{$model->id}}"
|
||||
data-model="IQTravelProgramItem"
|
||||
data-action="modal-iq_travel_program-item"
|
||||
data-back="{{route('iq_travel_programm_detail', [$model->id])}}"
|
||||
data-url="{{ route('iq_travel_programm_detail', [$model->id]) }}"
|
||||
data-route="{{ route('modal_load') }}"><span class="fa fa-edit"></span></button>-->
|
||||
</td>
|
||||
<td>{{ $i_q_travel_program_item->pos }}</td>
|
||||
<td>{{ $i_q_travel_program_item->i_q_travel_item->name }}</td>
|
||||
<td>@if($i_q_travel_program_item->i_q_travel_item->draft_type) <span class="py-1 px-2" style="background-color: {{ $i_q_travel_program_item->i_q_travel_item->draft_type->color }}">{{ $i_q_travel_program_item->i_q_travel_item->draft_type->name }}</span> @endif</td>
|
||||
<td>@if($i_q_travel_program_item->i_q_travel_item->travel_country){{ $i_q_travel_program_item->i_q_travel_item->travel_country->name }} @endif</td>
|
||||
<td>
|
||||
@if($i_q_travel_program_item->i_q_travel_item->i_q_travel_item_places->count())
|
||||
@foreach($i_q_travel_program_item->i_q_travel_item->i_q_travel_item_places as $i_q_travel_item_place)
|
||||
{{ $i_q_travel_item_place->travel_place->name }} <br>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<a class="ml-2 btn btn-xs btn-danger" href="{{ route('iq_travel_programm_delete', [$i_q_travel_program_item->id, 'i_q_travel_program_item']) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="text-right d-block w-100">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-iq_travel_program_id="{{$model->id}}"
|
||||
data-model="IQTravelProgramItem"
|
||||
data-action="modal-iq_travel_program-item"
|
||||
data-back="{{route('iq_travel_programm_detail', [$model->id])}}"
|
||||
data-url="{{ route('iq_travel_programm_detail', [$model->id]) }}"
|
||||
data-route="{{ route('modal_load') }}"><i class="ion ion-md-add-circle"></i> Reisebaustein:e hinzufügen</button>
|
||||
</div>
|
||||
@else
|
||||
<p><i>Das Programm muss erst mit einem Name gespeichert werden.</i></p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>
|
||||
<a href="{{route('iq_travel_programms')}}" class="btn btn-default">{{ __('back') }}</a> </div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
|
|
@ -14,22 +14,22 @@
|
|||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('')}}</th>
|
||||
<th>{{__('Typ')}}</th>
|
||||
<th>{{__('Land')}}</th>
|
||||
<th>{{__('sichbar')}}</th>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
In Umsetzung …
|
||||
</div>
|
||||
|
||||
<div class="ml-3 mb-2">
|
||||
<!-- <a href="{{ route('iq_travel_group_detail', ['new']) }}" class="btn btn-sm btn-primary">Neues Programm anlegen</a> -->
|
||||
<a href="{{ route('iq_travel_programm_detail', ['new']) }}" class="btn btn-sm btn-primary">Neues Programm anlegen</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/* $( document ).ready(function() {
|
||||
$( document ).ready(function() {
|
||||
$('.datatables-customer').dataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
|
@ -38,7 +38,8 @@
|
|||
"columns": [
|
||||
{ data: 'action_edit', orderable: false, searchable: false},
|
||||
{ data: 'name', name: 'name' },
|
||||
{ data: 'trave_items', name: 'trave_items', orderable: false, searchable: false },
|
||||
{ data: 'typ', name: 'typ' },
|
||||
{ data: 'country', name: 'country' },
|
||||
{ data: 'active', name: 'active' },
|
||||
{ data: 'action_delete', orderable: false, searchable: false},
|
||||
],
|
||||
|
|
@ -48,7 +49,7 @@
|
|||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});*/
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -253,19 +253,20 @@ Route::group(['middleware' => ['admin']], function()
|
|||
//Reisebausteine
|
||||
Route::get('/iq/travel/programms', 'IQ\TravelProgrammController@index')->name('iq_travel_programms');
|
||||
Route::get('/iq/travel/programm/detail/{id}', 'IQ\TravelProgrammController@detail')->name('iq_travel_programm_detail');
|
||||
Route::post('/iq/travel/programm/detail/{id?}', 'IQ\TravelProgrammController@store')->name('iq_travel_programm_detail');
|
||||
Route::get('/iq/travel/programm/delete/{id?}/{del?}', 'IQ\TravelProgrammController@delete')->name('iq_travel_programm_delete');
|
||||
|
||||
Route::get('/iq/travel/groups', 'IQ\TravelGroupController@index')->name('iq_travel_groups');
|
||||
Route::get('/iq/travel/group/detail/{id?}', 'IQ\TravelGroupController@detail')->name('iq_travel_group_detail');
|
||||
Route::post('/iq/travel/group/detail/{id?}', 'IQ\TravelGroupController@store')->name('iq_travel_group_detail');
|
||||
Route::get('/iq/travel/group/delete/{id?}/{del?}', 'IQ\TravelGroupController@delete')->name('iq_travel_group_delete');
|
||||
|
||||
|
||||
Route::get('/iq/travel/items', 'IQ\TravelItemController@index')->name('iq_travel_items');
|
||||
Route::get('/iq/travel/item/detail/{id?}', 'IQ\TravelItemController@detail')->name('iq_travel_item_detail');
|
||||
Route::post('/iq/travel/item/detail/{id?}', 'IQ\TravelItemController@store')->name('iq_travel_item_detail');
|
||||
Route::get('/iq/travel/item/delete/{id?}/{del?}', 'IQ\TravelItemController@delete')->name('iq_travel_item_delete');
|
||||
|
||||
Route::get('/iq/travel/programm/data_table', 'IQ\TravelProgrammController@data_table')->name('data_table_travel_programms');
|
||||
Route::get('/iq/travel/programm/data_table', 'IQ\TravelProgrammController@getTravelProgramms')->name('data_table_travel_programms');
|
||||
Route::get('/iq/travel/group/data_table', 'IQ\TravelGroupController@getTravelGroups')->name('data_table_travel_groups');
|
||||
Route::get('/iq/travel/items/data_table', 'IQ\TravelItemController@getTravelItems')->name('data_table_travel_items');
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue