This commit is contained in:
Kevin Adametz 2020-05-06 15:52:59 +02:00
parent 68b9d1ff88
commit b9c26d06d0
75 changed files with 2143 additions and 818 deletions

182
.idea/workspace.xml generated
View file

@ -2,10 +2,15 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e1ac1cea-a1a5-4c16-b5f0-5908c7d368de" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/FileController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Repositories/BookingFileRepository.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Repositories/CMSFileRepository.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Repositories/FileRepository.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/EmailTemplateController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/InsuranceController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/ServiceProviderController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelCompanyController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/EmailTemplate.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/Insurance.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Services/Placeholder.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_23_144804_create_insurances_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_23_144838_create_email_templates_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171716_create_i_q_content_folders_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171717_create_i_q_content_files_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171718_create_i_q_content_categories_table.php" afterDir="false" />
@ -25,71 +30,50 @@
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/colors.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/file.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move-item.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_booking.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_drafs.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_files.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_info.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_lead.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_mails.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_myjack.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/_detail_price.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/upload_modal.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-new-booking-files.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/booking/files/2020/04/5e9873901e2bd_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/booking/files/2020/04/5e997d7b4ecc2_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/booking/files/2020/04/5e99aaf396d750.47072403_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e972e144373d7.97972029_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e972e27878222.09265384_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e972e38af6043.03271213_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e972fbe2ce954.66250128_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e97302ed1c839.78339022_muscat-sultan-qaboos-moschee-h1.JPG" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99a72f1bfde9.86685319_ust111pd." afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99a752cba2a2.94746278_jdatlastoollogopn." afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aa9cd041d8.89347563_reiseanme.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aad1b1ba55.84697018_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aadc24e747.88797929_reisebestäti.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aadce9a149.07769362_gutschein_202258804771.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aadd9d8d66.71792306_sicherungsscheinnachsis651r.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aadea97ec4.45183917_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aadf8228a7.04445821_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99ab01275620.11542311_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99accb7b29a6.14209159_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99adcfe04075.56597947_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99ae058f7ec3.92405331_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99ae5570a9d2.76710677_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99ae646eb0a1.78424093_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99afbe21f9c2.01938887_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99aff4c885b4.22939380_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b016467117.77860068_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b065104c37.78810324_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b0c59b2738.41424954_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b0cb639727.76108821_reisebestäti.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b0cda4e229.01104704_reisebestäti.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b1f2e2bc67.91448850_reiseanmel.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b1f532d420.57931412_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/asdas.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/test.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/04/5e98451b1ae7a_sicherungsscheinnachsis651r.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/_travel_country/detail.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/email_template/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/email_template/modal.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/insurance/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/service_provider/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/travel_company/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b543e42254.12049207_reiseanmeldung.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b544a84a15.70270514_reisebestätigung.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b546a93b85.31250574_gutschein2022588047711038.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b5497293f4.96026058_sicherungsscheinnachsis651r.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b54ba91d07.08332553_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b57f1c31f0.70883767_reiseanmeldung.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e99b580163fe3.60366976_reiseanmeldung.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5ea8590b019148.46292698_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5ea85937d5bf78.04249430_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5ea859563f7df6.49508975_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.phpstorm.meta.php" beforeDir="false" afterPath="$PROJECT_DIR$/.phpstorm.meta.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/_ide_helper.php" beforeDir="false" afterPath="$PROJECT_DIR$/_ide_helper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/_ide_helper_models.php" beforeDir="false" afterPath="$PROJECT_DIR$/_ide_helper_models.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Admin/ReportController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Admin/ReportController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/BookingController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/BookingController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CMS/CMSContentController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CMS/CMSContentController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CustomerFileController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CustomerFileController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CMS/CMSContentCountryController.php" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CustomerController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CustomerController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CustomerMailController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CustomerMailController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/RequestController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/RequestController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailSendInfo.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailSendInfo.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Settings/AirlineController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/AirlineController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelCountryController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelCountryController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelNationalityController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelNationalityController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Airline.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Airline.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Booking.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Booking.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/CMSContent.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/CMSContent.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/CustomerFile.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/CustomerFile.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/BookingServiceItem.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/BookingServiceItem.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/ServiceProvider.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ServiceProvider.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelCompany.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelCompany.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Repositories/CustomerFileRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/CustomerFileRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelCountry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelCountry.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Repositories/CustomerMailRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/CustomerMailRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/CreateCouponPDF.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/CreateCouponPDF.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Repositories/FileRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/FileRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/HTMLHelper.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/HTMLHelper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/Util.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/Util.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/filesystems.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/filesystems.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/permissions.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/permissions.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2018_10_29_202123_create_booking_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_29_202123_create_booking_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2020_01_29_154619_create_travel_company_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_01_29_154619_create_travel_company_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2020_02_04_160054_create_service_provider_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_02_04_160054_create_service_provider_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/composer.json" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/composer.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/cropper.min.css" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/cropper.min.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/cropper.min.js" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/cropper.min.js" afterDir="false" />
@ -139,15 +123,24 @@
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/resize.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/resize.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/css/application.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/css/application.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/custom.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/custom.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/report/bookings.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/report/bookings.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/report/service_providers.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/report/service_providers.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/booking/_detail_mails.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/booking/_detail_mails.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/booking/_detail_price.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/booking/_detail_price.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/booking/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/booking/detail.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/all/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/cms/content/all/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/all/modal.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/cms/content/all/modal.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/country/detail.blade.php" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/country/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/_travel_country/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/customer/mail/modal-new-booking-files.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-new-booking-files.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/customer/mail/modal-new-mail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-new-mail.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail-inner.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail-inner.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/request/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/request/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/airline/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/airline/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/keywords/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/keywords/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/travel_agenda/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/travel_agenda/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/travel_country/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/travel_country/detail.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/travel_country/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/travel_country/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/settings/travel_nationality/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/travel_nationality/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -370,24 +363,25 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="database.console.LAST_STATE" value="false" />
<property name="js.buildTools.grunt.grunt-cli.package" value="" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/customer/mail" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/settings/email_template" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="ts.external.directory.path" value="$APPLICATION_HOME_DIR$/plugins/JavaScriptLanguage/jsLanguageServicesImpl/external" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/views/customer/mail" />
<recent name="$PROJECT_DIR$/app/Repositories" />
<recent name="$PROJECT_DIR$/resources/views/booking" />
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
<recent name="$PROJECT_DIR$/app/Libraries" />
<recent name="$PROJECT_DIR$/resources/views/settings/email_template" />
<recent name="$PROJECT_DIR$/app/Services" />
<recent name="$PROJECT_DIR$/public/vendor/libs/quill-placeholder-module/dist" />
<recent name="$PROJECT_DIR$/resources/views/settings/insurance" />
<recent name="$PROJECT_DIR$/resources/views/settings/travel_company" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/views/settings" />
<recent name="$PROJECT_DIR$/resources/views/customer/mail" />
<recent name="$PROJECT_DIR$/public/js" />
<recent name="$PROJECT_DIR$/database/migrations" />
<recent name="$PROJECT_DIR$/app/Models/Sym" />
<recent name="$PROJECT_DIR$/app/Models" />
</key>
</component>
<component name="RunAnythingCache">
@ -743,6 +737,27 @@
<workItem from="1587109633375" duration="34000" />
<workItem from="1587113061793" duration="13766000" />
<workItem from="1587131112608" duration="33000" />
<workItem from="1587131605007" duration="201000" />
<workItem from="1587482281676" duration="112000" />
<workItem from="1587540966558" duration="2253000" />
<workItem from="1587544270314" duration="1881000" />
<workItem from="1587628315336" duration="2730000" />
<workItem from="1587631176924" duration="3512000" />
<workItem from="1587635930806" duration="5245000" />
<workItem from="1587644042987" duration="3345000" />
<workItem from="1587749582717" duration="2000" />
<workItem from="1587975666426" duration="4464000" />
<workItem from="1587981719838" duration="4726000" />
<workItem from="1588067289707" duration="11814000" />
<workItem from="1588089306360" duration="2150000" />
<workItem from="1588092534819" duration="865000" />
<workItem from="1588146658578" duration="4000" />
<workItem from="1588159276941" duration="117000" />
<workItem from="1588248862944" duration="3071000" />
<workItem from="1588253879164" duration="9000" />
<workItem from="1588267968818" duration="645000" />
<workItem from="1588269075570" duration="700000" />
<workItem from="1588410019832" duration="192000" />
</task>
<servers />
</component>
@ -793,15 +808,31 @@
</state>
<state x="723" y="23" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586342353394" />
<state x="723" y="54" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581351314829" />
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog" timestamp="1587048507717">
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog" timestamp="1587982214324">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585128425251" />
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1587982214324" />
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/2560.-527.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1587048507717" />
<state x="1097" y="610" width="600" height="300" key="ComposerAddDependencyOutputPopupDimensionServiceKey" timestamp="1581350288912">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state x="1097" y="610" width="600" height="300" key="ComposerAddDependencyOutputPopupDimensionServiceKey/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581350288912" />
<state width="2518" height="407" key="GridCell.Tab.0.bottom" timestamp="1587976409045">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state width="2518" height="407" key="GridCell.Tab.0.bottom/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1587976409045" />
<state width="2518" height="407" key="GridCell.Tab.0.center" timestamp="1587976409044">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state width="2518" height="407" key="GridCell.Tab.0.center/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1587976409044" />
<state width="2518" height="407" key="GridCell.Tab.0.left" timestamp="1587976409044">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state width="2518" height="407" key="GridCell.Tab.0.left/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1587976409044" />
<state width="2518" height="407" key="GridCell.Tab.0.right" timestamp="1587976409044">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state width="2518" height="407" key="GridCell.Tab.0.right/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1587976409044" />
<state x="1020" y="544" width="527" height="375" key="PHPComposerAddDependencyDialogDimensionKey" timestamp="1581350432217">
<screen x="0" y="23" width="2560" height="1417" />
</state>
@ -816,18 +847,19 @@
</state>
<state x="1063" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585232936868" />
<state x="1063" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/2560.-527.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1587128795225" />
<state x="870" y="380" width="1487" height="939" key="find.popup" timestamp="1587130944842">
<screen x="0" y="23" width="2560" height="1417" />
<state x="-1885" y="398" width="1487" height="939" key="find.popup" timestamp="1588269655118">
<screen x="-2560" y="23" width="2560" height="1417" />
</state>
<state x="870" y="380" width="1487" height="939" key="find.popup/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586367147094" />
<state x="-1690" y="380" width="1487" height="939" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585157716675" />
<state x="-1885" y="398" width="1487" height="939" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@-2560.23.2560.1417" timestamp="1588269655118" />
<state x="675" y="398" width="1487" height="939" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1588253604606" />
<state x="870" y="380" width="1487" height="939" key="find.popup/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586172282780" />
<state x="870" y="380" width="1487" height="939" key="find.popup/2560.-527.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1587130944842" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup" timestamp="1587036951215">
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup" timestamp="1588072154124">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586370499861" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585136385851" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1588072154124" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585834441242" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/2560.-527.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1587036951215" />
</component>

View file

@ -5,7 +5,7 @@ namespace PHPSTORM_META {
/**
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
* Generated on 2020-04-16 17:05:54.
* Generated on 2020-04-23 10:42:35.
*
* @author Barry vd. Heuvel <barryvdh@gmail.com>
* @see https://github.com/barryvdh/laravel-ide-helper

View file

@ -3,7 +3,7 @@
/**
* A helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel 6.18.5 on 2020-04-16 17:05:52.
* Generated for Laravel 6.18.5 on 2020-04-23 10:42:32.
*
* This file should not be included in your code, only analyzed by your IDE!
*

View file

@ -456,6 +456,8 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereOriginStartDate($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingFile[] $booking_files
* @property-read int|null $booking_files_count
* @property float|null $price_balance
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceBalance($value)
*/
class Booking extends \Eloquent {}
}
@ -3272,6 +3274,7 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingFile whereOriginalName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingFile whereSize($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingFile whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingFile extends \Eloquent {}
}

View file

@ -43,7 +43,7 @@ class ReportController extends Controller
private function prozessBookingSearch()
{
$query = Booking::with( 'customer', 'lead', 'service_provider_entries', 'service_provider_entries.service_provider');
$query = Booking::with( 'customer', 'lead', 'service_provider_entries', 'service_provider_entries.service_provider')->select('booking.*');
if(Request::get('filter_travel_date_from') != ""){
$travel_date_from = Carbon::parse(Request::get('filter_travel_date_from'))->format("Y-m-d");
@ -74,6 +74,9 @@ class ReportController extends Controller
->with('price_total_sum', function() use ($query) {
return Util::_number_format($query->sum('price'));
})
->with('price_total_total_sum', function() use ($query) {
return Util::_number_format($query->sum('price_total'));
})
->with('proceed_total_sum', function() use ($query) {
if($query->count() > 200){
return 'max 200 ';
@ -81,7 +84,7 @@ class ReportController extends Controller
$all = $query->get();
$proceeds = 0;
foreach ($all as $v){
$proceeds += $v->proceedsRaw();
$proceeds += $v->proceeds(true);
}
return Util::_number_format($proceeds);
})
@ -116,8 +119,7 @@ class ReportController extends Controller
return $ret === "" ? "-" : $ret;
})
->addColumn('lead.status_id', function (Booking $booking) {
//umbuchen
if($booking->lead->status_id){
if($booking->lead && $booking->lead->status_id){
$color = $booking->lead->status->color;
$icon = "";
if($booking->lead->status_id == 14 && $booking->lead->is_rebook){
@ -166,6 +168,7 @@ class ReportController extends Controller
'BuchungsID',
'Status',
'MyJack Nr.',
'Organisation',
'Reisepreis',
'Erlös',
'Kunde',
@ -182,6 +185,7 @@ class ReportController extends Controller
'abgeschlossen',
);
$total_price = 0;
$total_price_total = 0;
$total_proceeds = 0;
$total_amount_final = 0;
@ -191,14 +195,16 @@ class ReportController extends Controller
foreach ($export->service_provider_entries as $service_provider_entry){
if($new){
$total_price += $export->getPriceRaw();
$total_proceeds += $export->proceedsRaw();
$total_price_total += $export->getPriceTotalRaw();
$total_proceeds += $export->proceeds(true);
}
$total_amount_final += $service_provider_entry->getAmountFinalEurRaw();
$columns[] = array(
'BuchungsID' => $new ? $export->id : "",
'Status' => $new ? $export->lead->status->name : "",
'MyJack Nr.' => $new ? $export->merlin_order_number : "",
'Reisepreis' => $new ? $export->price : "",
'Organisation' => $new ? $export->price : "",
'Reisepreis' => $new ? $export->price_total : "",
'Erlös' => $new ? $export->proceeds() : "",
'Kunde' => $new ? $export->customer->fullName() : "",
'Reisedatum' => $new ? $export->getStartDateFormat() : "",
@ -222,7 +228,8 @@ class ReportController extends Controller
'BuchungsID' => $export->id,
'Status' => $export->lead->status->name,
'MyJack Nr.' => $export->merlin_order_number,
'Reisepreis' => $export->price,
'Organisation' => $export->price,
'Reisepreis' => $export->price_total,
'Erlös' => $export->proceeds(),
'Kunde' => $export->customer->fullName(),
'Reisedatum' => $export->getStartDateFormat(),
@ -244,7 +251,8 @@ class ReportController extends Controller
'BuchungsID' => "Total",
'Status' => "",
'MyJack Nr.' => "",
'Reisepreis' => Util::_number_format($total_price),
'Organisation' => Util::_number_format($total_price),
'Reisepreis' => Util::_number_format($total_price_total),
'Erlös' => Util::_number_format($total_proceeds),
'Kunde' => "",
'Reisedatum' => "",
@ -266,7 +274,7 @@ class ReportController extends Controller
private function prozessProvidersSearch(){
$query = ServiceProviderEntry::with('booking', 'service_provider', 'booking.customer');
$query = ServiceProviderEntry::with('booking', 'service_provider', 'booking.customer')->select('service_provider_entry.*');
if(Request::get('filter_is_cleared') != ""){
$query->where('is_cleared', '=', Request::get('filter_is_cleared'));
}
@ -299,11 +307,24 @@ class ReportController extends Controller
if($query->count() > 200){
return 'max 200 ';
}
$all = $query->get();
$price = 0;
$isset = [];
foreach ($all as $v){
$price += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->getPriceRaw();
$isset[] = $v->booking->lead_id;
}
return Util::_number_format($price);
})
->with('price_total_total_sum', function() use ($query) {
if($query->count() > 200){
return 'max 200 ';
}
$all = $query->get();
$price = 0;
$isset = [];
foreach ($all as $v){
$price += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->getPriceRaw();
$price += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->getPriceTotalRaw();
$isset[] = $v->booking->lead_id;
}
return Util::_number_format($price);
@ -316,14 +337,14 @@ class ReportController extends Controller
$proceeds = 0;
$isset = [];
foreach ($all as $v){
$proceeds += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->proceedsRaw();
$proceeds += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->proceeds(true);
$isset[] = $v->booking->lead_id;
}
return Util::_number_format($proceeds);
/*$all = $query->get();
$proceeds = 0;
foreach ($all as $v){
$proceeds += $v->proceedsRaw();
$proceeds += $v->proceeds(true);
}
return Util::_number_format($proceeds);*/
})
@ -384,6 +405,7 @@ class ReportController extends Controller
'CRM Nr',
'Kunde',
'Reisedatum',
'Organisation',
'Gesamtreisepreis',
'Reiseland',
'Reiseprogramm',
@ -397,13 +419,15 @@ class ReportController extends Controller
);
$isset = [];
$total_price = 0;
$total_price_total = 0;
$total_amount_final = 0;
$total_proceeds = 0;
foreach($exports as $export) {
$new = in_array($export->booking->lead_id, $isset) ? false : true;
if($new){
$total_price += $export->booking->getPriceRaw();
$total_proceeds += $export->booking->proceedsRaw();
$total_price_total += $export->booking->getPriceTotalRaw();
$total_proceeds += $export->booking->proceeds(true);
}
$total_amount_final += $export->getAmountFinalEurRaw();
$columns[] = array(
@ -412,7 +436,8 @@ class ReportController extends Controller
'CRM Nr' => $new ? $export->booking->lead_id : "",
'Kunde' => $new ? $export->booking->customer->name : "",
'Reisedatum' => $new ? $export->booking->getStartDateFormat() : "",
'Gesamtreisepreis' => $new ? $export->booking->price : "",
'Organisation' => $new ? $export->booking->price : "",
'Gesamtreisepreis' => $new ? $export->booking->price_total : "",
'Reiseland' => $new ? $export->booking->travel_country->name : "",
'Reiseprogramm' => $new ? $export->booking->travel_agenda->name : "",
'Reiseteilnehmer' => $new ? $export->booking->pax : "",
@ -431,7 +456,8 @@ class ReportController extends Controller
'CRM Nr' => "",
'Kunde' =>"",
'Reisedatum' => "",
'Gesamtreisepreis' => Util::_number_format($total_price),
'Organisation' => Util::_number_format($total_price),
'Gesamtreisepreis' => Util::_number_format($total_price_total),
'Reiseland' => "",
'Reiseprogramm' => "",
'Reiseteilnehmer' => "",
@ -466,7 +492,7 @@ class ReportController extends Controller
foreach($exports as $export) {
$new = in_array($export->booking->lead_id, $isset) ? false : true;
if($new) {
$payments_total += $export->booking->getServiceProviderPaymentsTotalRaw();
$payments_total += $export->booking->getServiceProviderPaymentsTotal(true);
}
$total_amount_final += $export->getAmountFinalEurRaw();
$columns[] = array(

View file

@ -203,7 +203,6 @@ class BookingController extends Controller
$ret = CustomerMailRepository::loadModal($data);
}
if($data['action'] === "modal-upload-booking-file") {
$ret = view("booking.upload_modal", compact('data'))->render();
}

View file

@ -1,86 +0,0 @@
<?php
namespace App\Http\Controllers\CMS;
use App\Http\Controllers\Controller;
use App\Models\CMSContent;
use App\Models\TravelCountry;
use App\Models\TravelNationality;
use Request;
use Validator;
class CMSContentCountryController extends Controller
{
/*
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'travel_countries' => TravelCountry::all(),
];
return view('cms.content.country.index', $data);
}
public function detail($id, $step = false)
{
$model = TravelCountry::findOrFail($id);
$id = $model->id;
$data = [
'model' => $model,
'id' => $id,
'step' => $step,
'travel_nationalities' => TravelNationality::where('active', true)->get(),
];
return view('cms.content.country.detail', $data);
}
public function store($id)
{
$data = Request::all();
if(isset($data['contact_emails'])){
$data['contact_emails'] = explode('#', str_replace(array("\r\n", "\r", "\n"),"#",$data['contact_emails']));
}else{
$data['contact_emails'] = null;
}
if(!isset($data['contact_lands'])){
$data['contact_lands'] = null;
}
$model = TravelCountry::findOrFail($id);
$model->fill($data);
$model->save();
//travel_nationality_requirement
if (isset($data['travel_nationality_requirement'])) {
foreach ($data['travel_nationality_requirement'] as $travel_nationality_id => $text) {
$model->setNationalityRequirement($travel_nationality_id, $text);
}
}
//TODO for this time
if ($data['action'] == 'contact') {
//we need an update in the old CRM v1 system DB
$tc = \App\Models\Sym\TravelCountry::findOrFail($model->crm_id);
$tc->fill($data);
$tc->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('cms_content_country_detail', [$model->id, $data['action']]));
}
}

View file

@ -62,7 +62,7 @@ class CustomerController extends Controller
public function getCustomers()
{
$query = Customer::with('salutation');
$query = Customer::with('salutation')->select('customer.*');
return \DataTables::eloquent($query)
->addColumn('action_edit', function (Customer $customer) {

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\Customer;
use App\Models\CustomerFile;
use App\Models\CustomerMail;
use App\Models\EmailTemplate;
use App\Repositories\CustomerMailRepository;
use App\Repositories\CustomerFileRepository;
use App\Services\Util;
@ -136,7 +137,7 @@ class CustomerMailController extends Controller
public function getCustomerMails()
{
$query = CustomerMail::with('booking')->with('customer');
$query = CustomerMail::with('booking')->with('customer')->select('customer_mails.*');
return \DataTables::eloquent($query)
->addColumn('action_edit', function (CustomerMail $customer_mail) {
@ -183,6 +184,37 @@ class CustomerMailController extends Controller
->make(true);
}
public function getEmailTemplates()
{
$query = EmailTemplate::where('active', '=', true);
return \DataTables::eloquent($query)
->addColumn('action', function (EmailTemplate $emailTemplate) {
return '<a href="javascript:void(0)" class="btn icon-btn btn-sm btn-primary email-template-action"
data-url="'.route('customer_mail_ajax').'" data-id="'.$emailTemplate->id.'" data-action="load_email_template"
title="Vorlage laden" data-placement="left" rel="tooltip"><span class="ion ion-ios-arrow-dropup"></span></a>';
})
->orderColumn('id', 'id $1')
->orderColumn('subject', 'subject $1')
->orderColumn('message', 'message $1')
->filterColumn('id', function($query, $keyword) {
if($keyword != ""){
$query->where('id', 'LIKE', '%'.$keyword.'%');
}
})
->filterColumn('subject', function($query, $keyword) {
if($keyword != ""){
$query->where('subject', 'LIKE', '%'.$keyword.'%');
$query->OrWhere('message', 'LIKE', '%'.$keyword.'%');
}
})
->rawColumns(['action'])
->make(true);
}
public function uploadAttachment($id){
$fileRepo = new CustomerFileRepository(new CustomerFile());
@ -212,6 +244,20 @@ class CustomerMailController extends Controller
$customer_mail->save();
$status = 'success';
}
if($data['action'] === 'load_email_template'){
$email_template = EmailTemplate::find($data['id']);
$ret = $email_template->message;
$data['subject'] = $email_template->subject;
$status = 'success';
}
if($data['action'] === 'delete_mail_attachment'){
$customer_file = CustomerFile::find($data['id']);
$fileRepo = new CustomerFileRepository($customer_file);
$fileRepo->_set('disk', 'customer');
$ret = $fileRepo->delete();
$status = 'success';
}
if($data['action'] === 'add_attachment'){
$arrContextOptions=array(
"ssl"=>array(
@ -219,10 +265,7 @@ class CustomerMailController extends Controller
"verify_peer_name"=>false,
),
);
$contents = file_get_contents($data['target'], false, stream_context_create($arrContextOptions));
$mine = Util::getMimeFromHeader($http_response_header);
$extension = Util::getExtensionFromMime($mine);
$fileRepo = new CustomerFileRepository(new CustomerFile());
@ -234,7 +277,6 @@ class CustomerMailController extends Controller
$fileRepo->_set('originalName', $data['name']);
$fileRepo->_set('mine', $mine);
$fileRepo->_set('extension', $extension);
return $fileRepo->storeFile($contents);
}
}
@ -246,7 +288,6 @@ class CustomerMailController extends Controller
if (!Request::get('booking_id')) {
return false;
}
$query = CustomerMail::where('booking_id', '=', Request::get('booking_id'));
if (Request::get('customer_mail_dir') == 11) { //draft
$query->where('draft', '=', true);

View file

@ -62,7 +62,7 @@ class LeadController extends Controller
public function getLeads()
{
$query = Lead::with('customer')->with('sf_guard_user')->with('status');
$query = Lead::with('customer')->with('sf_guard_user')->with('status')->select('lead.*');
return \DataTables::eloquent($query)
->addColumn('action_edit', function (Lead $lead) {

View file

@ -79,16 +79,17 @@ class RequestController extends Controller
*/
private function getSearchRequests(){
$query = Booking::with('lead')->with('customer_mails')->where('lead_id', '!=', NULL);
$query = Booking::with('lead')->with('customer')->with('customer_mails')->select('booking.*')->where('lead_id', '!=', NULL);
if(Request::get('full_firstname_search') != ""){
$query->where('participant_firstname', 'LIKE', '%'.Request::get('full_firstname_search').'%');
}
$query->whereHas('customer', function ($q) {
$q->where('firstname', 'LIKE', '%'.Request::get('full_firstname_search').'%');
}); }
if(Request::get('full_lastname_search') != ""){
$query->where('participant_name', 'LIKE', '%'.Request::get('full_lastname_search').'%');
$query->whereHas('customer', function ($q) {
$q->where('name', 'LIKE', '%'.Request::get('full_lastname_search').'%');
});
}
if(Request::get('travel_option_country_id') != ""){
$country_ids = TravelCountry::where('contact_lands', 'LIKE', '%"'.Request::get('travel_option_country_id').'"%')->get()->pluck('id');
$country_ids[] = Request::get('travel_option_country_id');
@ -261,12 +262,12 @@ class RequestController extends Controller
->addColumn('lead_id', function (Booking $booking) {
return '<a data-order="'.$booking->lead_id.'" href="'.make_old_url('leads/'.$booking->lead_id.'/edit').'" data-id="'.$booking->lead_id.'">'.$booking->lead_id.'</a>';
})
->addColumn('participant_firstname', function (Booking $booking) {
/*->addColumn('participant_firstname', function (Booking $booking) {
return '<a data-order="'.$booking->participant_firstname.'" href="'.make_old_url('customer/'.$booking->customer_id.'/edit').'" data-id="'.$booking->customer_id.'">'.$booking->participant_firstname.'</a>';
})
->addColumn('participant_name', function (Booking $booking) {
return '<a data-order="'.$booking->participant_name.'" href="'.make_old_url('customer/'.$booking->customer_id.'/edit').'" data-id="'.$booking->customer_id.'">'.$booking->participant_name.'</a>';
})
})*/
->addColumn('id', function (Booking $booking) {
return '<a data-order="'.$booking->id.'" href="'.make_old_url('booking/'.$booking->id.'/edit').'" data-id="'.$booking->id.'">'.$booking->id.'</a>';
})

View file

@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Models\Airline;
use App\Models\Booking;
use App\Services\Util;
use Request;
class AirlineController extends Controller
@ -28,11 +29,10 @@ class AirlineController extends Controller
public function update(){
$data = Request::all();
if(isset($data['contact_emails'])){
$data['contact_emails'] = explode('#', str_replace(array("\r\n", "\r", "\n"),"#",$data['contact_emails']));
}else{
$data['contact_emails'] = null;
}
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
if($data['id'] === "new"){
$model = Airline::create($data);
}else{

View file

@ -0,0 +1,75 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\EmailTemplate;
use Request;
class EmailTemplateController extends Controller
{
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'email_template' => EmailTemplate::all(),
];
return view('settings.email_template.index', $data);
}
public function load(){
$data = Request::all();
$ret = "";
if(Request::ajax()) {
if($data['action'] === "modal-email-template") {
if($data['id'] === 'new'){
$value = new EmailTemplate();
$value->id = 0;
$value->active = 1;
}else{
$value = EmailTemplate::find($data['id']);
}
$ret = view("settings.email_template.modal", compact('value'))->render();
}
}
return response()->json(['response' => $data, 'html'=>$ret]);
}
public function update(){
$data = Request::all();
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new" || $data['id'] == 0){
$model = EmailTemplate::create($data);
}else{
$model = EmailTemplate::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_email_template'));
}
public function delete($id){
$model = EmailTemplate::findOrFail($id);
$model->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Insurance;
use App\Services\Util;
use Request;
class InsuranceController extends Controller
{
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'insurance' => Insurance::all(),
];
return view('settings.insurance.index', $data);
}
public function update(){
$data = Request::all();
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new"){
$model = Insurance::create($data);
}else{
$model = Insurance::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_insurance'));
}
public function delete($id){
$model = Insurance::findOrFail($id);
$model->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -0,0 +1,57 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\ServiceProvider;
use App\Services\Util;
use Request;
class ServiceProviderController extends Controller
{
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'service_provider' => ServiceProvider::all(),
];
return view('settings.service_provider.index', $data);
}
public function update(){
$data = Request::all();
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
$data['active'] = isset($data['active']) ? true : false;
if($data['id'] === "new"){
$model = ServiceProvider::create($data);
}else{
$model = ServiceProvider::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_service_provider'));
}
public function delete($id){
abort(404, 'Noch keine Funktion');
$model = ServiceProvider::findOrFail($id);
$model->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -0,0 +1,58 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\TravelCompany;
use App\Services\Util;
use Request;
class TravelCompanyController extends Controller
{
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'travel_company' => TravelCompany::all(),
];
return view('settings.travel_company.index', $data);
}
public function update(){
$data = Request::all();
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
$data['active'] = isset($data['active']) ? true : false;
$data['is_allowed_edit_commission'] = isset($data['is_allowed_edit_commission']) ? true : false;
$data['is_inhouse'] = isset($data['is_inhouse']) ? true : false;
if($data['id'] === "new"){
$model = TravelCompany::create($data);
}else{
$model = TravelCompany::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_travel_company'));
}
public function delete($id){
abort(404, 'Noch keine Funktion');
$model = TravelCompany::findOrFail($id);
$model->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -6,13 +6,21 @@ use App\Http\Controllers\Controller;
use App\Models\TravelCountry;
use App\Models\TravelNationality;
use App\Services\Util;
use Request;
class TravelCountryController extends Controller
{
/*
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('admin');
$this->middleware('admin');
}
@ -24,9 +32,9 @@ class TravelCountryController extends Controller
return view('settings.travel_country.index', $data);
}
public function detail($id)
public function detail($id, $step = false)
{
if($id == "new") {
if($id === "new") {
$model = new TravelCountry();
$id = 'new';
$model->active_backend = 1;
@ -34,9 +42,11 @@ class TravelCountryController extends Controller
$model = TravelCountry::findOrFail($id);
$id = $model->id;
}
$data = [
'model' => $model,
'id' => $id,
'step' => $step,
'travel_nationalities' => TravelNationality::where('active', true)->get(),
];
return view('settings.travel_country.detail', $data);
@ -44,45 +54,53 @@ class TravelCountryController extends Controller
public function store(){
public function update($id)
{
$data = Request::all();
$data['is_customer_country'] = isset($data['is_customer_country']) ? true : false;
$data = Request::all();
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
if(!isset($data['contact_lands'])){
$data['contact_lands'] = null;
}
/*
* $data['is_customer_country'] = isset($data['is_customer_country']) ? true : false;
$data['active_frontend'] = isset($data['active_frontend']) ? true : false;
$data['active_backend'] = isset($data['active_backend']) ? true : false;
*/
if($id === "new"){
$data['crm_id'] = 0;
$model = TravelCountry::create($data);
}else{
$model = TravelCountry::find($id);
$model->fill($data);
$model->save();
}
if($data['id'] == "new"){
$data['crm_id'] = 0;
$model = TravelCountry::create($data);
}else{
$model = TravelCountry::find($data['id']);
$model->fill($data);
$model->save();
}
//travel_nationality_requirement
if (isset($data['travel_nationality_requirement'])) {
foreach ($data['travel_nationality_requirement'] as $travel_nationality_id => $text) {
$model->setNationalityRequirement($travel_nationality_id, $text);
}
}
//travel_nationality_requirement
if(isset($data['travel_nationality_requirement'])){
foreach ($data['travel_nationality_requirement'] as $travel_nationality_id => $text){
$model->setNationalityRequirement($travel_nationality_id, $text);
}
}
//TODO for this time
if ($data['action'] === 'contact') {
//we need an update in the old CRM v1 system DB
$tc = \App\Models\Sym\TravelCountry::findOrFail($model->crm_id);
if(!$tc){
$tc = \App\Models\Sym\TravelCountry::create($data);
$model->crm_id = $tc->id;
$model->save();
}else{
$tc->fill($data);
$tc->save();
}
//TODO for this time
//we need an update in the old CRM v1 system DB
$tc = \App\Models\Sym\TravelCountry::find($model->crm_id);
if(!$tc){
$tc = \App\Models\Sym\TravelCountry::create($data);
$model->crm_id = $tc->id;
$model->save();
}else{
$tc->fill($data);
$tc->save();
}
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_travel_country_detail', [$model->id]));
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_travel_country_detail', [$model->id]));
}
public function delete($id){
$model = TravelCountry::findOrFail($id);
@ -100,7 +118,6 @@ class TravelCountryController extends Controller
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -28,7 +28,7 @@ class TravelNationalityController extends Controller
public function update(){
$data = Request::all();
if($data['id'] == "new"){
if($data['id'] === "new"){
$model = TravelNationality::create([
'name' => $data['name'],
'active' => isset($data['active']) ? true : false,

View file

@ -47,10 +47,4 @@ class Airline extends Model
protected $casts = ['contact_emails' => 'array'];
public function getContactEmailsStr($glue=PHP_EOL){
if($this->contact_emails){
return implode($glue, $this->contact_emails);
}
return "";
}
}

View file

@ -6,6 +6,7 @@
namespace App\Models;
use App\Services\Util;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
@ -160,6 +161,8 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereOriginStartDate($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingFile[] $booking_files
* @property-read int|null $booking_files_count
* @property float|null $price_balance
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceBalance($value)
*/
class Booking extends Model
{
@ -236,7 +239,9 @@ class Booking extends Model
'travel_company_id',
'travel_documents',
'price',
'price_canceled',
'price_total',
'price_balance',
'deposit_total',
'final_payment',
'final_payment_date',
@ -317,36 +322,6 @@ class Booking extends Model
2 => 'success',
];
/*
*
* <ul class="tabscontrol flatlist clearfix" id="tabscontrol">
<li class="tab"><a href="#customer" class="active"><?php echo __('Kunde') ?></a></li>
<?php if ($booking->relatedExists('Application')): ?>
<li class="tab"><a href="#application" class="active"><?php echo __('Reiseanmeldung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Confirmation')): ?>
<li class="tab"><a href="#confirmation" class="active"><?php echo __('Reisebestätigung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Invoice')): ?>
<li class="tab"><a href="#invoice" class="active"><?php echo __('Rechnung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Storno')): ?>
<li class="tab"><a href="#storno" class="active"><?php echo __('Storno') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('TravelInsurance')): ?>
<li class="tab"><a href="#travelinsurance" class="active"><?php echo __('Versicherung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('InsuranceCertificate')): ?>
<li class="tab"><a href="#insurance" class="active"><?php echo __('Sicherungsschein') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Voucher')): ?>
<li class="tab"><a href="#voucher" class="active"><?php echo __('Voucher') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Coupon')): ?>
<li class="tab"><a href="#coupon" class="active"><?php echo __('Gutscheine') ?></a></li>
<?php endif; ?>
*/
/*public function branch()
{
@ -535,15 +510,69 @@ class Booking extends Model
public function getPriceAttribute()
{
// 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
return number_format(($this->attributes['price']), 2, ',', '.');
return Util::_number_format($this->attributes['price']);
}
public function getPriceRaw()
{
return $this->attributes['price'];
}
public function getPriceCanceledAttribute()
{
return Util::_number_format($this->attributes['price_canceled']);
}
public function getPriceCanceledRaw()
{
return $this->attributes['price_canceled'];
}
public function getPriceTotalAttribute()
{
return Util::_number_format($this->attributes['price_total']);
}
public function getPriceTotalRaw()
{
return $this->attributes['price_total'];
}
public function getCanceledAttribute()
{
return Util::_number_format($this->attributes['canceled']);
}
public function getCanceledRaw()
{
return $this->attributes['canceled'];
}
public function getPriceBalanceAttribute()
{
return Util::_number_format($this->attributes['price_balance']);
}
public function getPriceBalanceRaw()
{
return $this->attributes['price_balance'];
}
public function getDepositTotalAttribute()
{
return Util::_number_format($this->attributes['deposit_total']);
}
public function getDepositTotalRaw()
{
return $this->attributes['deposit_total'];
}
public function getFinalPaymentAttribute()
{
return Util::_number_format($this->attributes['final_payment']);
}
public function getFinalPaymentRaw()
{
return $this->attributes['final_payment'];
}
public function findBeforeDraftItemRelation($reid)
{
$before = false;
@ -585,56 +614,48 @@ class Booking extends Model
return Carbon::parse($this->attributes['booking_date'])->format(\Util::formatDateDB());
}
//erlös #getRevenueFactor
public function proceedsRaw(){
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
$total += $entry->amount / $entry->factor;
}
return $this->attributes['price'] - $total;
public function getFinalPaymentDateFormat(){
if(!$this->attributes['final_payment_date']){ return ""; }
return Carbon::parse($this->attributes['final_payment_date'])->format(\Util::formatDateDB());
}
public function isCanceled(){
return ($this->attributes['canceled'] > 0);
}
//erlös #getRevenueFactor
public function proceeds(){
$proceeds = $this->attributes['price']
// - $this->getServiceTotal()
// - $this->getServiceFee()
- $this->getServiceProviderEntriesAmountFactorTotal();
return number_format(($proceeds), 2, ',', '.');
public function proceeds($raw = false){
$proceeds = $this->attributes['price'] - $this->attributes['price_balance'] - $this->getServiceProviderPaymentsFactorTotal(true);
return $raw ? $proceeds : Util::_number_format($proceeds);
}
public function getServiceProviderEntriesAmountFactorTotal()
public function getServiceTotal($raw = false)
{
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
foreach ($this->booking_service_items as $booking_service_item){
$total += $booking_service_item->getServicePriceRaw();
}
return $raw ? $total : Util::_number_format($total);
}
public function getServiceProviderPaymentsFactorTotal($raw = false)
{
$total = 0;
foreach ($this->service_provider_entries as $entry){
$total += $entry->amount / $entry->factor;
}
return $total;
return $raw ? $total : Util::_number_format($total);
}
public function getServiceProviderPaymentsTotalRaw()
public function getServiceProviderPaymentsTotal($raw = false)
{
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
foreach ($this->service_provider_entries as $entry){
$total += $entry->amount;
}
return $total;
}
public function getServiceProviderPaymentsTotal()
{
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
$total += $entry->amount;
}
return number_format(($total), 2, ',', '.');
return $raw ? $total : Util::_number_format($total);
}
public function getKontoNumber(){

View file

@ -6,6 +6,7 @@
namespace App\Models;
use App\Services\Util;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
@ -81,4 +82,14 @@ class BookingServiceItem extends Model
{
return $this->belongsTo(TravelCompany::class);
}
public function getServicePriceAttribute()
{
return Util::_number_format($this->attributes['service_price']);
}
public function getServicePriceRaw()
{
return $this->attributes['service_price'];
}
}

View file

@ -0,0 +1,39 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class EmailTemplate
*
* @property int $id
* @property string $subject
* @property string $message
* @property bool $active
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @package App\Models
*/
class EmailTemplate extends Model
{
protected $connection = 'mysql';
protected $table = 'email_templates';
protected $casts = [
'active' => 'bool'
];
protected $fillable = [
'subject',
'message',
'active'
];
}

42
app/Models/Insurance.php Normal file
View file

@ -0,0 +1,42 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class Insurance
*
* @property int $id
* @property string $name
* @property string $name_full
* @property string $contact_emails
* @property bool $active
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @package App\Models
*/
class Insurance extends Model
{
protected $connection = 'mysql';
protected $table = 'insurances';
protected $casts = [
'active' => 'bool',
'contact_emails' => 'array'
];
protected $fillable = [
'name',
'contact_emails',
'active'
];
}

View file

@ -33,14 +33,23 @@ class ServiceProvider extends Model
protected $table = 'service_provider';
public $timestamps = false;
public static $types = [
'payment' => 'payment',
'discount' => 'discount',
];
protected $casts = [
'dollar' => 'bool'
];
'dollar' => 'bool',
'active' => 'bool',
'contact_emails' => 'array'
];
protected $fillable = [
'name',
'dollar',
'type'
'type',
'contact_emails',
'active'
];
public function service_provider_entries()

View file

@ -6,6 +6,7 @@
namespace App\Models;
use App\Services\Util;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
@ -44,15 +45,19 @@ class TravelCompany extends Model
protected $casts = [
'percentage' => 'float',
'is_allowed_edit_commission' => 'bool',
'is_inhouse' => 'bool'
];
'is_inhouse' => 'bool',
'active' => 'bool',
'contact_emails' => 'array'
];
protected $fillable = [
'name',
'percentage',
'is_allowed_edit_commission',
'is_inhouse'
];
'is_inhouse',
'contact_emails',
'active'
];
public function bookings()
{
@ -63,4 +68,19 @@ class TravelCompany extends Model
{
return $this->hasMany(BookingServiceItem::class);
}
public function setPercentageAttribute($value)
{
$this->attributes['percentage'] = Util::_clean_float($value);
}
public function getPercentageAttribute()
{
return Util::_number_format($this->attributes['percentage']);
}
public function getPercentageRaw()
{
return isset($this->attributes['percentage']) ? $this->attributes['percentage'] : 0;
}
}

View file

@ -118,13 +118,6 @@ class TravelCountry extends Model
}
}
public function getContactEmailsStr($glue=PHP_EOL){
if(isset($this->contact_emails)){
return implode($glue, $this->contact_emails);
}
return "";
}
public function getContactLandsArray(){
$ret = [];
if($this->contact_lands){

View file

@ -9,6 +9,7 @@ use App\Models\Booking;
use App\Models\CMSContent;
use App\Models\CustomerFile;
use App\Models\CustomerMail;
use App\Services\Placeholder;
use App\Services\Util;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Mail;
@ -54,6 +55,7 @@ class CustomerMailRepository extends BaseRepository {
foreach ($customer_files as $file) {
$file->customer_id = $booking->customer_id;
$file->customer_mail_id = $customer_mail->id;
$file->identifier = 'mail';
$file->save();
}
@ -86,6 +88,7 @@ class CustomerMailRepository extends BaseRepository {
foreach ($customer_files as $file) {
$file->customer_id = $booking->customer_id;
$file->customer_mail_id = $customer_mail->id;
$file->identifier = 'mail';
$file->save();
}
}
@ -170,26 +173,8 @@ class CustomerMailRepository extends BaseRepository {
}
private function prepareContent($booking, $content){
$first_name = $booking->customer->firstname;
$last_name = $booking->customer->name;
$title = $booking->customer->title;
$country = $booking->travel_country_id ? $booking->travel_country->name : "-";
$program = $booking->travelagenda_id ? $booking->travel_agenda->name : "-";
$salutation = $booking->customer->salutation->name;
$start_date = $booking->getStartDateFormat();
$end_date = $booking->getEndDateFormat();
$booking_date = $booking->getBookingDateFormat();
$airline = $booking->airline ? $booking->airline->name_full : '-';
$dear = $booking->customer->salutation_id == 1 ? 'geehrter' : 'geehrte';
$search = ['#geehrte/r#', '#Anrede#', '#Titel#', '#Vorname#', '#Nachname#', '#Reiseland#', '#Programm#', '#Anreisedatum#', '#Abreisedatum#', '#Buchungsdatum#', '#Airline#'];
$replace = [$dear, $salutation, $title, $first_name, $last_name, $country, $program, $start_date, $end_date, $booking_date, $airline];
$content = str_replace($search, $replace, $content);
$content = Placeholder::replaceBooking($booking, $content);
return $content;
}
private static function prepareContactMails($value){
@ -236,6 +221,7 @@ class CustomerMailRepository extends BaseRepository {
$value->recipient = "";
$value->cc = "";
$value->bcc = "";
$value->lead_title_id = "";
/*Ansicht*/
if ($data['action'] === "show-customer-mail") {
if (isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])) {
@ -255,6 +241,8 @@ class CustomerMailRepository extends BaseRepository {
$value->id = $customer_mail->booking_id;
$value->booking = $booking;
$value->show = 'single';
$value->lead_title_id = " - (".$value->booking->lead_id.")";
$tmp = [];
$tmp['email'] = $customer_mail->email ? $customer_mail->email : "";
@ -288,21 +276,21 @@ class CustomerMailRepository extends BaseRepository {
if ($data['action'] === "new-customer-mail") {
$value->id = "";
$value->draft = false;
$lead_id = "-";
$value->lead_title_id = "-";
//singel
if (isset($data['booking_id']) && $booking = Booking::find($data['booking_id'])) {
$value->id = $data['booking_id'];
$value->booking = $booking;
$value->show = 'single';
$value->draft = true;
$lead_id = " - (".$value->booking->lead_id.")";
$value->lead_title_id = " - (".$value->booking->lead_id.")";
}else{
//multi
$value->show = 'multi';
}
$value->customers = $data['customers'];
$value->subject = $lead_id ;
$value->subject = $value->lead_title_id;
$value->message = CMSContent::getContentBySlug('mailvorlage');
$value->s_placeholder = "Betreff der E-Mail";
$value->m_placeholder = "Nachricht der E-Mail";
@ -333,6 +321,7 @@ class CustomerMailRepository extends BaseRepository {
$value->booking = $booking;
$value->message = "";
$value->subject = "";
$value->lead_title_id = " - (".$value->booking->lead_id.")";
$value->s_placeholder = "Betreff des Kunden";
$value->m_placeholder = "Nachricht des Kunden";
if(isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])){

View file

@ -100,6 +100,16 @@ class FileRepository extends BaseRepository {
], 200);
}
public function delete(){
if($this->model){
if(Storage::disk($this->disk)->exists( $this->model->dir.$this->model->filename )){
Storage::disk($this->disk)->delete($this->model->dir.$this->model->filename);
}
$this->model->delete();
return true;
}
return false;
}
private function makeFilename(){
$originalNameWithoutExt = substr($this->originalName, 0, strlen($this->originalName) - strlen($this->extension) - 1);
$this->filename = Util::sanitize($originalNameWithoutExt, true, false, true);

View file

@ -112,6 +112,10 @@ class HTMLHelper
}
public static function getActiveIcon($active){
return $active ? '<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
}
public static function getRolesOptions($id = 0){
$ret = "";
foreach (self::$roles as $role_id => $value){

View file

@ -0,0 +1,68 @@
<?php
namespace App\Services;
use App\Models\Booking;
class Placeholder
{
public static $booking = [
'dear' => '#geehrte/r#',
'salutation' => '#Anrede#',
'title' => '#Titel#',
'first_name' => '#Vorname#',
'last_name' => '#Nachname#',
'country' => '#Reiseland#',
'program' => '#Programm#',
'start_date' => '#Anreisedatum#',
'end_date' => '#Abreisedatum#',
'booking_date' => '#Buchungsdatum#',
'airline' => '#Airline#'
];
public static function getBookingQuill(){
$ret = "";
foreach (self::$booking as $key => $value) {
$value = str_replace('#', '', $value);
$ret .= "{id: '".$value."', label: '".$value."'},"."\n";
}
return $ret;
}
public static function getBookingOptions(){
$ret = "";
foreach (self::$booking as $key => $value) {
$value = str_replace('#', '', $value);
$ret .= '<option value="'.$value.'">'.$value.'</option>'."\n";
}
return $ret;
}
public static function replaceBooking(Booking $booking, $content)
{
$dear = $booking->customer->salutation_id == 1 ? 'geehrter' : 'geehrte';
$first_name = $booking->customer->firstname;
$last_name = $booking->customer->name;
$title = $booking->customer->title;
$country = $booking->travel_country_id ? $booking->travel_country->name : "-";
$program = $booking->travelagenda_id ? $booking->travel_agenda->name : "-";
$salutation = $booking->customer->salutation->name;
$start_date = $booking->getStartDateFormat();
$end_date = $booking->getEndDateFormat();
$booking_date = $booking->getBookingDateFormat();
$airline = $booking->airline ? $booking->airline->name_full : '-';
$search = [];
$replace = [];
foreach (self::$booking as $key => $value) {
$search[] = $value;
$replace[] = ${$key};
}
$content = str_replace($search, $replace, $content);
$content = preg_replace('/<placeholder.*?>(.*?)<\/placeholder>/', '$1', $content);
$content = preg_replace('/<span contenteditable="false">(.*?)<\/span>/', '$1', $content);
return $content;
}
}

View file

@ -64,13 +64,6 @@ class Util
}
return "";
}
public function getContactEmailsStr($glue=PHP_EOL){
if(isset($this->contact_emails)){
return implode($glue, $this->contact_emails);
}
return "";
}
public static function _clean_float($value){
$groups = explode(".", preg_replace("/[^0-9.-]/", "", str_replace(',', '.', $value)));

View file

@ -28,21 +28,27 @@ return [
'cms-cn' => ['name' => 'ADMIN CMS > Inhalte' , 'color' => 'secondary'],
'cms-cn-in' => ['name' => 'ADMIN CMS > Inhalte > Infos' , 'color' => 'secondary'],
'cms-cn-al' => ['name' => 'ADMIN CMS > Inhalte > Inhalte' , 'color' => 'secondary'],
'cms-cn-co' => ['name' => 'ADMIN CMS > Inhalte > Länder' , 'color' => 'secondary'],
'cms-cn-au' => ['name' => 'ADMIN CMS > Inhalte > Autor' , 'color' => 'secondary'],
],
2 => [
'sua-st' => ['name' => 'SUPERADMIN > Einstellungen' , 'color' => 'superadmin'],
'sua-st-tp' => ['name' => 'SUPERADMIN > Einstellungen > Reisprogramme' , 'color' => 'superadmin'],
'sua-st-tc' => ['name' => 'SUPERADMIN > Einstellungen > Reiseländer' , 'color' => 'superadmin'],
'sua-st-tn' => ['name' => 'SUPERADMIN > Einstellungen > Nationalitäten' , 'color' => 'superadmin'],
'sua-st-bs' => ['name' => 'SUPERADMIN > Einstellungen > Reisestatus' , 'color' => 'superadmin'],
'sua-st-ke' => ['name' => 'SUPERADMIN > Einstellungen > Keywords' , 'color' => 'superadmin'],
'sua-st-al' => ['name' => 'SUPERADMIN > Einstellungen > Airline' , 'color' => 'superadmin'],
'sua-st-et' => ['name' => 'SUPERADMIN > Einstellungen > E-Mail Vorlagen' , 'color' => 'superadmin'],
'sua-st-ke' => ['name' => 'SUPERADMIN > Einstellungen > Keywords' , 'color' => 'superadmin'],
'sua-st-sp' => ['name' => 'SUPERADMIN > Einstellungen > Leistungsträger' , 'color' => 'superadmin'],
'sua-st-tn' => ['name' => 'SUPERADMIN > Einstellungen > Nationalitäten' , 'color' => 'superadmin'],
'sua-st-co' => ['name' => 'SUPERADMIN > Einstellungen > Reiseländer' , 'color' => 'superadmin'],
'sua-st-tp' => ['name' => 'SUPERADMIN > Einstellungen > Reisprogramme' , 'color' => 'superadmin'],
'sua-st-bs' => ['name' => 'SUPERADMIN > Einstellungen > Reisestatus' , 'color' => 'superadmin'],
'sua-st-tc' => ['name' => 'SUPERADMIN > Einstellungen > Veranstalter' , 'color' => 'superadmin'],
'sua-st-in' => ['name' => 'SUPERADMIN > Einstellungen > Versicherungen' , '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'],
],
],
'roles' => [

View file

@ -49,6 +49,7 @@ class CreateBookingTable extends Migration
$table->decimal('price', 10, 2)->nullable();
$table->decimal('price_canceled', 10, 2)->nullable();
$table->decimal('price_total', 10, 2)->nullable();
$table->decimal('price_balance', 10, 2)->nullable();
$table->decimal('deposit_total', 10, 2)->nullable();
$table->decimal('final_payment', 10, 2)->nullable();
$table->date('final_payment_date')->nullable();

View file

@ -23,11 +23,10 @@ class CreateTravelCompanyTable extends Migration
$table->decimal('percentage', 6, 2)->nullable();
$table->tinyInteger('is_allowed_edit_commission')->nullable()->default(0);
$table->tinyInteger('is_inhouse')->nullable()->default(0);
$table->text('contact_emails')->nullable();
$table->boolean('active')->default(true);
});
}
/**

View file

@ -22,6 +22,8 @@ class CreateServiceProviderTable extends Migration
$table->string('name', 255);
$table->unsignedTinyInteger('dollar')->nullable()->default(0);
$table->string('type', 255)->nullable();
$table->text('contact_emails')->nullable();
$table->boolean('active')->default(true);
$table->index('type', 'service_provider_type_idx');

View file

@ -0,0 +1,35 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateInsurancesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('insurances', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 255);
$table->text('contact_emails')->nullable();
$table->boolean('active')->default(true);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('insurances');
}
}

View file

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateEmailTemplatesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('email_templates', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('subject', 255);
$table->text('message')->nullable();
$table->boolean('active')->default(true);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('email_templates');
}
}

View file

@ -385,6 +385,21 @@ figcaption {
border-left:1px solid #768394
}
.btn-outline-next {
border-color: #8897AA;
background: transparent;
color: #8897AA;
}
.btn-outline-next:hover {
border-color: transparent;
background: #8897AA;
color: #fff;
}
.badge-md {
font-size: 0.95em;
}
@ -444,3 +459,14 @@ div.dropzone.dz-drag-hover {
border-style: dashed;
}
.ql-picker.ql-placeholder {
width: 102px;
}
.ql-picker.ql-placeholder > span.ql-picker-label::before {
content: 'Platzhalter';
}
.ql-picker.ql-placeholder > span.ql-picker-options > span.ql-picker-item::before {
content: attr(data-label);
}

View file

@ -196,11 +196,13 @@ function ajax_object_action(event, object, callback) {
event.preventDefault();
var data = {};
$.each(object.data(), function(index, value){
data[index] = value;
if(typeof value !== 'object'){
data[index] = value;
}
});
var url = data['url'];
//console.log(data);
//console.log(url);
console.log(data);
console.log(url);
$.ajax({
url: url,
data: data,

View file

@ -65,6 +65,7 @@
<th>BuchungsID</th>
<th>{{__('Status')}}</th>
<th>{{__('MyJack Nr.')}}</th>
<th>{{__('Organisation')}}</th>
<th>{{__('Reisepreis')}}</th>
<th>{{__('Erlös')}}</th>
<th>{{__('Kunde')}}</th>
@ -79,6 +80,7 @@
<tr>
<td colspan="3">Total</td>
<td id="price_total_sum">0</td>
<td id="price_total_total_sum">0</td>
<td id="proceed_total_sum">0</td>
<td colspan="5"></td>
</tr>
@ -111,6 +113,7 @@
{ data: 'lead.status_id', name: 'lead.status_id', orderable: false, searchable: false },
{ data: 'merlin_order_number', name: 'merlin_order_number' },
{ data: 'price', name: 'price' },
{ data: 'price_total', name: 'price_total' },
{ data: 'proceeds', name: 'proceeds' },
{ data: 'customer.fullName', name: 'customer.fullName' },
{ data: 'start_date', name: 'start_date' },
@ -127,6 +130,7 @@
},
drawCallback: function (settings) {
$('#price_total_sum').html(settings.json.price_total_sum);
$('#price_total_total_sum').html(settings.json.price_total_total_sum);
$('#proceed_total_sum').html(settings.json.proceed_total_sum);
}
});

View file

@ -61,6 +61,7 @@
<th>BuchungsID</th>
<th>{{__('Reiseveranstalter')}}</th>
<th>{{__('MyJack Nr.')}}</th>
<th>{{__('Organisation')}}</th>
<th>{{__('Reisepreis')}}</th>
<th>{{__('Erlös')}}</th>
<th>{{__('Kunde')}}</th>
@ -74,6 +75,7 @@
<tr>
<td colspan="4">Total</td>
<td id="price_total_sum">0</td>
<td id="price_total_total_sum">0</td>
<td id="proceed_total_sum">0</td>
<td colspan="3"></td>
</tr>
@ -109,6 +111,7 @@
{ data: 'service_provider.name', name: 'service_provider.name' },
{ data: 'booking.merlin_order_number', name: 'booking.merlin_order_number' },
{ data: 'booking.price', name: 'booking.price' },
{ data: 'booking.price_total', name: 'booking.price_total' },
{ data: 'booking.proceeds', name: 'booking.proceeds' },
{ data: 'booking.customer.fullName', name: 'booking.customer.fullName' },
{ data: 'booking.start_date', name: 'booking.start_date' },
@ -124,6 +127,7 @@
},
drawCallback: function (settings) {
$('#price_total_sum').html(settings.json.price_total_sum);
$('#price_total_total_sum').html(settings.json.price_total_total_sum);
$('#proceed_total_sum').html(settings.json.proceed_total_sum);
}
});

View file

@ -111,7 +111,6 @@
<input type="hidden" name="booking_id" value="{{$booking->id}}">
<input type="hidden" name="customer_mail_dir" value="0">
<input type="hidden" name="customer_mail_country" value="">
<table id="datatables-customer-mails" class="table table-striped">
<thead>
<tr>
@ -120,7 +119,6 @@
<th>{{__('Betreff')}}</th>
<th>{{__('Datum')}}</th>
<th style="width: 100px">{{__('#')}}</th>
</tr>
</thead>
<tbody class="">

View file

@ -4,15 +4,123 @@
</h6>
<div class="collapse" id="collapseBookingPrice">
<div class="card-body row">
<div class="form-group col-sm-6">
<label class="form-label" for="price">{{ __('Gesamtpreis Organisation') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
<div class="col-sm-4">
<div class="form-group ">
<label class="form-label" for="price">{{ __('Gesamtpreis Organisation') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price', $booking->price, array('placeholder'=>__('Gesamtpreis'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
</div>
</div>
<div class="form-group ">
<label class="form-label" for="service_total">{{ __('Gesamtpreis Vermittlung') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('service_total', $booking->getServiceTotal(), array('placeholder'=>__('Gesamtpreis Vermittlung'), 'class'=>'form-control', 'id'=>'service_total', 'readonly')) }}
</div>
</div>
@if($booking->isCanceled() > 0)
<div class="form-group ">
<label class="form-label" for="price_canceled">{{ __('Storno Betrag') }} <span class="text-muted">{{ __('(Forderung)') }}</span></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price_canceled', $booking->price_canceled, array('placeholder'=>__('Storno Betrag'), 'class'=>'form-control', 'id'=>'price_canceled', 'readonly')) }}
</div>
</div>
<div class="form-group ">
<label class="form-label" for="price_balance">{{ __('Restbetrag') }} <span class="text-muted">{{ __('(nicht zu zahlen)') }}</span></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price_balance', $booking->price_balance, array('placeholder'=>__('Restbetrag'), 'class'=>'form-control', 'id'=>'price_balance', 'readonly')) }}
</div>
</div>
@else
<div class="form-group ">
<label class="form-label" for="price_total">{{ __('Gesamtpreis Reise') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price_total', $booking->price_total, array('placeholder'=>__('Gesamtpreis Reise'), 'class'=>'form-control', 'id'=>'price_total', 'readonly')) }}
</div>
</div>
@endif
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="form-label" for="price">{{ __('Gesamtpreis Leistungsträger') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('price', $booking->getServiceProviderPaymentsFactorTotal(), array('placeholder'=>__('Gesamtpreis Leistungsträger'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
</div>
</div>
<div class="form-group">
<label class="form-label" for="proceeds">{{ __('Nettomarge bei Eigenveranstaltung') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('proceeds', $booking->proceeds(), array('placeholder'=>__('Erlös'), 'class'=>'form-control', 'id'=>'proceeds', 'readonly')) }}
</div>
</div>
@if($booking->isCanceled() > 0)
<div class="form-group">
<label class="form-label" for="canceled">{{ __('Storno in %') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('canceled', $booking->canceled, array('placeholder'=>__('Storno in %'), 'class'=>'form-control', 'id'=>'canceled', 'readonly')) }}
</div>
</div>
@endif
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="form-label" for="deposit_total">{{ __('Anzahlung') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('deposit_total', $booking->deposit_total, array('placeholder'=>__('Anzahlung'), 'class'=>'form-control', 'id'=>'deposit_total', 'readonly')) }}
</div>
</div>
<div class="form-group">
<label class="form-label" for="final_payment">{{ __('Restzahlung') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('final_payment', $booking->final_payment, array('placeholder'=>__('Restzahlung'), 'class'=>'form-control', 'id'=>'final_payment', 'readonly')) }}
</div>
</div>
<div class="form-group">
<label class="form-label" for="final_payment_date">{{ __('Restzahlung bis') }}</label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('final_payment_date', $booking->getFinalPaymentDateFormat(), array('placeholder'=>__('Restzahlung bis'), 'class'=>'form-control', 'id'=>'final_payment_date', 'readonly')) }}
</div>
{{ Form::text('price', $booking->price, array('placeholder'=>__('Gesamtpreis'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
</div>
</div>
</div>
</div>
</div>

View file

@ -40,7 +40,7 @@
</style>
<div class="float-right mt-3">
<a href="{{route('bookings')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
<a href="{{route('requests')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-sm btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
</div>
<h4 class="font-weight-bold py-3 mb-1">
@ -260,11 +260,11 @@
"drawCallback": function( settings ) {
$('#datatables-customer-mails [rel="tooltip"]').tooltip({trigger: "hover"});
$('#datatables-customer-mails .customer-mail-ajax-action').on('click', function (event) {
ajax_object_action(event, $(this), callback_ajax_data_table);
ajax_object_action(event, $(this), callback_customer_mails_data_table);
});
}
});
function callback_ajax_data_table(data) {
function callback_customer_mails_data_table(data) {
if(data.status === 'success'){
oTable.draw();
}

View file

@ -1,210 +0,0 @@
@extends('layouts.layout-2')
@section('content')
{!! Form::open(['url' => route('cms_content_country_store', [$id]), 'class' => 'form-horizontal']) !!}
<h4 class="font-weight-bold py-3 mb-1">
Reiseland Inhalte {{ $model->name }}
<div class="float-right">
<a href="{{route('cms_content_country')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
</div>
</h4>
<div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link @if($step == false) active show @endif" data-toggle="tab" href="#navs-site">Seite</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'form') active show @endif" data-toggle="tab" href="#navs-form">Formular</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'contact') active show @endif" data-toggle="tab" href="#navs-contact">Kontaktdaten</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'travel') active show @endif" data-toggle="tab" href="#navs-travel">Einreisebestimmungen</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade @if($step == false) active show @endif" id="navs-site">
<div class="card-body">
<br>
<h4>Inhalte für Seite</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote']) }}
</div>
</div>
<div class="form-row">
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('active_frontend', 0) }}
{{ Form::checkbox('active_frontend', 1, $model->active_frontend, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar im Frontend (Suche)</span>
</label>
</div>
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('active_backend', 0) }}
{{ Form::checkbox('active_backend', 1, $model->active_backend, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar im Backend CRM</span>
</label>
</div>
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('is_customer_country', 0) }}
{{ Form::checkbox('is_customer_country', 1, $model->is_customer_country, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar bei Kunden</span>
</label>
</div>
</div>
<button type="submit" name="action" value="" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'form') active show @endif" id="navs-form">
<div class="card-body">
<br>
<h4>Inhalte für Formular</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<button type="submit" name="action" value="form" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'contact') active show @endif" id="navs-contact">
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_lands">Kontaktdaten aus folgenden Ländern nehmen</label>
<select class="selectpicker" data-style="btn-default" name="contact_lands[]" multiple>
{!! HTMLHelper::getTravelCountriesOptions($model->contact_lands) !!}
</select>
<em>Land/Länder müssen angeben sein, die Kontaktdaten des Landes (Reiselandes) werden nacheinander im PDF (RA, RB, Voucher) eingefügt.</em>
</div>
</div>
<hr>
<h4>E-Mail-Adressen</h4>
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="contact_headline">Der Agenturen für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
{{ Form::textarea('contact_emails', $model->getContactEmailsStr(), ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<hr>
<h4>Kontaktdaten PDF</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_headline">Überschrift</label>
{{ Form::text('contact_headline', $model->contact_headline, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_1">Kontaktfeld 1 </label>
{{ Form::textarea('contact_text_1', $model->contact_text_1, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_2">Kontaktfeld 2 </label>
{{ Form::textarea('contact_text_2', $model->contact_text_2, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_3">Kontaktfeld 3 </label>
{{ Form::textarea('contact_text_3', $model->contact_text_3, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_4">Kontaktfeld 4</label>
{{ Form::textarea('contact_text_4', $model->contact_text_4, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<hr>
<h4>Rückfragen PDF</h4>
<p>Übergreifende Texte für jedes Land sind unter: <a href="{{route('cms_content_all')}}">Inhalte Allgemein</a><br>
- PDF Footer Hinweise Rückfragen<br>
- PDF Footer Hinweise Reisebedingungen<br>
- PDF Absender<br>
</p>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_text_4">Kontakt Footer</label>
{{ Form::textarea('contact_footer', $model->contact_footer, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<button type="submit" name="action" value="contact" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'travel') active show @endif" id="navs-travel">
<div class="card-body">
<br>
<h4>Einreisebestimmungen</h4>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="travel_nationality_requirement_{{$travel_nationality->id}}">{{ $travel_nationality->name }}{{ __('(HTML)') }} </label>
{{ Form::textarea('travel_nationality_requirement['.$travel_nationality->id.']', $model->getNationalityRequirement($travel_nationality->id), ['class' => 'form-control summernote-small', 'id'=>'travel_nationality_requirement_'.$travel_nationality->id]) }}
</div>
</div>
@endforeach
<button type="submit" name="action" value="travel" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
</div>
</div>
<div class="text-left mt-3">
<a href="{{route('cms_content_country')}}" class="btn btn-default">{{ __('back') }}</a>
</div>
{!! Form::close() !!}
<script>
$( document ).ready(function() {
$('input[name="active_frontend"]').on('change', function () {
if($(this).prop( "checked")){
$('#show_active_frontend').show("slow");
}else{
$('#show_active_frontend').hide("slow");
}
});
});
</script>
@endsection

View file

@ -26,7 +26,7 @@
</td>
<td>{{\App\Services\Util::_format_date($booking_application->updated_at, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['booking_application', $booking_application->id, true]) }}" data-name="Reiseanmeldung" class="btn btn-xs btn-primary add-file-to-attachment add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['booking_application', $booking_application->id, true]) }}" data-name="Reiseanmeldung.pdf" class="btn btn-xs btn-primary add-file-to-attachment add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
@ -51,7 +51,7 @@
</td>
<td>{{\App\Services\Util::_format_date($booking_confirmation->updated_at, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id]) }}" data-name="Reisebestätigung" class="btn btn-xs btn-primary add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id]) }}" data-name="Reisebestätigung.pdf" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
@ -74,7 +74,7 @@
</td>
<td>{{\App\Services\Util::_format_date($booking_storno->updated_at, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['booking_storno', $booking_storno->id]) }}" data-name="Stornobestätigung" class="btn btn-xs btn-primary add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['booking_storno', $booking_storno->id]) }}" data-name="Stornobestätigung.pdf" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
@ -99,7 +99,7 @@
</td>
<td>{{\App\Services\Util::_format_date($coupon->issue_date, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['coupon', $coupon->id]) }}" data-name="Gutschein {{$coupon->number}}" class="btn btn-xs btn-primary add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['coupon', $coupon->id]) }}" data-name="Gutschein_{{$coupon->number}}.pdf" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
@ -122,7 +122,7 @@
</td>
<td>{{\App\Services\Util::_format_date($booking_voucher->updated_at, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['booking_vouchers', $booking_voucher->id]) }}" data-name="Voucher-ID {{$booking_voucher->id}}" class="btn btn-xs btn-primary add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['booking_vouchers', $booking_voucher->id]) }}" data-name="Voucher-ID_{{$booking_voucher->id}}.pdf" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>
@ -145,7 +145,7 @@
</td>
<td>{{\App\Services\Util::_format_date($insurance_certificate->updated_at, 'date')}}</td>
<td>
<button data-target="{{ route('customer_file_show', ['insurance_certificates', $insurance_certificate->id]) }}" data-name="Sicherungsschein Nr. {{$insurance_certificate->internal_id}}" class="btn btn-xs btn-primary add-file-to-attachment"
<button data-target="{{ route('customer_file_show', ['insurance_certificates', $insurance_certificate->id]) }}" data-name="Sicherungsschein-Nr-{{$insurance_certificate->internal_id}}.pdf" class="btn btn-xs btn-primary add-file-to-attachment"
title="als Anhang hinzufügen" data-placement="left" rel="tooltip">
<i class="fa fa-cloud-download-alt"></i>
</button>

View file

@ -120,6 +120,7 @@
<div class="form-row">
{{ Form::hidden('lead_title_id', $value->lead_title_id, array('id'=>'lead_title_id')) }}
<div class="form-group col">
<label for="subject" class="form-label">Betreff</label>
{{ Form::text('subject', $value->subject, array('placeholder'=>$value->s_placeholder, 'id'=>'subject', 'class'=>'form-control', 'required')) }}
@ -129,7 +130,9 @@
<div class="form-group mb-1">
<label class="form-label" for="message">Nachricht</label>
@if($value->show === 'single' || $value->show === 'multi')
<div class="float-right small">Vorlage unter: <a href="{{route('cms_content_all')}}">CMS->Inhalte->Allgemein</a> Slug:mailvorlage</div>
@if(Auth::user()->isPermission('sua-st-et'))
<div class="float-right small">Vorlage unter: <a href="{{route('admin_settings_email_template')}}">Einstellungen -> E-Mail Vorlagen</a></div>
@endif
@endif
<div id="message-editor-toolbar">
<span class="ql-formats">
@ -156,12 +159,38 @@
<span class="ql-formats">
<button class="ql-clean"></button>
</span>
<span class="ql-formats">
<select class="ql-placeholder">
{!! \App\Services\Placeholder::getBookingOptions() !!}
</select>
</span>
</div>
<div id="message-editor" style="height: 400px">{!! $value->message !!}</div>
{{ Form::textarea('message', $value->message, array('placeholder'=>$value->m_placeholder, 'id'=>'message-editor-fallback', 'class'=>'form-control d-none', 'rows'=>15)) }}
</div>
@if(isset($value->customers))
<p>Platzhalter: #geehrte/r# #Anrede# #Titel# #Vorname# #Nachname# #Reiseland# #Programm# #Anreisedatum# #Abreisedatum# #Buchungsdatum# #Airline#</p>
@if($value->show === 'single' || $value->show === 'multi')
<div class="row">
<div class="col-12">
<button type="button" class="btn btn-sm btn-outline-next mt-1 mb-3 float-left" data-toggle="collapse" data-target="#collapseModalEmailTemplate" aria-expanded="false" aria-controls="collapseModalEmailTemplate"><i class="ion ion-ios-mail"></i> E-Mail Vorlage laden</button>
</div>
<div class="collapse col-12" id="collapseModalEmailTemplate">
<hr class="mt-0">
<div class="table-responsive" id="email_templates_table">
<table id="datatables-email-templates" class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>{{__('Betreff')}}</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody class="">
</tbody>
</table>
</div>
<hr class="mt-1">
</div>
</div>
@endif
@if($value->show === 'single' || $value->show === 'reply')
<div class="form-row">
@ -199,7 +228,6 @@
@if($value->show === 'single' && isset($value->booking))
<button type="button" class="btn btn-sm btn-outline-primary mt-1 mb-2 float-right" data-toggle="collapse" data-target="#collapseModalBookingFiles" aria-expanded="false" aria-controls="collapseModalBookingFiles"><i class="fa fa-plus-circle"></i> Dateien aus Buchung</button>
@endif
<h5>Datei Anhänge</h5>
</div>
@if($value->show === 'single' && isset($value->booking))
@ -220,7 +248,7 @@
<div class="text-muted small mail-att-size">{{$customer_file->formatBytes()}}</div>
<div>
<a href="{{$customer_file->getURL()}}" target="_blank" class="mail-att-show">Vorschau</a> &nbsp;
{{-- <a href="javascript:void(0)" class="mail-att-delete">entfernen</a> --}}
<a href="javascript:void(0)" data-url="{{route('customer_mail_ajax')}}" data-id="{{$customer_file->id}}" data-action="delete_mail_attachment" class="mail-att-delete">löschen</a>
</div>
</div>
</div>
@ -260,7 +288,7 @@
<div class="text-muted small mail-att-size"> </div>
<div>
<a href="javascript:void(0)" target="_blank" class="mail-att-show">Vorschau</a> &nbsp;
<a href="javascript:void(0)" class="mail-att-delete">entfernen</a>
<a href="javascript:void(0)" class="mail-att-remove">entfernen</a>
</div>
</div>
</div>
@ -286,10 +314,9 @@
///'storage/file/{id}/{disk}
template.find('.mail-att-show').attr('href', response.file_url);
template.find('.mail-att-delete').on('click', function () {
template.find('.mail-att-remove').on('click', function () {
$(this).parents('.message-attachment').remove();
});
$('#preview-mail-attachment').append(template);
}
@ -314,10 +341,16 @@
$('#message-editor,#message-editor-toolbar').remove();
$('#message-editor-fallback').removeClass('d-none');
} else {
Quill.register('modules/placeholder', PlaceholderModule.default(Quill))
//$('#message-editor-fallback').remove();
var quill = new Quill('#message-editor', {
modules: {
toolbar: '#message-editor-toolbar'
toolbar: '#message-editor-toolbar',
placeholder: {
placeholders: [
{!! \App\Services\Placeholder::getBookingQuill() !!}
]
}
},
placeholder: '{{$value->m_placeholder}}',
theme: 'snow'
@ -350,6 +383,60 @@
$( "#customer-mail-form" ).submit();
});
$("#preview-mail-attachment .mail-att-delete").click(function(event) {
_self = $(this);
if(!confirm('Angang wirklick löschen?')){
event.preventDefault();
return;
}
ajax_object_action(event, $(this), function (data) {
console.log(data);
if(data.status === 'success'){
_self.parents('.message-attachment').remove();
}
});
});
var emailTempplateTable = $('#datatables-email-templates').DataTable({
"processing": true,
"serverSide": true,
"searching": true,
"autoWidth": false,
ajax: {
url: '{!! route( 'email_template_data_table' ) !!}',
},
"columns": [
{ data: 'id', width: '8%', searchable: true },
{ data: 'subject', name: 'subject', width: '', searchable: true },
{ data: 'action', width: '8%', orderable: false, searchable: false},
],
"bLengthChange": false,
"iDisplayLength": 10,
"orderSequence": ["desc", "asc"],
"order": [[ 0, "desc" ]],
"language": {
"url": "/js/German.json"
},
"drawCallback": function( settings ) {
$('#datatables-email-templates [rel="tooltip"]').tooltip({trigger: "hover"});
$('#datatables-email-templates .email-template-action').on('click', function (event) {
ajax_object_action(event, $(this), callback_email_template_data_table);
});
}
});
function callback_email_template_data_table(data) {
if(data.status === 'success'){
$('input#subject').val(data.response.subject + $('input#lead_title_id').val());
$("input#message-editor-fallback").val(data.html);
$('#message-editor .ql-editor').html(data.html)
$('#collapseModalEmailTemplate').collapse('hide');
}
}
Dropzone.autoDiscover = false;
$("#uploadAttachmentFile").dropzone({
uploadMultiple: false,

View file

@ -68,7 +68,7 @@
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=6{{ get_file_last_time('js/application.css') }}">
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=7{{ get_file_last_time('js/application.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
@ -102,7 +102,6 @@
@yield('layout-content')
@include('iq.content.assets.modals')
<!-- Core scripts -->
@ -144,6 +143,7 @@
<script src="{{ asset('/js/summernote-iq-content-extension.js?v=2') }}"></script>
<script src="{{ asset('/js/summernote-image-title.js?v=2') }}"></script>
<script src="{{ asset('/vendor/libs/quill/quill.min.js?v=1.3.6') }}"></script>
<script src="{{ asset('/vendor/libs/quill-placeholder-module/dist/placeholder-module.js?v=1') }}"></script>
@if(isset($lfm_helper))
<script src="{{ asset('/vendor/laravel-filemanager/js/cropper.min.js') }}"></script>

View file

@ -143,7 +143,7 @@
@if(Auth::user()->isPermission('cms-tg'))
<li class="sidenav-item{{ Request::is('cms/travel_guide/*') ? ' open' : '' }} {{ Request::is('iq/content/tree/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-md-map"></i>
<i class="sidenav-icon ion ion-ios-journal"></i>
<div>Reiseführer</div>
</a>
<ul class="sidenav-menu">
@ -172,7 +172,6 @@
</li>
@endif
@if(Auth::user()->isPermission('cms-cn'))
<li class="sidenav-item{{ Request::is('cms/content/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-md-map"></i>
@ -189,11 +188,6 @@
<a href="{{ route('cms_content_all') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-paper"></i><div>Allgemein</div></a>
</li>
@endif
@if(Auth::user()->isPermission('cms-cn-co'))
<li class="sidenav-item{{ Request::is('cms/content/country') ? ' active' : '' }} {{ Request::is('cms/content/country/*') ? ' active' : '' }}">
<a href="{{ route('cms_content_country') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-globe"></i><div>Reiseländer</div></a>
</li>
@endif
@if(Auth::user()->isPermission('cms-cn-au'))
<li class="sidenav-item{{ Request::is('cms/content/author') ? ' active' : '' }}">
<a href="{{ route('cms_content_author') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-finger-print"></i><div>Autoren</div></a>
@ -215,35 +209,54 @@
<div>Einstellungen</div>
</a>
<ul class="sidenav-menu">
@if(Auth::user()->isPermission('sua-st-tp'))
<li class="sidenav-item{{ Request::is('admin/settings/travel/program') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_program') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-airplane"></i><div>{{ __('Reiseprogramme') }}</div></a>
</li>
@if(Auth::user()->isPermission('sua-st-al'))
<li class="sidenav-item{{ Request::is('admin/settings/airline') ? ' active' : '' }}">
<a href="{{ route('admin_settings_airline') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-airplane"></i><div>{{ __('Airline') }}</div></a>
</li>
@endif
{{-- @if(Auth::user()->isPermission('sua-st-tc'))
<li class="sidenav-item{{ Request::is('admin/settings/travel/country') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_country') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-globe"></i><div>{{ __('Reiseländer') }}</div></a>
</li>
@endif
--}}
@if(Auth::user()->isPermission('sua-st-tn'))
<li class="sidenav-item{{ Request::is('admin/settings/travel/nationality') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_nationality') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>{{ __('Nationalitäten') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-bs'))
<li class="sidenav-item{{ Request::is('admin/settings/booking/status') ? ' active' : '' }}">
<a href="{{ route('admin_settings_booking_status') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-stats"></i><div>{{ __('Reisestatus') }}</div></a>
</li>
@if(Auth::user()->isPermission('sua-st-et'))
<li class="sidenav-item{{ Request::is('cms/content/email_template') ? ' active' : '' }}">
<a href="{{ route('admin_settings_email_template') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-mail"></i><div>{{ __('E-Mail Vorlagen') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-ke'))
<li class="sidenav-item{{ Request::is('admin/settings/keyword') ? ' active' : '' }}">
<a href="{{ route('admin_settings_keyword') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-key"></i><div>{{ __('Keywords') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-al'))
<li class="sidenav-item{{ Request::is('admin/settings/airline') ? ' active' : '' }}">
<a href="{{ route('admin_settings_airline') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-airplane"></i><div>{{ __('Airline') }}</div></a>
@if(Auth::user()->isPermission('sua-st-sp'))
<li class="sidenav-item{{ Request::is('admin/settings/service_provider') ? ' active' : '' }}">
<a href="{{ route('admin_settings_service_provider') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-archive"></i><div>{{ __('Leistungsträger') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-tn'))
<li class="sidenav-item{{ Request::is('admin/settings/travel_nationality') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_nationality') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-people"></i><div>{{ __('Nationalitäten') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-co'))
<li class="sidenav-item{{ Request::is('admin/settings/travel_country') ? ' active' : '' }} {{ Request::is('admin/settings/travel_country/*') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_country') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-globe"></i><div>{{ __('Reiseländer') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-tp'))
<li class="sidenav-item{{ Request::is('admin/settings/travel_program') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_program') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-airplane"></i><div>{{ __('Reiseprogramme') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-bs'))
<li class="sidenav-item{{ Request::is('admin/settings/booking_status') ? ' active' : '' }}">
<a href="{{ route('admin_settings_booking_status') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-stats"></i><div>{{ __('Reisestatus') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-tc'))
<li class="sidenav-item{{ Request::is('admin/settings/travel_company') ? ' active' : '' }}">
<a href="{{ route('admin_settings_travel_company') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-archive"></i><div>{{ __('Veranstalter') }}</div></a>
</li>
@endif
@if(Auth::user()->isPermission('sua-st-in'))
<li class="sidenav-item{{ Request::is('admin/settings/insurance') ? ' active' : '' }}">
<a href="{{ route('admin_settings_insurance') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-umbrella"></i><div>{{ __('Versicherungen') }}</div></a>
</li>
@endif
</ul>

View file

@ -6,7 +6,6 @@
</h4>
<div class="card">
<div class="card-header">
<div class="">
<div class="form-row align-items-center">
@ -257,8 +256,8 @@
"columns": [
{ data: 'action_lead_edit', orderable: false, searchable: false},
{ data: 'lead_id', name: 'lead_id' },
{ data: 'participant_firstname', name: 'participant_firstname' },
{ data: 'participant_name', name: 'participant_name' },
{ data: 'customer.firstname', name: 'customer.firstname' },
{ data: 'customer.name', name: 'customer.name' },
{ data: 'action_booking_edit', orderable: false, searchable: false},
{ data: 'id', name: 'id' },
{ data: 'travel_country_id', name: 'travel_country_id', orderable: false },

View file

@ -0,0 +1,116 @@
@extends('layouts.layout-2')
@section('content')
{!! Form::open(['url' => route('admin_settings_travel_country_detail', [$id]), 'class' => 'form-horizontal']) !!}
<h4 class="font-weight-bold py-3 mb-1">
Reiseland @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(ID: ".$id.")"}} verwalten @endif
<div class="float-right">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('admin_settings_travel_country')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
</div>
</h4>
<div class="clearfix"></div>
<input type="hidden" name="id" id="id" value="{{$id}}">
<!-- draft -->
<div class="card mb-2">
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="name">{{ __('Name') }}*</label>
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('active_frontend', 1, $model->active_frontend, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('Seite')}}</span>
</label>
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('active_backend', 1, $model->active_backend, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('CRM')}}</span>
</label>
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('is_customer_country', 1, $model->is_customer_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('Kunden')}}</span>
</label>
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="slug">{{ __('Slug') }}</label>
{{ Form::text('slug', $model->slug, array('placeholder'=>__('Slug'), 'class'=>'form-control', 'id'=>'slug')) }}
</div>
</div>
<div id="show_active_frontend" @if(!$model->active_frontend) style="display: none;" @endif>
<hr>
<h4>Inhalte für Seite</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote-small']) }}
</div>
</div>
<hr>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<hr>
<h5>Einreisebestimmungen</h5>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="travel_nationality_requirement_{{$travel_nationality->id}}">{{ $travel_nationality->name }}{{ __('(HTML)') }} </label>
{{ Form::textarea('travel_nationality_requirement['.$travel_nationality->id.']', $model->getNationalityRequirement($travel_nationality->id), ['class' => 'form-control summernote-small', 'id'=>'travel_nationality_requirement_'.$travel_nationality->id]) }}
</div>
</div>
@endforeach
</div>
</div>
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('admin_settings_travel_country')}}" class="btn btn-default">{{ __('back') }}</a>
</div>
{!! Form::close() !!}
<script>
$( document ).ready(function() {
$('input[name="active_frontend"]').on('change', function () {
if($(this).prop( "checked")){
$('#show_active_frontend').show("slow");
}else{
$('#show_active_frontend').hide("slow");
}
});
});
</script>
@endsection

View file

@ -3,26 +3,11 @@
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
{{ __('Inhalte') }} {{ __('Reiseländer') }}
{{ __('Reiseländer') }}
<a class="btn btn-default btn-sm float-right" href="{{ make_v2_url('/acp') }}" > zurück ins v2 CMS</a>
<a class="btn btn-default btn-sm float-right" href="{{ make_old_url('backend.php') }}" > zurück ins v1 CRM</a>
</h4>
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-feedbacks table table-striped table-bordered">
@ -30,29 +15,23 @@
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Bezug')}}</th>
<th>{{__('E-Mail(s)')}}</th>
<th>{{__('Slug')}}</th>
<th><i class="fa fa-eye"></i> {{__('Seite')}}</th>
<th><i class="fa fa-eye"></i> {{__('CRM')}}</th>
<th><i class="fa fa-eye"></i> {{__('Kunden')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@foreach($travel_countries as $value)
<tr>
<td data-sort="{{ $value->id }}">
<a href="{{ route('cms_content_country_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
<a href="{{ route('admin_settings_travel_country_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="fa fa-edit"></span>
</a>
</td>
<td><a href="{{ route('cms_content_country_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>
{!! implode("<br>", $value->getContactLandsArray()) !!}
</td>
<td>
{!! $value->getContactEmailsStr("<br>") !!}
</td>
<td><a href="{{ route('admin_settings_travel_country_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>{{ $value->slug }}</td>
<td data-sort="{{ $value->active_frontend }}">
@if($value->active_frontend)
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
@ -74,11 +53,17 @@
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
</td>
<td>
<a class="text-danger" href="{{ route('admin_settings_travel_country_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 col">
<a href="{{ route('admin_settings_travel_country_detail', ['new']) }}" class="btn btn-sm btn-primary">Neues Reiseland anlegen</a>
</div>
</div>
<script>
$( document ).ready(function() {
@ -98,5 +83,4 @@
@endsection

View file

@ -24,13 +24,13 @@
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-name_full="{{ $value->name_full }}"
data-contact_emails="{{$value->getContactEmailsStr()}}">
data-contact_emails="{{\App\Services\Util::_implodeLines($value->contact_emails)}}">
<span class="fa fa-edit"></span>
</button>
</td>
<td data-sort="{{ $value->name }}">{{ $value->name }}</td>
<td data-sort="{{ $value->name_full }}">{{ $value->name_full }}</td>
<td>{!! $value->getContactEmailsStr("<br>") !!}</td>
<td>{!! \App\Services\Util::_implodeLines($value->contact_emails, "<br>") !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_airline_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach
@ -40,6 +40,8 @@
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="new"
data-name=""
data-name_full=""
data-contact_emails=""
>Neue Airline anlegen</button>
</div>
</div>

View file

@ -0,0 +1,64 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
E-Mail Vorlagen
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-default table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Betreff')}}</th>
<th>{{__('sichtbar')}}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($email_template as $value)
<tr>
<td data-sort="{{ $value->id }}">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
data-target="#modals-load-content"
data-id="{{ $value->id }}"
data-model="emailTemplate"
data-action="modal-email-template"
data-url=""
data-redirect="back"
data-route="{{ route('admin_settings_email_template_load') }}"><span class="fa fa-edit"></span></button>
</td>
<td>{{ $value->subject }}</td>
<td data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_email_template_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 col">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
data-target="#modals-load-content"
data-id="new"
data-model="emailTemplate"
data-action="modal-email-template"
data-url=""
data-redirect="back"
data-route="{{ route('admin_settings_email_template_load') }}">&nbsp;Neue E-Mail Vorlage anlegen</button>
</div>
</div>
<script>
$( document ).ready(function() {
$('.datatables-default').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 0, "desc" ]],
"language": {
"url": "/js/German.json"
}
});
});
</script>
</div>
@endsection

View file

@ -0,0 +1,95 @@
{!! Form::open([ 'url' => route('admin_settings_email_template_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', $value->id) }}
<div class="modal-header">
<h5 class="modal-title">E-Mail Vorlagen <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="subject" class="form-label">Betreff*</label>
{{ Form::text('subject', $value->subject, array('class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="message">Nachricht</label>
<div id="message-editor-toolbar">
<span class="ql-formats">
<button class="ql-bold"></button>
<button class="ql-italic"></button>
<button class="ql-underline"></button>
<button class="ql-strike"></button>
</span>
<span class="ql-formats">
<button class="ql-header" value="1"></button>
<button class="ql-header" value="2"></button>
<button class="ql-blockquote"></button>
<button class="ql-code-block"></button>
</span>
<span class="ql-formats">
<button class="ql-list" value="ordered"></button>
<button class="ql-list" value="bullet"></button>
<button class="ql-indent" value="-1"></button>
<button class="ql-indent" value="+1"></button>
</span>
<span class="ql-formats">
<select class="ql-align"></select>
</span>
<span class="ql-formats">
<button class="ql-clean"></button>
</span>
<span class="ql-formats">
<select class="ql-placeholder">
{!! \App\Services\Placeholder::getBookingOptions() !!}
</select>
</span>
</div>
<div id="message-editor" style="height: 400px">{!! $value->message !!}</div>
{{ Form::textarea('message', $value->message, array('placeholder'=>'', 'id'=>'message-editor-fallback', 'class'=>'form-control d-none', 'rows'=>15)) }}
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('active', 1, $value->active, array('class'=>'custom-control-input')) }}
<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 submit-button-form">{{__('save')}}</button>
</div>
{!! Form::close() !!}
<script>
$( document ).ready(function() {
if (!window.Quill) {
$('#message-editor,#message-editor-toolbar').remove();
$('#message-editor-fallback').removeClass('d-none');
} else {
Quill.register('modules/placeholder', PlaceholderModule.default(Quill))
//$('#message-editor-fallback').remove();
var quill = new Quill('#message-editor', {
modules: {
toolbar: '#message-editor-toolbar',
placeholder: {
placeholders: [
{!! \App\Services\Placeholder::getBookingQuill() !!}
]
}
},
placeholder: '',
theme: 'snow'
});
//quill.clipboard.dangerouslyPasteHTML('<span class="ql-placeholder-content" data-id="foo" data-label="foo"></span>')
}
$(".submit-button-form").click(function(event) {
$("#message-editor-fallback").val($('#message-editor .ql-editor').html());
$( "#customer-mail-form" ).submit();
});
});
</script>

View file

@ -0,0 +1,112 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Versicherungen
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-default table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('E-Mail(s)')}}</th>
<th>{{__('sichtbar')}}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($insurance as $value)
<tr>
<td data-sort="{{ $value->id }}">
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-contact_emails="{{\App\Services\Util::_implodeLines($value->contact_emails)}}"
data-active="{{ $value->active }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>{!! \App\Services\Util::_implodeLines($value->contact_emails, "<br>") !!}</td>
<td data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_insurance_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 col">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="new"
data-name=""
data-contact_emails=""
data-active="1"
>Neue Versicherung anlegen</button>
</div>
</div>
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
{!! Form::open([ 'url' => route('admin_settings_insurance_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', '') }}
<div class="modal-header">
<h5 class="modal-title">Versicherungen <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>
{{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="contact_emails">Für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
{{ Form::textarea('contact_emails', '', array('class'=>'form-control', 'rows'=>4)) }}
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('active', 1, '', array('class'=>'custom-control-input')) }}
<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::close() !!}
</div>
</div>
<script>
$( document ).ready(function() {
$('#modals-default').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='name']").val(button.data('name'));
$(this).find(".modal-body textarea[name='contact_emails']").val(button.data('contact_emails'));
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
});
$('.datatables-default').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 0, "asc" ]],
"language": {
"url": "/js/German.json"
}
});
});
</script>
</div>
@endsection

View file

@ -41,9 +41,8 @@
<!-- Modal template -->
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_settings_keyword_update') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
{!! Form::open([ 'url' => route('admin_settings_keyword_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', '') }}
<div class="modal-header">
<h5 class="modal-title">Keyword <span class="font-weight-light">anlegen/bearbeiten</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
@ -52,7 +51,7 @@
<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>
{{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
</div>
@ -61,8 +60,7 @@
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
</div>
</form>
{!! Form::close() !!}
</div>
</div>

View file

@ -0,0 +1,123 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Leistungsträger
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-default table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('E-Mail(s)')}}</th>
<th>{{__('Type')}}</th>
<th>{{__('sichtbar')}}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($service_provider as $value)
<tr>
<td data-sort="{{ $value->id }}">
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-type="{{ $value->type }}"
data-contact_emails="{{\App\Services\Util::_implodeLines($value->contact_emails)}}"
data-active="{{ $value->active }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>{!! \App\Services\Util::_implodeLines($value->contact_emails, "<br>") !!}</td>
<td data-sort="{{ $value->type }}">{{$value->type}}</td>
<td data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_service_provider_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 col">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="new"
data-name=""
data-type=""
data-contact_emails=""
data-active="1"
>Neuen Leistungsträger anlegen</button>
</div>
</div>
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
{!! Form::open([ 'url' => route('admin_settings_service_provider_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', '') }}
<div class="modal-header">
<h5 class="modal-title">Leistungsträger <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>
{{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="type">Type</label>
{{ Form::select('type', \App\Models\ServiceProvider::$types , '', array('class'=>'custom-select', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="contact_emails">Für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
{{ Form::textarea('contact_emails', '', array('class'=>'form-control', 'rows'=>4)) }}
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('active', 1, '', array('class'=>'custom-control-input')) }}
<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::close() !!}
</div>
</div>
<script>
$( document ).ready(function() {
$('#modals-default').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='name']").val(button.data('name'));
$(this).find(".modal-body select[name='type']").val(button.data('type'));
$(this).find(".modal-body textarea[name='contact_emails']").val(button.data('contact_emails'));
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
});
$('.datatables-default').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 0, "asc" ]],
"language": {
"url": "/js/German.json"
}
});
});
</script>
</div>
@endsection

View file

@ -33,14 +33,7 @@
</td>
<td data-sort="{{ $value->id }}">{{ $value->name }}</td>
<td>{{ $value->travel_country->name }}</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 data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_travel_program_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@endforeach

View file

@ -0,0 +1,145 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Reiseveranstalter
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-default table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('E-Mail(s)')}}</th>
<th>{{__('Prozentsatz für Provision')}}</th>
<th>{{__('Provision änderbar')}}</th>
<th>{{__('In-House')}}</th>
<th>{{__('sichtbar')}}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($travel_company as $value)
<tr>
<td data-sort="{{ $value->id }}">
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-percentage="{{ $value->percentage }}"
data-is_allowed_edit_commission="{{ $value->is_allowed_edit_commission }}"
data-is_inhouse="{{ $value->is_inhouse }}"
data-contact_emails="{{\App\Services\Util::_implodeLines($value->contact_emails)}}"
data-active="{{ $value->active }}">
<span class="fa fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>{!! \App\Services\Util::_implodeLines($value->contact_emails, "<br>") !!}</td>
<td data-sort="{{ $value->percentage }}">{{$value->percentage}}</td>
<td data-sort="{{ $value->is_allowed_edit_commission }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->is_allowed_edit_commission) !!}</td>
<td data-sort="{{ $value->is_inhouse }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->is_inhouse) !!}</td>
<td data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_service_provider_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 col">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-default"
data-id="new"
data-name=""
data-percentage=""
data-is_allowed_edit_commission=""
data-contact_emails=""
data-active="1"
>Neuen Reiseveranstalter anlegen</button>
</div>
</div>
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
{!! Form::open([ 'url' => route('admin_settings_travel_company_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', '') }}
<div class="modal-header">
<h5 class="modal-title">Reiseveranstalter <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>
{{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="percentage" class="form-label">Prozentsatz für Provision*</label>
{{ Form::text('percentage', '', array('placeholder'=>__('%'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label class="form-label" for="contact_emails">Für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
{{ Form::textarea('contact_emails', '', array('class'=>'form-control', 'rows'=>4)) }}
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('is_allowed_edit_commission', 1, '', array('class'=>'custom-control-input')) }}
<span class="custom-control-label">{{__('Provision änderbar')}}</span>
</label>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('is_inhouse', 1, '', array('class'=>'custom-control-input')) }}
<span class="custom-control-label">{{__('In-House')}}</span>
</label>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
{{ Form::checkbox('active', 1, '', array('class'=>'custom-control-input')) }}
<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::close() !!}
</div>
</div>
<script>
$( document ).ready(function() {
$('#modals-default').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='name']").val(button.data('name'));
$(this).find(".modal-body input[name='percentage']").val(button.data('percentage'));
$(this).find(".modal-body input[name='is_allowed_edit_commission']").prop( "checked", button.data('is_allowed_edit_commission'));
$(this).find(".modal-body input[name='is_inhouse']").prop( "checked", button.data('is_inhouse'));
$(this).find(".modal-body textarea[name='contact_emails']").val(button.data('contact_emails'));
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
});
$('.datatables-default').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 0, "asc" ]],
"language": {
"url": "/js/German.json"
}
});
});
</script>
</div>
@endsection

View file

@ -2,89 +2,184 @@
@section('content')
{!! Form::open(['url' => route('admin_settings_travel_country_detail', [$id]), 'class' => 'form-horizontal']) !!}
{!! Form::open(['url' => route('admin_settings_travel_country_update', [$id]), 'class' => 'form-horizontal']) !!}
<h4 class="font-weight-bold py-3 mb-1">
Reiseland @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(ID: ".$id.")"}} verwalten @endif
Reiseland Inhalte {{ $model->name }}
<div class="float-right">
<button type="submit" name="action" value="saveAll" class="btn btn-submit btn-sm">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('admin_settings_travel_country')}}" class="btn btn-default btn-sm">{{ __('back') }}</a>
</div>
</h4>
<div class="clearfix"></div>
<div class="nav-tabs-top mb-4">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link @if($step == false) active show @endif" data-toggle="tab" href="#navs-site">Seite</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'form') active show @endif" data-toggle="tab" href="#navs-form">Formular</a>
</li>
<li class="nav-item">
<a class="nav-link @if($step == 'contact') active show @endif" data-toggle="tab" href="#navs-contact">Kontaktdaten</a>
</li>
<input type="hidden" name="id" id="id" value="{{$id}}">
<li class="nav-item">
<a class="nav-link @if($step == 'travel') active show @endif" data-toggle="tab" href="#navs-travel">Einreisebestimmungen</a>
</li>
</ul>
<!-- draft -->
<div class="card mb-2">
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="name">{{ __('Name') }}*</label>
{{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('active_frontend', 1, $model->active_frontend, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('Seite')}}</span>
</label>
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('active_backend', 1, $model->active_backend, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('CRM')}}</span>
</label>
</div>
<div class="form-group col-sm-2">
<label class="form-label">&nbsp;</label>
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('is_customer_country', 1, $model->is_customer_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label"><i class="fa fa-eye"></i> {{__('Kunden')}}</span>
</label>
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="slug">{{ __('Slug') }}</label>
{{ Form::text('slug', $model->slug, array('placeholder'=>__('Slug'), 'class'=>'form-control', 'id'=>'slug')) }}
</div>
</div>
<div id="show_active_frontend" @if(!$model->active_frontend) style="display: none;" @endif>
<hr>
<h4>Inhalte für Seite</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote-small']) }}
</div>
</div>
<hr>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<hr>
<h5>Einreisebestimmungen</h5>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="travel_nationality_requirement_{{$travel_nationality->id}}">{{ $travel_nationality->name }}{{ __('(HTML)') }} </label>
{{ Form::textarea('travel_nationality_requirement['.$travel_nationality->id.']', $model->getNationalityRequirement($travel_nationality->id), ['class' => 'form-control summernote-small', 'id'=>'travel_nationality_requirement_'.$travel_nationality->id]) }}
<div class="tab-content">
<div class="tab-pane fade @if($step == false) active show @endif" id="navs-site">
<div class="card-body">
<br>
<h4>Inhalte für Seite</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Landinformationen (HTML)') }} </label>
{{ Form::textarea('html_information', $model->html_information, ['class' => 'form-control summernote']) }}
</div>
</div>
<div class="form-row">
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('active_frontend', 0) }}
{{ Form::checkbox('active_frontend', 1, $model->active_frontend, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar im Frontend (Suche)</span>
</label>
</div>
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('active_backend', 0) }}
{{ Form::checkbox('active_backend', 1, $model->active_backend, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar im Backend CRM</span>
</label>
</div>
<div class="col-12 py-2">
<label class="switcher switcher-on-off">
{{ Form::hidden('is_customer_country', 0) }}
{{ Form::checkbox('is_customer_country', 1, $model->is_customer_country, array('class'=>'switcher-input')) }}
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">Sichtbar bei Kunden</span>
</label>
</div>
</div>
<button type="submit" name="action" value="" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'form') active show @endif" id="navs-form">
<div class="card-body">
<br>
<h4>Inhalte für Formular</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="text_before">{{ __('Formular Text vor der Reise (max. 255 Zeichen)') }} </label>
{{ Form::text('text_before', $model->text_before, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="html_information">{{ __('Formular Text nach der Reise ( max. 255 Zeichen)') }} </label>
{{ Form::text('text_after', $model->text_after, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
</div>
<button type="submit" name="action" value="form" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'contact') active show @endif" id="navs-contact">
<div class="card-body">
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_lands">Kontaktdaten aus folgenden Ländern nehmen</label>
<select class="selectpicker" data-style="btn-default" name="contact_lands[]" multiple>
{!! HTMLHelper::getTravelCountriesOptions($model->contact_lands) !!}
</select>
<em>Land/Länder müssen angeben sein, die Kontaktdaten des Landes (Reiselandes) werden nacheinander im PDF (RA, RB, Voucher) eingefügt.</em>
</div>
</div>
<hr>
<h4>E-Mail-Adressen</h4>
<div class="form-row">
<div class="form-group col-sm-6">
<label class="form-label" for="contact_headline">Der Agenturen für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
{{ Form::textarea('contact_emails', \App\Services\Util::_implodeLines($model->contact_emails), ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<hr>
<h4>Kontaktdaten PDF</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_headline">Überschrift</label>
{{ Form::text('contact_headline', $model->contact_headline, ['class' => 'form-control', 'maxlength'=>'255']) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_1">Kontaktfeld 1 </label>
{{ Form::textarea('contact_text_1', $model->contact_text_1, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_2">Kontaktfeld 2 </label>
{{ Form::textarea('contact_text_2', $model->contact_text_2, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_3">Kontaktfeld 3 </label>
{{ Form::textarea('contact_text_3', $model->contact_text_3, ['class' => 'form-control', 'rows'=>4]) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="contact_text_4">Kontaktfeld 4</label>
{{ Form::textarea('contact_text_4', $model->contact_text_4, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<hr>
<h4>Rückfragen PDF</h4>
<p>Übergreifende Texte für jedes Land sind unter: <a href="{{route('cms_content_all')}}">Inhalte Allgemein</a><br>
- PDF Footer Hinweise Rückfragen<br>
- PDF Footer Hinweise Reisebedingungen<br>
- PDF Absender<br>
</p>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="contact_text_4">Kontakt Footer</label>
{{ Form::textarea('contact_footer', $model->contact_footer, ['class' => 'form-control', 'rows'=>4]) }}
</div>
</div>
<button type="submit" name="action" value="contact" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
</div>
<div class="tab-pane fade @if($step == 'travel') active show @endif" id="navs-travel">
<div class="card-body">
<br>
<h4>Einreisebestimmungen</h4>
@foreach($travel_nationalities as $travel_nationality)
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label" for="travel_nationality_requirement_{{$travel_nationality->id}}">{{ $travel_nationality->name }}{{ __('(HTML)') }} </label>
{{ Form::textarea('travel_nationality_requirement['.$travel_nationality->id.']', $model->getNationalityRequirement($travel_nationality->id), ['class' => 'form-control summernote-small', 'id'=>'travel_nationality_requirement_'.$travel_nationality->id]) }}
</div>
</div>
@endforeach
<button type="submit" name="action" value="travel" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
</div>
@endforeach
</div>
@ -93,7 +188,6 @@
</div>
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('admin_settings_travel_country')}}" class="btn btn-default">{{ __('back') }}</a>
</div>

View file

@ -3,11 +3,23 @@
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
{{ __('Reiseländer') }}
<a class="btn btn-default btn-sm float-right" href="{{ make_v2_url('/acp') }}" > zurück ins v2 CMS</a>
<a class="btn btn-default btn-sm float-right" href="{{ make_old_url('backend.php') }}" > zurück ins v1 CRM</a>
{{ __('Einstellungen') }} {{ __('Reiseländer') }}
</h4>
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-feedbacks table table-striped table-bordered">
@ -15,11 +27,11 @@
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Slug')}}</th>
<th>{{__('Bezug')}}</th>
<th>{{__('E-Mail(s)')}}</th>
<th><i class="fa fa-eye"></i> {{__('Seite')}}</th>
<th><i class="fa fa-eye"></i> {{__('CRM')}}</th>
<th><i class="fa fa-eye"></i> {{__('Kunden')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@ -30,8 +42,14 @@
<span class="fa fa-edit"></span>
</a>
</td>
<td><a href="{{ route('admin_settings_travel_country_detail', [$value->id]) }}">{{ $value->name }}</a></td>
<td>{{ $value->slug }}</td>
<td>
{!! implode("<br>", $value->getContactLandsArray()) !!}
</td>
<td>
{!! \App\Services\Util::_implodeLines($value->contact_emails, "<br>") !!}
</td>
<td data-sort="{{ $value->active_frontend }}">
@if($value->active_frontend)
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
@ -53,17 +71,11 @@
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
</td>
<td>
<a class="text-danger" href="{{ route('admin_settings_travel_country_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 col">
<a href="{{ route('admin_settings_travel_country_detail', ['new']) }}" class="btn btn-sm btn-primary">Neues Reiseland anlegen</a>
</div>
</div>
<script>
$( document ).ready(function() {
@ -80,7 +92,4 @@
</script>
</div>
@endsection

View file

@ -31,13 +31,7 @@
</button>
</td>
<td data-sort="{{ $value->id }}">{{ $value->name }}</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 data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
<td><a class="text-danger" href="{{ route('admin_settings_travel_nationality_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
</tr>
@ -56,8 +50,8 @@
<!-- Modal template -->
<div class="modal fade" id="modals-default">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_settings_travel_nationality_update') }}" method="post">
@csrf
{!! Form::open([ 'url' => route('admin_settings_travel_nationality_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
{{ Form::hidden('id', '') }}
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
@ -68,12 +62,12 @@
<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>
{{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="active" checked>
{{ Form::checkbox('active', 1, '', array('class'=>'custom-control-input')) }}
<span class="custom-control-label">{{__('sichtbar')}}</span>
</label>
</div>
@ -82,7 +76,7 @@
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
</div>
</form>
{!! Form::close() !!}
</div>
</div>

View file

@ -105,6 +105,7 @@ Route::group(['middleware' => ['admin']], function()
Route::post('/customer_mail/send/mail', 'CustomerMailController@sendMail')->name('customer_mail_send_mail');
Route::post('/customer_mail/reply/mail', 'CustomerMailController@replyMail')->name('customer_mail_reply_mail');
Route::get('/customer_mail/data/table', 'CustomerMailController@getRequests')->name('customer_mail_data_table');
Route::get('/email_template/data/table', 'CustomerMailController@getEmailTemplates')->name('email_template_data_table');
Route::get('/customer_mail/delete/{id}', 'CustomerMailController@delete')->name('customer_mail_delete');
Route::post('customer_mail/ajax', 'CustomerMailController@ajax')->name('customer_mail_ajax');
@ -221,12 +222,6 @@ Route::group(['middleware' => ['admin']], function()
Route::post('/cms/content/all/load/modal', 'CMS\CMSContentController@loadModal')->name('cms_content_all_load_modal');
Route::get('/cms/content/all/delete/{id}', 'CMS\CMSContentController@delete')->name('cms_content_all_delete');
});
Route::group(['middleware' => ['auth.permission:cms-cn-co']], function() {
//CMS Länder
Route::get('/cms/content/country', 'CMS\CMSContentCountryController@index')->name('cms_content_country');
Route::get('/cms/content/country/detail/{id}/{step?}', 'CMS\CMSContentCountryController@detail')->name('cms_content_country_detail');
Route::post('/cms/content/country/store/{id}', 'CMS\CMSContentCountryController@store')->name('cms_content_country_store');
});
Route::group(['middleware' => ['auth.permission:cms-cn-au']], function() {
//CMS Author
Route::get('/cms/content/author', 'CMS\CMSContentAuthorController@index')->name('cms_content_author');
@ -278,45 +273,67 @@ Route::group(['middleware' => ['superadmin']], function() {
Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit');
Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update');
Route::group(['middleware' => ['auth.permission:sua-st-tp']], function() {
//SUPERADMIN > Einstellungen > Reisprogramme
Route::get('/admin/settings/travel/program/{id?}', 'Settings\TravelAgendaController@index')->name('admin_settings_travel_program');
Route::post('/admin/settings/travel/program/update', 'Settings\TravelAgendaController@update')->name('admin_settings_travel_program_update');
Route::get('/admin/settings/travel/program/delete/{id}', 'Settings\TravelAgendaController@delete')->name('admin_settings_travel_program_delete');
Route::group(['middleware' => ['auth.permission:sua-st-al']], function() {
//SUPERADMIN > Einstellungen > Airline
Route::get('/admin/settings/airline', 'Settings\AirlineController@index')->name('admin_settings_airline');
Route::post('/admin/settings/airline/update', 'Settings\AirlineController@update')->name('admin_settings_airline_update');
Route::get('/admin/settings/airline/delete/{id}', 'Settings\AirlineController@delete')->name('admin_settings_airline_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-tc']], function() {
//SUPERADMIN > Einstellungen > Reiseländer
Route::get('/admin/settings/travel/country', 'Settings\TravelCountryController@index')->name('admin_settings_travel_country');
Route::get('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@detail')->name('admin_settings_travel_country_detail');
Route::post('/admin/settings/travel/country/detail/{id}', 'Settings\TravelCountryController@store')->name('admin_settings_travel_country_detail');
Route::get('/admin/settings/travel/country/delete/{id}', 'Settings\TravelCountryController@delete')->name('admin_settings_travel_country_delete');
Route::group(['middleware' => ['auth.permission:sua-st-et']], function() {
//SUPERADMIN > Einstellungen > E-Mail Vorlagen
Route::get('/admin/settings/email_template', 'Settings\EmailTemplateController@index')->name('admin_settings_email_template');
Route::post('/admin/settings/email_template/load', 'Settings\EmailTemplateController@load')->name('admin_settings_email_template_load');
Route::post('/admin/settings/email_template/update', 'Settings\EmailTemplateController@update')->name('admin_settings_email_template_update');
Route::get('/admin/settings/email_template/delete/{id}', 'Settings\EmailTemplateController@delete')->name('admin_settings_email_template_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-tn']], function() {
//SUPERADMIN > Einstellungen > Nationalitäten
Route::get('/admin/settings/travel/nationality', 'Settings\TravelNationalityController@index')->name('admin_settings_travel_nationality');
Route::post('/admin/settings/travel/nationality/update', 'Settings\TravelNationalityController@update')->name('admin_settings_travel_nationality_update');
Route::get('/admin/settings/travel/nationality/delete/{id}', 'Settings\TravelNationalityController@delete')->name('admin_settings_travel_nationality_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-bs']], function() {
//SUPERADMIN > Einstellungen > Nationalitäten
Route::get('/admin/settings/booking/status', 'Settings\BookingStatusController@index')->name('admin_settings_booking_status');
Route::post('/admin/settings/booking/status/update', 'Settings\BookingStatusController@update')->name('admin_settings_booking_status_update');
Route::get('/admin/settings/booking/status/delete/{id}', 'Settings\BookingStatusController@delete')->name('admin_settings_booking_status_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-ke']], function() {
//SUPERADMIN > Einstellungen > Keywords
Route::get('/admin/settings/keyword', 'Settings\KeywordController@index')->name('admin_settings_keyword');
Route::post('/admin/settings/keyword/update', 'Settings\KeywordController@update')->name('admin_settings_keyword_update');
Route::get('/admin/settings/keyword/delete/{id}', 'Settings\KeywordController@delete')->name('admin_settings_keyword_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-al']], function() {
//SUPERADMIN > Einstellungen > Airline
Route::get('/admin/settings/airline', 'Settings\AirlineController@index')->name('admin_settings_airline');
Route::post('/admin/settings/airline/update', 'Settings\AirlineController@update')->name('admin_settings_airline_update');
Route::get('/admin/settings/airline/delete/{id}', 'Settings\AirlineController@delete')->name('admin_settings_airline_delete');
Route::group(['middleware' => ['auth.permission:sua-st-sp']], function() {
//SUPERADMIN > Einstellungen > Leistungsträger
Route::get('/admin/settings/service_provider', 'Settings\ServiceProviderController@index')->name('admin_settings_service_provider');
Route::post('/admin/settings/service_provider/update', 'Settings\ServiceProviderController@update')->name('admin_settings_service_provider_update');
Route::get('/admin/settings/service_provider/delete/{id}', 'Settings\ServiceProviderController@delete')->name('admin_settings_service_provider_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-tn']], function() {
//SUPERADMIN > Einstellungen > Nationalitäten
Route::get('/admin/settings/travel_nationality', 'Settings\TravelNationalityController@index')->name('admin_settings_travel_nationality');
Route::post('/admin/settings/travel_nationality/update', 'Settings\TravelNationalityController@update')->name('admin_settings_travel_nationality_update');
Route::get('/admin/settings/travel_nationality/delete/{id}', 'Settings\TravelNationalityController@delete')->name('admin_settings_travel_nationality_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-tp']], function() {
//SUPERADMIN > Einstellungen > Reisprogramme
Route::get('/admin/settings/travel_program/{id?}', 'Settings\TravelAgendaController@index')->name('admin_settings_travel_program');
Route::post('/admin/settings/travel_program/update', 'Settings\TravelAgendaController@update')->name('admin_settings_travel_program_update');
Route::get('/admin/settings/travel_program/delete/{id}', 'Settings\TravelAgendaController@delete')->name('admin_settings_travel_program_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-bs']], function() {
//SUPERADMIN > Einstellungen > Reisestatus
Route::get('/admin/settings/booking_status', 'Settings\BookingStatusController@index')->name('admin_settings_booking_status');
Route::post('/admin/settings/booking_status/update', 'Settings\BookingStatusController@update')->name('admin_settings_booking_status_update');
Route::get('/admin/settings/booking_status/delete/{id}', 'Settings\BookingStatusController@delete')->name('admin_settings_booking_status_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-co']], function() {
//SUPERADMIN > Einstellungen > Reiseländer
Route::get('/admin/settings/travel_country', 'Settings\TravelCountryController@index')->name('admin_settings_travel_country');
Route::get('/admin/settings/travel_country/detail/{id}', 'Settings\TravelCountryController@detail')->name('admin_settings_travel_country_detail');
Route::post('/admin/settings/travel_country/update/{id}', 'Settings\TravelCountryController@update')->name('admin_settings_travel_country_update');
Route::get('/admin/settings/travel_country/delete/{id}', 'Settings\TravelCountryController@delete')->name('admin_settings_travel_country_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-bs']], function() {
//SUPERADMIN > Einstellungen > Veranstalter
Route::get('/admin/settings/travel_company', 'Settings\TravelCompanyController@index')->name('admin_settings_travel_company');
Route::post('/admin/settings/travel_company/update', 'Settings\TravelCompanyController@update')->name('admin_settings_travel_company_update');
Route::get('/admin/settings/travel_company/delete/{id}', 'Settings\TravelCompanyController@delete')->name('admin_settings_travel_company_delete');
});
Route::group(['middleware' => ['auth.permission:sua-st-bs']], 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');
Route::get('/admin/settings/insurance/delete/{id}', 'Settings\InsuranceController@delete')->name('admin_settings_insurance_delete');
});
Route::group(['middleware' => ['auth.permission:sua-re-bo']], function() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB