diff --git a/.env b/.env index a5f8576..9928224 100755 --- a/.env +++ b/.env @@ -6,7 +6,7 @@ APP_URL=https://mein.sterntours.test APP_OLD_URL=https://cms-stern-tours.test #APP_URL_V2=https://v2.stern-tours.de -APP_URL_V2=https://v2-sterntours.test +APP_URL_V2=https://v2.sterntours.test #APP_URL_STERN=https://www.sterntours.de APP_URL_STERN=https://sterntours.test diff --git a/app/Http/Controllers/CustomerFileController.php b/app/Http/Controllers/CustomerFileController.php index fc5172b..e7af18c 100755 --- a/app/Http/Controllers/CustomerFileController.php +++ b/app/Http/Controllers/CustomerFileController.php @@ -3,24 +3,25 @@ namespace App\Http\Controllers; -use App\Models\BookingApplication; -use App\Models\BookingConfirmation; -use App\Models\BookingStorno; -use App\Models\BookingVoucher; -use App\Models\Coupon; -use App\Models\FewoLodging; -use App\Models\InsuranceCertificate; -use App\Models\TravelInsurance; -use App\Repositories\CustomerFileRepository; -use App\Services\BookingFewo; -use App\Services\CreateCouponPDF; -use App\Services\CreatePDF; -use App\Services\Util; use Carbon; -use Illuminate\Database\Eloquent\Collection; -use Illuminate\Support\Facades\URL; use Request; use Response; +use App\Models\Coupon; +use App\Services\Util; +use App\Models\FewoLodging; +use App\Services\CreatePDF; +use App\Models\BookingStorno; +use App\Services\BookingFewo; +use App\Models\BookingVoucher; +use App\Models\TravelInsurance; +use App\Services\CreateCouponPDF; +use App\Models\BookingApplication; +use App\Models\BookingConfirmation; +use Illuminate\Support\Facades\URL; +use App\Models\BookingVoucherAgency; +use App\Models\InsuranceCertificate; +use App\Repositories\CustomerFileRepository; +use Illuminate\Database\Eloquent\Collection; class CustomerFileController extends Controller { @@ -75,9 +76,16 @@ class CustomerFileController extends Controller } break; case 'booking_voucher': - if($booking_vouchers = BookingVoucher::find($id)){ - $filename = "Voucher-".$booking_vouchers->booking->getBookingNumber().".pdf"; - $file = base64_decode($booking_vouchers->binary_data); + if($booking_voucher = BookingVoucher::find($id)){ + $filename = "Voucher-".$booking_voucher->booking->getBookingNumber().".pdf"; + $file = base64_decode($booking_voucher->binary_data); + } + break; + + case 'booking_voucher_agency': + if($booking_voucher_agency = BookingVoucherAgency::find($id)){ + $filename = "Voucher-Agentur-".$booking_voucher_agency->booking->getBookingNumber().".pdf"; + $file = base64_decode($booking_voucher_agency->binary_data); } break; case 'insurance_certificate': diff --git a/app/Http/Controllers/Settings/TravelAgendaController.php b/app/Http/Controllers/Settings/TravelAgendaController.php index 8794e04..27e4e5d 100755 --- a/app/Http/Controllers/Settings/TravelAgendaController.php +++ b/app/Http/Controllers/Settings/TravelAgendaController.php @@ -48,8 +48,8 @@ class TravelAgendaController extends Controller public function delete($id){ - if(Booking::where('travelagenda_id', $id)->count()){ - \Session()->flash('alert-error', 'Eintrag wird verwendet'); + if(Booking::where('travelagenda_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird bei Buchnungen verwendet'); return redirect()->back(); } diff --git a/app/Http/Controllers/Settings/TravelArrivalPointController.php b/app/Http/Controllers/Settings/TravelArrivalPointController.php new file mode 100644 index 0000000..2982acf --- /dev/null +++ b/app/Http/Controllers/Settings/TravelArrivalPointController.php @@ -0,0 +1,62 @@ +middleware(['superadmin', '2fa']); + } + + public function index($step = false) + { + $data = [ + 'travel_arrival_point' => TravelArrivalPoint::all(), + ]; + return view('settings.travel_arrival_point.index', $data); + } + + + public function update(){ + + $data = Request::all(); + if($data['id'] === "new"){ + $model = TravelArrivalPoint::create([ + 'name' => $data['name'], + 'active' => isset($data['active']) ? true : false, + 'travel_country_id' => $data['travel_country_id'], + + ]); + }else{ + $model = TravelArrivalPoint::find($data['id']); + $model->name = $data['name']; + $model->active = isset($data['active']) ? true : false; + $model->travel_country_id = $data['travel_country_id']; + $model->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_settings_travel_arrival_point')); + } + + public function delete($id){ + + $model = TravelArrivalPoint::findOrFail($id); + if($model->travel_programs->count() > 0){ + \Session()->flash('alert-error', 'Eintrag wird bei Reiseprogrammen verwendet'); + return redirect()->back(); + } + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect()->back(); + } + +} + + diff --git a/app/Http/Controllers/Settings/TravelCategoryController.php b/app/Http/Controllers/Settings/TravelCategoryController.php new file mode 100644 index 0000000..e7b27b9 --- /dev/null +++ b/app/Http/Controllers/Settings/TravelCategoryController.php @@ -0,0 +1,67 @@ +middleware(['superadmin', '2fa']); + } + + public function index($step = false) + { + $data = [ + 'travel_category' => TravelCategory::all(), + ]; + return view('settings.travel_category.index', $data); + } + + + public function update(){ + + $data = Request::all(); + if($data['id'] === "new"){ + $model = TravelCategory::create([ + 'name' => $data['name'], + 'active' => isset($data['active']) ? true : false + + ]); + }else{ + $model = TravelCategory::find($data['id']); + $model->name = $data['name']; + $model->active = isset($data['active']) ? true : false; + $model->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_settings_travel_category')); + } + + public function delete($id){ + + $model = TravelCategory::findOrFail($id); + if($model->bookings->count() > 0){ + \Session()->flash('alert-error', 'Eintrag wird bei Buchnungen verwendet'); + return redirect()->back(); + } + if($model->travel_programs->count() > 0){ + \Session()->flash('alert-error', 'Eintrag wird bei Programmen verwendet'); + return redirect()->back(); + } + if($model->leads->count() > 0){ + \Session()->flash('alert-error', 'Eintrag wird bei Anfragen verwendet'); + return redirect()->back(); + } + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect()->back(); + } + +} + + diff --git a/app/Http/Controllers/Settings/TravelGerneralNotesController.php b/app/Http/Controllers/Settings/TravelGerneralNotesController.php new file mode 100644 index 0000000..304b4b0 --- /dev/null +++ b/app/Http/Controllers/Settings/TravelGerneralNotesController.php @@ -0,0 +1,56 @@ +middleware(['superadmin', '2fa']); + } + + public function index($step = false) + { + $data = [ + 'gerneral_notes' => TravelGerneralNote::all(), + ]; + return view('settings.gerneral_notes.index', $data); + } + + public function update(){ + $data = Request::all(); + if($data['id'] === "new"){ + $model = TravelGerneralNote::create([ + 'name' => $data['name'], + 'text' => $data['text'] + ]); + }else{ + $model = TravelGerneralNote::find($data['id']); + $model->name = $data['name']; + $model->text = $data['text']; + $model->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_settings_gerneral_notes')); + } + + public function delete($id){ + $model = TravelGerneralNote::findOrFail($id); + if($model->travel_programs->count() > 0){ + \Session()->flash('alert-error', 'Eintrag wird bei Reiseprogrammen verwendet'); + return redirect()->back(); + } + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect()->back(); + } + +} + + diff --git a/app/Http/Controllers/TravelProgramController.php b/app/Http/Controllers/TravelProgramController.php index 6fd3111..ae6ec90 100755 --- a/app/Http/Controllers/TravelProgramController.php +++ b/app/Http/Controllers/TravelProgramController.php @@ -48,10 +48,23 @@ class TravelProgramController extends Controller public function store($id) { + //TODO new must have an extra funtction! $data = Request::all(); - $program = $this->travelProgramRepo->update($data); - \Session()->flash('alert-save', '1'); - return redirect(route('travel_program_detail', [$program->id])); + if(!isset($data['action'])){ + abort(403, 'keine Action'); + } + if($data['action'] === 'saveGeneral'){ + $program = $this->travelProgramRepo->updateGeneral($id, $data); + \Session()->flash('alert-save', '1'); + return redirect(route('travel_program_detail', [$program->id])."#collapseBookingNotice"); + } + if($data['action'] === 'saveDetails'){ + $program = $this->travelProgramRepo->updateDetail($id, $data); + \Session()->flash('alert-save', '1'); + return redirect(route('travel_program_detail', [$program->id])."#collapseTravelProgramDetails"); + } + + return redirect(route('travel_program_detail', [$id])); } @@ -68,6 +81,7 @@ class TravelProgramController extends Controller \Session()->flash('alert-save', '1'); return redirect(route('travel_program_detail', [$data['program_id']])); } + public function classDelete($id){ $travel_class = TravelClass::findOrFail($id); $pId = $travel_class->program_id; diff --git a/app/Models/Booking.php b/app/Models/Booking.php index ef4a28c..cba14b3 100644 --- a/app/Models/Booking.php +++ b/app/Models/Booking.php @@ -66,6 +66,7 @@ use Illuminate\Database\Eloquent\Collection; * @property Collection|BookingInvoice[] $booking_invoices * @property Collection|BookingServiceItem[] $booking_service_items * @property Collection|BookingVoucher[] $booking_vouchers + * @property Collection|BookingVoucherAgency[] $booking_voucher_agencys * @property Collection|Coupon[] $coupons * @property Collection|InsuranceCertificate[] $insurance_certificates * @property Collection|Participant[] $participants @@ -155,6 +156,7 @@ use Illuminate\Database\Eloquent\Collection; * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingStorno[] $booking_stornos * @property-read int|null $booking_stornos_count * @property-read int|null $booking_vouchers_count + * @property-read int|null $booking_voucher_agencys_count * @property-read int|null $travel_insurances_count * @property string|null $origin_start_date * @property \Illuminate\Support\Carbon|null $lawyer_date @@ -496,6 +498,11 @@ class Booking extends Model return $this->hasMany(BookingVoucher::class); } + public function booking_voucher_agencys() + { + return $this->hasMany(BookingVoucherAgency::class); + } + public function travel_insurances() { return $this->hasMany(TravelInsurance::class); diff --git a/app/Models/BookingVoucherAgency.php b/app/Models/BookingVoucherAgency.php new file mode 100644 index 0000000..9640415 --- /dev/null +++ b/app/Models/BookingVoucherAgency.php @@ -0,0 +1,49 @@ + 'int', + ]; + + protected $fillable = [ + 'booking_id', + 'binary_data' + ]; + + public function booking() + { + return $this->belongsTo(Booking::class); + } +} diff --git a/app/Models/TravelArrivalPoint.php b/app/Models/TravelArrivalPoint.php new file mode 100644 index 0000000..08d49a9 --- /dev/null +++ b/app/Models/TravelArrivalPoint.php @@ -0,0 +1,78 @@ + 'int', + ]; + + protected $fillable = [ + 'name', + 'travel_country_id', + 'active' + + ]; + + public function travel_programs() + { + return $this->hasMany(TravelProgram::class, 'travel_arrival_point_id'); + } + + //on crm + /* public function travel_country_crm() + { + return $this->belongsTo('App\Models\Sym\TravelCountry', 'travel_country_id', 'crm_id'); + } + */ + + + //on stern DB relaunch + public function travel_country() + { + return $this->belongsTo('App\Models\TravelCountry', 'travel_country_id', 'id'); + } +} diff --git a/app/Models/TravelCategory.php b/app/Models/TravelCategory.php index 1d9f6de..43349ec 100644 --- a/app/Models/TravelCategory.php +++ b/app/Models/TravelCategory.php @@ -34,7 +34,8 @@ class TravelCategory extends Model public $timestamps = false; protected $fillable = [ - 'name' + 'name', + 'active' ]; public function bookings() @@ -46,4 +47,9 @@ class TravelCategory extends Model { return $this->hasMany(Lead::class, 'travelcategory_id'); } + + public function travel_programs() + { + return $this->hasMany(TravelProgram::class, 'travel_category'); + } } diff --git a/app/Models/TravelGerneralNote.php b/app/Models/TravelGerneralNote.php new file mode 100644 index 0000000..5c58ad9 --- /dev/null +++ b/app/Models/TravelGerneralNote.php @@ -0,0 +1,60 @@ +hasMany(TravelProgram::class, 'generalnote'); + } +} diff --git a/app/Models/TravelProgram.php b/app/Models/TravelProgram.php index da60216..01874c4 100644 --- a/app/Models/TravelProgram.php +++ b/app/Models/TravelProgram.php @@ -163,6 +163,12 @@ class TravelProgram extends Model 1 => 'Vermittlung' ]; + public static $programDiscountTypes = [ + 0 => '€', + 1 => '%' + ]; + + public static $travelCategoryTypes = [ 1 => 'Ägypten-Reise', 2 => 'Israel-Reise', @@ -172,9 +178,9 @@ class TravelProgram extends Model public function travel_arrival_point() { - return $this->belongsTo(TravelArrivalPoint::class); + return $this->belongsTo(TravelArrivalPoint::class, 'travel_arrival_point_id'); } - + //default 1 sterntours public function travel_organizer() { return $this->belongsTo(TravelOrganizer::class, 'organizer'); diff --git a/app/Models/TravelUserBookingFewo.php b/app/Models/TravelUserBookingFewo.php index 1e1518d..6cbf4bb 100644 --- a/app/Models/TravelUserBookingFewo.php +++ b/app/Models/TravelUserBookingFewo.php @@ -690,7 +690,7 @@ class TravelUserBookingFewo extends Model $salutation = __('Dear Sir')." ".$this->travel_user->last_name; } if($this->travel_user->salutation_id == 2){ - $salutation = __('Dear Sir')." ".$this->travel_user->last_name; + $salutation = __('Dear Mrs')." ".$this->travel_user->last_name; } if($this->travel_user->salutation_id == 4){ $salutation = __('Dear customer')." ".$this->travel_user->last_name; diff --git a/app/Repositories/TravelProgramRepository.php b/app/Repositories/TravelProgramRepository.php index 3bfe1ca..c628180 100644 --- a/app/Repositories/TravelProgramRepository.php +++ b/app/Repositories/TravelProgramRepository.php @@ -18,7 +18,7 @@ class TravelProgramRepository extends BaseRepository { public function update($data) { - if($data['id'] == "new"){ + /*if($data['id'] == "new"){ $this->model = TravelProgram::createNew(); } else{ @@ -29,9 +29,88 @@ class TravelProgramRepository extends BaseRepository { $this->model->fill($data); $this->model->status = isset($data['status']) ? true : false; $this->model->save(); + return $this->model;*/ + } + + + public function updateGeneral($id, $data){ + //weekdays + $this->model = TravelProgram::findOrFail($id); + + $this->checkDraftsWeekdays($data['weekdays']); + $data['weekdays'] = $this->model->setWeekdaysFromArray($data['weekdays']); + + $fill = [ + 'title' => $data['title'], + 'subtitle' => $data['subtitle'], + 'program_code' => $data['program_code'], + 'program_type' => $data['program_type'] ? $data['program_type'] : null, + 'category_id' => $data['category_id'] ? $data['category_id'] : null, + 'travel_country' => $data['travel_country'] ? $data['travel_country'] : null, + 'travel_agenda' => $data['travel_agenda'] ? $data['travel_agenda'] : null, + 'travel_category' => $data['travel_category'] ? $data['travel_category'] : null, + 'travel_company' => $data['travel_company'] ? $data['travel_company'] : null, + 'status' => isset($data['status']) ? 1 : 0, + 'weekdays' => $data['weekdays'], + ]; + $this->model->fill($fill); + $this->model->save(); return $this->model; } + + public function updateDetail($id, $data){ + //weekdays + $this->model = TravelProgram::findOrFail($id); + + $this->checkDraftsWeekdays($data['weekdays']); + $data['weekdays'] = $this->model->setWeekdaysFromArray($data['weekdays']); + + $fill = [ + 'default_flight_price' => $data['default_flight_price'] ? $data['default_flight_price'] : null, + 'deposit_percent' => $data['deposit_percent'] ? $data['deposit_percent'] : null, + 'discount' => $data['discount'] ? $data['discount'] : null, + 'discount_is_percent_value' => $data['discount_is_percent_value'] ? $data['discount_is_percent_value'] : null, + 'travel_arrival_point_id' => $data['travel_arrival_point_id'] ? $data['travel_arrival_point_id'] : null, + 'max_age_for_children' => $data['max_age_for_children'] ? $data['max_age_for_children'] : null, + 'url' => $data['url'] ? $data['url'] : null, + 'generalnote' => $data['generalnote'] ? $data['generalnote'] : null, + ]; + $this->model->fill($fill); + $this->model->save(); + return $this->model; + + } + + /* + + 'profit_margin', + 'program_duration', + 'is_seasonal', + 'youth', + 'slider_info', + 'organizer', + 'generalnote', + 'included', + 'class_description', + 'excluded', + 'advices', + 'notes', + 'html_description', + 'insurance_1', + 'insurance_2', + 'insurance_3', + 'insurance_4', + 'in_slider', + 'show_map', + 'map_html', + 'map_image', + 'map_image_ext', + 'netto_prices_in_euro', + 'text_right', + 'position', + */ + public function checkDraftsWeekdays($weekdays){ if(isset($weekdays) && is_array($weekdays) && $weekdays[0] === NULL){ $weekdays = range(0, 6); diff --git a/app/Services/HTMLHelper.php b/app/Services/HTMLHelper.php index 75dce78..88efd3d 100644 --- a/app/Services/HTMLHelper.php +++ b/app/Services/HTMLHelper.php @@ -412,7 +412,7 @@ class HTMLHelper public static function getWeekdaysString($weekdays = []){ $ret = ""; - if(count($weekdays)){ + if(is_array($weekdays) && count($weekdays)){ foreach($weekdays as $weekday){ if($weekday !== NULL){ $ret .= self::getDay($weekday).', '; diff --git a/app/Services/Model.php b/app/Services/Model.php index 551be60..6213f37 100644 --- a/app/Services/Model.php +++ b/app/Services/Model.php @@ -14,6 +14,8 @@ use App\Models\TravelCategory; use App\Models\ServiceProvider; use App\Models\TravelNationality; use App\Models\Sym\TravelCountry as SymTravelCountry; +use App\Models\TravelArrivalPoint; +use App\Models\TravelGerneralNote; class Model { @@ -25,18 +27,16 @@ class Model public static function getTravelCountryArray($emtpy = false){ $TravelCountry = TravelCountry::where('active_backend', 1)->orderBy('name')->get()->pluck('name', 'id'); return $emtpy ? $TravelCountry->prepend('-', 0) : $TravelCountry; + } - } - - public static function getTravelCountryCRMArray($emtpy = false){ + public static function getTravelCountryCRMArray($emtpy = false){ $TravelCountry = TravelCountry::where('active_backend', 1)->orderBy('name')->get()->pluck('name', 'crm_id'); return $emtpy ? $TravelCountry->prepend('-', 0) : $TravelCountry; } public static function getTravelCategoryArray($emtpy = false){ - $TravelCategory = TravelCategory::orderBy('name')->get()->pluck('name', 'id'); + $TravelCategory = TravelCategory::where('active', true)->orderBy('name')->get()->pluck('name', 'id'); return $emtpy ? $TravelCategory->prepend('-', 0) : $TravelCategory; - } public static function getTravelAgendaArray($emtpy = false, $travelcountry_id = false){ @@ -63,6 +63,17 @@ class Model return $emtpy ? $TravelCompany->prepend('-', 0) : $TravelCompany; } + public static function getTravelArrivalPointArray($emtpy = false){ + $TravelArrivalPoint = TravelArrivalPoint::where('active', true)->orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $TravelArrivalPoint->prepend('-', 0) : $TravelArrivalPoint; + } + + public static function getTravelGerneralNotesArray($emtpy = false){ + $TravelGerneralNote = TravelGerneralNote::orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $TravelGerneralNote->prepend('-', 0) : $TravelGerneralNote; + } + + public static function getBranchArray($emtpy = false){ $Branch = Branch::orderBy('name')->get()->pluck('name', 'id'); return $emtpy ? $Branch->prepend('-', 0) : $Branch; diff --git a/config/permissions.php b/config/permissions.php index 31f153d..17c280a 100755 --- a/config/permissions.php +++ b/config/permissions.php @@ -54,12 +54,16 @@ return [ 'sua-st-tpl' => ['name' => 'SUPERADMIN > Einstellungen > Reiseorte' , 'color' => 'superadmin'], 'sua-st-bs' => ['name' => 'SUPERADMIN > Einstellungen > Reisestatus' , 'color' => 'superadmin'], 'sua-st-tc' => ['name' => 'SUPERADMIN > Einstellungen > Veranstalter' , 'color' => 'superadmin'], + 'sua-st-tca' => ['name' => 'SUPERADMIN > Einstellungen > Reiseart' , 'color' => 'superadmin'], + 'sua-st-tap' => ['name' => 'SUPERADMIN > Einstellungen > Zielflughafen' , 'color' => 'superadmin'], 'sua-st-in' => ['name' => 'SUPERADMIN > Einstellungen > Versicherungen' , 'color' => 'superadmin'], 'sua-st-ca' => ['name' => 'SUPERADMIN > Einstellungen > Kategorien' , 'color' => 'superadmin'], + 'sua-st-tgn' => ['name' => 'SUPERADMIN > Einstellungen > Reisehinweise' , 'color' => 'superadmin'], 'sua-re' => ['name' => 'SUPERADMIN > Export' , 'color' => 'superadmin'], 'sua-re-bo' => ['name' => 'SUPERADMIN > Export > Buchungen' , 'color' => 'superadmin'], 'sua-re-pp' => ['name' => 'SUPERADMIN > Export > Leistungsträger' , 'color' => 'superadmin'], 'sua-ur-rt' => ['name' => 'SUPERADMIN > User Rechte' , 'color' => 'danger'], + 'cms-cn-co' => ['name' => 'ADMIN CMS > Inhalte > Länder' , 'color' => 'secondary'], ], ], diff --git a/database/migrations/2020_04_08_094515_create_booking_voucher_agency_table.php b/database/migrations/2020_04_08_094515_create_booking_voucher_agency_table.php new file mode 100644 index 0000000..e989238 --- /dev/null +++ b/database/migrations/2020_04_08_094515_create_booking_voucher_agency_table.php @@ -0,0 +1,47 @@ +bigIncrements('id'); + $table->bigInteger('booking_id'); + $table->binary('binary_data'); + $table->dateTime('created_at'); + $table->dateTime('updated_at'); + + $table->index('booking_id', 'booking_voucher_agency_booking_id_idx'); + + $table->foreign('booking_id', 'booking_voucher_agency_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE +')->onUpdate('RESTRICT'); + + }); + + + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('booking_voucher_agency'); + } +} diff --git a/database/migrations/2020_04_08_094515_create_booking_voucher_table.php b/database/migrations/2020_04_08_094515_create_booking_voucher_table.php new file mode 100644 index 0000000..854c482 --- /dev/null +++ b/database/migrations/2020_04_08_094515_create_booking_voucher_table.php @@ -0,0 +1,47 @@ +bigIncrements('id'); + $table->bigInteger('booking_id'); + $table->binary('binary_data'); + $table->dateTime('created_at'); + $table->dateTime('updated_at'); + + $table->index('booking_id', 'booking_voucher_booking_id_idx'); + + $table->foreign('booking_id', 'booking_voucher_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE +')->onUpdate('RESTRICT'); + + }); + + + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('booking_voucher'); + } +} diff --git a/resources/views/booking/_detail_files.blade.php b/resources/views/booking/_detail_files.blade.php index 20f7d79..6b1f0e9 100755 --- a/resources/views/booking/_detail_files.blade.php +++ b/resources/views/booking/_detail_files.blade.php @@ -124,15 +124,15 @@ {{$booking_files_count++}} - Voucher-ID {{$booking_voucher->id}} + Voucher ID {{$booking_voucher->id}} -   + Voucher für den Kunden {{\App\Services\Util::_format_date($booking_voucher->updated_at, 'date')}} - @@ -141,6 +141,29 @@ @endforeach @endif + @if($booking->booking_voucher_agencys) + @foreach($booking->booking_voucher_agencys as $booking_voucher_agency) + + {{$booking_files_count++}} + + + Voucher-Agentur ID {{$booking_voucher_agency->id}} + + + + Voucher für die Agentur + + {{\App\Services\Util::_format_date($booking_voucher_agency->updated_at, 'date')}} + + + + + + + @endforeach + @endif + @if($booking->insurance_certificates) @foreach($booking->insurance_certificates as $insurance_certificate) diff --git a/resources/views/customer/mail/modal-new-booking-files.blade.php b/resources/views/customer/mail/modal-new-booking-files.blade.php index f372328..8f9c592 100644 --- a/resources/views/customer/mail/modal-new-booking-files.blade.php +++ b/resources/views/customer/mail/modal-new-booking-files.blade.php @@ -114,15 +114,39 @@ {{$booking_files_count++}} - Voucher-ID {{$booking_voucher->id}} + Voucher ID {{$booking_voucher->id}} -   + Voucher für den Kunden {{\App\Services\Util::_format_date($booking_voucher->updated_at, 'date')}} - + + + @endforeach + @endif + + @if($booking->booking_voucher_agencys) + @foreach($booking->booking_voucher_agencys as $booking_voucher_agency) + + {{$booking_files_count++}} + + + Voucher-Agentur ID {{$booking_voucher_agency->id}} + + + + Voucher für die Agentur + + {{\App\Services\Util::_format_date($booking_voucher_agency->updated_at, 'date')}} + + + diff --git a/resources/views/emails/auth.blade.php b/resources/views/emails/auth.blade.php index 0d0229b..605043e 100644 --- a/resources/views/emails/auth.blade.php +++ b/resources/views/emails/auth.blade.php @@ -5,65 +5,8 @@ mein STERN TOURS - - - +
{{ $copy1line }} @@ -74,7 +17,7 @@

- +
@include('emails.header') @@ -89,7 +32,7 @@
- +

@@ -105,7 +48,7 @@
- +
diff --git a/resources/views/emails/content.blade.php b/resources/views/emails/content.blade.php index a874da9..a42ab9f 100644 --- a/resources/views/emails/content.blade.php +++ b/resources/views/emails/content.blade.php @@ -5,76 +5,27 @@ mein STERN TOURS - - +
{{ strip_tags($content) }}
- +

- +
@include('emails.header') -
- +

diff --git a/resources/views/emails/footer.blade.php b/resources/views/emails/footer.blade.php index 2be7648..5da12f6 100644 --- a/resources/views/emails/footer.blade.php +++ b/resources/views/emails/footer.blade.php @@ -1,5 +1,4 @@ - +

diff --git a/resources/views/emails/header.blade.php b/resources/views/emails/header.blade.php index 675af77..0b694d6 100644 --- a/resources/views/emails/header.blade.php +++ b/resources/views/emails/header.blade.php @@ -1,13 +1,13 @@ - +
- +
diff --git a/resources/views/emails/info.blade.php b/resources/views/emails/info.blade.php index edc9208..5e13bfc 100644 --- a/resources/views/emails/info.blade.php +++ b/resources/views/emails/info.blade.php @@ -5,80 +5,19 @@ mein STERN TOURS - - - - - +
{{ $copy1line }}
-
- STERN TOURS + STERN TOURS
+

- +
@include('emails.header') @@ -86,7 +25,7 @@ bgcolor="#ffffff">
- +

{!! nl2br($copy1line) !!}

diff --git a/resources/views/emails/invoice.blade.php b/resources/views/emails/invoice.blade.php index f94aaeb..1ac2d02 100644 --- a/resources/views/emails/invoice.blade.php +++ b/resources/views/emails/invoice.blade.php @@ -5,55 +5,6 @@ mein STERN TOURS - @@ -61,7 +12,7 @@ {{ $copy1line }} - +
@@ -70,15 +21,14 @@
@include('emails.header') - +
- +
@@ -88,7 +38,7 @@

- {{ $salutation }} + {{ $salutation }}

{{ $copy1line }}

- +
{{ __('Belegungszeitraum:') }} @@ -142,7 +92,7 @@
- +
@if($notice && $notice != "")
diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index 52ec399..66ac1b2 100755 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -346,11 +346,27 @@
{{ __('Veranstalter') }}
@endif + @if(Auth::user()->isPermission('sua-st-tca')) +
  • +
    {{ __('Reiseart') }}
    +
  • + @endif + @if(Auth::user()->isPermission('sua-st-tap')) +
  • +
    {{ __('Zielflughafen') }}
    +
  • + @endif @if(Auth::user()->isPermission('sua-st-in'))
  • {{ __('Versicherungen') }}
  • @endif + @if(Auth::user()->isPermission('sua-st-tgn')) +
  • +
    {{ __('Reisehinweise') }}
    +
  • + @endif + @if(Auth::user()->isPermission('sua-st-ca'))
  • {{ __('Kategorien') }}
    diff --git a/resources/views/settings/gerneral_notes/index.blade.php b/resources/views/settings/gerneral_notes/index.blade.php new file mode 100755 index 0000000..d4ff6e7 --- /dev/null +++ b/resources/views/settings/gerneral_notes/index.blade.php @@ -0,0 +1,106 @@ +@extends('layouts.layout-2') + +@section('content') +

    + Reisehinweise +

    +
    + +
    + + + + + + + + + + + @foreach($gerneral_notes as $value) + + + + + + + @endforeach + +
     {{__('Name')}}{{__('Text')}}
    + + {{ $value->name }}{{ $value->text }}
    +
    + +
    +
    +
    + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/settings/travel_arrival_point/index.blade.php b/resources/views/settings/travel_arrival_point/index.blade.php new file mode 100755 index 0000000..4f2604c --- /dev/null +++ b/resources/views/settings/travel_arrival_point/index.blade.php @@ -0,0 +1,117 @@ +@extends('layouts.layout-2') + +@section('content') +

    + Zielflughafen +

    +
    + +
    + + + + + + + + + + + + @foreach($travel_arrival_point as $value) + + + + + + + + @endforeach + +
     {{__('Name')}}{{__('Land')}}{{__('sichtbar')}}
    + + {{ $value->name }}{{ $value->travel_country->name }}{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}
    +
    + +
    +
    +
    + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/settings/travel_category/index.blade.php b/resources/views/settings/travel_category/index.blade.php new file mode 100755 index 0000000..72d8398 --- /dev/null +++ b/resources/views/settings/travel_category/index.blade.php @@ -0,0 +1,107 @@ +@extends('layouts.layout-2') + +@section('content') +

    + Reiseart +

    +
    + + +
    + + + + + + + + + + + @foreach($travel_category as $value) + + + + + + + @endforeach + +
     {{__('Name')}}{{__('sichtbar')}}
    + + {{ $value->name }}{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}
    +
    + +
    +
    +
    + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/travel/program/_classes.blade.php b/resources/views/travel/program/_classes.blade.php new file mode 100644 index 0000000..2d785cc --- /dev/null +++ b/resources/views/travel/program/_classes.blade.php @@ -0,0 +1,52 @@ + +
    + +
    +
    + + + + + + + + + + + @foreach($program->classes as $value) + + + + + + + + @endforeach + +
    #NameStandard
    + + {{ $value->name }}@if($value->standard) + + @else + + @endif +
    +
    + +
    +
    +
    +
    diff --git a/resources/views/travel/program/_details.blade.php b/resources/views/travel/program/_details.blade.php new file mode 100644 index 0000000..b921ae4 --- /dev/null +++ b/resources/views/travel/program/_details.blade.php @@ -0,0 +1,104 @@ + +
    + +
    +
    +
    +
    + + {{ Form::text('default_flight_price', $program->default_flight_price, array('class'=>'form-control', 'id'=>'default_flight_price')) }} +
    +
    + + {{ Form::text('deposit_percent', $program->deposit_percent, array('class'=>'form-control', 'id'=>'deposit_percent')) }} +
    + +
    + + {{ Form::text('discount', $program->discount, array('class'=>'form-control', 'id'=>'discount')) }} +
    + +
    + + {{ Form::select('discount_is_percent_value', $program::$programDiscountTypes , $program->discount_is_percent_value, array('class'=>'custom-select', 'id'=>'discount_is_percent_value')) }} +
    + +
    + + {{ Form::select('travel_arrival_point_id', \App\Services\Model::getTravelArrivalPointArray(true) , $program->travel_arrival_point_id, array('class'=>'custom-select', 'id'=>'travel_arrival_point_id')) }} +
    + +
    + + {{ Form::text('max_age_for_children', $program->max_age_for_children, array('class'=>'form-control', 'id'=>'max_age_for_children')) }} +
    + +
    + + {{ Form::text('url', $program->url, array('class'=>'form-control', 'id'=>'url')) }} +
    + + +
    + + {{ Form::select('generalnote', \App\Services\Model::getTravelGerneralNotesArray(true) , $program->generalnote, array('class'=>'custom-select', 'id'=>'generalnote')) }} +
    + + +
    +
    +   + {{ __('zur Übersicht') }} +
    +
    + + +
    +
    +
    +
    +{{-- + +Text + Eingeschlossene Leistungen (pro Zeile eine Leistung!) + included + + + Klassen/Kategorien und zusätzliche Infos (erscheint unterhalb der "Eingeschlossenen Leistungen") (HTML) + class_description + + + Nicht eingeschlossene Leistungen (pro Zeile eine Leistung!) + excluded + + Hinweise + advices + + + Anmerkungen (pro Zeile eine Anmerkung!) + notes + + + HTML-Beschreibung + html_description + + Text (rechts außen) + text_right + + + + + Reiseversicherung 1 +Reiseversicherung 2 +Reiseversicherung 3 +Reiseversicherung 4 +Im Slider anzeigen? +Kartentyp +Währung der Netto-Preise +Position bei Suchergebnissen (Kleinere Wert bedeutet höhere Position) + +--}} \ No newline at end of file diff --git a/resources/views/travel/program/_drafts.blade.php b/resources/views/travel/program/_drafts.blade.php new file mode 100644 index 0000000..f26cb8d --- /dev/null +++ b/resources/views/travel/program/_drafts.blade.php @@ -0,0 +1,55 @@ + +
    + +
    +
    + + + + + + + + + + + + @foreach($program->travel_program_drafts as $value) + + + + + + + + @endforeach + +
    #NameKategorieWochentage
    + + {{ $value->draft->name }}@if( $value->travel_class) + {{ $value->travel_class->name }} + @else + alle Kategorien + @endif + + {!! HTMLHelper::getWeekdaysString($value->weekdays) !!} +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/resources/views/travel/program/_general.blade.php b/resources/views/travel/program/_general.blade.php new file mode 100644 index 0000000..e14ab22 --- /dev/null +++ b/resources/views/travel/program/_general.blade.php @@ -0,0 +1,80 @@ + +
    + +
    +
    +
    + + + {{ Form::text('title', $program->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title', 'required'=>true)) }} +
    +
    +
    + + {{ Form::text('subtitle', $program->subtitle, array('placeholder'=>__('Subtitle'), 'class'=>'form-control', 'id'=>'subtitle', 'required'=>true)) }} +
    +
    + +
    +
    + + {{ Form::text('program_code', $program->program_code, array('class'=>'form-control', 'id'=>'program_code', 'required'=>true)) }} +
    +
    + + {{ Form::select('program_type', $program::$programTypeTypes , $program->program_type, array('class'=>'custom-select', 'id'=>'program_type', 'required'=>true)) }} +
    +
    + + {{ Form::select('category_id', $program::$travelCategoryTypes , $program->category_id, array('class'=>'custom-select', 'id'=>'category_id', 'required'=>true)) }} +
    +
    + + {{ Form::select('travel_country', \App\Services\Model::getSymTravelCountryArray() , $program->travel_country, array('class'=>'custom-select', 'id'=>'travel_country', 'required'=>true)) }} +
    +
    + + {{ Form::select('travel_agenda', \App\Services\Model::getTravelAgendaArray(true) , $program->travel_agenda, array('class'=>'custom-select', 'id'=>'travel_agenda', 'required'=>true)) }} +
    +
    + + {{ Form::select('travel_category', \App\Services\Model::getTravelCategoryArray() , $program->travel_category, array('class'=>'custom-select', 'id'=>'travel_category', 'required'=>true)) }} +
    +
    + + +
    +
    + + {{ Form::select('travel_company', \App\Services\Model::getTravelCompanyArray() , $program->travel_company, array('class'=>'custom-select', 'id'=>'travel_company', 'required'=>true)) }} +
    + +
    +
    +   + {{ __('zur Übersicht') }} +
    +
    +
    + + + + {{-- +
    +
    + generate Keywords + + {{ Form::text('keywords', $program->keywords, array('placeholder'=>__('Keyword,Keyword'), 'class'=>'form-control', 'id'=>'keywords')) }} +
    +
    + --}} +
    +
    +
    \ No newline at end of file diff --git a/resources/views/travel/program/_modals.blade.php b/resources/views/travel/program/_modals.blade.php new file mode 100644 index 0000000..b87d57a --- /dev/null +++ b/resources/views/travel/program/_modals.blade.php @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/resources/views/travel/program/detail.blade.php b/resources/views/travel/program/detail.blade.php index 6923796..c51759c 100755 --- a/resources/views/travel/program/detail.blade.php +++ b/resources/views/travel/program/detail.blade.php @@ -2,317 +2,148 @@ @section('content') +

    - Programm @if($id == "new") anlegen @else {{"(ID: ".$id.")"}} verwalten @endif + Reiseprogramm @if($id == "new") anlegen @else verwalten {{"(ID: ".$id.")"}} @endif
    -   - {{ __('back') }} + {{ __('zur Übersicht') }}

    + + + {!! Form::open(['url' => route('travel_program_detail', [$id]), 'class' => 'form-horizontal']) !!} - -
    -
    -
    - - - {{ Form::text('title', $program->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'program_title', 'required'=>true)) }} -
    -
    -
    - - {{ Form::text('subtitle', $program->subtitle, array('placeholder'=>__('Subtitle'), 'class'=>'form-control', 'id'=>'program_subtitle', 'required'=>true)) }} -
    -
    + @include('travel.program._general') -
    -
    - - {{ Form::text('program_code', $program->program_code, array('class'=>'form-control', 'id'=>'program_code', 'required'=>true)) }} -
    -
    - - {{ Form::select('program_type', $program::$programTypeTypes , $program->program_type, array('class'=>'custom-select', 'id'=>'program_type', 'required'=>true)) }} -
    -
    - - {{ Form::select('category_id', $program::$travelCategoryTypes , $program->category_id, array('class'=>'custom-select', 'id'=>'category_id', 'required'=>true)) }} -
    -
    - - {{ Form::select('travel_country', \App\Services\Model::getSymTravelCountryArray() , $program->travel_country, array('class'=>'custom-select', 'id'=>'travel_country', 'required'=>true)) }} -
    -
    - - {{ Form::select('travel_agenda', \App\Services\Model::getTravelAgendaArray(false) , $program->travel_agenda, array('class'=>'custom-select', 'id'=>'travel_agenda', 'required'=>true)) }} -
    -
    - - {{ Form::select('travel_category', \App\Services\Model::getTravelCategoryArray() , $program->travel_category, array('class'=>'custom-select', 'id'=>'travel_category', 'required'=>true)) }} -
    -
    - - -
    -
    - - {{ Form::select('travel_company', \App\Services\Model::getTravelCompanyArray() , $program->travel_company, array('class'=>'custom-select', 'id'=>'travel_company', 'required'=>true)) }} -
    -
    + @if($id !== "new" && $program) + @include('travel.program._details') + @include('travel.program._classes') + @include('travel.program._drafts') + @endif - {{-- -
    -
    - generate Keywords - - {{ Form::text('keywords', $program->keywords, array('placeholder'=>__('Keyword,Keyword'), 'class'=>'form-control', 'id'=>'keywords')) }} -
    -
    - --}} -
    + - - -
    -
    - Eingetragene Kategorien/Klassen -
    -
    - - - - - - - - - - - @foreach($program->classes as $value) - - - - - - - - @endforeach - -
    #NameStandard
    - - {{ $value->name }}@if($value->standard) - - @else - - @endif -
    -
    - -
    -
    -
    - - - -
    -
    - Vorlagen Reiseprogramm (CRM) -
    -
    - - - - - - - - - - - - @foreach($program->travel_program_drafts as $value) - - - - - - - - @endforeach - -
    #NameKategorieWochentage
    - - {{ $value->draft->name }}@if( $value->travel_class) - {{ $value->travel_class->name }} - @else - alle Kategorien - @endif - - {!! HTMLHelper::getWeekdaysString($value->weekdays) !!} -
    -
    - -
    -
    -
    - - - - {!! Form::close() !!} - - - - - - - - - + @if($id !== "new" && $program) + @include('travel.program._modals') + @endif + + + + + + @endsection \ No newline at end of file diff --git a/resources/views/travel/program/index.blade.php b/resources/views/travel/program/index.blade.php index 7654283..da2c4f6 100755 --- a/resources/views/travel/program/index.blade.php +++ b/resources/views/travel/program/index.blade.php @@ -1,8 +1,10 @@ @extends('layouts.layout-2') @section('content') + +

    - Programme + Reiseprogramme

    diff --git a/routes/web.php b/routes/web.php index 666050d..8f9fffe 100755 --- a/routes/web.php +++ b/routes/web.php @@ -392,6 +392,21 @@ Route::group(['middleware' => ['superadmin', '2fa']], function() { Route::post('/admin/settings/travel_program/update', 'Settings\TravelAgendaController@update')->name('admin_settings_travel_program_update'); Route::get('/admin/settings/travel_program/delete/{id}', 'Settings\TravelAgendaController@delete')->name('admin_settings_travel_program_delete'); }); + + Route::group(['middleware' => ['auth.permission:sua-st-tca']], function() { + //SUPERADMIN > Einstellungen > / Reiseart + Route::get('/admin/settings/travel_category/{id?}', 'Settings\TravelCategoryController@index')->name('admin_settings_travel_category'); + Route::post('/admin/settings/travel_category/update', 'Settings\TravelCategoryController@update')->name('admin_settings_travel_category_update'); + Route::get('/admin/settings/travel_category/delete/{id}', 'Settings\TravelCategoryController@delete')->name('admin_settings_travel_category_delete'); + }); + + Route::group(['middleware' => ['auth.permission:sua-st-tgn']], function() { + //SUPERADMIN > Einstellungen > / Reisehinweise + Route::get('/admin/settings/gerneral_notes/{id?}', 'Settings\TravelGerneralNotesController@index')->name('admin_settings_gerneral_notes'); + Route::post('/admin/settings/gerneral_notes/update', 'Settings\TravelGerneralNotesController@update')->name('admin_settings_gerneral_notes_update'); + Route::get('/admin/settings/gerneral_notes/delete/{id}', 'Settings\TravelGerneralNotesController@delete')->name('admin_settings_gerneral_notes_delete'); + }); + Route::group(['middleware' => ['auth.permission:sua-st-tpl']], function() { //SUPERADMIN > Einstellungen > Reiseorte Route::get('/admin/settings/travel_places', 'Settings\TravelPlaceController@index')->name('admin_settings_travel_places'); @@ -412,14 +427,14 @@ Route::group(['middleware' => ['superadmin', '2fa']], function() { Route::post('/admin/settings/travel_country/update/{id}', 'Settings\TravelCountryController@update')->name('admin_settings_travel_country_update'); Route::get('/admin/settings/travel_country/delete/{id}/{del?}', 'Settings\TravelCountryController@delete')->name('admin_settings_travel_country_delete'); }); - Route::group(['middleware' => ['auth.permission:sua-st-bs']], function() { + Route::group(['middleware' => ['auth.permission:sua-st-tc']], function() { //SUPERADMIN > Einstellungen > Veranstalter Route::get('/admin/settings/travel_company', 'Settings\TravelCompanyController@index')->name('admin_settings_travel_company'); Route::get('/admin/settings/travel_company/detail/{id}/{step?}', 'Settings\TravelCompanyController@detail')->name('admin_settings_travel_company_detail'); Route::post('/admin/settings/travel_company/update/{id}', 'Settings\TravelCompanyController@update')->name('admin_settings_travel_company_update'); Route::get('/admin/settings/travel_company/delete/{id}/{del?}', 'Settings\TravelCompanyController@delete')->name('admin_settings_travel_company_delete'); }); - Route::group(['middleware' => ['auth.permission:sua-st-bs']], function() { + Route::group(['middleware' => ['auth.permission:sua-st-in']], function() { //SUPERADMIN > Einstellungen > Versicherungen Route::get('/admin/settings/insurance', 'Settings\InsuranceController@index')->name('admin_settings_insurance'); Route::post('/admin/settings/insurance/update', 'Settings\InsuranceController@update')->name('admin_settings_insurance_update'); @@ -432,6 +447,14 @@ Route::group(['middleware' => ['superadmin', '2fa']], function() { Route::get('/admin/settings/categories/delete/{id}', 'Settings\CategoryController@delete')->name('admin_settings_categories_delete'); }); + Route::group(['middleware' => ['auth.permission:sua-st-tap']], function() { + //SUPERADMIN > Einstellungen > Zielflughafen + Route::get('/admin/settings/travel_arrival_point', 'Settings\TravelArrivalPointController@index')->name('admin_settings_travel_arrival_point'); + Route::post('/admin/settings/travel_arrival_point/update', 'Settings\TravelArrivalPointController@update')->name('admin_settings_travel_arrival_point_update'); + Route::get('/admin/settings/travel_arrival_point/delete/{id}', 'Settings\TravelArrivalPointController@delete')->name('admin_settings_travel_arrival_point_delete'); + }); + + Route::group(['middleware' => ['auth.permission:sua-re-bo']], function() { //SUPERADMIN > report > Buchungen Route::get('/admin/report/bookings', 'Admin\ReportController@bookings')->name('admin_report_bookings'); diff --git a/storage/app/customer/attachment/2022/05/6294cd874e4fc8.76346603_voucher-agentur-id4297.pdf b/storage/app/customer/attachment/2022/05/6294cd874e4fc8.76346603_voucher-agentur-id4297.pdf new file mode 100644 index 0000000..96d70e9 Binary files /dev/null and b/storage/app/customer/attachment/2022/05/6294cd874e4fc8.76346603_voucher-agentur-id4297.pdf differ diff --git a/storage/app/customer/attachment/2022/05/6294cd96c577c2.02146548_voucher-id4297.pdf b/storage/app/customer/attachment/2022/05/6294cd96c577c2.02146548_voucher-id4297.pdf new file mode 100644 index 0000000..cc0e30f Binary files /dev/null and b/storage/app/customer/attachment/2022/05/6294cd96c577c2.02146548_voucher-id4297.pdf differ diff --git a/storage/app/customer/attachment/2022/05/6294cd97be3cf9.88857727_voucher-agentur-id4297.pdf b/storage/app/customer/attachment/2022/05/6294cd97be3cf9.88857727_voucher-agentur-id4297.pdf new file mode 100644 index 0000000..96d70e9 Binary files /dev/null and b/storage/app/customer/attachment/2022/05/6294cd97be3cf9.88857727_voucher-agentur-id4297.pdf differ diff --git a/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf b/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf index 4fd3282..4bac6ab 100755 Binary files a/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf and b/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf differ diff --git a/storage/app/fewo/invoices/2019/12345.pdf b/storage/app/fewo/invoices/2019/12345.pdf index 4750d7b..cc98f8d 100755 Binary files a/storage/app/fewo/invoices/2019/12345.pdf and b/storage/app/fewo/invoices/2019/12345.pdf differ