last changes since 6-2023
This commit is contained in:
parent
561c5875a7
commit
c1c613a4b9
53 changed files with 1351 additions and 93 deletions
|
|
@ -287,7 +287,9 @@ class ReportController extends Controller
|
|||
$new = false;
|
||||
}
|
||||
}else{
|
||||
$total_price += $export->booking->isCanceled() ? $export->booking->getPriceCanceledRaw() : $export->booking->getPriceRaw();
|
||||
|
||||
//$total_price += $export->booking->isCanceled() ? $export->booking->getPriceCanceledRaw() : $export->booking->getPriceRaw();
|
||||
$total_price += $export->isCanceled() ? $export->getPriceCanceledRaw() : $export->getPriceRaw();
|
||||
$columns[] = array(
|
||||
'BuchungsID' => $export->id,
|
||||
'Status' => $export->lead->status->name,
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ class CMSContentController extends Controller
|
|||
//store in cms old Datebase
|
||||
\App\Models\Sym\CmsContent::create($data);
|
||||
}else{
|
||||
if($data['identifier'] === 'fewo-email-file'){
|
||||
$data['integer'] = isset($data['default_travel_info']) ? 1 : 0;
|
||||
}
|
||||
$model = CMSContent::find($data['id']);
|
||||
$model->fill($data);
|
||||
$model->save();
|
||||
|
|
|
|||
|
|
@ -232,6 +232,24 @@ class LeadController extends Controller
|
|||
->addColumn('request_date', function (Lead $lead) {
|
||||
return Carbon::parse($lead->request_date)->format(\Util::formatDateDB());
|
||||
})
|
||||
->addColumn('travel_country', function (Lead $lead) {
|
||||
$out = "";
|
||||
if($lead->bookings->count()){
|
||||
$out = '<span class="badge badge-success">';
|
||||
foreach ($lead->bookings as $booking){
|
||||
if($booking->travel_country_id && $booking->travel_country) {
|
||||
$out .= $booking->travel_country->destco;
|
||||
}
|
||||
}
|
||||
$out .= '</span>';
|
||||
return $out;
|
||||
}
|
||||
if($lead->travel_country){
|
||||
return '<span class="badge badge-secondary">'.$lead->travel_country->destco.'</span>';
|
||||
}
|
||||
return "-";
|
||||
})
|
||||
|
||||
->addColumn('status', function (Lead $lead) {
|
||||
return $lead->getStatusBadge();
|
||||
})
|
||||
|
|
@ -292,7 +310,7 @@ class LeadController extends Controller
|
|||
$query->where('customer_id', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status', 'last_lead_email', 'lead_notice', 'action_delete'])
|
||||
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status', 'last_lead_email', 'travel_country', 'lead_notice', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ class EmailsController extends Controller
|
|||
|
||||
protected $identifier_booking_file;
|
||||
protected $identifier_fewo_file;
|
||||
protected $identifier_lead_file;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
|
|
|||
154
app/Http/Controllers/TravelContentController.php
Normal file
154
app/Http/Controllers/TravelContentController.php
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Request;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Page;
|
||||
|
||||
class TravelContentController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['admin', '2fa']);
|
||||
}
|
||||
|
||||
public function index($step = false)
|
||||
{
|
||||
$data = [
|
||||
'travelProgramOverviews' => Page::whereTemplate('travelProgramOverview')->get(),
|
||||
'step' => $step
|
||||
];
|
||||
return view('travel.content.index', $data);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function detail($id)
|
||||
{
|
||||
if($id === "new") {
|
||||
$id = 'new';
|
||||
|
||||
}else{
|
||||
$page = Page::findOrFail($id);
|
||||
$id = $page->id;
|
||||
}
|
||||
$data = [
|
||||
'model' => $page,
|
||||
'id' => $id,
|
||||
];
|
||||
return view('travel.content.detail', $data);
|
||||
}
|
||||
|
||||
public function store($id)
|
||||
{
|
||||
$data = Request::all();
|
||||
if($id === "new") {
|
||||
//$draft = new Draft();
|
||||
}else{
|
||||
$page = Page::findOrFail($id);
|
||||
}
|
||||
|
||||
if(Page::whereSlug($data['slug'])->where('id', '!=', $page->id)->count() > 0){
|
||||
$data['slug'] = "";
|
||||
}
|
||||
|
||||
$page->title = $data['title'];
|
||||
$page->title_short = $data['title_short'];
|
||||
$page->pagetitle = $data['pagetitle'];
|
||||
$page->slug = $data['slug'];
|
||||
$page->description = $data['description'];
|
||||
$page->content_new = $data['content_new'];
|
||||
$page->status = $data['status'];
|
||||
$page->show_in_navi = $data['show_in_navi'];
|
||||
$page->save();
|
||||
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('travel_content_detail', [$page->id]));
|
||||
}
|
||||
|
||||
public function subDetail($id)
|
||||
{
|
||||
if($id === "new") {
|
||||
$id = 'new';
|
||||
|
||||
}else{
|
||||
$page = Page::findOrFail($id);
|
||||
$id = $page->id;
|
||||
}
|
||||
$data = [
|
||||
'model' => $page,
|
||||
'id' => $id,
|
||||
];
|
||||
return view('travel.content.sub_detail', $data);
|
||||
}
|
||||
|
||||
public function subStore($id)
|
||||
{
|
||||
$data = Request::all();
|
||||
if($id === "new") {
|
||||
//$draft = new Draft();
|
||||
}else{
|
||||
$page = Page::findOrFail($id);
|
||||
}
|
||||
|
||||
if(Page::whereSlug($data['slug'])->where('id', '!=', $page->id)->count() > 0){
|
||||
$data['slug'] = "";
|
||||
}
|
||||
$page->title = $data['title'];
|
||||
$page->pagetitle = $data['pagetitle'];
|
||||
$page->slug = $data['slug'];
|
||||
$page->description = $data['description'];
|
||||
$page->status = $data['status'];
|
||||
$page->show_in_navi = $data['show_in_navi'];
|
||||
$page->order = $data['order'];
|
||||
|
||||
$page->travel_program = $data['travel_program'] > 0 ? $data['travel_program'] : null;
|
||||
|
||||
$page->save();
|
||||
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('travel_content_sub_detail', [$page->id]));
|
||||
}
|
||||
|
||||
|
||||
public function load(){
|
||||
$data = Request::all();
|
||||
$ret = "";
|
||||
if(Request::ajax()) {
|
||||
if($data['action'] === "modal-copy-page") {
|
||||
if($data['id'] > 0){
|
||||
$value = Page::findOrFail($data['id']);
|
||||
$ret = view('travel.content.modal_copy', compact('value'))->render();
|
||||
}
|
||||
}
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function update(){
|
||||
|
||||
$data = Request::all();
|
||||
|
||||
if($data['action'] === 'page-copy'){
|
||||
if($data['page_copy_id'] > 0){
|
||||
$model = Page::findOrFail($data['page_copy_id']);
|
||||
$newModel = $model->replicate();
|
||||
$newModel->date = null;
|
||||
//slug unique
|
||||
// $newModel->slug
|
||||
$newModel->created_at = now();
|
||||
$newModel->save();
|
||||
}
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('travel_content_detail', [$data['id']]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -3,21 +3,23 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
|
||||
use App\Mail\MailSendFeWoInvoice;
|
||||
use App\Mail\MailSendFeWoService;
|
||||
use App\Mail\MailSendFeWoInfo;
|
||||
use Request;
|
||||
use App\Services\Util;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\FewoLodging;
|
||||
use App\Mail\MailSendFeWoInfo;
|
||||
use App\Models\FewoReservation;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
use App\Models\TravelUserBookingFewoNotice;
|
||||
use App\Models\TravelUserBookingFile;
|
||||
use App\Repositories\BookingFewoFileRepository;
|
||||
use App\Repositories\TravelUserBookingFewoRepository;
|
||||
use App\Services\Util;
|
||||
use App\Models\CustomerFewoFile;
|
||||
use App\Mail\MailSendFeWoInvoice;
|
||||
use App\Mail\MailSendFeWoService;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Request;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
use App\Models\TravelUserBookingFile;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
use App\Models\TravelUserBookingFewoNotice;
|
||||
use App\Repositories\BookingFewoFileRepository;
|
||||
use App\Repositories\CustomerFewoFileRepository;
|
||||
use App\Repositories\TravelUserBookingFewoRepository;
|
||||
|
||||
class TravelUserBookingFewoController extends Controller
|
||||
{
|
||||
|
|
@ -147,8 +149,12 @@ class TravelUserBookingFewoController extends Controller
|
|||
if($data['action'] === 'sendInfosMailtoUser') {
|
||||
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
|
||||
if($travel_user_booking_fewo->travel_user_id && $travel_user_booking_fewo->travel_user->email){
|
||||
$mail_files = [];
|
||||
if(isset($data['info_mail_files'])){
|
||||
$mail_files = $this->setMailInfoFiles($data['info_mail_files'], $travel_user_booking_fewo);
|
||||
}
|
||||
$mail_bbc = config('mail.mail_bbc');
|
||||
Mail::to($travel_user_booking_fewo->travel_user->email)->bcc($mail_bbc)->send(new MailSendFeWoInfo($travel_user_booking_fewo));
|
||||
Mail::to($travel_user_booking_fewo->travel_user->email)->bcc($mail_bbc)->send(new MailSendFeWoInfo($travel_user_booking_fewo, $mail_files));
|
||||
$send_info_mail = $travel_user_booking_fewo->send_info_mail;
|
||||
$send_info_mail[] = [date('H:i d.m.Y') => $travel_user_booking_fewo->travel_user->email];
|
||||
$travel_user_booking_fewo->send_info_mail = $send_info_mail;
|
||||
|
|
@ -195,6 +201,51 @@ class TravelUserBookingFewoController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
private function setMailInfoFiles($info_mail_files, $travel_user_booking_fewo)
|
||||
{
|
||||
$files = [];
|
||||
$ret = [];
|
||||
//read files
|
||||
foreach($info_mail_files as $mail_file){
|
||||
if($mail_file === 'fewo_instruction_pdf'){
|
||||
$files[] = [
|
||||
'target' => route('customer_file_show', ['fewo_instruction_pdf', $travel_user_booking_fewo->fewo_lodging->id, 'stream']),
|
||||
'name' => \App\Services\BookingFewo::getFeWoInstructionPDFName($travel_user_booking_fewo->fewo_lodging)
|
||||
];
|
||||
}else{
|
||||
if($file = \App\Models\CMSContent::getModelBySlug($mail_file)){
|
||||
$files[] = [
|
||||
'target' => $file->getURL(),
|
||||
'name' => $file->name
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
//store files
|
||||
foreach($files as $file){
|
||||
$arrContextOptions=array(
|
||||
"ssl"=>array(
|
||||
"verify_peer"=>false,
|
||||
"verify_peer_name"=>false,
|
||||
),
|
||||
);
|
||||
$contents = file_get_contents($file['target'], false, stream_context_create($arrContextOptions));
|
||||
$mine = Util::getMimeFromHeader($http_response_header);
|
||||
$extension = Util::getExtensionFromMime($mine);
|
||||
$fileRepo = new CustomerFewoFileRepository(new CustomerFewoFile());
|
||||
$fileRepo->_set('disk', 'travel_user');
|
||||
$fileRepo->_set('dir', '/attachment/'.date('Y/m').'/');
|
||||
$fileRepo->_set('travel_user_id', $travel_user_booking_fewo->travel_user_id);
|
||||
$fileRepo->_set('customer_fewo_mail_id', NULL);
|
||||
$fileRepo->_set('identifier', 'fewo_info_mail_user');
|
||||
$fileRepo->_set('originalName', $file['name']);
|
||||
$fileRepo->_set('mine', $mine);
|
||||
$fileRepo->_set('extension', $extension);
|
||||
$ret[] = $fileRepo->storeReturnFile($contents);
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
public function getAjaxRequests(){
|
||||
|
||||
|
|
|
|||
|
|
@ -14,12 +14,15 @@ class MailSendFeWoInfo extends Mailable
|
|||
|
||||
protected $travel_user_booking_fewo;
|
||||
public $subject;
|
||||
public $files;
|
||||
|
||||
|
||||
public function __construct(TravelUserBookingFewo $travel_user_booking_fewo)
|
||||
public function __construct(TravelUserBookingFewo $travel_user_booking_fewo, $files = [])
|
||||
{
|
||||
$this->travel_user_booking_fewo = $travel_user_booking_fewo;
|
||||
$this->subject = __('STERN TOURS Anreiseinfo FEWO');
|
||||
$this->files = $files;
|
||||
|
||||
}
|
||||
|
||||
public function build()
|
||||
|
|
@ -40,18 +43,33 @@ class MailSendFeWoInfo extends Mailable
|
|||
'mine' => 'application/pdf',
|
||||
);
|
||||
|
||||
return $this->view('emails.info')
|
||||
$message = $this->view('emails.info')
|
||||
->with([
|
||||
'salutation' => $salutation,
|
||||
'copy1line' => $this->travel_user_booking_fewo->info_mail_text,
|
||||
'copy2line' => "",
|
||||
'greetings' => __('Best regards'),
|
||||
'model' => $this->travel_user_booking_fewo,
|
||||
])
|
||||
->attach($file1['path'], [
|
||||
'as' => $file1['name'],
|
||||
'mime' => $file1['mine'],
|
||||
])
|
||||
;
|
||||
]);
|
||||
$message->attach($file1['path'], [
|
||||
'as' => $file1['name'],
|
||||
'mime' => $file1['mine'],
|
||||
]);
|
||||
|
||||
foreach ($this->files as $file) {
|
||||
$message->attach($file->getPath(),[
|
||||
'as' => $file->original_name,
|
||||
'mime' => $file->mine,
|
||||
]); // attach each file
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//path = \Storage::disk('lead')->path($this->dir.$this->filename);
|
||||
//name =
|
||||
//'mine' => 'application/pdf',
|
||||
|
||||
|
|
|
|||
|
|
@ -222,6 +222,7 @@ class Booking extends Model
|
|||
//'airline_id' => 'int',
|
||||
'refund' => 'int',
|
||||
'xx_tkt' => 'int',
|
||||
'insurance_offer' => 'int',
|
||||
'is_rail_fly' => 'bool',
|
||||
'comfort' => 'bool',
|
||||
'airline_ids' => 'array',
|
||||
|
|
@ -277,6 +278,7 @@ class Booking extends Model
|
|||
'final_payment',
|
||||
'final_payment_date',
|
||||
'travelagenda_id',
|
||||
'insurance_offer',
|
||||
'paying_out',
|
||||
'paying_out_status',
|
||||
//'airline_id',
|
||||
|
|
@ -313,6 +315,12 @@ class Booking extends Model
|
|||
2 => 'erledigt',
|
||||
];
|
||||
|
||||
public static $insurance_offer_types = [
|
||||
0 => '-',
|
||||
1 => 'Nein, keine Reiseversicherung gewünscht',
|
||||
2 => 'Ja, ich wünsche ein Reiseversicherungsangebot'
|
||||
];
|
||||
|
||||
public static $paying_out_status_types = [
|
||||
0 => '-',
|
||||
1 => 'offen',
|
||||
|
|
@ -921,6 +929,10 @@ class Booking extends Model
|
|||
return isset(self::$paying_out_types[$this->paying_out]) ? self::$paying_out_types[$this->paying_out] : '-';
|
||||
}
|
||||
|
||||
public function getInsuranceOfferType(){
|
||||
return isset(self::$insurance_offer_types[$this->insurance_offer]) ? self::$insurance_offer_types[$this->insurance_offer] : '-';
|
||||
}
|
||||
|
||||
public function getPayingOutStatusType(){
|
||||
return isset(self::$paying_out_status_types[$this->paying_out_status]) ? self::$paying_out_status_types[$this->paying_out_status] : '-';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,19 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Cviebrock\EloquentSluggable\Sluggable;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* App\Models\Page
|
||||
*
|
||||
* Class Page
|
||||
*
|
||||
* @property int $id
|
||||
* @property int|null $owner
|
||||
* @property string|null $model
|
||||
|
|
@ -20,6 +27,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int|null $show_in_navi
|
||||
* @property int|null $order
|
||||
* @property string|null $title
|
||||
* @property string|null $title_short
|
||||
* @property string|null $before_title
|
||||
* @property string|null $pagetitle
|
||||
* @property string|null $description
|
||||
* @property string|null $keywords
|
||||
|
|
@ -29,8 +38,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int|null $OLD_CatalogID
|
||||
* @property int|null $OLD_OwnerID
|
||||
* @property int|null $buma_gjr
|
||||
* @property string|null $date
|
||||
* @property int $price-tags
|
||||
* @property Carbon $date
|
||||
* @property bool $price-tags
|
||||
* @property string|null $text_right
|
||||
* @property string|null $keyword
|
||||
* @property string|null $canonical_url
|
||||
|
|
@ -41,71 +50,169 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property int|null $tree_root
|
||||
* @property int|null $parent_id
|
||||
* @property string|null $real_url_path
|
||||
* @property int|null $travel_guide_content_id
|
||||
* @property string|null $box_body
|
||||
* @property string|null $box_image_url
|
||||
* @property string|null $box_star
|
||||
* @property string|null $box_discount
|
||||
* @property string|null $cms_settings
|
||||
* @property int|null $fewo_lodging
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBoxBody($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBoxDiscount($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBoxImageUrl($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBoxStar($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBumaDestination($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBumaGjr($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCanonicalUrl($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCatalogId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCatalogIndex($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCmsSettings($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereContent($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereContentNew($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereDate($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereDescription($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereFewoLodging($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereKeyword($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereKeywords($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereLft($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereLvl($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereModel($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereOLDCatalogID($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereOLDOwnerID($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereOrder($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereOwner($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereOwnerSecond($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page wherePagetitle($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereParentId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page wherePriceTags($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereRealUrlPath($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereRgt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereShowInNavi($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereSlug($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereStatus($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTemplate($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTextRight($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTitle($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTravelProgram($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTreeRoot($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property int|null $travel_guide_content_id
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTravelGuideContentId($value)
|
||||
* @property string|null $title_short
|
||||
* @property string|null $before_title
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereBeforeTitle($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTitleShort($value)
|
||||
* @property Carbon|null $created_at
|
||||
* @property Carbon|null $updated_at
|
||||
*
|
||||
* @property Page|null $page
|
||||
* @property TravelCountry|null $travel_country
|
||||
* @property TravelGuide|null $travel_guide
|
||||
* @property Collection|Page[] $pages
|
||||
* @property Collection|Redirect[] $redirects
|
||||
* @property Collection|TravelCountry[] $travel_countries
|
||||
* @property Collection|TravelProgram[] $travel_program_content
|
||||
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class Page extends Model
|
||||
{
|
||||
protected $connection = 'mysql_stern';
|
||||
use Sluggable;
|
||||
|
||||
protected $table = 'page';
|
||||
protected $connection = 'mysql_stern';
|
||||
protected $table = 'page';
|
||||
|
||||
|
||||
protected $casts = [
|
||||
'owner' => 'int',
|
||||
'lvl' => 'int',
|
||||
'owner_second' => 'int',
|
||||
'catalog_id' => 'int',
|
||||
'catalog_index' => 'int',
|
||||
'travel_program' => 'int',
|
||||
'status' => 'int',
|
||||
'show_in_navi' => 'int',
|
||||
'order' => 'int',
|
||||
'OLD_CatalogID' => 'int',
|
||||
'OLD_OwnerID' => 'int',
|
||||
'buma_gjr' => 'int',
|
||||
'price-tags' => 'bool',
|
||||
'country_id' => 'int',
|
||||
'lft' => 'int',
|
||||
'rgt' => 'int',
|
||||
'tree_root' => 'int',
|
||||
'parent_id' => 'int',
|
||||
'travel_guide_content_id' => 'int',
|
||||
'fewo_lodging' => 'int'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'date'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'owner',
|
||||
'model',
|
||||
'lvl',
|
||||
'owner_second',
|
||||
'catalog_id',
|
||||
'catalog_index',
|
||||
'slug',
|
||||
'travel_program',
|
||||
'status',
|
||||
'show_in_navi',
|
||||
'order',
|
||||
'title',
|
||||
'title_short',
|
||||
'before_title',
|
||||
'pagetitle',
|
||||
'description',
|
||||
'keywords',
|
||||
'content',
|
||||
'content_new',
|
||||
'buma_destination',
|
||||
'OLD_CatalogID',
|
||||
'OLD_OwnerID',
|
||||
'buma_gjr',
|
||||
'date',
|
||||
'price-tags',
|
||||
'text_right',
|
||||
'keyword',
|
||||
'canonical_url',
|
||||
'country_id',
|
||||
'template',
|
||||
'lft',
|
||||
'rgt',
|
||||
'tree_root',
|
||||
'parent_id',
|
||||
'real_url_path',
|
||||
'travel_guide_content_id',
|
||||
'box_body',
|
||||
'box_image_url',
|
||||
'box_star',
|
||||
'box_discount',
|
||||
'cms_settings',
|
||||
'fewo_lodging'
|
||||
];
|
||||
|
||||
public function sluggable()
|
||||
{
|
||||
return [
|
||||
'slug' => [
|
||||
'source' => 'title'
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
public function page()
|
||||
{
|
||||
return $this->belongsTo(Page::class, 'tree_root');
|
||||
}
|
||||
|
||||
public function fewo_lodging()
|
||||
{
|
||||
return $this->belongsTo(FewoLodging::class, 'fewo_lodging');
|
||||
}
|
||||
|
||||
public function travel_country()
|
||||
{
|
||||
return $this->belongsTo(TravelCountry::class, 'country_id');
|
||||
}
|
||||
|
||||
public function travel_guide()
|
||||
{
|
||||
return $this->belongsTo(TravelGuide::class, 'travel_guide_content_id');
|
||||
}
|
||||
|
||||
public function pages()
|
||||
{
|
||||
return $this->hasMany(Page::class, 'tree_root');
|
||||
}
|
||||
|
||||
public function redirects()
|
||||
{
|
||||
return $this->hasMany(Redirect::class);
|
||||
}
|
||||
|
||||
public function travel_countries()
|
||||
{
|
||||
return $this->hasMany(TravelCountry::class, 'feedback_page_id');
|
||||
}
|
||||
|
||||
public function child_pages()
|
||||
{
|
||||
return $this->hasMany(Page::class, 'owner');
|
||||
}
|
||||
|
||||
public function parent_page()
|
||||
{
|
||||
return $this->belongsTo(Page::class, 'parent_id');
|
||||
}
|
||||
|
||||
public function travel_program_content()
|
||||
{
|
||||
return $this->belongsTo(TravelProgram::class, 'travel_program');
|
||||
}
|
||||
|
||||
|
||||
public function getContentNew()
|
||||
{
|
||||
return $this->content_new ? $this->content_new : $this->content;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,4 +52,8 @@ class CustomerFewoFileRepository extends FileRepository {
|
|||
], 200);
|
||||
}
|
||||
|
||||
public function returnFile(){
|
||||
return $this->customer_file;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -77,6 +77,15 @@ class FileRepository extends BaseRepository {
|
|||
return $this->response();
|
||||
}
|
||||
|
||||
public function storeReturnFile( $content )
|
||||
{
|
||||
$this->makeFilename();
|
||||
$this->store($content);
|
||||
$this->size = Storage::disk($this->disk)->size($this->dir.$this->allowed_filename);
|
||||
$this->save();
|
||||
return $this->returnFile();
|
||||
}
|
||||
|
||||
public function store($content){
|
||||
if(!Storage::disk($this->disk)->exists( $this->dir )){
|
||||
Storage::disk($this->disk)->makeDirectory($this->dir); //creates directory
|
||||
|
|
@ -88,6 +97,11 @@ class FileRepository extends BaseRepository {
|
|||
|
||||
}
|
||||
|
||||
public function returnFile(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function response(){
|
||||
return Response::json([
|
||||
'error' => false,
|
||||
|
|
|
|||
|
|
@ -249,11 +249,21 @@ class TravelUserBookingFewoRepository extends BaseRepository {
|
|||
if ($model->is_calendar_stern_tours) {
|
||||
$model->fewo_reservation->from_date = $model->getFromDateRaw();
|
||||
$model->fewo_reservation->to_date = $model->getToDateRaw();
|
||||
$model->fewo_reservation->save();
|
||||
|
||||
} else {
|
||||
$model->fewo_reservation->from_date = null;
|
||||
$model->fewo_reservation->to_date = null;
|
||||
$FewoReservation = FewoReservation::find($model->fewo_reservation_id);
|
||||
$model->fewo_reservation_id = NULL;
|
||||
$model->save();
|
||||
$FewoReservation->delete();
|
||||
|
||||
$FewoReservations = FewoReservation::where('lodging_id', $model->fewo_lodging_id)->where('from_date', $model->getFromDateRaw())->where('to_date', $model->getToDateRaw())->get();
|
||||
foreach ($FewoReservations as $FewoReservation) {
|
||||
$FewoReservation->delete();
|
||||
}
|
||||
// $model->fewo_reservation->from_date = null;
|
||||
// $model->fewo_reservation->to_date = null;
|
||||
}
|
||||
$model->fewo_reservation->save();
|
||||
} else {
|
||||
if ($model->is_calendar_stern_tours) {
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ class BookingImport
|
|||
'travel_category_id' => isset($travel_booking->selected_travel['travel_category_id']) ? $travel_booking->selected_travel['travel_category_id'] : null,
|
||||
'travelagenda_id' => isset($travel_booking->selected_travel['travelagenda_id']) ? $travel_booking->selected_travel['travelagenda_id'] : null,
|
||||
'travel_company_id' => isset($travel_booking->selected_travel['travel_company_id']) ? $travel_booking->selected_travel['travel_company_id'] : 4,
|
||||
'insurance_offer' => $travel_booking->insurance_offer,
|
||||
];
|
||||
|
||||
//createBooking
|
||||
|
|
|
|||
|
|
@ -16,10 +16,11 @@ use App\Models\TravelNationality;
|
|||
use App\Models\Sym\TravelCountry as SymTravelCountry;
|
||||
use App\Models\TravelArrivalPoint;
|
||||
use App\Models\TravelGerneralNote;
|
||||
use App\Models\TravelProgram;
|
||||
|
||||
class Model
|
||||
{
|
||||
|
||||
|
||||
public static function getSfGuardUserArray(){
|
||||
return SfGuardUser::where('is_active', 1)->get()->pluck('fullname', 'id');
|
||||
}
|
||||
|
|
@ -34,6 +35,11 @@ class Model
|
|||
return $emtpy ? $TravelCountry->prepend('-', 0) : $TravelCountry;
|
||||
}
|
||||
|
||||
public static function getTravelProgramArray($emtpy = false){
|
||||
$TravelProgram = TravelProgram::where('status', 1)->orderBy('title')->get()->pluck('title', 'id');
|
||||
return $emtpy ? $TravelProgram->prepend('-', 0) : $TravelProgram;
|
||||
}
|
||||
|
||||
public static function getTravelCategoryArray($emtpy = false){
|
||||
$TravelCategory = TravelCategory::where('active', true)->orderBy('name')->get()->pluck('name', 'id');
|
||||
return $emtpy ? $TravelCategory->prepend('-', 0) : $TravelCategory;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ return [
|
|||
'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-tp-tc' => ['name' => 'ADMIN CRM > Reiseprogramme > Inhalte' , 'color' => 'admin'],
|
||||
'crm-bo' => ['name' => 'ADMIN CRM > Buchungen' , 'color' => 'admin'],
|
||||
'crm-bo-re' => ['name' => 'ADMIN CRM > Buchungen > Übersicht' , 'color' => 'admin'],
|
||||
'crm-bo-bo' => ['name' => 'ADMIN CRM > Buchungen > Buchungen' , 'color' => 'admin'],
|
||||
|
|
|
|||
|
|
@ -93,6 +93,12 @@
|
|||
{{ Form::select('travel_company_id', \App\Services\Model::getTravelCompanyArray(false) , $booking->travel_company_id, array('class'=>'custom-select', 'id'=>'travel_company_id')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-12 col-md-12">
|
||||
<label class="form-label" for="travel_company_id">{{ __('Reiseversicherung') }}</label><br>
|
||||
{{ $booking->getInsuranceOfferType() }}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-12">
|
||||
<h5 class="card-title mt-3 mb-1">Status</h5>
|
||||
<hr class="mt-0">
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row show-field-name">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">{{ __('Name') }}</label>
|
||||
|
|
@ -98,6 +97,20 @@
|
|||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
</div>
|
||||
@if($value->identifier === 'fewo-email-file')
|
||||
<div class="form-row g">
|
||||
<div class="form-group col-sm-10">
|
||||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||||
{!! Form::checkbox('default_travel_info', 1, $value->integer, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">
|
||||
Als default E-Mail-Anhang bei der Anreiseinfo
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Vorlage verwalten
|
||||
Vorlage Reiseprogramme verwalten
|
||||
<span class="float-right">
|
||||
<button class="btn btn-sm btn-warning" data-toggle="modal" data-target="#exampleNotice"><i class="fa">?</i> </button>
|
||||
</span>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Vorlagen
|
||||
Vorlagen Reiseprogramme
|
||||
</h4>
|
||||
<div class="nav-tabs-top mb-4">
|
||||
<ul class="nav nav-tabs">
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<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/*', 'drafts', 'draft/*']) ? ' open' : '' }}">
|
||||
<li class="sidenav-item{{ Request::is(['travel/*', 'drafts', 'draft/*', 'travel_content', 'travel_content/*']) ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-airplane"></i>
|
||||
<div>Reiseprogramme</div>
|
||||
|
|
@ -39,6 +39,11 @@
|
|||
<a href="{{ route('drafts') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>Vorlagen</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('crm-tp-tc'))
|
||||
<li class="sidenav-item{{ Request::is(['travel_content', 'travel_content/*']) ? ' active' : '' }}">
|
||||
<a href="{{ route('travel_content') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-map"></i><div>Inhalte</div></a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<th>{{__('Nachname')}}</th>
|
||||
<th>{{__('E-Mail')}}</th>
|
||||
<th>{{__('Anfrage-Datum')}}</th>
|
||||
<th>{{__('Reiseland')}}</th>
|
||||
<th>{{__('N.')}}</th>
|
||||
<th>{{__('Sachbearbeiter')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
|
|
@ -45,13 +46,12 @@
|
|||
{ data: 'customer.name', name: 'customer.name' },
|
||||
{ data: 'customer.email', name: 'customer.email' },
|
||||
{ data: 'request_date', name: 'request_date' },
|
||||
{ data: 'travel_country', name: 'travel_country', orderable: false },
|
||||
{ data: 'lead_notice', name: 'lead_notice', orderable: false },
|
||||
{ data: 'sf_guard_user.last_name', name: 'sf_guard_user.last_name', searchable: false },
|
||||
{ data: 'status', name: 'status' },
|
||||
{ data: 'last_lead_email', name: 'last_lead_email', orderable: true },
|
||||
{ data: 'action_delete', orderable: false, searchable: false},
|
||||
|
||||
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
|
|
|
|||
|
|
@ -517,6 +517,7 @@
|
|||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Slug')}}</th>
|
||||
<th>{{__('Inhalt')}}</th>
|
||||
<th>{{__('Anreiseinfo')}}</th>
|
||||
<th>{{__('Type')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
|
@ -539,6 +540,7 @@
|
|||
<td>{{ $value->name }}</td>
|
||||
<td>{{ $value->slug }}</td>
|
||||
<td>@if($value->isFile()) {!! $value->getPreviewContent() !!} @else {{ $value->getPreviewContent() }} @endif</td>
|
||||
<td>{!! get_active_badge($value->integer) !!} default</td>
|
||||
<td>{{ $value->getFieldName() }}</td>
|
||||
<td><a class="text-danger" href="{{ route('cms_content_all_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
</tr>
|
||||
|
|
|
|||
156
resources/views/travel/content/detail.blade.php
Normal file
156
resources/views/travel/content/detail.blade.php
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
{!! Form::open(['url' => route('travel_content_detail', [$id]), 'class' => 'form-horizontal']) !!}
|
||||
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Inhalte Reiseprogramme
|
||||
<div class="float-right">
|
||||
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>
|
||||
<a href="{{route('travel_content')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
|
||||
</div>
|
||||
</h4>
|
||||
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h4>Reiseübersicht</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="title">Titel | Navigationsleiste*</label>
|
||||
{{ Form::text('title', $model->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="title_short">Title Short | Navigation *</label>
|
||||
{{ Form::text('title_short', $model->title_short, array('placeholder'=>__('Title Short'), 'class'=>'form-control', 'id'=>'title_short', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="pagetitle">Page Title | Überschrift Reiseboxen *</label>
|
||||
{{ Form::text('pagetitle', $model->pagetitle, array('placeholder'=>__('Title Short'), 'class'=>'form-control', 'id'=>'pagetitle', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="slug">URL der Seite | Unique</label>
|
||||
{{ Form::text('slug', $model->slug, array('placeholder'=>__('URL der Seite'), 'class'=>'form-control', 'id'=>'slug')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="description">Beschreibung | Metatag Suchmaschine</span></label>
|
||||
{{ Form::textarea('description', $model->description, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="content_new">Inhalt | unter den Reiseboxen</span></label>
|
||||
{{ Form::textarea('content_new', $model->getContentNew(), array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('status', 0) }}
|
||||
{{ Form::checkbox('status', 1, $model->status, 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 class="form-group col-sm-6 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('show_in_navi', 0) }}
|
||||
{{ Form::checkbox('show_in_navi', 1, $model->show_in_navi, array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label">sichbar in der Navigation</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</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('travel_content')}}" class="btn btn-default">{{ __('back') }}</a> </div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
<div class="card mt-3">
|
||||
<h4 class="mt-4 mb-2 ml-4">Unterseiten für Reiseübersicht {{ $model->title }}</h4>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-child_pages table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th>{{__('Title')}}</th>
|
||||
<th>{{__('Pagetitle')}}</th>
|
||||
<th>{{__('Programm')}}</th>
|
||||
<th>{{__('Pos')}}</th>
|
||||
<th>{{__('sichtbar')}}</th>
|
||||
<th>{{__('sichtbar in navi')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($model->child_pages as $child_page)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('travel_content_sub_detail', [$child_page->id]) }}" class="btn icon-btn btn-sm btn-primary">
|
||||
<span class="fa fa-edit"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td><a href="{{ route('travel_content_sub_detail', [$child_page->id]) }}">{{ $child_page->title }}</a></td>
|
||||
<td><a href="{{ route('travel_content_sub_detail', [$child_page->id]) }}">{{ $child_page->pagetitle }}</a></td>
|
||||
@if($child_page->travel_program_content)
|
||||
<td><a href="{{ route('travel_program_detail', [$child_page->travel_program_content->id]) }}">{{ $child_page->travel_program_content->title }}</a></td>
|
||||
@else
|
||||
<td>-</td>
|
||||
@endif
|
||||
<td><a href="{{ route('travel_content_sub_detail', [$child_page->id]) }}">{{ $child_page->order }}</a></td>
|
||||
|
||||
<td data-sort="{{ $child_page->status }}">
|
||||
{!! get_active_badge($child_page->status) !!}
|
||||
</td>
|
||||
<td data-sort="{{ $child_page->show_in_navi }}">
|
||||
{!! get_active_badge($child_page->show_in_navi) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 col">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
|
||||
data-target="#modals-load-content"
|
||||
data-id="{{ $model->id }}"
|
||||
data-model="Page"
|
||||
data-action="modal-copy-page"
|
||||
data-url=""
|
||||
data-redirect="back"
|
||||
data-route="{{ route('travel_content_load') }}"> Neue Unterseite kopieren/anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('.datatables-child_pages').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 5, "desc" ],[ 4, "asc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
216
resources/views/travel/content/index.blade.php
Executable file
216
resources/views/travel/content/index.blade.php
Executable file
|
|
@ -0,0 +1,216 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Inhalte Reiseprogramme
|
||||
</h4>
|
||||
<div class="nav-tabs-top mb-4">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if(!$step) active show @endif" data-toggle="tab" href="#navs-top-content_overview">Reiseübersichten</a>
|
||||
</li>
|
||||
{{-- <li class="nav-item">
|
||||
<a class="nav-link @if($step === 'type') active show @endif" data-toggle="tab" href="#navs-top-draft_types">Typen</a>
|
||||
</li>
|
||||
--}}
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade @if(!$step) active show @endif" id="navs-top-content_overview">
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-drafts table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th>{{__('Title')}}</th>
|
||||
<th>{{__('Pagetitle')}}</th>
|
||||
<th>{{__('sichtbar')}}</th>
|
||||
<th>{{__('sichtbar in navi')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($travelProgramOverviews as $value)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('travel_content_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
|
||||
<span class="fa fa-edit"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td><a href="{{ route('travel_content_detail', [$value->id]) }}">{{ $value->title }}</a></td>
|
||||
<td><a href="{{ route('travel_content_detail', [$value->id]) }}">{{ $value->pagetitle }}</a></td>
|
||||
<td data-sort="{{ $value->status }}">
|
||||
{!! get_active_badge($value->status) !!}
|
||||
</td>
|
||||
<td data-sort="{{ $value->show_in_navi }}">
|
||||
{!! get_active_badge($value->show_in_navi) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('.datatables-drafts').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- <div class="tab-pane fade @if($step === 'type') active show @endif" id="navs-top-draft_types">
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-types table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('POS')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Farbe')}}</th>
|
||||
<th>{{__('sichtbar')}}</th>
|
||||
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($draft_types as $value)
|
||||
<tr>
|
||||
<td>
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
|
||||
data-id="{{ $value->id }}"
|
||||
data-name="{{ $value->name }}"
|
||||
data-color="{{ $value->color }}"
|
||||
data-active="{{ $value->active }}"
|
||||
data-pos="{{ $value->pos }}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $value->pos }}</td>
|
||||
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>@if($value->color)
|
||||
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: {{$value->color}}"></div>
|
||||
{{ $value->color }}
|
||||
@else
|
||||
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: #fff"></div>
|
||||
@endif
|
||||
</td>
|
||||
<td data-sort="{{ $value->active }}">
|
||||
@if($value->active)
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
|
||||
@else
|
||||
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
|
||||
@endif
|
||||
</td>
|
||||
<td><a class="text-danger" href="{{ route('draft_type_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
|
||||
data-id="new"
|
||||
data-name=""
|
||||
data-active="1"
|
||||
data-pos="0"
|
||||
>Neuen Typ anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modals-type">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('draft_type_update') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" class="form-control" name="id">
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Vorlagen-Typ <span class="font-weight-light">anlegen/bearbeiten</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="name" class="form-label">Name*</label>
|
||||
<input type="text" class="form-control" name="name" placeholder="{{__('Description')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="pos" class="form-label">POS*</label>
|
||||
<input type="text" class="form-control" name="pos" placeholder="{{__('Position')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">Farbe*</label>
|
||||
<input type="text" name="color" id="minicolors-hue" class="form-control" value="#fff">
|
||||
</div>
|
||||
</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">{{__('sichtbar')}}</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>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('#minicolors-hue').minicolors({
|
||||
control: 'hue',
|
||||
position: 'bottom ' + 'left',
|
||||
});
|
||||
|
||||
$('#modals-type').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='name']").val(button.data('name'));
|
||||
$(this).find(".modal-body input[name='pos']").val(button.data('pos'));
|
||||
color = '#fff';
|
||||
if(button.data('color') != ""){
|
||||
color = button.data('color');
|
||||
}
|
||||
$('#minicolors-hue').minicolors('value', color);
|
||||
|
||||
// $('.selectpicker').selectpicker('refresh');
|
||||
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
|
||||
});
|
||||
|
||||
$('.datatables-types').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
--}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@endsection
|
||||
30
resources/views/travel/content/modal_copy.blade.php
Normal file
30
resources/views/travel/content/modal_copy.blade.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{!! Form::open([ 'url' => route('travel_content_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
|
||||
{{ Form::hidden('action', 'page-copy') }}
|
||||
{{ Form::hidden('step', false) }}
|
||||
{{ Form::hidden('id', $value->id) }}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Neue Unterseite <span class="font-weight-light">kopieren/anlegen</span></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="page_copy_id">kopieren aus Unterseite</label>
|
||||
<select class="custom-select" name="page_copy_id" id="page_copy_id">
|
||||
@foreach($value->child_pages as $child_page)
|
||||
<option value="{{$child_page->id}}">{{$child_page->title}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary submit-button-form">{{__('save')}}</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
139
resources/views/travel/content/sub_detail.blade.php
Normal file
139
resources/views/travel/content/sub_detail.blade.php
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
{!! Form::open(['url' => route('travel_content_sub_detail', [$id]), 'class' => 'form-horizontal']) !!}
|
||||
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Inhalte Reiseprogramme
|
||||
<div class="float-right">
|
||||
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>
|
||||
<a href="{{route('travel_content')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
|
||||
</div>
|
||||
</h4>
|
||||
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h4>Reiseübersicht</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="title">Titel | Reisebox, Navigationsleiste*</label>
|
||||
{{ Form::text('title', $model->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="pagetitle">Page Title | Überschrift Reiseprogramm *</label>
|
||||
{{ Form::text('pagetitle', $model->pagetitle, array('placeholder'=>__('Title Short'), 'class'=>'form-control', 'id'=>'pagetitle', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="slug">URL der Seite | Unique</label>
|
||||
{{ Form::text('slug', $model->slug, array('placeholder'=>__('URL der Seite'), 'class'=>'form-control', 'id'=>'slug')) }}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label for="travel_program" class="form-label">{{ __('Reiseprogramm') }} <a href="{{ route('travel_programs') }}"><i class="fa fa-edit"></i></a></label>
|
||||
{{ Form::select('travel_program', \App\Services\Model::getTravelProgramArray(true) , $model->travel_program, array('class'=>'selectpicker', 'data-style'=>'btn-default', 'data-live-search'=>'true', 'id'=>'travel_program')) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="description">Beschreibung | Reisebox</span></label>
|
||||
{{ Form::textarea('description', $model->description, array('class'=>'form-control autoExpand', 'rows'=>2)) }}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-4 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('status', 0) }}
|
||||
{{ Form::checkbox('status', 1, $model->status, 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 class="form-group col-sm-4 pt-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('show_in_navi', 0) }}
|
||||
{{ Form::checkbox('show_in_navi', 1, $model->show_in_navi, array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label">sichbar in der Navigation</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="order">Pos | Sortierung der Reiseboxen </label>
|
||||
{{ Form::text('order', $model->order, array('placeholder'=>__('pos'), 'class'=>'form-control', 'id'=>'order')) }}
|
||||
</div>
|
||||
</div>
|
||||
</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('travel_content')}}" class="btn btn-default">{{ __('back') }}</a> </div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
<div class="card mt-3">
|
||||
<h4 class="mt-4 mb-2 ml-4">Übersichtseite für {{ $model->title }}</h4>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-parent_page table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th>{{__('Title')}}</th>
|
||||
<th>{{__('Pagetitle')}}</th>
|
||||
<th>{{__('sichtbar')}}</th>
|
||||
<th>{{__('sichtbar in navi')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if($model->parent_page)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('travel_content_detail', [$model->parent_page->id]) }}" class="btn icon-btn btn-sm btn-primary">
|
||||
<span class="fa fa-edit"></span>
|
||||
</a>
|
||||
</td>
|
||||
<td><a href="{{ route('travel_content_detail', [$model->parent_page->id]) }}">{{ $model->parent_page->title }}</a></td>
|
||||
<td><a href="{{ route('travel_content_detail', [$model->parent_page->id]) }}">{{ $model->parent_page->pagetitle }}</a></td>
|
||||
|
||||
<td data-sort="{{ $model->parent_page->status }}">
|
||||
{!! get_active_badge($model->parent_page->status) !!}
|
||||
</td>
|
||||
<td data-sort="{{ $model->parent_page->show_in_navi }}">
|
||||
{!! get_active_badge($model->parent_page->show_in_navi) !!}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('.datatables-parent_page').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 3, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -91,6 +91,38 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@php($info_mail_files_count = 1)
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12 mb-1">
|
||||
<label for="to" class="form-label">Ausgawählte Daten als Anhang an die E-Mail:</label>
|
||||
|
||||
@if($travel_user_booking_fewo->fewo_lodging)
|
||||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||||
{!! Form::checkbox('info_mail_files['.$info_mail_files_count++.']', 'fewo_instruction_pdf', 1, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">
|
||||
<a target="_blank" href="{{ route('customer_file_show', ['fewo_instruction_pdf', $travel_user_booking_fewo->fewo_lodging->id, 'stream']) }}" class="badge badge-sm badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{\App\Services\BookingFewo::getFeWoInstructionPDFName($travel_user_booking_fewo->fewo_lodging)}}
|
||||
</a>
|
||||
</span>
|
||||
</label>
|
||||
@endif
|
||||
|
||||
@foreach(\App\Services\BookingFewo::contentFiles() as $content_file)
|
||||
@if($file = \App\Models\CMSContent::getModelBySlug($content_file))
|
||||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||||
{!! Form::checkbox('info_mail_files['.$info_mail_files_count++.']', $content_file, $file->integer, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">
|
||||
<a target="_blank" href="{{ $file->getURL() }}" class="badge badge-sm badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{$file->name}}
|
||||
</a>
|
||||
</span>
|
||||
</label>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@if($travel_user_booking_fewo->send_info_mail)
|
||||
<table class="table table-striped border-bottom">
|
||||
<tbody>
|
||||
|
|
@ -103,6 +135,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<div class="text-right mt-0">
|
||||
<button type="submit" name="action" value="sendInfosMailtoUser" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Mail an Mieter versenden?')}}');">{{ __('E-Mail mit Anreiseinfo an Kunden versenden') }}</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -165,6 +165,36 @@ Route::group(['middleware' => ['admin', '2fa']], function()
|
|||
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-tc']], function() {
|
||||
//Reiseprogramme Vorlagen
|
||||
Route::get('/travel_content/{step?}', 'TravelContentController@index')->name('travel_content');
|
||||
|
||||
Route::get('/travel_content/detail/{id}', 'TravelContentController@detail')->name('travel_content_detail');
|
||||
Route::post('/travel_content/detail/{id}', 'TravelContentController@store')->name('travel_content_detail');
|
||||
|
||||
|
||||
Route::get('/travel_content/sub_detail/{id}', 'TravelContentController@subDetail')->name('travel_content_sub_detail');
|
||||
Route::post('/travel_content/sub_detail/{id}', 'TravelContentController@subStore')->name('travel_content_sub_detail');
|
||||
|
||||
Route::post('/travel_content/load', 'TravelContentController@load')->name('travel_content_load');
|
||||
Route::post('/travel_content/update', 'TravelContentController@update')->name('travel_content_update');
|
||||
|
||||
/*Route::get('/draft/item/delete/{id}', 'DraftController@itemDelete')->name('draft_item_delete');
|
||||
Route::get('/draft/delete/{id}', 'DraftController@delete')->name('draft_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::get('/draft/load/new', 'DraftController@loadNew')->name('draft_load_new');
|
||||
Route::post('/draft/load/new', 'DraftController@loadNewAction')->name('draft_load_new');
|
||||
|
||||
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-bo-re']], function() {
|
||||
//Buchungen > Anfragen
|
||||
Route::get('/requests/{step?}', 'RequestController@index')->name('requests');
|
||||
|
|
|
|||
BIN
storage/app/fewo/infos/2022/Anreiseinfo-2356865.pdf
Normal file
BIN
storage/app/fewo/infos/2022/Anreiseinfo-2356865.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue