Fewo Mails / Booking Country Services
This commit is contained in:
parent
b9c26d06d0
commit
48a6eb2282
154 changed files with 7761 additions and 1643 deletions
232
.idea/workspace.xml
generated
232
.idea/workspace.xml
generated
|
|
@ -2,20 +2,38 @@
|
|||
<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/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$/app/Http/Controllers/CustomerFewoMailController.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/ModalController.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/BookingCountryService.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/CustomerFewoFile.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/CustomerFewoMail.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/EmailTemplateDir.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/GeneralFile.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/TravelCountryService.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Models/TravelUserBookingFile.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Repositories/BookingFewoFileRepository.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Repositories/CustomerFewoFileRepository.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Repositories/CustomerFewoMailRepository.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Repositories/GeneralFileRepository.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Services/Booking.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Services/BookingFewo.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/config/booking.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_23_144837_create_email_template_dirs_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_15_111351_create_customer_fewo_mails_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_15_111435_create_customer_fewo_files_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_16_140222_create_travel_user_booking_files_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_20_131909_create_general_files_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_28_112257_create_travel_country_services_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/database/migrations/2020_05_28_112359_create_booking_country_services_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" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171719_create_i_q_content_tags_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/database/migrations/2019_08_05_171720_create_i_q_content_file_tags_table.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/_cropper.min.css" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/css/cropper.css" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/_cropper.min.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/cropper.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/jquery-cropper.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/public/js/jquery-cropper.min.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/Controllers/ColorController.php" afterDir="false" />
|
||||
|
|
@ -30,50 +48,103 @@
|
|||
<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/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 afterPath="$PROJECT_DIR$/resources/views/admin/modal/country-service.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/admin/modal/upload.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/settings/emails/index.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/_detail_files.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/_detail_invoice.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/_detail_mails.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/_detail_sm_mails.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/mail/modal-new-booking-files.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/mail/modal-new-mail.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/mail/modal-show-mail-inner.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/mail/modal-show-mail.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/upload_modal.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/booking/files/2020/05/5ecfd762aa38a0.56412773_jackodurextrusionsstrang.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/booking/files/2020/05/5ecfd762e89a97.23023265_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/booking_fewo/files/2020/05/5ebfdb1ba22d59.38592238_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/booking_fewo/files/2020/05/5ebfdb5d952323.95463407_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5eb5345ca5de87.88438301_arb20190815.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5eb953a1c209a0.17939907_arb20190815.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5eb953a3eee0d4.85910050_sicherungsscheinnachsis651r.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5eb953a586abe9.14636744_gutschein2022585047591314.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ebe7cafc91eb3.64758684_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ebfc2a178f776.19101914_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec5300d90ac01.47787398_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530720c7520.94997351_.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530a06604b5.06762823_.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530a2888c21.81994786_.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530b0cd1b45.60705604_sicherungsscheinnachsis651.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530bea69b42.94459338_sicherungsscheinnachsis651.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec530bf720f45.26590361_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/05/5ec53165b27a66.41746967_sicherungsscheinnachsis651.html" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2020/Anreiseinfo-10848.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2020/10848.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/general/2020/05/5ec51b17d1da21.32961364_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/general/2020/05/5ec51c02399ba4.58193608_the-easter-bunny-with-easter-eggs.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/general/2020/05/5ec51c643b2398.58669480_ust111.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/05/5eb5320e7d1990.10675631_arb20190815.pdf" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/05/5eb92c7f54cbc9.72843966_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/05/5eb935c79e7808.39271407_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/05/5eb950427e3795.55847896_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/public/cms_files/2020/05/5ebe665cd98ca1.76107546_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfc46e0ff3c0.14228313_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfc49a63c465.01874505_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfc6754af358.11706766_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfc6a83aaa03.48156108_8.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfdc2163c6f3.61031669_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfdc9a5508f1.82637218_jdatlastoollogo.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ebfdc9b61abc4.55465946_muscat-sultan-qaboos-moschee-h1_k.jpg" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/storage/app/travel_user/attachment/2020/05/5ec53110cfd978.74599082_8.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/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/CMS/CMSContentController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CMS/CMSContentController.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/DraftController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/DraftController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/FileController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/FileController.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/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/EmailTemplateController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/EmailsController.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/Http/Controllers/TravelUserBookingFewoController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/TravelUserBookingFewoController.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/BookingServiceItem.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/BookingServiceItem.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/BookingFile.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/BookingFile.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/CustomerMail.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/CustomerMail.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/EmailTemplate.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/EmailTemplate.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/Insurance.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Insurance.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/Sym/CmsContent.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Sym/CmsContent.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/Sym/TravelCountry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Sym/TravelCountry.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/Models/TravelCountry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelCountry.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/TravelUser.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelUser.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/TravelUserBookingFewo.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelUserBookingFewo.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Repositories/BookingRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/BookingRepository.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Repositories/CMSFileRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/CMSFileRepository.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/Repositories/FileRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/FileRepository.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Repositories/TravelUserBookingFewoRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/TravelUserBookingFewoRepository.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/Placeholder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/Placeholder.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$/app/helpers.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/helpers.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/bootstrap/cache/services.php" beforeDir="false" afterPath="$PROJECT_DIR$/bootstrap/cache/services.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/app.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/app.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$/database/migrations/2018_10_29_193339_create_travel_country_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_travel_country_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2019_02_27_113516_create_c_m_s_contents_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2019_02_27_113516_create_c_m_s_contents_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2020_03_11_131408_create_customer_mails_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_03_11_131408_create_customer_mails_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2020_04_23_144838_create_email_templates_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_04_23_144838_create_email_templates_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/sym/0001_sym_travel_country_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/sym/0001_sym_travel_country_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/sym/0002_sym_salutation_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/sym/0002_sym_salutation_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" />
|
||||
|
|
@ -122,26 +193,36 @@
|
|||
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/move.blade.php" afterDir="false" />
|
||||
<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/css/stern_fewo_pdf.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/css/stern_fewo_pdf.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_booking.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/booking/_detail_booking.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/booking/_detail_files.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/booking/_detail_files.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/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/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/feedback/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/cms/feedback/detail.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/customer/mail/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/customer/mail/detail.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/drafts/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/drafts/index.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/pdf/layout.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/pdf/layout.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/email_template/index.blade.php" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/settings/email_template/modal.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/settings/emails/modal.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$/resources/views/travel/program/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/travel/program/index.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/travel/user/booking/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/detail.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/travel/user/booking/form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/_detail_info.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/travel/user/booking/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/travel/user/booking/index.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/12345.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/12345.pdf" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -363,18 +444,18 @@
|
|||
<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/settings/email_template" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/admin/modal" />
|
||||
<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/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" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/admin/modal" />
|
||||
<recent name="$PROJECT_DIR$/database/migrations" />
|
||||
<recent name="$PROJECT_DIR$/app/Repositories" />
|
||||
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/travel/user/booking" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/views/settings" />
|
||||
|
|
@ -758,6 +839,28 @@
|
|||
<workItem from="1588267968818" duration="645000" />
|
||||
<workItem from="1588269075570" duration="700000" />
|
||||
<workItem from="1588410019832" duration="192000" />
|
||||
<workItem from="1588773726930" duration="6534000" />
|
||||
<workItem from="1588921195355" duration="55000" />
|
||||
<workItem from="1588933251807" duration="6864000" />
|
||||
<workItem from="1589190101431" duration="19260000" />
|
||||
<workItem from="1589269047694" duration="3307000" />
|
||||
<workItem from="1589276676756" duration="737000" />
|
||||
<workItem from="1589278830126" duration="6263000" />
|
||||
<workItem from="1589288028671" duration="123000" />
|
||||
<workItem from="1589288181054" duration="168000" />
|
||||
<workItem from="1589288630720" duration="192000" />
|
||||
<workItem from="1589354128939" duration="2657000" />
|
||||
<workItem from="1589367550440" duration="1192000" />
|
||||
<workItem from="1589387823616" duration="52000" />
|
||||
<workItem from="1589526614664" duration="15622000" />
|
||||
<workItem from="1589621507076" duration="10136000" />
|
||||
<workItem from="1589785312070" duration="717000" />
|
||||
<workItem from="1589788515182" duration="3337000" />
|
||||
<workItem from="1589816832356" duration="3887000" />
|
||||
<workItem from="1589873447010" duration="1144000" />
|
||||
<workItem from="1589959162608" duration="2522000" />
|
||||
<workItem from="1589967486173" duration="10489000" />
|
||||
<workItem from="1590656843540" duration="18541000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
|
@ -793,30 +896,20 @@
|
|||
<state x="873" y="395" key="#Notifications/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586283483077" />
|
||||
<state x="873" y="395" key="#Notifications/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585998077451" />
|
||||
<state x="873" y="395" key="#Notifications/2560.-527.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1587029730203" />
|
||||
<state x="-1399" y="392" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1581158769046">
|
||||
<screen x="-2560" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="-1399" y="392" key="#com.intellij.execution.impl.EditConfigurationsDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@-2560.23.2560.1417" timestamp="1581158769046" />
|
||||
<state x="-1399" y="392" key="#com.intellij.execution.impl.EditConfigurationsDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581158740331" />
|
||||
<state x="968" y="466" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog" timestamp="1585396813007">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="968" y="466" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581431073950" />
|
||||
<state x="968" y="466" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585396813007" />
|
||||
<state x="723" y="23" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog" timestamp="1586342353394">
|
||||
<state x="723" y="23" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog" timestamp="1590658970755">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</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="1587982214324">
|
||||
<state x="723" y="23" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1590658970755" />
|
||||
<state x="1018" y="488" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog" timestamp="1590660061034">
|
||||
<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="1587982214324" />
|
||||
<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="1590660061034" />
|
||||
<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>
|
||||
|
|
@ -833,10 +926,6 @@
|
|||
<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>
|
||||
<state x="1020" y="544" width="527" height="375" key="PHPComposerAddDependencyDialogDimensionKey/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581350432217" />
|
||||
<state x="815" y="370" key="SettingsEditor" timestamp="1587029998517">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
|
|
@ -847,19 +936,20 @@
|
|||
</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="-1885" y="398" width="1487" height="939" key="find.popup" timestamp="1588269655118">
|
||||
<screen x="-2560" y="23" width="2560" height="1417" />
|
||||
<state x="675" y="397" width="1487" height="939" key="find.popup" timestamp="1590683778555">
|
||||
<screen x="0" 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="-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="675" y="397" width="1487" height="939" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1590683778555" />
|
||||
<state x="2940" y="143" width="837" height="1682" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@2560.-527.1440.2537" timestamp="1589874198139" />
|
||||
<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="1588072154124">
|
||||
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup" timestamp="1589202350952">
|
||||
<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="1588072154124" />
|
||||
<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="1589202350952" />
|
||||
<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>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace PHPSTORM_META {
|
|||
|
||||
/**
|
||||
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
|
||||
* Generated on 2020-04-23 10:42:35.
|
||||
* Generated on 2020-05-28 13:03:00.
|
||||
*
|
||||
* @author Barry vd. Heuvel <barryvdh@gmail.com>
|
||||
* @see https://github.com/barryvdh/laravel-ide-helper
|
||||
|
|
|
|||
386
_ide_helper.php
386
_ide_helper.php
|
|
@ -2,8 +2,8 @@
|
|||
// @formatter:off
|
||||
|
||||
/**
|
||||
* A helper file for Laravel 5, to provide autocomplete information to your IDE
|
||||
* Generated for Laravel 6.18.5 on 2020-04-23 10:42:32.
|
||||
* A helper file for Laravel, to provide autocomplete information to your IDE
|
||||
* Generated for Laravel 6.18.13 on 2020-05-28 13:02:56.
|
||||
*
|
||||
* This file should not be included in your code, only analyzed by your IDE!
|
||||
*
|
||||
|
|
@ -8726,7 +8726,7 @@ namespace Illuminate\Support\Facades {
|
|||
/**
|
||||
* Get the client user agent.
|
||||
*
|
||||
* @return string
|
||||
* @return string|null
|
||||
* @static
|
||||
*/
|
||||
public static function userAgent()
|
||||
|
|
@ -13124,7 +13124,8 @@ namespace Illuminate\Support\Facades {
|
|||
* @return bool
|
||||
* @static
|
||||
*/
|
||||
public static function prepend($path, $data, $separator = '')
|
||||
public static function prepend($path, $data, $separator = '
|
||||
')
|
||||
{
|
||||
/** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
|
||||
return $instance->prepend($path, $data, $separator);
|
||||
|
|
@ -13139,7 +13140,8 @@ namespace Illuminate\Support\Facades {
|
|||
* @return bool
|
||||
* @static
|
||||
*/
|
||||
public static function append($path, $data, $separator = '')
|
||||
public static function append($path, $data, $separator = '
|
||||
')
|
||||
{
|
||||
/** @var \Illuminate\Filesystem\FilesystemAdapter $instance */
|
||||
return $instance->append($path, $data, $separator);
|
||||
|
|
@ -15204,7 +15206,7 @@ namespace Illuminate\Support\Facades {
|
|||
/**
|
||||
* Get the client user agent.
|
||||
*
|
||||
* @return string
|
||||
* @return string|null
|
||||
* @static
|
||||
*/
|
||||
public static function userAgent()
|
||||
|
|
@ -19070,7 +19072,7 @@ namespace Maatwebsite\Excel\Facades {
|
|||
* @param string $event
|
||||
* @static
|
||||
*/
|
||||
public static function extend($concern, $handler, $event = 'Maatwebsite\Excel\Events\BeforeWriting')
|
||||
public static function extend($concern, $handler, $event = 'Maatwebsite\\Excel\\Events\\BeforeWriting')
|
||||
{
|
||||
return \Maatwebsite\Excel\Excel::extend($concern, $handler, $event);
|
||||
}
|
||||
|
|
@ -19344,6 +19346,188 @@ namespace Yajra\DataTables\Facades {
|
|||
|
||||
}
|
||||
|
||||
namespace Barryvdh\DomPDF {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
class Facade {
|
||||
|
||||
/**
|
||||
* Get the DomPDF instance
|
||||
*
|
||||
* @return \Barryvdh\DomPDF\Dompdf
|
||||
* @static
|
||||
*/
|
||||
public static function getDomPDF()
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->getDomPDF();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the paper size (default A4)
|
||||
*
|
||||
* @param string $paper
|
||||
* @param string $orientation
|
||||
* @return \Barryvdh\DomPDF\PDF
|
||||
* @static
|
||||
*/
|
||||
public static function setPaper($paper, $orientation = 'portrait')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setPaper($paper, $orientation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show or hide warnings
|
||||
*
|
||||
* @param bool $warnings
|
||||
* @return \Barryvdh\DomPDF\PDF
|
||||
* @static
|
||||
*/
|
||||
public static function setWarnings($warnings)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setWarnings($warnings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a HTML string
|
||||
*
|
||||
* @param string $string
|
||||
* @param string $encoding Not used yet
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadHTML($string, $encoding = null)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadHTML($string, $encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a HTML file
|
||||
*
|
||||
* @param string $file
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadFile($file)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadFile($file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add metadata info
|
||||
*
|
||||
* @param array $info
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function addInfo($info)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->addInfo($info);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a View and convert to HTML
|
||||
*
|
||||
* @param string $view
|
||||
* @param array $data
|
||||
* @param array $mergeData
|
||||
* @param string $encoding Not used yet
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadView($view, $data = [], $mergeData = [], $encoding = null)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadView($view, $data, $mergeData, $encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set/Change an option in DomPdf
|
||||
*
|
||||
* @param array $options
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function setOptions($options)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setOptions($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Output the PDF as a string.
|
||||
*
|
||||
* @return string The rendered PDF as string
|
||||
* @static
|
||||
*/
|
||||
public static function output()
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->output();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the PDF to a file
|
||||
*
|
||||
* @param $filename
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function save($filename)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->save($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make the PDF downloadable by the user
|
||||
*
|
||||
* @param string $filename
|
||||
* @return \Illuminate\Http\Response
|
||||
* @static
|
||||
*/
|
||||
public static function download($filename = 'document.pdf')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->download($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a response with the PDF to show in the browser
|
||||
*
|
||||
* @param string $filename
|
||||
* @return \Illuminate\Http\Response
|
||||
* @static
|
||||
*/
|
||||
public static function stream($filename = 'document.pdf')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->stream($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @static
|
||||
*/
|
||||
public static function setEncryption($password)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setEncryption($password);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace Barryvdh\Debugbar {
|
||||
|
||||
/**
|
||||
|
|
@ -19950,188 +20134,6 @@ namespace Barryvdh\Debugbar {
|
|||
|
||||
}
|
||||
|
||||
namespace Barryvdh\DomPDF {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
class Facade {
|
||||
|
||||
/**
|
||||
* Get the DomPDF instance
|
||||
*
|
||||
* @return \Barryvdh\DomPDF\Dompdf
|
||||
* @static
|
||||
*/
|
||||
public static function getDomPDF()
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->getDomPDF();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the paper size (default A4)
|
||||
*
|
||||
* @param string $paper
|
||||
* @param string $orientation
|
||||
* @return \Barryvdh\DomPDF\PDF
|
||||
* @static
|
||||
*/
|
||||
public static function setPaper($paper, $orientation = 'portrait')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setPaper($paper, $orientation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show or hide warnings
|
||||
*
|
||||
* @param bool $warnings
|
||||
* @return \Barryvdh\DomPDF\PDF
|
||||
* @static
|
||||
*/
|
||||
public static function setWarnings($warnings)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setWarnings($warnings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a HTML string
|
||||
*
|
||||
* @param string $string
|
||||
* @param string $encoding Not used yet
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadHTML($string, $encoding = null)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadHTML($string, $encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a HTML file
|
||||
*
|
||||
* @param string $file
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadFile($file)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadFile($file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add metadata info
|
||||
*
|
||||
* @param array $info
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function addInfo($info)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->addInfo($info);
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a View and convert to HTML
|
||||
*
|
||||
* @param string $view
|
||||
* @param array $data
|
||||
* @param array $mergeData
|
||||
* @param string $encoding Not used yet
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function loadView($view, $data = [], $mergeData = [], $encoding = null)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->loadView($view, $data, $mergeData, $encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set/Change an option in DomPdf
|
||||
*
|
||||
* @param array $options
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function setOptions($options)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setOptions($options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Output the PDF as a string.
|
||||
*
|
||||
* @return string The rendered PDF as string
|
||||
* @static
|
||||
*/
|
||||
public static function output()
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->output();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the PDF to a file
|
||||
*
|
||||
* @param $filename
|
||||
* @return static
|
||||
* @static
|
||||
*/
|
||||
public static function save($filename)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->save($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make the PDF downloadable by the user
|
||||
*
|
||||
* @param string $filename
|
||||
* @return \Illuminate\Http\Response
|
||||
* @static
|
||||
*/
|
||||
public static function download($filename = 'document.pdf')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->download($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a response with the PDF to show in the browser
|
||||
*
|
||||
* @param string $filename
|
||||
* @return \Illuminate\Http\Response
|
||||
* @static
|
||||
*/
|
||||
public static function stream($filename = 'document.pdf')
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->stream($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @static
|
||||
*/
|
||||
public static function setEncryption($password)
|
||||
{
|
||||
/** @var \Barryvdh\DomPDF\PDF $instance */
|
||||
return $instance->setEncryption($password);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace Laracasts\Flash {
|
||||
|
||||
/**
|
||||
|
|
@ -22443,7 +22445,7 @@ namespace {
|
|||
/**
|
||||
* Add an "order by" clause to the query.
|
||||
*
|
||||
* @param \Closure|\Illuminate\Database\Query\Builder|string $column
|
||||
* @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Query\Expression|string $column
|
||||
* @param string $direction
|
||||
* @return \Illuminate\Database\Query\Builder
|
||||
* @throws \InvalidArgumentException
|
||||
|
|
@ -23199,10 +23201,10 @@ namespace {
|
|||
|
||||
class DataTables extends \Yajra\DataTables\Facades\DataTables {}
|
||||
|
||||
class Debugbar extends \Barryvdh\Debugbar\Facade {}
|
||||
|
||||
class PDF extends \Barryvdh\DomPDF\Facade {}
|
||||
|
||||
class Debugbar extends \Barryvdh\Debugbar\Facade {}
|
||||
|
||||
class Flash extends \Laracasts\Flash\Flash {}
|
||||
|
||||
class Html extends \Collective\Html\HtmlFacade {}
|
||||
|
|
|
|||
|
|
@ -114,6 +114,13 @@ namespace App\Models\Sym{
|
|||
* @property-read int|null $bookings_count
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactEmails($value)
|
||||
* @property array|null $mail_dirs
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereMailDirs($value)
|
||||
* @property string|null $mail_dir_name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereMailDirName($value)
|
||||
* @property-read \App\Models\TravelCountry|null $stern_travel_country
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelCountryService[] $travel_country_services
|
||||
* @property-read int|null $travel_country_services_count
|
||||
*/
|
||||
class TravelCountry extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -147,6 +154,12 @@ namespace App\Models\Sym{
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent findSimilarSlugs($attribute, $config, $slug)
|
||||
* @property string|null $identifier
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereIdentifier($value)
|
||||
* @property array|null $object
|
||||
* @property int|null $pos
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereObject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent wherePos($value)
|
||||
*/
|
||||
class CmsContent extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -287,6 +300,77 @@ namespace App\Models{
|
|||
class Keyword extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class CustomerFewoMail
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_booking_fewo_id
|
||||
* @property int $travel_user_id
|
||||
* @property bool $is_answer
|
||||
* @property int $reply_id
|
||||
* @property string $email
|
||||
* @property string $recipient
|
||||
* @property string $cc
|
||||
* @property string $bcc
|
||||
* @property string $subject
|
||||
* @property string $message
|
||||
* @property int $dir
|
||||
* @property int $subdir
|
||||
* @property bool $draft
|
||||
* @property bool $important
|
||||
* @property bool $send
|
||||
* @property bool $fail
|
||||
* @property string $error
|
||||
* @property Carbon $sent_at
|
||||
* @property Carbon $scheduled_at
|
||||
* @property Carbon $delivered_at
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property CustomerFewoMail $customer_fewo_mail
|
||||
* @property TravelUserBookingFewo $travel_user_booking_fewo
|
||||
* @property TravelUser $travel_user
|
||||
* @property Collection|CustomerFewoFile[] $customer_fewo_files
|
||||
* @property Collection|CustomerFewoMail[] $customer_fewo_mails
|
||||
* @package App\Models
|
||||
* @property-read int|null $customer_fewo_files_count
|
||||
* @property-read int|null $customer_fewo_mails_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereBcc($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereCc($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDeliveredAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDraft($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereEmail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereError($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereFail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereImportant($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereIsAnswer($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereMessage($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereRecipient($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereReplyId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereScheduledAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSend($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSentAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSubdir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSubject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereTravelUserBookingFewoId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereTravelUserId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property-read \App\Models\TravelUserBookingFewo $booking
|
||||
* @property-read \App\Models\TravelUser $customer
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoFile[] $customer_files
|
||||
* @property-read int|null $customer_files_count
|
||||
* @property-read \App\Models\CustomerFewoMail|null $customer_mail
|
||||
*/
|
||||
class CustomerFewoMail extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\TravelNationality
|
||||
|
|
@ -522,6 +606,43 @@ namespace App\Models{
|
|||
class UserUpdateEmail extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class TravelUserBookingFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_booking_fewos
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelUserBookingFewo $travel_user_booking_fewo
|
||||
* @package App\Models
|
||||
* @property int|null $travel_user_booking_fewo_id
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereTravelUserBookingFewoId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class TravelUserBookingFile extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class BookingServiceItem
|
||||
|
|
@ -864,6 +985,35 @@ namespace App\Models{
|
|||
class Website extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class EmailTemplateDir
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $color
|
||||
* @property bool $active
|
||||
* @property int $pos
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property Collection|EmailTemplate[] $email_templates
|
||||
* @package App\Models
|
||||
* @property-read int|null $email_templates_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereColor($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir wherePos($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class EmailTemplateDir extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\CMSInfoHoliday
|
||||
|
|
@ -956,6 +1106,8 @@ namespace App\Models{
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property int|null $subdir
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSubdir($value)
|
||||
*/
|
||||
class CustomerMail extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -1165,6 +1317,42 @@ namespace App\Models{
|
|||
class BookingDraftItem extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class GeneralFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_id
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelCountry $travel_country
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class GeneralFile extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\Country
|
||||
|
|
@ -1530,6 +1718,45 @@ namespace App\Models{
|
|||
class FewoReservation extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class CustomerFewoFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_id
|
||||
* @property int $customer_fewo_mail_id
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property CustomerFewoMail $customer_fewo_mail
|
||||
* @property TravelUser $travel_user
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereCustomerFewoMailId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereTravelUserId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class CustomerFewoFile extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\TravelCountry
|
||||
|
|
@ -1586,6 +1813,15 @@ namespace App\Models{
|
|||
* @property-read int|null $travel_nationality_requirements_count
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactEmails($value)
|
||||
* @property array|null $mail_dirs
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereMailDirs($value)
|
||||
* @property string $mail_dir_name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereMailDirName($value)
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\GeneralFile[] $general_files
|
||||
* @property-read int|null $general_files_count
|
||||
* @property-read \App\Models\Sym\TravelCountry|null $crm_travel_country
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelCountryService[] $travel_country_services
|
||||
* @property-read int|null $travel_country_services_count
|
||||
*/
|
||||
class TravelCountry extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -1961,6 +2197,36 @@ namespace App\Models{
|
|||
class IQContentSite extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class EmailTemplate
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $email_template_dir_id
|
||||
* @property string $subject
|
||||
* @property string $message
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property EmailTemplateDir $email_template_dir
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereEmailTemplateDirId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereMessage($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereSubject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property string $name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereName($value)
|
||||
*/
|
||||
class EmailTemplate extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class StatusHistory
|
||||
|
|
@ -2018,6 +2284,32 @@ namespace App\Models{
|
|||
class FewoPrice extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* 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
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereContactEmails($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class Insurance extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\CMSInfoAvailable
|
||||
|
|
@ -2105,6 +2397,8 @@ namespace App\Models{
|
|||
* @mixin \Eloquent
|
||||
* @property int|null $active
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCompany whereActive($value)
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCompany whereContactEmails($value)
|
||||
*/
|
||||
class TravelCompany extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -2157,6 +2451,12 @@ namespace App\Models{
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent query()
|
||||
* @property string|null $identifier
|
||||
* @property array|null $object
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereObject($value)
|
||||
* @property int|null $pos
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent wherePos($value)
|
||||
*/
|
||||
class CMSContent extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -2479,6 +2779,10 @@ namespace App\Models{
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereType($value)
|
||||
* @mixin \Eloquent
|
||||
* @property array|null $contact_emails
|
||||
* @property bool|null $active
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereContactEmails($value)
|
||||
*/
|
||||
class ServiceProvider extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -2665,6 +2969,14 @@ namespace App\Models{
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereUpdatedAt($value)
|
||||
* @property string|null $last_change_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereLastChangeAt($value)
|
||||
* @property-read \App\Models\CustomerFewoMail|null $customer_fewo_mail_last
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoMail[] $customer_fewo_mails
|
||||
* @property-read int|null $customer_fewo_mails_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoMail[] $customer_fewo_mails_sent_at
|
||||
* @property-read int|null $customer_fewo_mails_sent_at_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelUserBookingFile[] $booking_files
|
||||
* @property-read int|null $booking_files_count
|
||||
* @property-read \App\Models\TravelUser $customer
|
||||
*/
|
||||
class TravelUserBookingFewo extends \Eloquent {}
|
||||
}
|
||||
|
|
@ -3113,6 +3425,40 @@ namespace App\Models{
|
|||
class CMSInfo extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class TravelCountryService
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_id
|
||||
* @property int $crm_travel_country
|
||||
* @property string $name
|
||||
* @property string $description
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelCountry $travel_country
|
||||
* @property Collection|BookingCountryService[] $booking_country_services
|
||||
* @package App\Models
|
||||
* @property int|null $crm_travel_country_id
|
||||
* @property int|null $pos
|
||||
* @property-read int|null $booking_country_services_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereCrmTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereDescription($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService wherePos($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereUpdatedAt($value)
|
||||
*/
|
||||
class TravelCountryService extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\IQContentTree
|
||||
|
|
@ -3191,6 +3537,30 @@ namespace App\Models{
|
|||
class BookingStorno extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* Class BookingCountryService
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_service_id
|
||||
* @property int $booking_id
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property Booking $booking
|
||||
* @property TravelCountryService $travel_country_service
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereBookingId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereTravelCountryServiceId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereUpdatedAt($value)
|
||||
*/
|
||||
class BookingCountryService extends \Eloquent {}
|
||||
}
|
||||
|
||||
namespace App\Models{
|
||||
/**
|
||||
* App\Models\SfGuardUser
|
||||
|
|
|
|||
|
|
@ -273,7 +273,6 @@ class ReportController extends Controller
|
|||
|
||||
private function prozessProvidersSearch(){
|
||||
|
||||
|
||||
$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'));
|
||||
|
|
@ -293,8 +292,6 @@ class ReportController extends Controller
|
|||
$q->where("start_date", '<=', $travel_date_to);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,9 +55,15 @@ class BookingController extends Controller
|
|||
{
|
||||
// \Session()->flash('alert-save', '1');
|
||||
|
||||
|
||||
$data = Request::all();
|
||||
if($id == "new") {
|
||||
|
||||
if($data['action'] === 'update_booking'){
|
||||
$booking = $this->bookingRepo->updateBooking($id, $data);
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('booking_detail', [$booking->id])."#collapseBookingBooking");
|
||||
}
|
||||
|
||||
if($id === "new") {
|
||||
$booking = new Booking();
|
||||
}else{
|
||||
$booking = Booking::findOrFail($id);
|
||||
|
|
@ -244,6 +250,27 @@ class BookingController extends Controller
|
|||
}
|
||||
|
||||
|
||||
public function delete($id, $del="booking"){
|
||||
|
||||
if($del === 'booking') {
|
||||
//$model = Booking::findOrFail($id);
|
||||
//$model->delete();
|
||||
\Session()->flash('alert-success', __('Buchung gelöscht sowie die Reservierung im Sterntrous Kalender'));
|
||||
}
|
||||
if($del === 'booking_file'){
|
||||
$booking_file = BookingFile::findOrFail($id);
|
||||
$booking = $booking_file->booking;
|
||||
$fileRepo = new BookingFileRepository($booking_file);
|
||||
$fileRepo->_set('disk', 'booking');
|
||||
$fileRepo->delete();
|
||||
$booking_file->delete();
|
||||
\Session()->flash('alert-success', 'Datei gelöscht');
|
||||
return redirect(route('booking_detail', [$booking->id]));
|
||||
}
|
||||
return redirect(route('requests'));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,12 @@ use Validator;
|
|||
class CMSContentController extends Controller
|
||||
{
|
||||
|
||||
protected $identifier_content;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->identifier_content = 'general';
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -21,7 +25,8 @@ class CMSContentController extends Controller
|
|||
public function index()
|
||||
{
|
||||
$data = [
|
||||
'contents' => CMSContent::all()->sortByDesc('id')
|
||||
'contents' => CMSContent::where('identifier', '=', $this->identifier_content)->get()->sortByDesc('id'),
|
||||
'identifier_content' => $this->identifier_content,
|
||||
];
|
||||
return view('cms.content.all.index', $data);
|
||||
}
|
||||
|
|
@ -30,18 +35,17 @@ class CMSContentController extends Controller
|
|||
public function store()
|
||||
{
|
||||
$data = Request::all();
|
||||
|
||||
if(Request::ajax()) {
|
||||
//upload file
|
||||
if($data['file']){
|
||||
$cmsFileRepo = new CMSFileRepository(new CMSContent());
|
||||
$cmsFileRepo->_set('data', $data);
|
||||
$cmsFileRepo->_set('disk', 'public');
|
||||
$cmsFileRepo->_set('dir', '/cms_files/'.date('Y/m').'/');
|
||||
$cmsFileRepo->_set('identifier', 'cms_file');
|
||||
return $cmsFileRepo->uploadFile(Request::all());
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>""]);
|
||||
|
||||
}
|
||||
$rules = array(
|
||||
'name' => 'required',
|
||||
|
|
@ -68,6 +72,10 @@ class CMSContentController extends Controller
|
|||
|
||||
}
|
||||
\Session()->flash('alert-save', '1');
|
||||
if(isset($data['back'])){
|
||||
return redirect($data['back']);
|
||||
|
||||
}
|
||||
return redirect(route('cms_content_all'));
|
||||
}
|
||||
|
||||
|
|
@ -78,9 +86,11 @@ class CMSContentController extends Controller
|
|||
$data = Request::all();
|
||||
$returnHTML = "";
|
||||
if(isset($data['model']) && isset($data['id']) ){
|
||||
if($data['model'] == 'content'){
|
||||
if($data['id'] == "new"){
|
||||
if($data['model'] === 'content'){
|
||||
if($data['id'] === "new"){
|
||||
$value = new CMSContent();
|
||||
$value->identifier = $data['identifier'];
|
||||
$value->field = isset($data['field']) ? $data['field'] : null;
|
||||
}else {
|
||||
$value = CMSContent::find($data['id']);
|
||||
}
|
||||
|
|
@ -93,19 +103,16 @@ class CMSContentController extends Controller
|
|||
|
||||
//public
|
||||
|
||||
|
||||
public function delete($id){
|
||||
$content = CMSContent::findOrFail($id);
|
||||
if($content->isFile()){
|
||||
$content->deleteFile();
|
||||
}
|
||||
$content->delete();
|
||||
$m = \App\Models\Sym\CmsContent::find($id);
|
||||
$m->delete();
|
||||
\Session()->flash('alert-success', __('Content gelöscht'));
|
||||
return redirect(route('cms_content_all'));
|
||||
return back(); //redirect(route('cms_content_all'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
383
app/Http/Controllers/CustomerFewoMailController.php
Executable file
383
app/Http/Controllers/CustomerFewoMailController.php
Executable file
|
|
@ -0,0 +1,383 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\CustomerFewoFile;
|
||||
use App\Models\CustomerFewoMail;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
use App\Models\TravelUserBookingFile;
|
||||
use App\Repositories\BookingFewoFileRepository;
|
||||
use App\Repositories\CustomerFewoFileRepository;
|
||||
use App\Repositories\CustomerFewoMailRepository;
|
||||
use App\Services\Util;
|
||||
use Carbon;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Facades\URL;
|
||||
use Request;
|
||||
use Response;
|
||||
|
||||
class CustomerFewoMailController extends Controller
|
||||
{
|
||||
|
||||
protected $customerMailRepo;
|
||||
|
||||
public function __construct(CustomerFewoMailRepository $customerMailRepo)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
$this->customerMailRepo = $customerMailRepo;
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$data = [
|
||||
|
||||
];
|
||||
return view('customer.mail.index', $data);
|
||||
}
|
||||
|
||||
public function detail($id)
|
||||
{
|
||||
if($id === "new") {
|
||||
$customer_mail = new CustomerFewoMail();
|
||||
$id = 'new';
|
||||
|
||||
}else{
|
||||
$customer_mail = CustomerFewoMail::findOrFail($id);
|
||||
$id = $customer_mail->id;
|
||||
}
|
||||
|
||||
|
||||
$data = [
|
||||
'customer_mail' => $customer_mail,
|
||||
'id' => $id,
|
||||
'back' => URL::previous(),
|
||||
];
|
||||
return view('customer.mail.detail', $data);
|
||||
|
||||
}
|
||||
|
||||
public function store($id, $action=false)
|
||||
{
|
||||
$data = Request::all();
|
||||
$customer_mail = CustomerFewoMail::findOrFail($id);
|
||||
|
||||
if($action === 'move-mail'){
|
||||
$data['subdir'] = isset($data['subdir']) && $data['subdir'] ? $data['subdir'] : null;
|
||||
$customer_mail->dir = $data['dir'];
|
||||
$customer_mail->subdir = $data['subdir'];
|
||||
$customer_mail->save();
|
||||
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function delete($id){
|
||||
$customer_mail = CustomerFewoMail::find($id);
|
||||
$customer_mail->dir = 12;
|
||||
$customer_mail->subdir = 0;
|
||||
$customer_mail->save();
|
||||
|
||||
\Session()->flash('alert-success', __('Mail gelöscht'));
|
||||
return back();
|
||||
}
|
||||
|
||||
|
||||
public function loadModal(){
|
||||
$data = Request::all();
|
||||
$ret = "";
|
||||
if(Request::ajax()) {
|
||||
if ($data['action'] === "new-customer-mail" || $data['action'] === "reply-customer-mail" || $data['action'] === "show-customer-mail" || $data['action'] === "edit-customer-mail"){
|
||||
$data['customers'] = [];
|
||||
if ($data['action'] === "new-customer-mail" && isset($data['travel_user_booking_fewo_id']) && $TravelUserBookingFewo = TravelUserBookingFewo::find($data['travel_user_booking_fewo_id'])) {
|
||||
$tmp = [];
|
||||
$tmp['email'] = $TravelUserBookingFewo->travel_user ? $TravelUserBookingFewo->travel_user->email : "";
|
||||
$tmp['name'] = $TravelUserBookingFewo->travel_user ? $TravelUserBookingFewo->travel_user->first_name . " " . $TravelUserBookingFewo->travel_user->last_name . " | " : "- | ";
|
||||
$tmp['name'] .= $TravelUserBookingFewo->fewo_lodging_id ? $TravelUserBookingFewo->fewo_lodging->name . " | " : "- | ";
|
||||
$data['customers'][$TravelUserBookingFewo->id] = $tmp;
|
||||
}
|
||||
$ret = CustomerFewoMailRepository::loadModal($data);
|
||||
}
|
||||
|
||||
if($data['action'] === "modal-upload-booking-file") {
|
||||
$ret = view("travel.user.booking.upload_modal", compact('data'))->render();
|
||||
}
|
||||
|
||||
if($data['action'] === "upload-booking-file"){
|
||||
if($data['travel_user_booking_fewo_id']){
|
||||
$bookingFileRepo = new BookingFewoFileRepository(new TravelUserBookingFile());
|
||||
$bookingFileRepo->_set('disk', 'booking_fewo');
|
||||
$bookingFileRepo->_set('travel_user_booking_fewo_id', $data['travel_user_booking_fewo_id']);
|
||||
$bookingFileRepo->_set('dir', '/files/'.date('Y/m').'/');
|
||||
$bookingFileRepo->_set('identifier', 'booking');
|
||||
return $bookingFileRepo->uploadFile(Request::all());
|
||||
}
|
||||
}
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret]);
|
||||
}
|
||||
|
||||
|
||||
public function sendMail(CustomerFewoMailRepository $customerFewoMailRepository){
|
||||
$data = Request::all();
|
||||
$customerFewoMailRepository->sendAndStore($data);
|
||||
if($data['action'] == 'draft'){
|
||||
\Session()->flash('alert-success', "Entwurf gespeichert!");
|
||||
}else{
|
||||
\Session()->flash('alert-success', "Mail gesendet!");
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function replyMail(CustomerFewoMailRepository $customerFewoMailRepository){
|
||||
$data = Request::all();
|
||||
$customerFewoMailRepository->replyStore($data);
|
||||
\Session()->flash('alert-success', "Mail gespeichert!");
|
||||
return back();
|
||||
}
|
||||
|
||||
/*public function getCustomerFewoMails()
|
||||
{
|
||||
$query = CustomerFewoMail::with('booking')->with('customer')->select('customer_mails.*');
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('action_edit', function (CustomerFewoMail $customer_mail) {
|
||||
return '<a href="'.route('customer_mail_detail', [$customer_mail->id]).'" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('id', function (CustomerFewoMail $customer_mail) {
|
||||
return '<a data-order="'.$customer_mail->id.'" href="'.route('customer_mail_detail', [$customer_mail->id]).'" data-id="'.$customer_mail->id.'">'.$customer_mail->id.'</a>';
|
||||
})
|
||||
->addColumn('booking', function (CustomerFewoMail $customer_mail) {
|
||||
$out = $customer_mail->booking->travel_country_id ? $customer_mail->booking->travel_country->name." | " : "- | ";
|
||||
$out .= $customer_mail->booking->travelagenda_id ? $customer_mail->booking->travel_agenda->name."" : "-";
|
||||
return $out;
|
||||
})
|
||||
->addColumn('travel_user_booking_fewo_id', function (CustomerFewoMail $customer_mail) {
|
||||
return '<a data-order="'.$customer_mail->travel_user_booking_fewo_id.'" href="'.route('booking_detail', [$customer_mail->travel_user_booking_fewo_id]).'">'.$customer_mail->travel_user_booking_fewo_id.'</a>';
|
||||
})
|
||||
->addColumn('customer_id', function (CustomerFewoMail $customer_mail) {
|
||||
return '<a data-order="'.$customer_mail->customer_id.'" href="'.route('customer_detail', [$customer_mail->customer_id]).'">'.$customer_mail->customer_id.'</a>';
|
||||
})
|
||||
->addColumn('send', function (CustomerFewoMail $customer_mail) {
|
||||
return $customer_mail->send ? '<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>';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('travel_user_booking_fewo_id', 'travel_user_booking_fewo_id $1')
|
||||
->orderColumn('customer_id', 'customer_id $1')
|
||||
->orderColumn('send', 'send $1')
|
||||
|
||||
->filterColumn('id', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
$query->where('id', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->filterColumn('customer_id', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
$query->where('customer_id', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->filterColumn('travel_user_booking_fewo_id', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
$query->where('travel_user_booking_fewo_id', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->rawColumns(['action_edit', 'send', 'customer_id', 'travel_user_booking_fewo_id', 'id'])
|
||||
->make(true);
|
||||
}*/
|
||||
|
||||
public function getEmailTemplates()
|
||||
{
|
||||
$query = EmailTemplate::with('email_template_dir')->select('email_templates.*')->where('active', '=', true);
|
||||
|
||||
if(Request::get('filter_email_templates_directory') != ""){
|
||||
$query->where('email_template_dir_id', '=', Request::get('filter_email_templates_directory'));
|
||||
}
|
||||
|
||||
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>';
|
||||
})
|
||||
->addColumn('email_template_dir.name', function (EmailTemplate $emailTemplate) {
|
||||
return $emailTemplate->email_template_dir ? '<span class="badge badge-default" style="background-color: '.$emailTemplate->email_template_dir->color.'">'.$emailTemplate->email_template_dir->name.'</span>' : ' ';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('subject', 'subject $1')
|
||||
->orderColumn('name', 'name $1')
|
||||
->orderColumn('email_template_dir.name', 'email_template_dir.name $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('name', 'LIKE', '%'.$keyword.'%');
|
||||
$query->OrWhere('subject', 'LIKE', '%'.$keyword.'%');
|
||||
$query->OrWhere('message', 'LIKE', '%'.$keyword.'%');
|
||||
}
|
||||
})
|
||||
->rawColumns(['action', 'email_template_dir.name'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
public function uploadAttachment($id){
|
||||
|
||||
$fileRepo = new CustomerFewoFileRepository(new CustomerFewoFile());
|
||||
if($id === 'tmp'){
|
||||
$fileRepo->_set('disk', 'travel_user');
|
||||
$fileRepo->_set('dir', '/attachment/'.date('Y/m').'/');
|
||||
$fileRepo->_set('travel_user_id', NULL);
|
||||
$fileRepo->_set('customer_fewo_mail_id', NULL);
|
||||
$fileRepo->_set('identifier', 'tmp');
|
||||
return $fileRepo->uploadFile(Request::all());
|
||||
}
|
||||
|
||||
return Response::json([
|
||||
'error' => true,
|
||||
'code' => 200
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function ajax(){
|
||||
$data = Request::all();
|
||||
$ret = "";
|
||||
$status = false;
|
||||
if(Request::ajax()){
|
||||
if($data['action'] === 'toggle_important'){
|
||||
$customer_mail = CustomerFewoMail::find($data['id']);
|
||||
$customer_mail->important = ($customer_mail->important ? false : true);
|
||||
$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 = CustomerFewoFile::find($data['id']);
|
||||
$fileRepo = new CustomerFewoFileRepository($customer_file);
|
||||
$fileRepo->_set('disk', 'travel_user');
|
||||
$ret = $fileRepo->delete();
|
||||
$status = 'success';
|
||||
}
|
||||
|
||||
if($data['action'] === 'add_attachment'){
|
||||
$arrContextOptions=array(
|
||||
"ssl"=>array(
|
||||
"verify_peer"=>false,
|
||||
"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 CustomerFewoFileRepository(new CustomerFewoFile());
|
||||
$fileRepo->_set('disk', 'travel_user');
|
||||
$fileRepo->_set('dir', '/attachment/'.date('Y/m').'/');
|
||||
$fileRepo->_set('travel_user_id', NULL);
|
||||
$fileRepo->_set('customer_fewo_mail_id', NULL);
|
||||
$fileRepo->_set('identifier', 'tmp');
|
||||
$fileRepo->_set('originalName', $data['name']);
|
||||
$fileRepo->_set('mine', $mine);
|
||||
$fileRepo->_set('extension', $extension);
|
||||
return $fileRepo->storeFile($contents);
|
||||
}
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
|
||||
}
|
||||
|
||||
private function getSearchRequests()
|
||||
{
|
||||
if (!Request::get('travel_user_booking_fewo_id')) {
|
||||
return false;
|
||||
}
|
||||
$query = CustomerFewoMail::where('travel_user_booking_fewo_id', '=', Request::get('travel_user_booking_fewo_id'));
|
||||
if (Request::get('customer_mail_dir') == 11) { //draft
|
||||
$query->where('draft', '=', true)->where('dir', '!=', 12);
|
||||
}else{
|
||||
$query->where('dir', '=', Request::get('customer_mail_dir')); //with('lead'
|
||||
}
|
||||
if (Request::get('customer_mail_subdir')) {
|
||||
$query->where('subdir', '=', Request::get('customer_mail_subdir'));
|
||||
}
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function getRequests(){
|
||||
|
||||
$query = $this->getSearchRequests();
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('checkbox', function (CustomerFewoMail $customer_mail) {
|
||||
return '<div class="message-checkbox mr-1">
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input">
|
||||
<span class="custom-control-label"></span>
|
||||
</label>
|
||||
</div>';
|
||||
})
|
||||
->addColumn('important', function (CustomerFewoMail $customer_mail) {
|
||||
$icon = ($customer_mail->important ? 'ion-md-star' : 'ion-md-star-outline');
|
||||
return '<a href="javascript:void(0)" class="ion '.$icon.' d-block text-secondary text-big mr-3 customer-mail-ajax-action"
|
||||
data-url="'.route('customer_fewo_mail_ajax').'" data-id="'.$customer_mail->id.'" data-important="'.$customer_mail->important.'" data-action="toggle_important"></a>';
|
||||
})
|
||||
->addColumn('subject', function (CustomerFewoMail $customer_mail) {
|
||||
|
||||
$icon = $customer_mail->reply_id ? 'ion-ios-redo' : 'ion-ios-mail';
|
||||
$badge = $customer_mail->is_answer ? 'badge-next' : 'badge-secondary';
|
||||
$badge = $customer_mail->draft ? 'badge-default' : $badge;
|
||||
$to_icon = $customer_mail->draft ? '<i class="ion ion-ios-warning" style="opacity: 0.7"></i>' : '';
|
||||
$action = $customer_mail->draft ? 'edit-customer-mail' : 'show-customer-mail';
|
||||
$id = $customer_mail->draft ? $customer_mail->id : 'new';
|
||||
$url = $customer_mail->draft ? route('customer_fewo_mail_send_mail') : '';
|
||||
|
||||
return '<a href="javascript:void(0)" class="badge '.$badge.'" data-toggle="modal"
|
||||
data-target="#modals-load-content" data-id="'.$id.'" data-model="CustomerFewoMail"
|
||||
data-action="'.$action.'" data-url="'.$url.'" data-redirect="back"
|
||||
data-customer_mail_id="'.$customer_mail->id.'" data-route="'.route('customer_fewo_modal_load').'">
|
||||
'.$to_icon.'<i class="ion '.$icon.' ui-w-30 text-center" style="opacity: 0.7"></i>'.$customer_mail->subject.'
|
||||
'.($customer_mail->customer_fewo_files->count() ? ' <i class="ion ion-md-attach"> <span class="badge badge-primary indicator">'.$customer_mail->customer_fewo_files->count().'</span></i>' : '');
|
||||
|
||||
})
|
||||
->addColumn('date', function (CustomerFewoMail $customer_mail) {
|
||||
if($customer_mail->send){
|
||||
return '<span class="badge badge-success" style="background-color: #94ae59"><i class="fa fa-check-circle"></i> '.$customer_mail->sent_at.'</span>';
|
||||
}
|
||||
return '<span class="badge badge-default"><i class="fa fa-times-circle"></i> '.$customer_mail->sent_at.'</span>';
|
||||
})
|
||||
->addColumn('action', function (CustomerFewoMail $customer_mail) {
|
||||
$ret = '';
|
||||
if(!$customer_mail->draft){
|
||||
$ret = '<a href="javascript:void(0)" class="btn btn-xs btn-secondary" data-toggle="modal"
|
||||
data-target="#modals-load-content" data-id="reply-send" data-model="customerMail" data-action="new-customer-mail"
|
||||
data-url="'.route('customer_fewo_mail_send_mail').'" data-redirect="back" data-customer_mail_id="'.$customer_mail->id.'"
|
||||
data-travel_user_booking_fewo_id="'.$customer_mail->travel_user_booking_fewo_id.'" data-route="'.route('customer_fewo_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_subdir="'.$customer_mail->subdir.'">
|
||||
<span title="Antwort auf E-Mail senden" data-placement="left" rel="tooltip"><i class="ion ion-ios-redo"></i> <i class="ion ion-md-mail-open"></i></span>
|
||||
</a>
|
||||
|
||||
<a href="javascript:void(0)" class="btn btn-xs btn-default" data-toggle="modal"
|
||||
data-target="#modals-load-content" data-id="reply-save" data-model="customerMail" data-action="reply-customer-mail"
|
||||
data-url="'.route('customer_fewo_mail_reply_mail').'" data-redirect="back" data-customer_mail_id="'.$customer_mail->id.'"
|
||||
data-travel_user_booking_fewo_id="'.$customer_mail->travel_user_booking_fewo_id.'" data-route="'.route('customer_fewo_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_mail_subdir="'.$customer_mail->subdir.'">
|
||||
<span title="Antwort auf E-Mail speichern" data-placement="left" rel="tooltip"><i class="ion ion-ios-redo"></i> <i class="ion ion-md-mail-unread"></i></span>
|
||||
</a>
|
||||
';
|
||||
}
|
||||
$ret .= '<a href="'.route('customer_fewo_mail_delete', [$customer_mail->id]).'" class="btn btn-xs btn-default text-danger" onclick="return confirm(\'In den Papierkorb verschieben?\');"><i class="ion ion-md-trash"></i></a>';
|
||||
return '<div style="white-space: nowrap;">'.$ret.'</div>';
|
||||
})
|
||||
|
||||
->orderColumn('date', 'sent_at $1')
|
||||
->orderColumn('subject', 'subject $1')
|
||||
->orderColumn('important', 'important $1')
|
||||
->rawColumns(['checkbox', 'important', 'subject', 'date', 'action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Customer;
|
||||
use App\Models\CustomerFewoMail;
|
||||
use App\Models\CustomerFile;
|
||||
use App\Models\CustomerMail;
|
||||
use App\Models\EmailTemplate;
|
||||
|
|
@ -39,13 +40,10 @@ class CustomerMailController extends Controller
|
|||
if($id === "new") {
|
||||
$customer_mail = new CustomerMail();
|
||||
$id = 'new';
|
||||
|
||||
}else{
|
||||
$customer_mail = CustomerMail::findOrFail($id);
|
||||
$id = $customer_mail->id;
|
||||
}
|
||||
|
||||
|
||||
$data = [
|
||||
'customer_mail' => $customer_mail,
|
||||
'id' => $id,
|
||||
|
|
@ -58,23 +56,29 @@ class CustomerMailController extends Controller
|
|||
public function store($id, $action=false)
|
||||
{
|
||||
$data = Request::all();
|
||||
$customer_mail = CustomerMail::findOrFail($id);
|
||||
|
||||
if($action === 'move-mail'){
|
||||
$data['travel_country_id'] = isset($data['travel_country_id']) && $data['travel_country_id'] ? $data['travel_country_id'] : null;
|
||||
$customer_mail = CustomerMail::findOrFail($id);
|
||||
$data['subdir'] = isset($data['subdir']) && $data['subdir'] ? $data['subdir'] : null;
|
||||
$customer_mail->dir = $data['dir'];
|
||||
$customer_mail->travel_country_id = $data['travel_country_id'];
|
||||
$customer_mail->subdir = $data['subdir'];
|
||||
$customer_mail->save();
|
||||
|
||||
}
|
||||
if($action === 'move-mail-fewo'){
|
||||
$customer_mail = CustomerFewoMail::findOrFail($id);
|
||||
$data['subdir'] = isset($data['subdir']) && $data['subdir'] ? $data['subdir'] : null;
|
||||
$customer_mail->dir = $data['dir'];
|
||||
$customer_mail->subdir = $data['subdir'];
|
||||
$customer_mail->save();
|
||||
}
|
||||
return back();
|
||||
}
|
||||
|
||||
public function delete($id){
|
||||
$customer_mail = CustomerMail::find($id);
|
||||
$customer_mail->dir = 12;
|
||||
$customer_mail->travel_country_id = null;
|
||||
$customer_mail->draft = false;
|
||||
$customer_mail->subdir = 0;
|
||||
$customer_mail->save();
|
||||
|
||||
\Session()->flash('alert-success', __('Mail gelöscht'));
|
||||
|
|
@ -186,7 +190,11 @@ class CustomerMailController extends Controller
|
|||
|
||||
public function getEmailTemplates()
|
||||
{
|
||||
$query = EmailTemplate::where('active', '=', true);
|
||||
$query = EmailTemplate::with('email_template_dir')->select('email_templates.*')->where('active', '=', true);
|
||||
|
||||
if(Request::get('filter_email_templates_directory') != ""){
|
||||
$query->where('email_template_dir_id', '=', Request::get('filter_email_templates_directory'));
|
||||
}
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('action', function (EmailTemplate $emailTemplate) {
|
||||
|
|
@ -194,8 +202,12 @@ class CustomerMailController extends Controller
|
|||
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>';
|
||||
})
|
||||
->addColumn('email_template_dir.name', function (EmailTemplate $emailTemplate) {
|
||||
return $emailTemplate->email_template_dir ? '<span class="badge badge-default" style="background-color: '.$emailTemplate->email_template_dir->color.'">'.$emailTemplate->email_template_dir->name.'</span>' : ' ';
|
||||
})
|
||||
->orderColumn('id', 'id $1')
|
||||
->orderColumn('subject', 'subject $1')
|
||||
->orderColumn('email_template_dir.name', 'email_template_dir.name $1')
|
||||
->orderColumn('message', 'message $1')
|
||||
->filterColumn('id', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
|
|
@ -204,17 +216,16 @@ class CustomerMailController extends Controller
|
|||
})
|
||||
->filterColumn('subject', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
$query->where('subject', 'LIKE', '%'.$keyword.'%');
|
||||
$query->where('name', 'LIKE', '%'.$keyword.'%');
|
||||
$query->OrWhere('subject', 'LIKE', '%'.$keyword.'%');
|
||||
$query->OrWhere('message', 'LIKE', '%'.$keyword.'%');
|
||||
|
||||
}
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->rawColumns(['action', 'email_template_dir.name'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function uploadAttachment($id){
|
||||
|
||||
$fileRepo = new CustomerFileRepository(new CustomerFile());
|
||||
|
|
@ -290,13 +301,13 @@ class CustomerMailController extends Controller
|
|||
}
|
||||
$query = CustomerMail::where('booking_id', '=', Request::get('booking_id'));
|
||||
if (Request::get('customer_mail_dir') == 11) { //draft
|
||||
$query->where('draft', '=', true);
|
||||
$query->where('draft', '=', true)->where('dir', '!=', 12);
|
||||
}else{
|
||||
$query->where('dir', '=', Request::get('customer_mail_dir')); //with('lead'
|
||||
|
||||
}
|
||||
if (Request::get('customer_mail_country')) {
|
||||
$query->where('travel_country_id', '=', Request::get('customer_mail_country'));
|
||||
if (Request::get('customer_mail_subdir')) {
|
||||
$query->where('subdir', '=', Request::get('customer_mail_subdir'));
|
||||
}
|
||||
return $query;
|
||||
}
|
||||
|
|
@ -348,14 +359,14 @@ class CustomerMailController extends Controller
|
|||
$ret = '<a href="javascript:void(0)" class="btn btn-xs btn-secondary" data-toggle="modal"
|
||||
data-target="#modals-load-content" data-id="reply-send" data-model="customerMail" data-action="new-customer-mail"
|
||||
data-url="'.route('customer_mail_send_mail').'" data-redirect="back" data-customer_mail_id="'.$customer_mail->id.'"
|
||||
data-booking_id="'.$customer_mail->booking_id.'" data-route="'.route('booking_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_mail_country="'.$customer_mail->travel_country_id.'">
|
||||
data-booking_id="'.$customer_mail->booking_id.'" data-route="'.route('booking_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_mail_subdir="'.$customer_mail->subdir.'">
|
||||
<span title="Antwort auf E-Mail senden" data-placement="left" rel="tooltip"><i class="ion ion-ios-redo"></i> <i class="ion ion-md-mail-open"></i></span>
|
||||
</a>
|
||||
|
||||
<a href="javascript:void(0)" class="btn btn-xs btn-default" data-toggle="modal"
|
||||
data-target="#modals-load-content" data-id="reply-save" data-model="customerMail" data-action="reply-customer-mail"
|
||||
data-url="'.route('customer_mail_reply_mail').'" data-redirect="back" data-customer_mail_id="'.$customer_mail->id.'"
|
||||
data-booking_id="'.$customer_mail->booking_id.'" data-route="'.route('booking_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_mail_country="'.$customer_mail->travel_country_id.'">
|
||||
data-booking_id="'.$customer_mail->booking_id.'" data-route="'.route('booking_modal_load').'" data-customer_mail_dir="'.$customer_mail->dir.'" data-customer_mail_subdir="'.$customer_mail->subdir.'">
|
||||
<span title="Antwort auf E-Mail speichern" data-placement="left" rel="tooltip"><i class="ion ion-ios-redo"></i> <i class="ion ion-md-mail-unread"></i></span>
|
||||
</a>
|
||||
';
|
||||
|
|
@ -375,7 +386,7 @@ class CustomerMailController extends Controller
|
|||
/*->filterColumn('subject', function($query, $keyword) {
|
||||
if($keyword != ""){
|
||||
$query->whereRaw("subject LIKE ?", '%'.$keyword.'%');
|
||||
|
||||
|
||||
}
|
||||
})*/
|
||||
->orderColumn('date', 'sent_at $1')
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use App\Models\Draft;
|
||||
use App\Models\DraftItem;
|
||||
use App\Models\DraftType;
|
||||
use Request;
|
||||
|
||||
class DraftController extends Controller
|
||||
{
|
||||
|
|
@ -28,7 +29,7 @@ class DraftController extends Controller
|
|||
|
||||
public function detail($id)
|
||||
{
|
||||
if($id == "new") {
|
||||
if($id === "new") {
|
||||
$draft = new Draft();
|
||||
$draft->active = true;
|
||||
$id = 'new';
|
||||
|
|
@ -48,7 +49,7 @@ class DraftController extends Controller
|
|||
public function store($id)
|
||||
{
|
||||
$data = Request::all();
|
||||
if($id == "new") {
|
||||
if($id === "new") {
|
||||
$draft = new Draft();
|
||||
}else{
|
||||
$draft = Draft::findOrFail($id);
|
||||
|
|
@ -145,7 +146,7 @@ class DraftController extends Controller
|
|||
public function typeUpdate(){
|
||||
|
||||
$data = Request::all();
|
||||
if($data['id'] == "new"){
|
||||
if($data['id'] === "new"){
|
||||
$draft_type = DraftType::create([
|
||||
'name' => $data['name'],
|
||||
'active' => isset($data['active']) ? true : false,
|
||||
|
|
@ -158,8 +159,6 @@ class DraftController extends Controller
|
|||
$draft_type->active = isset($data['active']) ? true : false;
|
||||
$draft_type->color = $data['color'];
|
||||
$draft_type->pos = $data['pos'];
|
||||
|
||||
|
||||
$draft_type->save();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,11 @@ class FileController extends Controller
|
|||
$filename = $file->original_name;
|
||||
$path = $file->getPath();
|
||||
}
|
||||
if ($disk === 'travel_user'){
|
||||
$file = \App\Models\CustomerFewoFile::findOrFail($id);
|
||||
$filename = $file->original_name;
|
||||
$path = $file->getPath();
|
||||
}
|
||||
|
||||
if ($disk === 'booking'){
|
||||
$file = \App\Models\BookingFile::findOrFail($id);
|
||||
|
|
@ -34,6 +39,18 @@ class FileController extends Controller
|
|||
$path = $file->getPath();
|
||||
}
|
||||
|
||||
if ($disk === 'general'){
|
||||
$file = \App\Models\GeneralFile::findOrFail($id);
|
||||
$filename = $file->original_name;
|
||||
$path = $file->getPath();
|
||||
}
|
||||
|
||||
if ($disk === 'booking_fewo'){
|
||||
$file = \App\Models\TravelUserBookingFile::findOrFail($id);
|
||||
$filename = $file->original_name;
|
||||
$path = $file->getPath();
|
||||
}
|
||||
|
||||
if ($disk === 'cms_file'){
|
||||
$file = \App\Models\CMSContent::findOrFail($id);
|
||||
$filename = $file->name;
|
||||
|
|
|
|||
70
app/Http/Controllers/ModalController.php
Normal file
70
app/Http/Controllers/ModalController.php
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\GeneralFile;
|
||||
use App\Models\TravelCountry;
|
||||
use App\Models\TravelCountryService;
|
||||
use App\Repositories\GeneralFileRepository;
|
||||
use Request;
|
||||
|
||||
class ModalController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
public function load(){
|
||||
$data = Request::all();
|
||||
$ret = "";
|
||||
$status = false;
|
||||
if(Request::ajax()){
|
||||
|
||||
if($data['action'] === "upload-travel_country-file"){
|
||||
if($value = TravelCountry::find($data['id'])){
|
||||
$generalFileRepo = new GeneralFileRepository(new GeneralFile());
|
||||
$generalFileRepo->_set('disk', 'general');
|
||||
$generalFileRepo->_set('travel_country_id', $data['id']);
|
||||
$generalFileRepo->_set('dir', '/'.date('Y/m').'/');
|
||||
$generalFileRepo->_set('identifier', 'travel_country');
|
||||
$generalFileRepo->_set('redirect', $data['back']);
|
||||
|
||||
return $generalFileRepo->uploadFile(Request::all());
|
||||
}
|
||||
}
|
||||
if($data['action'] === 'modal-upload-travel_country-file'){
|
||||
$data['action'] = 'upload-travel_country-file';
|
||||
$ret = view("admin.modal.upload", compact('data'))->render();
|
||||
}
|
||||
|
||||
if($data['action'] === 'modal-travel_country-services'){
|
||||
if($data['id'] === 'new'){
|
||||
$value = new TravelCountryService();
|
||||
$value->active = true;
|
||||
}else{
|
||||
$value = TravelCountryService::find($data['id']);
|
||||
}
|
||||
$ret = view("admin.modal.country-service", compact('data', 'value'))->render();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* <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('modal_load') }}"><span class="fa fa-edit"></span></button>*/
|
||||
|
|
@ -9,6 +9,7 @@ use App\Models\Status;
|
|||
use App\Models\Sym\TravelCountry;
|
||||
use App\Models\TravelAgenda;
|
||||
use App\Models\TravelCompany;
|
||||
use App\Models\TravelCountryService;
|
||||
use App\Repositories\CustomerMailRepository;
|
||||
use Carbon\Carbon;
|
||||
use Request;
|
||||
|
|
@ -79,7 +80,7 @@ class RequestController extends Controller
|
|||
*/
|
||||
private function getSearchRequests(){
|
||||
|
||||
$query = Booking::with('lead')->with('customer')->with('customer_mails')->select('booking.*')->where('lead_id', '!=', NULL);
|
||||
$query = Booking::with('lead')->with('customer')->with('customer_mails')->with('customer_mails')->select('booking.*')->where('lead_id', '!=', NULL);
|
||||
|
||||
if(Request::get('full_firstname_search') != ""){
|
||||
$query->whereHas('customer', function ($q) {
|
||||
|
|
@ -225,9 +226,33 @@ class RequestController extends Controller
|
|||
|
||||
public function getAjaxRequests(){
|
||||
|
||||
$query = $this->getSearchRequests();
|
||||
$ret = $query->get()->pluck('travelagenda_id', 'id')->unique()->toArray();
|
||||
return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id');
|
||||
$data = Request::all();
|
||||
|
||||
if(Request::ajax()) {
|
||||
if(isset($data['action']) && $data['action'] === "get_popover_booking_services") {
|
||||
$booking = Booking::findOrFail($data['booking_id']);
|
||||
$ret = "";
|
||||
|
||||
foreach($booking->travel_country->getContactLandsModels() as $TravelCountry){
|
||||
if($TravelCountry->stern_travel_country){
|
||||
foreach($TravelCountry->stern_travel_country->travel_country_services as $travel_country_service){
|
||||
$ret .= \App\Models\BookingCountryService::getStatus($travel_country_service->id, $booking->id) ?
|
||||
'<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> '.$travel_country_service->name.'</span>' :
|
||||
'<span class="badge badge-pill badge-danger""><i class="fa fa-times"></i> '.$travel_country_service->name.'</span>';
|
||||
$ret .= '<br>';
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if($ret === ""){
|
||||
return 'keine Leistungen definiert';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
$query = $this->getSearchRequests();
|
||||
$ret = $query->get()->pluck('travelagenda_id', 'id')->unique()->toArray();
|
||||
return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
public function loadModal(){
|
||||
|
|
@ -290,8 +315,13 @@ class RequestController extends Controller
|
|||
return $booking->getEndDateFormat();
|
||||
})
|
||||
->addColumn('travel_documents', function (Booking $booking) {
|
||||
return $booking->travel_documents ? ' <span data-order="1" class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span data-order="0" class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
|
||||
return $booking->travel_documents ? '<span data-order="1" class="badge badge-pill badge-success" title="Reiseunterlagen" data-placement="top" rel="tooltip"><i class="fa fa-check"></i></span>' : '<span data-order="0" class="badge badge-pill badge-danger" title="Reiseunterlagen" data-placement="top" rel="tooltip"><i class="fa fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('booking_country_services', function (Booking $booking) {
|
||||
return $booking->hasBookingCountryServicesUnchecked() ? '<span data-order="1" class="badge badge-pill badge-success" data-booking_id="'.$booking->id.'" data-placement="top" data-toggle="popover" title="Reise-, Agenturleistungen"><i class="fa fa-check"></i></span>' :
|
||||
'<span data-order="0" class="badge badge-pill badge-danger" data-booking_id="'.$booking->id.'" data-placement="top" data-toggle="popover" title="Reise-, Agenturleistungen"><i class="fa fa-times"></i></span>';
|
||||
})
|
||||
|
||||
->addColumn('sf_guard_user_id', function (Booking $booking) {
|
||||
return '<span data-order="'.($booking->sf_guard_user_id ? $booking->sf_guard_user_id : 0).'">'.($booking->sf_guard_user_id? $booking->sf_guard_user->first_name." ".$booking->sf_guard_user->last_name : "-").'</span>';
|
||||
})
|
||||
|
|
@ -312,7 +342,6 @@ class RequestController extends Controller
|
|||
if($booking->lawyer_date){
|
||||
return '<span data-order="'.$booking->lead->status_id.'"><span class="badge badge-dark" style="background-color: '.$color.'">'.$icon.$booking->lawyer_date->format('d.m.Y').'</span></span>';
|
||||
}
|
||||
|
||||
}
|
||||
return '<span data-order="'.$booking->lead->status_id.'"><span class="badge badge-dark" style="background-color: '.$color.'">'.$icon.$booking->lead->status->name.'</span></span>';
|
||||
}
|
||||
|
|
@ -348,7 +377,7 @@ class RequestController extends Controller
|
|||
return '<span data-order="'.$booking->refund_date.'"><span class="badge badge-'.$booking->getRefundColor().'">'.$booking->getRefundTypeList().'</span></span>';
|
||||
})
|
||||
->addColumn('hold', function (Booking $booking) {
|
||||
return $booking->hold ? ' <span data-order="1" class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>' : '<span data-order="0" class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>';
|
||||
return $booking->hold ? ' <span data-order="1" class="badge badge-pill badge-success" title="Hold" data-placement="top" rel="tooltip"><i class="fa fa-check"></i></span>' : '<span data-order="0" class="badge badge-pill badge-danger" title="Hold" data-placement="top" rel="tooltip"><i class="fa fa-times"></i></span>';
|
||||
})
|
||||
->addColumn('xx_tkt', function (Booking $booking) {
|
||||
return '<span data-order="'.$booking->xx_tkt_date.'"><span class="badge badge-'.$booking->getXxTktColor().'">'.$booking->getXxTktTypeList().'</span></span>';
|
||||
|
|
@ -391,8 +420,8 @@ class RequestController extends Controller
|
|||
->orderColumn('airline_id', 'airline_id $1')
|
||||
->orderColumn('hold', 'hold $1')
|
||||
->orderColumn('xx_tkt', 'xx_tkt_date $1')
|
||||
->orderColumn('travel_documents', 'travel_documents $1')
|
||||
->rawColumns(['action_lead_edit', 'lead_id', 'participant_firstname', 'participant_name', 'action_booking_edit', 'travel_country_id', 'travelagenda_id', 'travel_company_id', 'sf_guard_user_id', 'lead.status_id', 'last_customer_email', 'id', 'travel_documents', 'paying_out', 'paying_out_status', 'airline_id', 'refund', 'hold', 'xx_tkt'])
|
||||
//->orderColumn('travel_documents', 'travel_documents $1')
|
||||
->rawColumns(['action_lead_edit', 'lead_id', 'participant_firstname', 'participant_name', 'action_booking_edit', 'travel_country_id', 'travelagenda_id', 'travel_company_id', 'sf_guard_user_id', 'lead.status_id', 'last_customer_email', 'id', 'travel_documents', 'booking_country_services', 'paying_out', 'paying_out_status', 'airline_id', 'refund', 'hold', 'xx_tkt'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,75 +0,0 @@
|
|||
<?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();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
143
app/Http/Controllers/Settings/EmailsController.php
Executable file
143
app/Http/Controllers/Settings/EmailsController.php
Executable file
|
|
@ -0,0 +1,143 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Models\EmailTemplateDir;
|
||||
use App\Services\Booking;
|
||||
use App\Services\BookingFewo;
|
||||
use App\Services\Util;
|
||||
use Request;
|
||||
|
||||
class EmailsController extends Controller
|
||||
{
|
||||
|
||||
protected $identifier_booking_file;
|
||||
protected $identifier_fewo_file;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->identifier_booking_file = 'booking-email-file';
|
||||
$this->identifier_fewo_file = 'fewo-email-file';
|
||||
$this->middleware('admin');
|
||||
}
|
||||
|
||||
|
||||
public function index($step = false)
|
||||
{
|
||||
|
||||
$data = [
|
||||
'email_template' => EmailTemplate::all(),
|
||||
'email_template_dirs' => EmailTemplateDir::all(),
|
||||
'booking_email_files' => CMSContent::where('identifier', '=', $this->identifier_booking_file)->get()->sortByDesc('pos'),
|
||||
'customer_mail_dirs' => Booking::getCustomerMailDirs(),
|
||||
'identifier_booking_file' => $this->identifier_booking_file,
|
||||
'identifier_fewo_file' => $this->identifier_fewo_file,
|
||||
'fewo_email_files' => CMSContent::where('identifier', '=', $this->identifier_fewo_file)->get()->sortByDesc('pos'),
|
||||
'customer_fewo_mail_dirs' => BookingFewo::getCustomerMailDirs(),
|
||||
'step' => $step
|
||||
|
||||
];
|
||||
return view('settings.emails.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']);
|
||||
|
||||
}
|
||||
$directories = EmailTemplateDir::where('active', '=', true)->get();
|
||||
$ret = view("settings.emails.modal", compact('value', 'directories'))->render();
|
||||
}
|
||||
}
|
||||
return response()->json(['response' => $data, 'html'=>$ret]);
|
||||
}
|
||||
|
||||
public function update(){
|
||||
|
||||
$data = Request::all();
|
||||
$data['active'] = isset($data['active']) ? true : false;
|
||||
$data['step'] = isset($data['step']) ? $data['step'] : false;
|
||||
|
||||
if($data['action'] === 'email_template'){
|
||||
if($data['id'] === "new" || $data['id'] == 0){
|
||||
$model = EmailTemplate::create($data);
|
||||
}else{
|
||||
$model = EmailTemplate::find($data['id']);
|
||||
$model->fill($data);
|
||||
$model->save();
|
||||
}
|
||||
}
|
||||
if($data['action'] === 'email_template_dir') {
|
||||
if($data['id'] === "new"){
|
||||
EmailTemplateDir::create($data);
|
||||
}else{
|
||||
$model = EmailTemplateDir::find($data['id']);
|
||||
$model->fill($data);
|
||||
$model->save();
|
||||
}
|
||||
}
|
||||
|
||||
if($data['action'] === 'customer_mail_dirs') {
|
||||
$data['object'] = [
|
||||
'icon' => $data['icon'],
|
||||
'model' => $data['model'],
|
||||
'emails' => isset($data['emails']) ? Util::_explodeLines($data['emails']) : null,
|
||||
];
|
||||
|
||||
$pos = $data['pos'];
|
||||
if($pos > 9){
|
||||
\Session()->flash('alert-error', 'max 9 Ordner für E-Mail Ablage');
|
||||
return redirect(route('admin_settings_emails', [$data['step']]));
|
||||
}
|
||||
if($data['id'] === "new"){
|
||||
//check ist pos
|
||||
if(CMSContent::where('identifier', '=', $data['identifier'])->where('pos', '=', $pos)->count()){
|
||||
\Session()->flash('alert-error', 'Die ID '.$pos.' existiert schon');
|
||||
return redirect(route('admin_settings_emails', [$data['step']]));
|
||||
}
|
||||
CMSContent::create($data);
|
||||
//store in cms old Datebase
|
||||
\App\Models\Sym\CmsContent::create($data);
|
||||
}else{
|
||||
$model = CMSContent::find($data['id']);
|
||||
if($model->pos != $pos && CMSContent::where('identifier', '=', $data['identifier'])->where('pos', '=', $pos)->count()){
|
||||
\Session()->flash('alert-error', 'Die ID '.$pos.' existiert schon');
|
||||
return redirect(route('admin_settings_emails', [$data['step']]));
|
||||
}
|
||||
$model->fill($data);
|
||||
$model->save();
|
||||
|
||||
$m = \App\Models\Sym\CmsContent::find($data['id']);
|
||||
$m->fill($data);
|
||||
$m->save();
|
||||
}
|
||||
}
|
||||
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect(route('admin_settings_emails', [$data['step']]));
|
||||
}
|
||||
|
||||
public function delete($id){
|
||||
|
||||
$model = EmailTemplate::findOrFail($id);
|
||||
$model->delete();
|
||||
\Session()->flash('alert-success', 'Eintrag gelöscht');
|
||||
return redirect()->back();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -4,9 +4,14 @@ namespace App\Http\Controllers\Settings;
|
|||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
use App\Models\GeneralFile;
|
||||
use App\Models\TravelCountry;
|
||||
use App\Models\TravelCountryService;
|
||||
use App\Models\TravelNationality;
|
||||
use App\Repositories\CustomerFileRepository;
|
||||
use App\Repositories\GeneralFileRepository;
|
||||
use App\Services\Util;
|
||||
use IqContent\LaravelFilemanager\Lfm;
|
||||
use Request;
|
||||
|
||||
class TravelCountryController extends Controller
|
||||
|
|
@ -48,27 +53,45 @@ class TravelCountryController extends Controller
|
|||
'id' => $id,
|
||||
'step' => $step,
|
||||
'travel_nationalities' => TravelNationality::where('active', true)->get(),
|
||||
'lfm_helper' => app(Lfm::class),
|
||||
|
||||
];
|
||||
return view('settings.travel_country.detail', $data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function update($id)
|
||||
{
|
||||
|
||||
$data = Request::all();
|
||||
|
||||
if(isset($data['update-action'])){
|
||||
if($data['update-action'] === 'save-travel-county-service'){
|
||||
$data['active'] = true;//isset($data['active']) ? true : false;
|
||||
$travel_country = TravelCountry::findOrFail($id);
|
||||
$data['travel_country_id'] = $travel_country->id;
|
||||
$data['crm_travel_country_id'] = $travel_country->crm_id;
|
||||
if($data['travel_county_service_id'] === 'new'){
|
||||
$model = TravelCountryService::create($data);
|
||||
}else{
|
||||
$model = TravelCountryService::find($data['travel_county_service_id']);
|
||||
$model->fill($data);
|
||||
$model->save();
|
||||
}
|
||||
\Session()->flash('alert-save', '1');
|
||||
return redirect($data['back']);
|
||||
}
|
||||
}
|
||||
|
||||
$data['contact_emails'] = isset($data['contact_emails']) ? Util::_explodeLines($data['contact_emails']) : null;
|
||||
if(!isset($data['contact_lands'])){
|
||||
$data['contact_lands'] = null;
|
||||
}
|
||||
$data['action'] = isset($data['action']) ? $data['action'] : false;
|
||||
/*
|
||||
* $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);
|
||||
|
|
@ -82,41 +105,64 @@ class TravelCountryController extends Controller
|
|||
$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();
|
||||
}
|
||||
|
||||
$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]));
|
||||
return redirect(route('admin_settings_travel_country_detail', [$model->id, $data['action']]));
|
||||
}
|
||||
|
||||
|
||||
public function delete($id){
|
||||
$model = TravelCountry::findOrFail($id);
|
||||
if( $model->travel_nationality_requirements){
|
||||
foreach($model->travel_nationality_requirements as $travel_nationality_requirement){
|
||||
$travel_nationality_requirement->delete();
|
||||
public function delete($id, $del="travel_country"){
|
||||
|
||||
if($del === 'travel_country'){
|
||||
$model = TravelCountry::findOrFail($id);
|
||||
if($model->travel_nationality_requirements){
|
||||
foreach($model->travel_nationality_requirements as $travel_nationality_requirement){
|
||||
$travel_nationality_requirement->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
$tc = \App\Models\Sym\TravelCountry::find($model->crm_id);
|
||||
if($tc){
|
||||
$tc->delete();
|
||||
$tc = \App\Models\Sym\TravelCountry::find($model->crm_id);
|
||||
if($tc){
|
||||
$tc->delete();
|
||||
}
|
||||
$model->delete();
|
||||
\Session()->flash('alert-success', 'Eintrag gelöscht');
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
if($del === 'general_file'){
|
||||
$general_file = GeneralFile::findOrFail($id);
|
||||
$travel_country = $general_file->travel_country;
|
||||
$fileRepo = new GeneralFileRepository($general_file);
|
||||
$fileRepo->_set('disk', 'general');
|
||||
$fileRepo->delete();
|
||||
$general_file->delete();
|
||||
\Session()->flash('alert-success', 'Datei gelöscht');
|
||||
return redirect(route('admin_settings_travel_country_detail', [$travel_country->id, 'data']));
|
||||
|
||||
}
|
||||
if($del === 'country_service'){
|
||||
$travel_country_service = TravelCountryService::findOrFail($id);
|
||||
$travel_country = $travel_country_service->travel_country;
|
||||
//check as entry
|
||||
if($travel_country_service->booking_country_services->count() > 0){
|
||||
\Session()->flash('alert-error', 'Die Leistung kann nicht gelöscht werden, diese hat Einträge bei den Buchungen');
|
||||
return redirect(route('admin_settings_travel_country_detail', [$travel_country->id, 'services']));
|
||||
}
|
||||
$travel_country_service->delete();
|
||||
\Session()->flash('alert-success', 'Eintrag gelöscht');
|
||||
return redirect(route('admin_settings_travel_country_detail', [$travel_country->id, 'services']));
|
||||
|
||||
}
|
||||
|
||||
$model->delete();
|
||||
\Session()->flash('alert-success', 'Eintrag gelöscht');
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,12 @@ use App\Mail\MailSendFeWoInvoice;
|
|||
use App\Mail\MailSendFeWoService;
|
||||
use App\Mail\MailSendFeWoInfo;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\FewoLodging;
|
||||
use App\Models\FewoReservation;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
use App\Models\TravelUserBookingFile;
|
||||
use App\Repositories\BookingFewoFileRepository;
|
||||
use App\Repositories\TravelUserBookingFewoRepository;
|
||||
use App\Services\Util;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
|
@ -23,12 +27,16 @@ class TravelUserBookingFewoController extends Controller
|
|||
$this->middleware('admin');
|
||||
$this->userBookingFewoRepo = $userBookingFewoRepo;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function index($step = false)
|
||||
{
|
||||
$data = [
|
||||
'step' => $step
|
||||
'step' => $step,
|
||||
'filter_fewo_options' => FewoLodging::get()->pluck('name', 'id'),
|
||||
'filter_channel_options' => TravelBookingFewoChannel::get()->pluck('name', 'id'),
|
||||
];
|
||||
return view('travel.user.booking.index', $data);
|
||||
|
||||
|
|
@ -41,13 +49,13 @@ class TravelUserBookingFewoController extends Controller
|
|||
|
||||
$replace_info_text = [];
|
||||
|
||||
if($id == "new") {
|
||||
if($id === "new") {
|
||||
$travel_user_booking_fewo = new TravelUserBookingFewo();
|
||||
$id = 'new';
|
||||
}else{
|
||||
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
|
||||
$max_adults = isset($travel_user_booking_fewo->fewo_lodging->maximum_adults) ? $travel_user_booking_fewo->fewo_lodging->maximum_adults : 10;
|
||||
$max_children = isset($travel_user_booking_fewo->fewo_lodging->maximum_childs) ? $travel_user_booking_fewo->fewo_lodging->maximum_childs : 10;;
|
||||
$max_adults = $travel_user_booking_fewo->fewo_lodging->maximum_adults ? $travel_user_booking_fewo->fewo_lodging->maximum_adults : 10;
|
||||
$max_children = $travel_user_booking_fewo->fewo_lodging->maximum_childs ? $travel_user_booking_fewo->fewo_lodging->maximum_childs : 10;;
|
||||
$id = $travel_user_booking_fewo->id;
|
||||
$replace_info_text['fewo_user_anrede'] = $travel_user_booking_fewo->getUserSalutation();
|
||||
$replace_info_text['fewo_adresse'] = $travel_user_booking_fewo->getNameAddressLocation(", ");
|
||||
|
|
@ -171,58 +179,87 @@ class TravelUserBookingFewoController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
public function delete($id){
|
||||
$model = TravelUserBookingFewo::findOrFail($id);
|
||||
$FewoReservations = FewoReservation::where('lodging_id', $model->fewo_lodging_id)->where('from_date', $model->getFromDateRaw())->where('to_date', $model->getToDateRaw())->get();
|
||||
foreach ($FewoReservations as $FewoReservation){
|
||||
$FewoReservation->delete();
|
||||
public function delete($id, $del="travel_user_booking_fewo"){
|
||||
|
||||
if($del === 'travel_user_booking_fewo') {
|
||||
$model = TravelUserBookingFewo::findOrFail($id);
|
||||
$FewoReservations = FewoReservation::where('lodging_id', $model->fewo_lodging_id)->where('from_date', $model->getFromDateRaw())->where('to_date', $model->getToDateRaw())->get();
|
||||
foreach ($FewoReservations as $FewoReservation) {
|
||||
$FewoReservation->delete();
|
||||
}
|
||||
$model->delete();
|
||||
\Session()->flash('alert-success', __('Buchung gelöscht sowie die Reservierung im Sterntrous Kalender'));
|
||||
}
|
||||
if($del === 'booking_fewo_files'){
|
||||
$booking_fewo_file = TravelUserBookingFile::findOrFail($id);
|
||||
$travel_user_booking_fewo = $booking_fewo_file->travel_user_booking_fewo;
|
||||
$fileRepo = new BookingFewoFileRepository($booking_fewo_file);
|
||||
$fileRepo->_set('disk', 'booking_fewo');
|
||||
$fileRepo->delete();
|
||||
$booking_fewo_file->delete();
|
||||
\Session()->flash('alert-success', 'Datei gelöscht');
|
||||
return redirect(route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id]));
|
||||
}
|
||||
$model->delete();
|
||||
\Session()->flash('alert-success', __('Buchung gelöscht sowie die Reservierung im Sterntrous Kalender'));
|
||||
return redirect(route('travel_user_booking_fewos'));
|
||||
}
|
||||
|
||||
private function prozessTravelUserBookingFewosSearch(){
|
||||
|
||||
$query = TravelUserBookingFewo::with('travel_booking_fewo_channel')->with('fewo_lodging')
|
||||
->select('travel_user_booking_fewos.*')
|
||||
->where('deleted_at', '=', null);
|
||||
|
||||
if(Request::get('option_fewo_id') != ""){
|
||||
$query->where('fewo_lodging_id', '=', Request::get('option_fewo_id'));
|
||||
}
|
||||
if(Request::get('option_channel_id') != ""){
|
||||
$query->where('travel_booking_fewo_channel_id', '=', Request::get('option_channel_id'));
|
||||
}
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function getTravelUserBookingFewos()
|
||||
{
|
||||
//confirmation_code_remider is delete 2
|
||||
$query = TravelUserBookingFewo::where('deleted_at', '=', null);
|
||||
|
||||
$query = $this->prozessTravelUserBookingFewosSearch();
|
||||
|
||||
return \DataTables::eloquent($query)
|
||||
->addColumn('action_edit', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
return '<a data-order="'.$travel_user_booking_fewo->id.'" href="' . route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>';
|
||||
})
|
||||
->addColumn('fewo_lodging', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
//return '<a href="' . route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->fewo_lodging_id]) . '">'.$travel_user_booking_fewo->fewo_lodging->name.'</a>';
|
||||
return $travel_user_booking_fewo->fewo_lodging->name;
|
||||
})
|
||||
->addColumn('travel_user', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
return '<a href="' . route('travel_user_detail', [$travel_user_booking_fewo->travel_user_id]) . '">'.$travel_user_booking_fewo->travel_user->first_name.' '.$travel_user_booking_fewo->travel_user->last_name.'</a>';
|
||||
})
|
||||
->addColumn('is_calendar', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
$back = "";
|
||||
$back = "<div class='no-break'>";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->is_calendar_fewo_direct, "FEWO Direkt")." ";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->is_calendar_hrs, "HRS")." ";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->is_calendar_stern_tours, "STERN TOURS");
|
||||
$back .= "</div>";
|
||||
return $back;
|
||||
})
|
||||
->addColumn('is_mail', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
$back = "";
|
||||
$back = "<div class='no-break'>";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->isSendUserMail(), "Mietbestätigung")." ";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->isSendInfoMail(), "Anrreiseinfo")." ";
|
||||
$back .= get_active_badge($travel_user_booking_fewo->isSendServiceMail(), "Dienstleister Mail");
|
||||
$back .= "</div>";
|
||||
return $back;
|
||||
})
|
||||
->addColumn('status_name', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
return $travel_user_booking_fewo->getStatuesName();
|
||||
})
|
||||
->addColumn('action_delete', function (TravelUserBookingFewo $travel_user_booking_fewo) {
|
||||
return '<a href="' . route('travel_user_booking_fewo_delete', [$travel_user_booking_fewo->id]) . '" class="btn icon-btn btn-sm btn-danger" onclick="return confirm(\''.__('Really delete entry?').'\');"><span class="fa fa-trash"></span></a>';
|
||||
})
|
||||
->rawColumns(['action_edit', 'fewo_lodging', 'travel_user', 'is_calendar', 'is_mail', 'action_delete'])
|
||||
->filterColumn('fewo_lodging.name', function ($query, $keyword) {
|
||||
if ($keyword != "") {
|
||||
$query->whereHas('travel_user', function ($q) use ($keyword) {
|
||||
$q->where("first_name", 'LIKE', '%' . $keyword . '%')
|
||||
->orWhere('last_name', 'LIKE', '%' . $keyword . '%');
|
||||
});
|
||||
}
|
||||
})
|
||||
->rawColumns(['action_edit', 'travel_user', 'is_calendar', 'is_mail', 'action_delete'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -47,4 +47,12 @@ class Airline extends Model
|
|||
|
||||
protected $casts = ['contact_emails' => 'array'];
|
||||
|
||||
public static function getAsNameIdArray($empty = true){
|
||||
$ret = Airline::get()->pluck('name', 'id')->toArray();
|
||||
if($empty){
|
||||
$first = [null => "-"];
|
||||
return $first + $ret;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -287,11 +287,12 @@ class Booking extends Model
|
|||
2 => 'erledigt',
|
||||
];
|
||||
|
||||
public static $hold_types = [
|
||||
0 => '-',
|
||||
1 => 'eingetragen',
|
||||
];
|
||||
|
||||
public static $customer_mail_dirs = [
|
||||
0 => ['name' => 'Reisender', 'icon'=>'ion-ios-filing'],
|
||||
1 => ['name' => 'Agentur', 'icon'=>'ion-ios-folder-open'],
|
||||
2 => ['name' => 'Flug', 'icon'=>'ion-ios-airplane'],
|
||||
3 => ['name' => 'Versicherung', 'icon'=>'ion-ios-help-buoy'],
|
||||
11 => ['name' => 'Entwürfe', 'icon'=>'ion-md-create'],
|
||||
12 => ['name' => 'Papierkorb', 'icon'=>'ion-md-trash'],
|
||||
];
|
||||
|
|
@ -473,6 +474,23 @@ class Booking extends Model
|
|||
return $this->hasMany(BookingFile::class);
|
||||
}
|
||||
|
||||
public function booking_country_services()
|
||||
{
|
||||
return $this->hasMany(BookingCountryService::class, 'booking_id');
|
||||
}
|
||||
|
||||
public function booking_country_services_checked()
|
||||
{
|
||||
return $this->hasMany(BookingCountryService::class, 'booking_id')->where('status', '=', 0);
|
||||
}
|
||||
|
||||
public function hasBookingCountryServicesUnchecked(){
|
||||
if(!$this->booking_country_services->count() || $this->booking_country_services_checked->count() ||
|
||||
($this->booking_country_services->count() !== TravelCountryService::where('crm_travel_country_id', '=', $this->travel_country_id)->count())){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function calculate_price_total()
|
||||
{
|
||||
|
|
@ -740,13 +758,13 @@ class Booking extends Model
|
|||
return isset($this->xx_tkt_colors[$this->xx_tkt]) ? $this->xx_tkt_colors[$this->xx_tkt] : '-';
|
||||
}
|
||||
|
||||
public function countCustomerMailsBy($dir, $country=false){
|
||||
public function countCustomerMailsBy($dir, $subdir=false){
|
||||
|
||||
if($dir === 11){
|
||||
return $this->customer_mails->where('draft', true)->count();
|
||||
return $this->customer_mails->where('draft', true)->where('dir', '!=', 12)->count();
|
||||
}
|
||||
if($country){
|
||||
return $this->customer_mails->where('dir', $dir)->where('travel_country_id', $country)->count();
|
||||
if($subdir){
|
||||
return $this->customer_mails->where('dir', $dir)->where('subdir', $subdir)->count();
|
||||
}
|
||||
return $this->customer_mails->where('dir', $dir)->count();
|
||||
}
|
||||
|
|
|
|||
75
app/Models/BookingCountryService.php
Normal file
75
app/Models/BookingCountryService.php
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class BookingCountryService
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_service_id
|
||||
* @property int $booking_id
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property Booking $booking
|
||||
* @property TravelCountryService $travel_country_service
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereBookingId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereTravelCountryServiceId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingCountryService whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class BookingCountryService extends Model
|
||||
{
|
||||
protected $connection = 'mysql';
|
||||
|
||||
protected $table = 'booking_country_services';
|
||||
|
||||
protected $casts = [
|
||||
'travel_country_service_id' => 'int',
|
||||
'booking_id' => 'int',
|
||||
'status' => 'int'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_country_service_id',
|
||||
'booking_id',
|
||||
'status'
|
||||
];
|
||||
|
||||
protected $status_type = [
|
||||
0 => 'offen',
|
||||
1 => 'erledigt',
|
||||
];
|
||||
|
||||
public function booking()
|
||||
{
|
||||
return $this->belongsTo(Booking::class);
|
||||
}
|
||||
|
||||
public function travel_country_service()
|
||||
{
|
||||
return $this->belongsTo(TravelCountryService::class);
|
||||
}
|
||||
|
||||
public static function getStatus($travel_country_service_id, $booking_id){
|
||||
$booking_country_service = BookingCountryService::where('travel_country_service_id', '=', $travel_country_service_id)
|
||||
->where('booking_id', '=', $booking_id)->first();
|
||||
|
||||
if($booking_country_service){
|
||||
return $booking_country_service->status;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -50,13 +50,6 @@ class BookingFile extends Model
|
|||
'size' => 'int'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'booking_id',
|
||||
'identifier',
|
||||
|
|
@ -68,6 +61,13 @@ class BookingFile extends Model
|
|||
'size'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
public function booking()
|
||||
{
|
||||
return $this->belongsTo(Booking::class);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,12 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent query()
|
||||
* @property string|null $identifier
|
||||
* @property array|null $object
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereObject($value)
|
||||
* @property int|null $pos
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent wherePos($value)
|
||||
*/
|
||||
class CMSContent extends Model
|
||||
{
|
||||
|
|
@ -59,7 +65,12 @@ class CMSContent extends Model
|
|||
protected $table = 'c_m_s_contents';
|
||||
|
||||
protected $fillable = [
|
||||
'name', 'slug', 'field', 'text', 'full_text', 'integer', 'decimal',
|
||||
'name', 'slug', 'identifier', 'field', 'text', 'full_text', 'object', 'integer', 'decimal', 'pos',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'object' => 'array',
|
||||
'pos' => 'int'
|
||||
];
|
||||
|
||||
public function sluggable()
|
||||
|
|
@ -107,11 +118,14 @@ class CMSContent extends Model
|
|||
return $this->full_text;
|
||||
break;
|
||||
case 'file':
|
||||
return \GuzzleHttp\json_decode($this->full_text);
|
||||
// return \GuzzleHttp\json_decode($this->full_text);
|
||||
return $this->object;
|
||||
break;
|
||||
case 'array':
|
||||
return $this->object;
|
||||
break;
|
||||
case 'integer':
|
||||
return $this->integer;
|
||||
|
||||
break;
|
||||
case 'decimal':
|
||||
return $this->decimal;
|
||||
|
|
@ -122,13 +136,21 @@ class CMSContent extends Model
|
|||
|
||||
//FILE ------------------------
|
||||
public function isFile(){
|
||||
return $this->field === 'file' ? true : false;
|
||||
return $this->id > 0 && $this->field === 'file' ? true : false;
|
||||
}
|
||||
/*'identifier', 'filename', 'dir', 'original_name', 'ext', 'mine', 'size'*/
|
||||
public function getFileContent($key= false){
|
||||
if($key && $this->isFile()){
|
||||
$file = \GuzzleHttp\json_decode($this->full_text);
|
||||
return isset($file->{$key}) ? $file->{$key} : false;
|
||||
// $file = \GuzzleHttp\json_decode($this->full_text);
|
||||
return isset($this->object[$key]) ? $this->object[$key] : false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getArrayContent($key= false){
|
||||
if($key && $this->field === 'array'){
|
||||
// $file = \GuzzleHttp\json_decode($this->full_text);
|
||||
return isset($this->object[$key]) ? $this->object[$key] : false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
@ -209,7 +231,10 @@ class CMSContent extends Model
|
|||
return $CMSContent->full_text;
|
||||
break;
|
||||
case 'file':
|
||||
return \GuzzleHttp\json_decode($CMSContent->full_text);
|
||||
return $CMSContent->object; //\GuzzleHttp\json_decode($CMSContent->full_text);
|
||||
break;
|
||||
case 'array':
|
||||
return $CMSContent->object; //\GuzzleHttp\json_decode($CMSContent->full_text);
|
||||
break;
|
||||
case 'integer':
|
||||
return $CMSContent->integer;
|
||||
|
|
|
|||
115
app/Models/CustomerFewoFile.php
Normal file
115
app/Models/CustomerFewoFile.php
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class CustomerFewoFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_id
|
||||
* @property int $customer_fewo_mail_id
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property CustomerFewoMail $customer_fewo_mail
|
||||
* @property TravelUser $travel_user
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereCustomerFewoMailId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereTravelUserId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class CustomerFewoFile extends Model
|
||||
{
|
||||
protected $connection = 'mysql_stern';
|
||||
|
||||
protected $table = 'customer_fewo_files';
|
||||
|
||||
protected $casts = [
|
||||
'travel_user_id' => 'int',
|
||||
'customer_fewo_mail_id' => 'int',
|
||||
'size' => 'int'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_user_id',
|
||||
'customer_fewo_mail_id',
|
||||
'identifier',
|
||||
'filename',
|
||||
'dir',
|
||||
'original_name',
|
||||
'ext',
|
||||
'mine',
|
||||
'size'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
public function customer_fewo_mail()
|
||||
{
|
||||
return $this->belongsTo(CustomerFewoMail::class);
|
||||
}
|
||||
|
||||
public function travel_user()
|
||||
{
|
||||
return $this->belongsTo(TravelUser::class);
|
||||
}
|
||||
|
||||
public function getIconExt(){
|
||||
return isset(self::$icon_ext[$this->ext]) ? self::$icon_ext[$this->ext] : self::$icon_ext['default'];
|
||||
}
|
||||
|
||||
public function getURL($do=false){
|
||||
return route('storage_file', [$this->id, 'travel_user', $do]);
|
||||
}
|
||||
|
||||
public function getPath(){
|
||||
return \Storage::disk('travel_user')->path($this->dir.$this->filename);
|
||||
|
||||
}
|
||||
|
||||
public function formatBytes($precision = 2)
|
||||
{
|
||||
$size = $this->size;
|
||||
|
||||
if ($size > 0) {
|
||||
$size = (int) $size;
|
||||
$base = log($size) / log(1024);
|
||||
$suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');
|
||||
|
||||
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
|
||||
} else {
|
||||
return $size;
|
||||
}
|
||||
}
|
||||
}
|
||||
189
app/Models/CustomerFewoMail.php
Normal file
189
app/Models/CustomerFewoMail.php
Normal file
|
|
@ -0,0 +1,189 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class CustomerFewoMail
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_booking_fewo_id
|
||||
* @property int $travel_user_id
|
||||
* @property bool $is_answer
|
||||
* @property int $reply_id
|
||||
* @property string $email
|
||||
* @property string $recipient
|
||||
* @property string $cc
|
||||
* @property string $bcc
|
||||
* @property string $subject
|
||||
* @property string $message
|
||||
* @property int $dir
|
||||
* @property int $subdir
|
||||
* @property bool $draft
|
||||
* @property bool $important
|
||||
* @property bool $send
|
||||
* @property bool $fail
|
||||
* @property string $error
|
||||
* @property Carbon $sent_at
|
||||
* @property Carbon $scheduled_at
|
||||
* @property Carbon $delivered_at
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property CustomerFewoMail $customer_fewo_mail
|
||||
* @property TravelUserBookingFewo $travel_user_booking_fewo
|
||||
* @property TravelUser $travel_user
|
||||
* @property Collection|CustomerFewoFile[] $customer_fewo_files
|
||||
* @property Collection|CustomerFewoMail[] $customer_fewo_mails
|
||||
* @package App\Models
|
||||
* @property-read int|null $customer_fewo_files_count
|
||||
* @property-read int|null $customer_fewo_mails_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereBcc($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereCc($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDeliveredAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereDraft($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereEmail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereError($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereFail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereImportant($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereIsAnswer($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereMessage($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereRecipient($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereReplyId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereScheduledAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSend($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSentAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSubdir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereSubject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereTravelUserBookingFewoId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereTravelUserId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFewoMail whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property-read \App\Models\TravelUserBookingFewo $booking
|
||||
* @property-read \App\Models\TravelUser $customer
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoFile[] $customer_files
|
||||
* @property-read int|null $customer_files_count
|
||||
* @property-read \App\Models\CustomerFewoMail|null $customer_mail
|
||||
*/
|
||||
class CustomerFewoMail extends Model
|
||||
{
|
||||
protected $connection = 'mysql_stern';
|
||||
|
||||
protected $table = 'customer_fewo_mails';
|
||||
|
||||
protected $casts = [
|
||||
'travel_user_booking_fewo_id' => 'int',
|
||||
'travel_user_id' => 'int',
|
||||
'is_answer' => 'bool',
|
||||
'reply_id' => 'int',
|
||||
'dir' => 'int',
|
||||
'subdir' => 'int',
|
||||
'draft' => 'bool',
|
||||
'important' => 'bool',
|
||||
'send' => 'bool',
|
||||
'fail' => 'bool',
|
||||
'recipient' => 'array',
|
||||
'cc' => 'array',
|
||||
'bcc' => 'array'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'sent_at',
|
||||
'scheduled_at',
|
||||
'delivered_at'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_user_booking_fewo_id',
|
||||
'travel_user_id',
|
||||
'is_answer',
|
||||
'reply_id',
|
||||
'email',
|
||||
'recipient',
|
||||
'cc',
|
||||
'bcc',
|
||||
'subject',
|
||||
'message',
|
||||
'dir',
|
||||
'subdir',
|
||||
'draft',
|
||||
'important',
|
||||
'send',
|
||||
'fail',
|
||||
'error',
|
||||
'sent_at',
|
||||
'scheduled_at',
|
||||
'delivered_at'
|
||||
];
|
||||
|
||||
public function customer_fewo_mail()
|
||||
{
|
||||
return $this->belongsTo(CustomerFewoMail::class, 'reply_id');
|
||||
}
|
||||
|
||||
public function customer_mail()
|
||||
{
|
||||
return $this->belongsTo(CustomerFewoMail::class, 'reply_id');
|
||||
}
|
||||
|
||||
public function travel_user_booking_fewo()
|
||||
{
|
||||
return $this->belongsTo(TravelUserBookingFewo::class);
|
||||
}
|
||||
|
||||
public function booking()
|
||||
{
|
||||
return $this->belongsTo(TravelUserBookingFewo::class);
|
||||
}
|
||||
|
||||
public function travel_user()
|
||||
{
|
||||
return $this->belongsTo(TravelUser::class);
|
||||
}
|
||||
|
||||
public function customer()
|
||||
{
|
||||
return $this->belongsTo(TravelUser::class, 'travel_user_id');
|
||||
}
|
||||
|
||||
public function customer_fewo_files()
|
||||
{
|
||||
return $this->hasMany(CustomerFewoFile::class);
|
||||
}
|
||||
|
||||
public function customer_files()
|
||||
{
|
||||
return $this->hasMany(CustomerFewoFile::class, 'customer_fewo_mail_id');
|
||||
}
|
||||
|
||||
public function customer_fewo_mails()
|
||||
{
|
||||
return $this->hasMany(CustomerFewoMail::class, 'reply_id');
|
||||
}
|
||||
|
||||
public function getSentAtRaw(){
|
||||
return $this->attributes['sent_at'];
|
||||
}
|
||||
|
||||
public function getSentAtAttribute(){
|
||||
if(!$this->attributes['sent_at']){ return ""; }
|
||||
return Carbon::parse($this->attributes['sent_at'])->format(\Util::formatDateTimeDB());
|
||||
}
|
||||
|
||||
public function getCreatedAtAttribute(){
|
||||
if(!$this->attributes['created_at']){ return ""; }
|
||||
return Carbon::parse($this->attributes['created_at'])->format(\Util::formatDateTimeDB());
|
||||
}
|
||||
}
|
||||
|
|
@ -58,12 +58,6 @@ class CustomerFile extends Model
|
|||
'size' => 'int'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
protected $fillable = [
|
||||
'customer_id',
|
||||
'customer_mail_id',
|
||||
|
|
@ -76,6 +70,13 @@ class CustomerFile extends Model
|
|||
'size'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
public function customer()
|
||||
{
|
||||
return $this->belongsTo(Customer::class);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property int|null $subdir
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSubdir($value)
|
||||
*/
|
||||
class CustomerMail extends Model
|
||||
{
|
||||
|
|
@ -96,7 +98,8 @@ class CustomerMail extends Model
|
|||
'is_answer' => 'bool',
|
||||
'reply_id' => 'int',
|
||||
'dir' => 'int',
|
||||
'travel_country_id' => 'int',
|
||||
'subdir' => 'int',
|
||||
'travel_country_id' => 'int',
|
||||
'draft' => 'bool',
|
||||
'important' => 'bool',
|
||||
'send' => 'bool',
|
||||
|
|
@ -125,7 +128,8 @@ class CustomerMail extends Model
|
|||
'subject',
|
||||
'message',
|
||||
'dir',
|
||||
'travel_country_id',
|
||||
'subdir',
|
||||
'travel_country_id',
|
||||
'draft',
|
||||
'important',
|
||||
'send',
|
||||
|
|
|
|||
|
|
@ -11,29 +11,49 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
/**
|
||||
* Class EmailTemplate
|
||||
*
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $email_template_dir_id
|
||||
* @property string $subject
|
||||
* @property string $message
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @property EmailTemplateDir $email_template_dir
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereEmailTemplateDirId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereMessage($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereSubject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @property string $name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplate whereName($value)
|
||||
*/
|
||||
class EmailTemplate extends Model
|
||||
{
|
||||
protected $connection = 'mysql';
|
||||
|
||||
protected $table = 'email_templates';
|
||||
protected $table = 'email_templates';
|
||||
|
||||
protected $casts = [
|
||||
'email_template_dir_id' => 'int',
|
||||
'active' => 'bool'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'email_template_dir_id',
|
||||
'name',
|
||||
'subject',
|
||||
'message',
|
||||
'active'
|
||||
];
|
||||
|
||||
public function email_template_dir()
|
||||
{
|
||||
return $this->belongsTo(EmailTemplateDir::class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
58
app/Models/EmailTemplateDir.php
Normal file
58
app/Models/EmailTemplateDir.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class EmailTemplateDir
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $color
|
||||
* @property bool $active
|
||||
* @property int $pos
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property Collection|EmailTemplate[] $email_templates
|
||||
* @package App\Models
|
||||
* @property-read int|null $email_templates_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereColor($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir wherePos($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\EmailTemplateDir whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class EmailTemplateDir extends Model
|
||||
{
|
||||
protected $table = 'email_template_dirs';
|
||||
|
||||
protected $casts = [
|
||||
'active' => 'bool',
|
||||
'pos' => 'int'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'color',
|
||||
'active',
|
||||
'pos'
|
||||
];
|
||||
|
||||
public function email_templates()
|
||||
{
|
||||
return $this->hasMany(EmailTemplate::class);
|
||||
}
|
||||
}
|
||||
106
app/Models/GeneralFile.php
Normal file
106
app/Models/GeneralFile.php
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class GeneralFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_id
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelCountry $travel_country
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\GeneralFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class GeneralFile extends Model
|
||||
{
|
||||
protected $connection = 'mysql';
|
||||
|
||||
protected $table = 'general_files';
|
||||
|
||||
protected $casts = [
|
||||
'travel_country_id' => 'int',
|
||||
'size' => 'int'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_country_id',
|
||||
'identifier',
|
||||
'filename',
|
||||
'dir',
|
||||
'original_name',
|
||||
'ext',
|
||||
'mine',
|
||||
'size'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
|
||||
public function travel_country()
|
||||
{
|
||||
return $this->belongsTo(TravelCountry::class, 'travel_country_id');
|
||||
}
|
||||
|
||||
public function getIconExt(){
|
||||
return isset(self::$icon_ext[$this->ext]) ? self::$icon_ext[$this->ext] : self::$icon_ext['default'];
|
||||
}
|
||||
|
||||
public function getURL($do=false){
|
||||
return route('storage_file', [$this->id, 'general', $do]);
|
||||
}
|
||||
|
||||
public function getPath(){
|
||||
return \Storage::disk('general')->path($this->dir.$this->filename);
|
||||
|
||||
}
|
||||
|
||||
public function formatBytes($precision = 2)
|
||||
{
|
||||
$size = $this->size;
|
||||
|
||||
if ($size > 0) {
|
||||
$size = (int) $size;
|
||||
$base = log($size) / log(1024);
|
||||
$suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');
|
||||
|
||||
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
|
||||
} else {
|
||||
return $size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ use Illuminate\Database\Eloquent\Model;
|
|||
|
||||
/**
|
||||
* Class Insurance
|
||||
*
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $name_full
|
||||
|
|
@ -19,8 +19,17 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @package App\Models
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereContactEmails($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Insurance whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class Insurance extends Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereType($value)
|
||||
* @mixin \Eloquent
|
||||
* @property array|null $contact_emails
|
||||
* @property bool|null $active
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ServiceProvider whereContactEmails($value)
|
||||
*/
|
||||
class ServiceProvider extends Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,6 +34,12 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent findSimilarSlugs($attribute, $config, $slug)
|
||||
* @property string|null $identifier
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereIdentifier($value)
|
||||
* @property array|null $object
|
||||
* @property int|null $pos
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent whereObject($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\CmsContent wherePos($value)
|
||||
*/
|
||||
class CmsContent extends Model
|
||||
{
|
||||
|
|
@ -45,7 +51,12 @@ class CmsContent extends Model
|
|||
protected $table = 'cms_contents';
|
||||
|
||||
protected $fillable = [
|
||||
'name', 'slug', 'field', 'text', 'full_text', 'integer', 'decimal',
|
||||
'name', 'slug', 'identifier', 'field', 'text', 'full_text', 'object', 'integer', 'decimal', 'pos',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'object' => 'array',
|
||||
'pos' => 'int'
|
||||
];
|
||||
|
||||
public $timestamps = false;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
namespace App\Models\Sym;
|
||||
|
||||
use App\Models\Booking;
|
||||
use App\Models\GeneralFile;
|
||||
use App\Models\Lead;
|
||||
use App\Models\TravelCountryService;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
|
||||
|
|
@ -40,6 +42,13 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @property-read int|null $bookings_count
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactEmails($value)
|
||||
* @property array|null $mail_dirs
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereMailDirs($value)
|
||||
* @property string|null $mail_dir_name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereMailDirName($value)
|
||||
* @property-read \App\Models\TravelCountry|null $stern_travel_country
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelCountryService[] $travel_country_services
|
||||
* @property-read int|null $travel_country_services_count
|
||||
*/
|
||||
class TravelCountry extends Model
|
||||
{
|
||||
|
|
@ -53,6 +62,8 @@ class TravelCountry extends Model
|
|||
'is_customer_country',
|
||||
'active_backend',
|
||||
'contact_lands',
|
||||
'mail_dir_name',
|
||||
'mail_dirs',
|
||||
'contact_headline',
|
||||
'contact_text_1',
|
||||
'contact_text_2',
|
||||
|
|
@ -63,7 +74,7 @@ class TravelCountry extends Model
|
|||
|
||||
];
|
||||
|
||||
protected $casts = ['contact_lands' => 'array', 'contact_emails' => 'array'];
|
||||
protected $casts = ['contact_lands' => 'array', 'mail_dirs'=>'array', 'contact_emails' => 'array'];
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
|
|
@ -77,6 +88,16 @@ class TravelCountry extends Model
|
|||
return $this->hasMany(Booking::class, 'travel_country_id', 'id');
|
||||
}
|
||||
|
||||
public function stern_travel_country()
|
||||
{
|
||||
return $this->hasOne(\App\Models\TravelCountry::class, 'crm_id', 'id');
|
||||
}
|
||||
|
||||
public function travel_country_services()
|
||||
{
|
||||
return $this->hasMany(TravelCountryService::class, 'crm_travel_country_id', 'id')->orderBy('pos', 'DESC');
|
||||
}
|
||||
|
||||
public function getCountryLands(){
|
||||
$ret = [];
|
||||
if($this->contact_lands){
|
||||
|
|
@ -90,4 +111,22 @@ class TravelCountry extends Model
|
|||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function getMailDirs($id){
|
||||
return isset($this->mail_dirs[$id]) ? $this->mail_dirs[$id] : [];
|
||||
}
|
||||
|
||||
public function getContactLandsModels(){
|
||||
$ret = [];
|
||||
if($this->contact_lands){
|
||||
foreach ($this->contact_lands as $travel_country_id){
|
||||
if($travel_country = TravelCountry::find($travel_country_id)){
|
||||
$ret[$travel_country->id] = $travel_country;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$ret[$this->id] = $this;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||
* @mixin \Eloquent
|
||||
* @property int|null $active
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCompany whereActive($value)
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCompany whereContactEmails($value)
|
||||
*/
|
||||
class TravelCompany extends Model
|
||||
{
|
||||
|
|
|
|||
|
|
@ -60,6 +60,15 @@ use Illuminate\Support\Str;
|
|||
* @property-read int|null $travel_nationality_requirements_count
|
||||
* @property array|null $contact_emails
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactEmails($value)
|
||||
* @property array|null $mail_dirs
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereMailDirs($value)
|
||||
* @property string $mail_dir_name
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereMailDirName($value)
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\GeneralFile[] $general_files
|
||||
* @property-read int|null $general_files_count
|
||||
* @property-read \App\Models\Sym\TravelCountry|null $crm_travel_country
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelCountryService[] $travel_country_services
|
||||
* @property-read int|null $travel_country_services_count
|
||||
*/
|
||||
class TravelCountry extends Model
|
||||
{
|
||||
|
|
@ -68,7 +77,6 @@ class TravelCountry extends Model
|
|||
|
||||
protected $table = 'travel_country';
|
||||
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'slug',
|
||||
|
|
@ -76,6 +84,8 @@ class TravelCountry extends Model
|
|||
'text_before',
|
||||
'text_after',
|
||||
'contact_lands',
|
||||
'mail_dir_name',
|
||||
'mail_dirs',
|
||||
'contact_headline',
|
||||
'contact_text_1',
|
||||
'contact_text_2',
|
||||
|
|
@ -90,7 +100,7 @@ class TravelCountry extends Model
|
|||
|
||||
];
|
||||
|
||||
protected $casts = ['contact_lands' => 'array', 'contact_emails' => 'array'];
|
||||
protected $casts = ['contact_lands' => 'array', 'mail_dirs' => 'array', 'contact_emails' => 'array'];
|
||||
|
||||
|
||||
public $timestamps = false;
|
||||
|
|
@ -105,11 +115,26 @@ class TravelCountry extends Model
|
|||
return $this->belongsTo('App\Models\Page', 'feedback_page_id', 'id');
|
||||
}
|
||||
|
||||
public function crm_travel_country()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\Sym\TravelCountry::class, 'crm_id', 'id');
|
||||
}
|
||||
|
||||
public function travel_nationality_requirements()
|
||||
{
|
||||
return $this->hasMany('App\Models\TravelNationalityRequirement', 'travel_country_id', 'id');
|
||||
}
|
||||
|
||||
public function general_files()
|
||||
{
|
||||
return $this->hasMany(GeneralFile::class, 'travel_country_id', 'id');
|
||||
}
|
||||
|
||||
public function travel_country_services()
|
||||
{
|
||||
return $this->hasMany(TravelCountryService::class, 'travel_country_id', 'id')->orderBy('pos', 'DESC');
|
||||
}
|
||||
|
||||
public function setSlugAttribute( $value ) {
|
||||
if(!isset($value) || $value == ""){
|
||||
$this->attributes['slug'] = Str::slug(pre_slug($this->name), '-');
|
||||
|
|
@ -131,6 +156,23 @@ class TravelCountry extends Model
|
|||
return $ret;
|
||||
}
|
||||
|
||||
public function getMailDirs($id){
|
||||
return isset($this->mail_dirs[$id]) ? $this->mail_dirs[$id] : [];
|
||||
}
|
||||
|
||||
public function getContactLandsModels(){
|
||||
$ret = [];
|
||||
if($this->contact_lands){
|
||||
foreach ($this->contact_lands as $travel_country_id){
|
||||
if($travel_country = TravelCountry::where('crm_id', $contact_land_id)->first()){
|
||||
$ret[$travel_country->id] = $travel_country;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$ret[$this->id] = $this;
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
public function getNationalityRequirement($travel_nationality_id){
|
||||
|
||||
$model = TravelNationalityRequirement::where('travel_country_id', $this->id)->where('travel_nationality_id', $travel_nationality_id)->first();
|
||||
|
|
|
|||
85
app/Models/TravelCountryService.php
Normal file
85
app/Models/TravelCountryService.php
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class TravelCountryService
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_country_id
|
||||
* @property int $crm_travel_country
|
||||
* @property string $name
|
||||
* @property string $description
|
||||
* @property bool $active
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelCountry $travel_country
|
||||
* @property Collection|BookingCountryService[] $booking_country_services
|
||||
* @package App\Models
|
||||
* @property int|null $crm_travel_country_id
|
||||
* @property int|null $pos
|
||||
* @property-read int|null $booking_country_services_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereActive($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereCrmTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereDescription($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService wherePos($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereTravelCountryId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountryService whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class TravelCountryService extends Model
|
||||
{
|
||||
protected $connection = 'mysql';
|
||||
|
||||
protected $table = 'travel_country_services';
|
||||
|
||||
protected $casts = [
|
||||
'travel_country_id' => 'int',
|
||||
'crm_travel_country_id' => 'int',
|
||||
'pos' => 'int',
|
||||
'active' => 'bool'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_country_id',
|
||||
'crm_travel_country_id',
|
||||
'name',
|
||||
'description',
|
||||
'pos',
|
||||
'active'
|
||||
];
|
||||
|
||||
protected $status_type = [
|
||||
0 => 'offen',
|
||||
1 => 'erledigt',
|
||||
];
|
||||
|
||||
public function travel_country()
|
||||
{
|
||||
return $this->belongsTo(TravelCountry::class, 'travel_country_id');
|
||||
}
|
||||
|
||||
public function crm_travel_country()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\Sym\TravelCountry::class);
|
||||
}
|
||||
|
||||
public function booking_country_services()
|
||||
{
|
||||
return $this->hasMany(BookingCountryService::class);
|
||||
}
|
||||
}
|
||||
|
|
@ -131,4 +131,8 @@ class TravelUser extends Model
|
|||
public function setBirthdayAttribute( $value ) {
|
||||
$this->attributes['birthday'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL;
|
||||
}
|
||||
|
||||
public function getSalutation(){
|
||||
return $this->salutation_id == 1 ? 'Herr' : 'Frau';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,6 +98,14 @@ use App\Services\Util;
|
|||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereUpdatedAt($value)
|
||||
* @property string|null $last_change_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereLastChangeAt($value)
|
||||
* @property-read \App\Models\CustomerFewoMail|null $customer_fewo_mail_last
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoMail[] $customer_fewo_mails
|
||||
* @property-read int|null $customer_fewo_mails_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerFewoMail[] $customer_fewo_mails_sent_at
|
||||
* @property-read int|null $customer_fewo_mails_sent_at_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelUserBookingFile[] $booking_files
|
||||
* @property-read int|null $booking_files_count
|
||||
* @property-read \App\Models\TravelUser $customer
|
||||
*/
|
||||
class TravelUserBookingFewo extends Model
|
||||
{
|
||||
|
|
@ -182,6 +190,11 @@ class TravelUserBookingFewo extends Model
|
|||
'status_text'
|
||||
];
|
||||
|
||||
public static $customer_mail_dirs = [
|
||||
11 => ['name' => 'Entwürfe', 'icon'=>'ion-md-create'],
|
||||
12 => ['name' => 'Papierkorb', 'icon'=>'ion-md-trash'],
|
||||
];
|
||||
|
||||
public function fewo_lodging()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\FewoLodging::class);
|
||||
|
|
@ -202,6 +215,31 @@ class TravelUserBookingFewo extends Model
|
|||
return $this->belongsTo(\App\Models\TravelUser::class);
|
||||
}
|
||||
|
||||
public function customer()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\TravelUser::class, 'travel_user_id');
|
||||
}
|
||||
|
||||
public function booking_files()
|
||||
{
|
||||
return $this->hasMany(TravelUserBookingFile::class, 'travel_user_booking_fewo_id');
|
||||
}
|
||||
|
||||
public function customer_fewo_mails()
|
||||
{
|
||||
return $this->hasMany(CustomerFewoMail::class, 'travel_user_booking_fewo_id', 'id');
|
||||
}
|
||||
|
||||
public function customer_fewo_mails_sent_at()
|
||||
{
|
||||
return $this->hasMany(CustomerFewoMail::class, 'travel_user_booking_fewo_id')->orderBy('sent_at', 'ASC');
|
||||
}
|
||||
|
||||
public function customer_fewo_mail_last()
|
||||
{
|
||||
return $this->hasOne(CustomerFewoMail::class, 'travel_user_booking_fewo_id')->latest();
|
||||
}
|
||||
|
||||
public function getStatuesName(){
|
||||
if(isset(self::$statues[$this->status])){
|
||||
return self::$statues[$this->status];
|
||||
|
|
@ -693,6 +731,16 @@ class TravelUserBookingFewo extends Model
|
|||
return false;
|
||||
}
|
||||
|
||||
public function countCustomerMailsBy($dir, $subdir=false){
|
||||
if($dir === 11){
|
||||
return $this->customer_fewo_mails->where('draft', true)->where('dir', '!=', 12)->count();
|
||||
}
|
||||
if($subdir){
|
||||
return $this->customer_fewo_mails->where('dir', $dir)->where('subdir', $subdir)->count();
|
||||
}
|
||||
return $this->customer_fewo_mails->where('dir', $dir)->count();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
106
app/Models/TravelUserBookingFile.php
Normal file
106
app/Models/TravelUserBookingFile.php
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class TravelUserBookingFile
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $travel_user_booking_fewos
|
||||
* @property string $identifier
|
||||
* @property string $filename
|
||||
* @property string $dir
|
||||
* @property string $original_name
|
||||
* @property string $ext
|
||||
* @property string $mine
|
||||
* @property int $size
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
* @property TravelUserBookingFewo $travel_user_booking_fewo
|
||||
* @package App\Models
|
||||
* @property int|null $travel_user_booking_fewo_id
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereDir($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereExt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereFilename($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereIdentifier($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereMine($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereOriginalName($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereSize($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereTravelUserBookingFewoId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFile whereUpdatedAt($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class TravelUserBookingFile extends Model
|
||||
{
|
||||
protected $connection = 'mysql_stern';
|
||||
|
||||
protected $table = 'travel_user_booking_files';
|
||||
|
||||
protected $casts = [
|
||||
'travel_user_booking_fewo_id' => 'int',
|
||||
'size' => 'int'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'travel_user_booking_fewo_id',
|
||||
'identifier',
|
||||
'filename',
|
||||
'dir',
|
||||
'original_name',
|
||||
'ext',
|
||||
'mine',
|
||||
'size'
|
||||
];
|
||||
|
||||
public static $icon_ext = [
|
||||
'default' => 'fa fa-file',
|
||||
'pdf'=> 'fa fa-file-pdf',
|
||||
'jpg'=> 'fa fa-file-image',
|
||||
'png'=> 'fa fa-file-image',
|
||||
];
|
||||
|
||||
public function travel_user_booking_fewo()
|
||||
{
|
||||
return $this->belongsTo(TravelUserBookingFewo::class, 'travel_user_booking_fewo_id');
|
||||
}
|
||||
|
||||
public function getIconExt(){
|
||||
return isset(self::$icon_ext[$this->ext]) ? self::$icon_ext[$this->ext] : self::$icon_ext['default'];
|
||||
}
|
||||
|
||||
public function getURL($do=false){
|
||||
return route('storage_file', [$this->id, 'booking_fewo', $do]);
|
||||
}
|
||||
|
||||
public function getPath(){
|
||||
return \Storage::disk('booking_fewo')->path($this->dir.$this->filename);
|
||||
|
||||
}
|
||||
|
||||
public function formatBytes($precision = 2)
|
||||
{
|
||||
$size = $this->size;
|
||||
|
||||
if ($size > 0) {
|
||||
$size = (int) $size;
|
||||
$base = log($size) / log(1024);
|
||||
$suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');
|
||||
|
||||
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
|
||||
} else {
|
||||
return $size;
|
||||
}
|
||||
}
|
||||
}
|
||||
53
app/Repositories/BookingFewoFileRepository.php
Normal file
53
app/Repositories/BookingFewoFileRepository.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\BookingFile;
|
||||
use App\Models\TravelUserBookingFile;
|
||||
use Response;
|
||||
|
||||
class BookingFewoFileRepository extends FileRepository {
|
||||
|
||||
|
||||
|
||||
protected $booking_fewo_file;
|
||||
protected $travel_user_booking_fewo_id;
|
||||
protected $identifier;
|
||||
|
||||
|
||||
public function __construct(TravelUserBookingFile $model){
|
||||
parent::__construct();
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function save(){
|
||||
$this->booking_fewo_file = TravelUserBookingFile::create([
|
||||
'travel_user_booking_fewo_id' => $this->travel_user_booking_fewo_id,
|
||||
'identifier' => $this->identifier,
|
||||
'filename' => $this->allowed_filename,
|
||||
'dir' => $this->dir,
|
||||
'original_name' => $this->originalName,
|
||||
'ext' => $this->extension,
|
||||
'mine' => $this->mine,
|
||||
'size' => $this->size
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function response(){
|
||||
return Response::json([
|
||||
'error' => false,
|
||||
'filename' => $this->allowed_filename,
|
||||
'file_id' =>$this->booking_fewo_file->id,
|
||||
'file_data' => $this->extension,
|
||||
'file_icon' => $this->booking_fewo_file->getIconExt(),
|
||||
'file_format_bytes' => $this->booking_fewo_file->formatBytes(),
|
||||
'file_url' => $this->booking_fewo_file->getURL(),
|
||||
'redirect' => '',
|
||||
'code' => 200
|
||||
], 200);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ namespace App\Repositories;
|
|||
|
||||
|
||||
use App\Models\Booking;
|
||||
use App\Models\BookingCountryService;
|
||||
|
||||
class BookingRepository extends BaseRepository {
|
||||
|
||||
|
|
@ -18,4 +19,55 @@ class BookingRepository extends BaseRepository {
|
|||
return $this->model;
|
||||
}
|
||||
|
||||
public function updateBooking($id, $data){
|
||||
|
||||
$this->model = Booking::findOrFail($id);
|
||||
|
||||
$fill = [
|
||||
'paying_out' => $data['paying_out'],
|
||||
'paying_out_status' => $data['paying_out_status'],
|
||||
'airline_id' => $data['airline_id'],
|
||||
'refund' => $data['refund'],
|
||||
'refund_date' => _reformat_date($data['refund_date']),
|
||||
'lawyer_date' => _reformat_date($data['lawyer_date']),
|
||||
'hold' => $data['hold'],
|
||||
'xx_tkt' => $data['xx_tkt'],
|
||||
'xx_tkt_date' => _reformat_date($data['xx_tkt_date']),
|
||||
'filekey' => $data['filekey'],
|
||||
'is_rail_fly' => isset($data['is_rail_fly']) ? true : false,
|
||||
'notice' => $data['notice'],
|
||||
];
|
||||
|
||||
$this->model->fill($fill);
|
||||
$this->model->save();
|
||||
|
||||
if(isset($data['country_service'])){
|
||||
$this->updateCountryService($data['country_service']);
|
||||
}
|
||||
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
public function updateCountryService($country_services){
|
||||
|
||||
foreach ($country_services as $country_service_id=>$val){
|
||||
$booking_country_service = BookingCountryService::where('travel_country_service_id', '=', $country_service_id)
|
||||
->where('booking_id', '=', $this->model->id)->first();
|
||||
|
||||
if(!$booking_country_service){
|
||||
$booking_country_service = BookingCountryService::create([
|
||||
'travel_country_service_id' => $country_service_id,
|
||||
'booking_id' => $this->model->id,
|
||||
'status' => $val
|
||||
]);
|
||||
}else{
|
||||
$booking_country_service->fill([
|
||||
'status' => $val
|
||||
]);
|
||||
$booking_country_service->save();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ use Response;
|
|||
class CMSFileRepository extends FileRepository {
|
||||
|
||||
protected $identifier;
|
||||
|
||||
protected $data;
|
||||
|
||||
public function __construct($model){
|
||||
parent::__construct();
|
||||
|
|
@ -28,7 +28,8 @@ class CMSFileRepository extends FileRepository {
|
|||
$data = [
|
||||
"name" => $this->originalName,
|
||||
"field" => "file",
|
||||
"full_text" => \GuzzleHttp\json_encode($file_data),
|
||||
"identifier" => $this->data['identifier'],
|
||||
"object" => $file_data, //\GuzzleHttp\json_encode($file_data),
|
||||
];
|
||||
$this->model = CMSContent::create($data);
|
||||
//store in cms old Datebase
|
||||
|
|
|
|||
55
app/Repositories/CustomerFewoFileRepository.php
Normal file
55
app/Repositories/CustomerFewoFileRepository.php
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\CustomerFewoFile;
|
||||
use Response;
|
||||
|
||||
class CustomerFewoFileRepository extends FileRepository {
|
||||
|
||||
|
||||
|
||||
protected $customer_file;
|
||||
protected $travel_user_id;
|
||||
protected $customer_fewo_mail_id;
|
||||
protected $identifier;
|
||||
|
||||
|
||||
public function __construct(CustomerFewoFile $model){
|
||||
parent::__construct();
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function save(){
|
||||
$this->customer_file = CustomerFewoFile::create([
|
||||
'travel_user_id' => $this->travel_user_id,
|
||||
'customer_fewo_mail_id' => $this->customer_fewo_mail_id,
|
||||
'identifier' => $this->identifier,
|
||||
'filename' => $this->allowed_filename,
|
||||
'dir' => $this->dir,
|
||||
'original_name' => $this->originalName,
|
||||
'ext' => $this->extension,
|
||||
'mine' => $this->mine,
|
||||
'size' => $this->size
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function response(){
|
||||
return Response::json([
|
||||
'error' => false,
|
||||
'original_name' => $this->originalName,
|
||||
'filename' => $this->allowed_filename,
|
||||
'file_id' =>$this->customer_file->id,
|
||||
'file_data' => $this->extension,
|
||||
'file_icon' => $this->customer_file->getIconExt(),
|
||||
'file_format_bytes' => $this->customer_file->formatBytes(),
|
||||
'file_url' => $this->customer_file->getURL(),
|
||||
'redirect' => '',
|
||||
'code' => 200
|
||||
], 200);
|
||||
}
|
||||
|
||||
}
|
||||
340
app/Repositories/CustomerFewoMailRepository.php
Normal file
340
app/Repositories/CustomerFewoMailRepository.php
Normal file
|
|
@ -0,0 +1,340 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
|
||||
use App\Mail\MailSendInfo;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\CustomerFewoFile;
|
||||
use App\Models\CustomerFewoMail;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
use App\Services\Placeholder;
|
||||
use App\Services\Util;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
|
||||
class CustomerFewoMailRepository extends BaseRepository {
|
||||
|
||||
|
||||
public function __construct(CustomerFewoMail $model)
|
||||
{
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
public function update($data)
|
||||
{
|
||||
return $this->model;
|
||||
}
|
||||
|
||||
public function sendAndStore($data){
|
||||
//send or draft
|
||||
//$data['action']
|
||||
if(isset($data['send_mail_to']) && is_array($data['send_mail_to'])) {
|
||||
//has Attachments
|
||||
$customer_files = [];
|
||||
if(isset($data['message_attachment_id']) && is_array($data['message_attachment_id'])){
|
||||
foreach ($data['message_attachment_id'] as $message_attachment_id){
|
||||
if($CustomerFile = CustomerFewoFile::find($message_attachment_id)){
|
||||
$customer_files[] = $CustomerFile;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($data['send_mail_to'] as $booking_fewo_id => $on) {
|
||||
$booking_fewo = TravelUserBookingFewo::find($booking_fewo_id);
|
||||
if ($booking_fewo->travel_user) {
|
||||
$data['draft'] = (isset($data['action']) && $data['action'] === 'draft' ? true : false);
|
||||
if(!$data['draft']){
|
||||
$data['message'] = $this->prepareContent($booking_fewo, $data['message']);
|
||||
$data['subject'] = $this->prepareContent($booking_fewo, $data['subject']);
|
||||
}
|
||||
$reply_id = isset($data['customer_mail_id']) ? $data['customer_mail_id'] : NULL;
|
||||
$email = isset($data['send_mail_to_mail'][$booking_fewo_id]) ? $data['send_mail_to_mail'][$booking_fewo_id] : $booking_fewo->travel_user->email;
|
||||
$customer_mail = $this->store($booking_fewo, $data, $email, false, $reply_id);
|
||||
foreach ($customer_files as $file) {
|
||||
$file->travel_user_id = $booking_fewo->travel_user_id;
|
||||
$file->customer_fewo_mail_id = $customer_mail->id;
|
||||
$file->identifier = 'mail';
|
||||
$file->save();
|
||||
}
|
||||
|
||||
if(isset($data['action']) && $data['action'] === 'send'){ //not at draft
|
||||
$this->sendMail($customer_mail);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function replyStore($data){
|
||||
if(isset($data['travel_user_booking_fewo_id']) && $booking_fewo = TravelUserBookingFewo::find($data['travel_user_booking_fewo_id'])) {
|
||||
//has Attachments
|
||||
$customer_files = [];
|
||||
if(isset($data['message_attachment_id']) && is_array($data['message_attachment_id'])){
|
||||
foreach ($data['message_attachment_id'] as $message_attachment_id){
|
||||
if($CustomerFile = CustomerFewoFile::find($message_attachment_id)){
|
||||
$customer_files[] = $CustomerFile;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($booking_fewo->travel_user) {
|
||||
$data['draft'] = (isset($data['action']) && $data['action'] === 'draft' ? true : false);
|
||||
$mail_from = isset($data['mail_from']) ? $data['mail_from'] : $booking_fewo->travel_user->email;
|
||||
$sent_at = isset($data['sent_at']) ? \Carbon::parse(str_replace("- ", "", $data['sent_at'])) : now();
|
||||
$reply_id = isset($data['customer_mail_id']) ? $data['customer_mail_id'] : NULL;
|
||||
$customer_mail = $this->store($booking_fewo, $data, $mail_from, true, $reply_id, $sent_at);
|
||||
foreach ($customer_files as $file) {
|
||||
$file->travel_user_id = $booking_fewo->travel_user_id;
|
||||
$file->customer_fewo_mail_id = $customer_mail->id;
|
||||
$file->identifier = 'mail';
|
||||
$file->save();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function store($booking_fewo, $data, $mail_from, $is_answer = false, $reply_id = NULL, $sent_at=false){
|
||||
|
||||
if(isset($data['save_customer_mail_id'])){
|
||||
$customer_mail = CustomerFewoMail::find($data['save_customer_mail_id']);
|
||||
$customer_mail->fill([
|
||||
'travel_user_booking_fewo_id' => $booking_fewo->id,
|
||||
'travel_user_id' => $booking_fewo->travel_user_id,
|
||||
'is_answer' => $is_answer,
|
||||
'reply_id' => $reply_id,
|
||||
'email' => $mail_from,
|
||||
'recipient' => isset($data['recipient']) ? Util::_explodeLines($data['recipient']) : null,
|
||||
'cc' => isset($data['cc']) ? Util::_explodeLines($data['cc']) : null,
|
||||
'bcc' => isset($data['bcc']) ? Util::_explodeLines($data['bcc']) : null,
|
||||
'subject' => $data['subject'],
|
||||
'message' => $data['message'],
|
||||
'dir' => isset($data['dir']) ? $data['dir'] : 0,
|
||||
'subdir' => isset($data['subdir']) ? $data['subdir'] : 0,
|
||||
'draft' => $data['draft'],
|
||||
'sent_at' => $sent_at ? $sent_at : now(),
|
||||
])->save();
|
||||
}else{
|
||||
$customer_mail = CustomerFewoMail::create([
|
||||
'travel_user_booking_fewo_id' => $booking_fewo->id,
|
||||
'travel_user_id' => $booking_fewo->travel_user_id,
|
||||
'is_answer' => $is_answer,
|
||||
'reply_id' => $reply_id,
|
||||
'email' => $mail_from,
|
||||
'recipient' => isset($data['recipient']) ? Util::_explodeLines($data['recipient']) : null,
|
||||
'cc' => isset($data['cc']) ? Util::_explodeLines($data['cc']) : null,
|
||||
'bcc' => isset($data['bcc']) ? Util::_explodeLines($data['bcc']) : null,
|
||||
'subject' => $data['subject'],
|
||||
'message' => $data['message'],
|
||||
'dir' => isset($data['dir']) ? $data['dir'] : 0,
|
||||
'subdir' => isset($data['subdir']) ? $data['subdir'] : 0,
|
||||
'draft' => $data['draft'],
|
||||
'sent_at' => $sent_at ? $sent_at : now(),
|
||||
]);
|
||||
}
|
||||
|
||||
return $customer_mail;
|
||||
}
|
||||
|
||||
private function sendMail($customer_mail){
|
||||
$to_mails = [];
|
||||
if(strpos($customer_mail->email, ',')){
|
||||
$to_mails = array_map('trim', explode(',', $customer_mail->email));
|
||||
}else{
|
||||
$to_mails[] = $customer_mail->email;
|
||||
}
|
||||
if($customer_mail->recipient){
|
||||
$to_mails = array_merge($to_mails, $customer_mail->recipient);
|
||||
}
|
||||
$customer_files = $customer_mail->customer_files;
|
||||
try {
|
||||
//
|
||||
Mail::to($to_mails)
|
||||
->cc($customer_mail->cc ?: [])
|
||||
->bcc($customer_mail->bcc ?: [])
|
||||
->send(new MailSendInfo($customer_mail->subject, $customer_mail->message, $customer_files));
|
||||
}
|
||||
catch(\Exception $e){
|
||||
// Never reached
|
||||
$customer_mail->fail = true;
|
||||
$customer_mail->error = $e->getMessage();
|
||||
$customer_mail->save();
|
||||
return false;
|
||||
}
|
||||
$customer_mail->send = true;
|
||||
$customer_mail->sent_at = now();
|
||||
$customer_mail->save();
|
||||
return true;
|
||||
}
|
||||
|
||||
private function prepareContent($booking_fewo, $content){
|
||||
$content = Placeholder::replaceBookingFewo($booking_fewo, $content);
|
||||
return $content;
|
||||
}
|
||||
|
||||
private static function prepareContactMails($value){
|
||||
if(isset($value->customers)){ //&& $value->customer_mail_dir !== NULL
|
||||
$first_mail = "";
|
||||
if($value->customer_mail_dir < 10){ // && $value->customer_mail_subdir > 0
|
||||
$customer_mail_dir = \App\Services\BookingFewo::getCustomerMailDir($value->customer_mail_dir);
|
||||
$contact_emails = \App\Services\BookingFewo::getCustomerMailEmails($customer_mail_dir, $value->customer_mail_subdir);
|
||||
if($value->customer_mail_dir == 0){
|
||||
$value->recipient = Util::_implodeLines($contact_emails);
|
||||
return $value;
|
||||
}else{
|
||||
if($contact_emails && count($contact_emails) > 0) {
|
||||
$first_mail = array_shift($contact_emails);
|
||||
if (count($contact_emails) > 0) {
|
||||
$value->recipient = Util::_implodeLines($contact_emails);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($value->customers as $key=>$val){
|
||||
$val['email'] = $first_mail;
|
||||
$value->customers[$key] = $val;
|
||||
}
|
||||
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
public static function loadModal($data)
|
||||
{
|
||||
$value = new Collection();
|
||||
$value->title = "";
|
||||
$value->subtitle = "";
|
||||
$value->url = "";
|
||||
$value->recipient = "";
|
||||
$value->cc = "";
|
||||
$value->bcc = "";
|
||||
$value->lead_title_id = "";
|
||||
$value->filter_email_templates_directories = EmailTemplate::join('email_template_dirs', 'email_template_dir_id', '=', 'email_template_dirs.id')->get()->pluck('name', 'id')->unique()->toArray();
|
||||
|
||||
/*Ansicht*/
|
||||
if ($data['action'] === "show-customer-mail") {
|
||||
if (isset($data['customer_mail_id']) && $customer_mail = CustomerFewoMail::find($data['customer_mail_id'])) {
|
||||
$value->url = $data['url'];
|
||||
$value->title = "E-Mail Ansicht";
|
||||
return view("travel.user.booking.mail.modal-show-mail", compact('data', 'value', 'customer_mail'))->render();
|
||||
}
|
||||
}
|
||||
/* neue Mail */
|
||||
if ($data['action'] === "edit-customer-mail") {
|
||||
$value->id = $data['id']; //
|
||||
$customer_mail = CustomerFewoMail::find($value->id);
|
||||
$booking = $customer_mail->travel_user_booking_fewo;
|
||||
$value->customer_files = $customer_mail->customer_files;
|
||||
$value->save_customer_mail_id = $customer_mail->id;
|
||||
$value->draft = true;
|
||||
$value->id = $customer_mail->travel_user_booking_fewo_id;
|
||||
$value->booking = $booking;
|
||||
$value->show = 'single';
|
||||
$value->lead_title_id = " - (".$value->booking->invoice_number.")";
|
||||
|
||||
|
||||
$tmp = [];
|
||||
$tmp['email'] = $booking->travel_user ? $booking->travel_user->email : "";
|
||||
$tmp['name'] = $booking->travel_user ? $booking->travel_user->first_name . " " . $booking->travel_user->last_name . " | " : "- | ";
|
||||
$tmp['name'] .= $booking->fewo_lodging_id ? $booking->fewo_lodging->name . " | " : "- | ";
|
||||
$data['customers'][$booking->id] = $tmp;
|
||||
$value->customers = $data['customers'];
|
||||
$value->subject = $customer_mail->subject;
|
||||
$value->message = $customer_mail->message;
|
||||
$value->recipient = Util::_implodeLines($customer_mail->recipient);
|
||||
$value->cc = Util::_implodeLines($customer_mail->cc);
|
||||
$value->bcc = Util::_implodeLines($customer_mail->bcc);
|
||||
|
||||
$value->title = "E-Mail- Nachricht an Kunden senden";
|
||||
$value->subtitle = "Dem Kunden wird eine E-Mail zugesendet.";
|
||||
if($customer_mail->reply_id){
|
||||
$value->title = "E-Mail Antwort an Kunden senden";
|
||||
$value->subtitle = "Dem Kunden wird eine E-Mail zugesendet, die im System als Antwort gespeichert wird.";
|
||||
$value->customer_mail = $customer_mail;
|
||||
}
|
||||
$value->s_placeholder = "Betreff der E-Mail";
|
||||
$value->m_placeholder = "Nachricht der E-Mail";
|
||||
$value->url = $data['url'];
|
||||
$value->customer_mail_dir = $customer_mail->dir ? $customer_mail->dir : 0;
|
||||
$value->customer_mail_subdir = $customer_mail->subdir ? $customer_mail->subdir : 0;
|
||||
|
||||
return view("travel.user.booking.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
|
||||
}
|
||||
/* neue Mail */
|
||||
if ($data['action'] === "new-customer-mail") {
|
||||
$value->id = "";
|
||||
$value->draft = false;
|
||||
$value->lead_title_id = "-";
|
||||
//singel
|
||||
if (isset($data['travel_user_booking_fewo_id']) && $booking_fewo = TravelUserBookingFewo::find($data['travel_user_booking_fewo_id'])) {
|
||||
$value->id = $data['travel_user_booking_fewo_id'];
|
||||
$value->booking = $booking_fewo;
|
||||
$value->show = 'single';
|
||||
$value->draft = true;
|
||||
$value->lead_title_id = " - (".$value->booking->invoice_number.")";
|
||||
|
||||
}else{
|
||||
//multi
|
||||
$value->show = 'multi';
|
||||
}
|
||||
$value->customers = $data['customers'];
|
||||
$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";
|
||||
if(isset($data['customer_mail_id']) && $customer_mail = CustomerFewoMail::find($data['customer_mail_id'])){
|
||||
$value->subject = "Re: ".Util::_first_replace($customer_mail->subject);
|
||||
$value->customer_mail = $customer_mail;
|
||||
}
|
||||
|
||||
$value->title = "E-Mail- Nachricht an Kunden senden";
|
||||
$value->subtitle = "Dem Kunden wird eine E-Mail zugesendet.";
|
||||
if($data['id'] === 'reply-send'){
|
||||
$value->title = "E-Mail Antwort an Kunden senden";
|
||||
$value->subtitle = "Dem Kunden wird eine E-Mail zugesendet, die im System als Antwort gespeichert wird.";
|
||||
}
|
||||
$value->url = $data['url'];
|
||||
$value->customer_mail_dir = isset($data['customer_mail_dir']) ? $data['customer_mail_dir'] : 0;
|
||||
$value->customer_mail_subdir = isset($data['customer_mail_subdir']) ? $data['customer_mail_subdir'] : 0;
|
||||
|
||||
$value = self::prepareContactMails($value);
|
||||
return view("travel.user.booking.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
|
||||
}
|
||||
/*Antwort speichern*/
|
||||
if ($data['action'] === "reply-customer-mail") {
|
||||
if (isset($data['travel_user_booking_fewo_id']) && $booking_fewo = TravelUserBookingFewo::find($data['travel_user_booking_fewo_id'])) {
|
||||
$value->id = $data['travel_user_booking_fewo_id'];
|
||||
$value->draft = false;
|
||||
$value->booking = $booking_fewo;
|
||||
$value->message = "";
|
||||
$value->subject = "";
|
||||
$value->lead_title_id = " - (".$value->booking->invoice_number.")";
|
||||
$value->s_placeholder = "Betreff des Kunden";
|
||||
$value->m_placeholder = "Nachricht des Kunden";
|
||||
if(isset($data['customer_mail_id']) && $customer_mail = CustomerFewoMail::find($data['customer_mail_id'])){
|
||||
$value->subject = "Re: ".Util::_first_replace($customer_mail->subject);
|
||||
$value->customer_mail = $customer_mail;
|
||||
}
|
||||
$value->title = "E-Mail Antwort speichern";
|
||||
$value->subtitle = "Die E-Mail wird im System gespeichert.";
|
||||
if($data['id'] === 'reply-save'){
|
||||
$value->subtitle = "Die E-Mail wird im System als Antwort gespeichert.";
|
||||
|
||||
}
|
||||
$value->url = $data['url'];
|
||||
$value->show = 'reply';
|
||||
$value->customer_mail_dir = isset($data['customer_mail_dir']) ? $data['customer_mail_dir'] : 0;
|
||||
$value->customer_mail_subdir = isset($data['customer_mail_subdir']) ? $data['customer_mail_subdir'] : 0;
|
||||
|
||||
$value = self::prepareContactMails($value);
|
||||
return view("travel.user.booking.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ use App\Models\Booking;
|
|||
use App\Models\CMSContent;
|
||||
use App\Models\CustomerFile;
|
||||
use App\Models\CustomerMail;
|
||||
use App\Models\EmailTemplate;
|
||||
use App\Services\Placeholder;
|
||||
use App\Services\Util;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
|
|
@ -98,7 +99,6 @@ class CustomerMailRepository extends BaseRepository {
|
|||
|
||||
public function store($booking, $data, $mail_from, $is_answer = false, $reply_id = NULL, $sent_at=false){
|
||||
|
||||
$data['travel_country_id'] = isset($data['travel_country_id']) && $data['travel_country_id']>0 ? $data['travel_country_id'] : NULL;
|
||||
if(isset($data['save_customer_mail_id'])){
|
||||
$customer_mail = CustomerMail::find($data['save_customer_mail_id']);
|
||||
$customer_mail->fill([
|
||||
|
|
@ -114,7 +114,7 @@ class CustomerMailRepository extends BaseRepository {
|
|||
'subject' => $data['subject'],
|
||||
'message' => $data['message'],
|
||||
'dir' => isset($data['dir']) ? $data['dir'] : 0,
|
||||
'travel_country_id' => $data['travel_country_id'],
|
||||
'subdir' => isset($data['subdir']) ? $data['subdir'] : 0,
|
||||
'draft' => $data['draft'],
|
||||
'sent_at' => $sent_at ? $sent_at : now(),
|
||||
])->save();
|
||||
|
|
@ -132,7 +132,7 @@ class CustomerMailRepository extends BaseRepository {
|
|||
'subject' => $data['subject'],
|
||||
'message' => $data['message'],
|
||||
'dir' => isset($data['dir']) ? $data['dir'] : 0,
|
||||
'travel_country_id' => $data['travel_country_id'],
|
||||
'subdir' => isset($data['subdir']) ? $data['subdir'] : 0,
|
||||
'draft' => $data['draft'],
|
||||
'sent_at' => $sent_at ? $sent_at : now(),
|
||||
]);
|
||||
|
|
@ -178,36 +178,29 @@ class CustomerMailRepository extends BaseRepository {
|
|||
}
|
||||
|
||||
private static function prepareContactMails($value){
|
||||
|
||||
if(isset($value->customers) && $value->customer_mail_dir > 0){
|
||||
if(isset($value->customers)){ //&& $value->customer_mail_dir !== NULL
|
||||
$first_mail = "";
|
||||
if($value->customer_mail_dir == 1 && $value->customer_mail_country > 0){
|
||||
//Agentur / Land
|
||||
$travel_country = \App\Models\Sym\TravelCountry::find($value->customer_mail_country);
|
||||
if($travel_country && $travel_country->contact_emails && count($travel_country->contact_emails) > 0){
|
||||
$contact_emails = $travel_country->contact_emails;
|
||||
$first_mail = array_shift($contact_emails);
|
||||
if(count($contact_emails) > 0){
|
||||
if($value->customer_mail_dir < 10){ // && $value->customer_mail_subdir > 0
|
||||
$customer_mail_dir = \App\Services\Booking::getCustomerMailDir($value->customer_mail_dir);
|
||||
$contact_emails = \App\Services\Booking::getCustomerMailEmails($customer_mail_dir, $value->customer_mail_subdir);
|
||||
if($value->customer_mail_dir == 0){
|
||||
$value->recipient = Util::_implodeLines($contact_emails);
|
||||
return $value;
|
||||
}else{
|
||||
if($contact_emails && count($contact_emails) > 0) {
|
||||
$first_mail = array_shift($contact_emails);
|
||||
if (count($contact_emails) > 0) {
|
||||
$value->recipient = Util::_implodeLines($contact_emails);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if($value->customer_mail_dir == 2){
|
||||
//Airline
|
||||
$airline = Airline::whereName('Xemail')->first();
|
||||
if($airline && $airline->contact_emails && count($airline->contact_emails) > 0){
|
||||
$contact_emails = $airline->contact_emails;
|
||||
$first_mail = array_shift($contact_emails);
|
||||
if(count($contact_emails) > 0){
|
||||
$value->recipient = Util::_implodeLines($contact_emails);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
foreach ($value->customers as $key=>$val){
|
||||
$val['email'] = $first_mail;
|
||||
$value->customers[$key] = $val;
|
||||
}
|
||||
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
|
@ -222,6 +215,8 @@ class CustomerMailRepository extends BaseRepository {
|
|||
$value->cc = "";
|
||||
$value->bcc = "";
|
||||
$value->lead_title_id = "";
|
||||
$value->filter_email_templates_directories = EmailTemplate::join('email_template_dirs', 'email_template_dir_id', '=', 'email_template_dirs.id')->get()->pluck('name', 'id')->unique()->toArray();
|
||||
|
||||
/*Ansicht*/
|
||||
if ($data['action'] === "show-customer-mail") {
|
||||
if (isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])) {
|
||||
|
|
@ -262,12 +257,14 @@ class CustomerMailRepository extends BaseRepository {
|
|||
if($customer_mail->reply_id){
|
||||
$value->title = "E-Mail Antwort an Kunden senden";
|
||||
$value->subtitle = "Dem Kunden wird eine E-Mail zugesendet, die im System als Antwort gespeichert wird.";
|
||||
$value->customer_mail = $customer_mail;
|
||||
|
||||
}
|
||||
$value->s_placeholder = "Betreff der E-Mail";
|
||||
$value->m_placeholder = "Nachricht der E-Mail";
|
||||
$value->url = $data['url'];
|
||||
$value->customer_mail_dir = $customer_mail->dir ? $customer_mail->dir : 0;
|
||||
$value->customer_mail_country = $customer_mail->travel_country_id ? $customer_mail->travel_country_id : 0;
|
||||
$value->customer_mail_subdir = $customer_mail->subdir ? $customer_mail->subdir : 0;
|
||||
|
||||
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
|
||||
|
|
@ -307,7 +304,7 @@ class CustomerMailRepository extends BaseRepository {
|
|||
}
|
||||
$value->url = $data['url'];
|
||||
$value->customer_mail_dir = isset($data['customer_mail_dir']) ? $data['customer_mail_dir'] : 0;
|
||||
$value->customer_mail_country = isset($data['customer_mail_country']) ? $data['customer_mail_country'] : 0;
|
||||
$value->customer_mail_subdir = isset($data['customer_mail_subdir']) ? $data['customer_mail_subdir'] : 0;
|
||||
|
||||
$value = self::prepareContactMails($value);
|
||||
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
|
|
@ -337,7 +334,7 @@ class CustomerMailRepository extends BaseRepository {
|
|||
$value->url = $data['url'];
|
||||
$value->show = 'reply';
|
||||
$value->customer_mail_dir = isset($data['customer_mail_dir']) ? $data['customer_mail_dir'] : 0;
|
||||
$value->customer_mail_country = isset($data['customer_mail_country']) ? $data['customer_mail_country'] : 0;
|
||||
$value->customer_mail_subdir = isset($data['customer_mail_subdir']) ? $data['customer_mail_subdir'] : 0;
|
||||
|
||||
$value = self::prepareContactMails($value);
|
||||
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ class FileRepository extends BaseRepository {
|
|||
protected $mine;
|
||||
protected $size;
|
||||
|
||||
protected $redirect;
|
||||
|
||||
|
||||
public function __construct(){
|
||||
|
||||
|
|
@ -95,7 +97,7 @@ class FileRepository extends BaseRepository {
|
|||
'file_data' => $this->extension,
|
||||
'mine' => $this->mine,
|
||||
'size' => $this->size,
|
||||
'redirect' => '',
|
||||
'redirect' => $this->redirect,
|
||||
'code' => 200
|
||||
], 200);
|
||||
}
|
||||
|
|
|
|||
51
app/Repositories/GeneralFileRepository.php
Normal file
51
app/Repositories/GeneralFileRepository.php
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Models\GeneralFile;
|
||||
use Response;
|
||||
|
||||
class GeneralFileRepository extends FileRepository {
|
||||
|
||||
|
||||
|
||||
protected $general_file;
|
||||
protected $travel_country_id;
|
||||
protected $identifier;
|
||||
|
||||
|
||||
public function __construct(GeneralFile $model){
|
||||
parent::__construct();
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
|
||||
public function save(){
|
||||
$this->general_file = GeneralFile::create([
|
||||
'travel_country_id' => $this->travel_country_id,
|
||||
'identifier' => $this->identifier,
|
||||
'filename' => $this->allowed_filename,
|
||||
'dir' => $this->dir,
|
||||
'original_name' => $this->originalName,
|
||||
'ext' => $this->extension,
|
||||
'mine' => $this->mine,
|
||||
'size' => $this->size
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function response(){
|
||||
return Response::json([
|
||||
'error' => false,
|
||||
'filename' => $this->allowed_filename,
|
||||
'file_id' =>$this->general_file->id,
|
||||
'file_data' => $this->extension,
|
||||
'file_icon' => $this->general_file->getIconExt(),
|
||||
'file_format_bytes' => $this->general_file->formatBytes(),
|
||||
'file_url' => $this->general_file->getURL(),
|
||||
'redirect' => $this->redirect,
|
||||
'code' => 200
|
||||
], 200);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -57,11 +57,9 @@ class TravelUserBookingFewoRepository extends BaseRepository {
|
|||
];
|
||||
$pdf = PDF::loadView('pdf.invoice_fewo', $data);
|
||||
$pdf->setPaper('A4', 'portrait');
|
||||
|
||||
$path =$model->getInvoicePath();
|
||||
$filename = $model->getInvoiceFileName();
|
||||
$pdf->save($path.$filename);
|
||||
|
||||
return $path.$filename;
|
||||
//return $pdf->stream('invoice.pdf');
|
||||
}
|
||||
|
|
|
|||
80
app/Services/Booking.php
Normal file
80
app/Services/Booking.php
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Airline;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\Insurance;
|
||||
use App\Models\TravelCompany;
|
||||
|
||||
class Booking
|
||||
{
|
||||
public static function contentFiles(){
|
||||
$booking_email_files = CMSContent::where('identifier', '=', 'booking-email-file')->get()->sortByDesc('pos')->pluck('slug', 'id');
|
||||
return $booking_email_files;
|
||||
}
|
||||
|
||||
|
||||
public static function getCustomerMailDirs(){
|
||||
$customer_mail_dirs = CMSContent::where('identifier', '=', 'customer-mail-dirs')->get()->sortBy('pos');
|
||||
return $customer_mail_dirs;
|
||||
}
|
||||
|
||||
|
||||
public static function getCustomerMailDir($id){
|
||||
return CMSContent::where('identifier', '=', 'customer-mail-dirs')->where('pos', '=', $id)->first();
|
||||
}
|
||||
|
||||
public static function getCustomerMailName($customer_mail_dir, $mail_dir_id){
|
||||
|
||||
switch ($customer_mail_dir->getArrayContent('model')){
|
||||
case 'TravelCountry':
|
||||
$model = \App\Models\Sym\TravelCountry::find($mail_dir_id);
|
||||
break;
|
||||
case 'Airline':
|
||||
$model = Airline::find($mail_dir_id);
|
||||
break;
|
||||
case 'Insurance':
|
||||
$model = Insurance::find($mail_dir_id);
|
||||
break;
|
||||
case 'TravelCompany':
|
||||
$model = TravelCompany::find($mail_dir_id);
|
||||
break;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
||||
if($model){
|
||||
if($customer_mail_dir->getArrayContent('model') === 'TravelCountry'){
|
||||
return $model->mail_dir_name;
|
||||
}
|
||||
return $model->name;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static function getCustomerMailEmails($customer_mail_dir, $mail_dir_id){
|
||||
|
||||
switch ($customer_mail_dir->getArrayContent('model')){
|
||||
case 'TravelCountry':
|
||||
$model = \App\Models\Sym\TravelCountry::find($mail_dir_id);
|
||||
break;
|
||||
case 'Airline':
|
||||
$model = Airline::find($mail_dir_id);
|
||||
break;
|
||||
case 'Insurance':
|
||||
$model = Insurance::find($mail_dir_id);
|
||||
break;
|
||||
case 'TravelCompany':
|
||||
$model = TravelCompany::find($mail_dir_id);
|
||||
break;
|
||||
default:
|
||||
//direkt from CMSContent
|
||||
return $customer_mail_dir->getArrayContent('emails');
|
||||
}
|
||||
|
||||
if($model){
|
||||
return $model->contact_emails;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
79
app/Services/BookingFewo.php
Normal file
79
app/Services/BookingFewo.php
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Airline;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\Insurance;
|
||||
use App\Models\TravelCompany;
|
||||
|
||||
class BookingFewo
|
||||
{
|
||||
public static function contentFiles(){
|
||||
$booking_email_files = CMSContent::where('identifier', '=', 'fewo-email-file')->get()->sortByDesc('pos')->pluck('slug', 'id');
|
||||
return $booking_email_files;
|
||||
}
|
||||
|
||||
public static function getCustomerMailDirs(){
|
||||
$customer_mail_dirs = CMSContent::where('identifier', '=', 'customer-fewo-mail-dirs')->get()->sortBy('pos');
|
||||
return $customer_mail_dirs;
|
||||
}
|
||||
|
||||
|
||||
public static function getCustomerMailDir($id){
|
||||
return CMSContent::where('identifier', '=', 'customer-fewo-mail-dirs')->where('pos', '=', $id)->first();
|
||||
}
|
||||
|
||||
public static function getCustomerMailName($customer_mail_dir, $mail_dir_id){
|
||||
|
||||
switch ($customer_mail_dir->getArrayContent('model')){
|
||||
case 'TravelCountry':
|
||||
$model = \App\Models\Sym\TravelCountry::find($mail_dir_id);
|
||||
break;
|
||||
case 'Airline':
|
||||
$model = Airline::find($mail_dir_id);
|
||||
break;
|
||||
case 'Insurance':
|
||||
$model = Insurance::find($mail_dir_id);
|
||||
break;
|
||||
case 'TravelCompany':
|
||||
$model = TravelCompany::find($mail_dir_id);
|
||||
break;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
||||
if($model){
|
||||
if($customer_mail_dir->getArrayContent('model') === 'TravelCountry'){
|
||||
return $model->mail_dir_name;
|
||||
}
|
||||
return $model->name;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static function getCustomerMailEmails($customer_mail_dir, $mail_dir_id){
|
||||
|
||||
switch ($customer_mail_dir->getArrayContent('model')){
|
||||
case 'TravelCountry':
|
||||
$model = \App\Models\Sym\TravelCountry::find($mail_dir_id);
|
||||
break;
|
||||
case 'Airline':
|
||||
$model = Airline::find($mail_dir_id);
|
||||
break;
|
||||
case 'Insurance':
|
||||
$model = Insurance::find($mail_dir_id);
|
||||
break;
|
||||
case 'TravelCompany':
|
||||
$model = TravelCompany::find($mail_dir_id);
|
||||
break;
|
||||
default:
|
||||
//direkt from CMSContent
|
||||
return $customer_mail_dir->getArrayContent('emails');
|
||||
}
|
||||
|
||||
if($model){
|
||||
return $model->contact_emails;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,17 @@
|
|||
<?php
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Airline;
|
||||
use App\Models\CMSAuthor;
|
||||
use App\Models\CMSContent;
|
||||
use App\Models\Country;
|
||||
use App\Models\Draft;
|
||||
use App\Models\DraftType;
|
||||
use App\Models\FewoLodging;
|
||||
use App\Models\IndustrySector;
|
||||
use App\Models\Interest;
|
||||
use App\Models\Insurance;
|
||||
use App\Models\TravelBookingFewoChannel;
|
||||
use App\Models\TravelClass;
|
||||
use App\Models\TravelCompany;
|
||||
use App\Models\TravelCountry;
|
||||
use App\Models\TravelGuide;
|
||||
use App\Models\TravelNationality;
|
||||
|
|
@ -250,9 +252,14 @@ class HTMLHelper
|
|||
return $ret;
|
||||
}
|
||||
|
||||
public static function getTravelUserOptions($id = false, $order = "ASC"){
|
||||
public static function getTravelUserOptions($id = false, $order = "ASC", $empty=false){
|
||||
$options = TravelUser::orderBy('id', $order)->get();
|
||||
|
||||
$ret = '';
|
||||
if($empty){
|
||||
$ret = '<option value="">Bitte wählen</option>\n';
|
||||
}
|
||||
|
||||
foreach ($options as $option){
|
||||
$attr = ($option->id === $id) ? 'selected="selected"' : '';
|
||||
$ret .= '<option value="'.$option->id.'" '.$attr.'>'.$option->first_name.' '.$option->last_name.' | '.$option->email.' ('.$option->id.')</option>\n';
|
||||
|
|
@ -260,6 +267,33 @@ class HTMLHelper
|
|||
return $ret;
|
||||
}
|
||||
|
||||
public static function getCustomerMailDirsOptions(CMSContent $customer_mail_dir, $checked = []){
|
||||
//$checked = [];
|
||||
$model = $customer_mail_dir->getArrayContent('model');
|
||||
switch ($model){
|
||||
case 'TravelCountry':
|
||||
$options = \App\Models\Sym\TravelCountry::where('active_backend',1)->get();
|
||||
break;
|
||||
case 'Airline':
|
||||
$options = Airline::where('name_full', 'like', '%Xemail%')->get();
|
||||
break;
|
||||
case 'Insurance':
|
||||
$options = Insurance::where('active',1)->get();
|
||||
break;
|
||||
case 'TravelCompany':
|
||||
$options = TravelCompany::where('active',1)->get();
|
||||
break;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
$ret = '';
|
||||
foreach ($options as $option){
|
||||
$attr = (in_array($option->id, $checked)) ? 'selected="selected"' : '';
|
||||
$ret .= '<option value="'.$option->id.'" '.$attr.'>'.$option->name.'</option>\n';
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public static function getFewoLodgingOptions($id = false){
|
||||
$options = FewoLodging::all();
|
||||
$ret = '';
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
namespace App\Services;
|
||||
|
||||
use App\Models\Booking;
|
||||
use App\Models\TravelUserBookingFewo;
|
||||
|
||||
class Placeholder
|
||||
{
|
||||
|
|
@ -63,6 +64,32 @@ class Placeholder
|
|||
return $content;
|
||||
}
|
||||
|
||||
public static function replaceBookingFewo(TravelUserBookingFewo $booking_fewo, $content)
|
||||
{
|
||||
$dear = $booking_fewo->travel_user->salutation_id == 1 ? 'geehrter' : 'geehrte';
|
||||
$first_name = $booking_fewo->travel_user->first_name;
|
||||
$last_name = $booking_fewo->travel_user->last_name;
|
||||
$title = $booking_fewo->travel_user->title;
|
||||
$country = "";
|
||||
$program = $booking_fewo->fewo_lodging_id ? $booking_fewo->fewo_lodging->name : "-";
|
||||
$salutation = $booking_fewo->travel_user->salutation_id == 1 ? 'Herr' : 'Frau';
|
||||
$start_date = $booking_fewo->from_date;
|
||||
$end_date = $booking_fewo->to_date;
|
||||
$booking_date = $booking_fewo->booking_date;
|
||||
$airline = "";
|
||||
$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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -33,6 +33,13 @@ class Util
|
|||
return \Carbon::parse($date)->format(\Util::formatDateDB());
|
||||
}
|
||||
|
||||
public static function _reformat_date($date, $to = 'date'){
|
||||
if($to === 'datetime'){
|
||||
return \Carbon::parse($date)->format('Y-m-d - H:i');
|
||||
}
|
||||
return \Carbon::parse($date)->format('Y-m-d');
|
||||
}
|
||||
|
||||
public static function _format_number($value){
|
||||
return preg_replace("/[^0-9,]/", "", $value);
|
||||
|
||||
|
|
@ -62,7 +69,7 @@ class Util
|
|||
if(is_array($value)){
|
||||
return implode($glue, $value);
|
||||
}
|
||||
return "";
|
||||
return $value;
|
||||
}
|
||||
public static function _clean_float($value){
|
||||
|
||||
|
|
@ -191,5 +198,21 @@ class Util
|
|||
return isset($mime_types[$mine]) ? $mime_types[$mine] : "";
|
||||
}
|
||||
|
||||
public static function getURLasContent($url, $base=false){
|
||||
$arrContextOptions=array(
|
||||
"ssl"=>array(
|
||||
"verify_peer"=>false,
|
||||
"verify_peer_name"=>false,
|
||||
),
|
||||
);
|
||||
$content = file_get_contents($url, false, stream_context_create($arrContextOptions));
|
||||
if($base){
|
||||
$type = pathinfo($url, PATHINFO_EXTENSION);
|
||||
$base64Data = base64_encode($content);
|
||||
return 'data:image/' . $type . ';base64,' . $base64Data;
|
||||
}
|
||||
return $content;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -20,10 +20,16 @@ if (! function_exists('make_v2_url')) {
|
|||
if (! function_exists('_format_date')) {
|
||||
function _format_date($date, $to = 'date')
|
||||
{
|
||||
return \App\Services\Util::_format_date($date, $to);
|
||||
return $date ? \App\Services\Util::_format_date($date, $to) : null;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('_reformat_date')) {
|
||||
function _reformat_date($date, $to = 'date')
|
||||
{
|
||||
return $date ? \App\Services\Util::_reformat_date($date, $to) : null;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('array_to_json')) {
|
||||
function array_to_json($value)
|
||||
|
|
@ -32,7 +38,6 @@ if (! function_exists('array_to_json')) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (! function_exists('last_array_element')) {
|
||||
function last_array_element($value)
|
||||
{
|
||||
|
|
@ -86,4 +91,14 @@ if (! function_exists('get_file_last_time')) {
|
|||
}
|
||||
return date("Ymd-i", time());
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('my_count')) {
|
||||
function my_count($value)
|
||||
{
|
||||
if ($value && is_array($value)) {
|
||||
return count($value);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
24
bootstrap/cache/services.php
vendored
24
bootstrap/cache/services.php
vendored
|
|
@ -47,12 +47,13 @@
|
|||
43 => 'App\\Providers\\EventServiceProvider',
|
||||
44 => 'App\\Providers\\RouteServiceProvider',
|
||||
45 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider',
|
||||
46 => 'Jenssegers\\Date\\DateServiceProvider',
|
||||
47 => 'Collective\\Html\\HtmlServiceProvider',
|
||||
48 => 'Intervention\\Image\\ImageServiceProvider',
|
||||
49 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
|
||||
50 => 'Yajra\\DataTables\\DataTablesServiceProvider',
|
||||
51 => 'Reliese\\Coders\\CodersServiceProvider',
|
||||
46 => 'Barryvdh\\DomPDF\\ServiceProvider',
|
||||
47 => 'Jenssegers\\Date\\DateServiceProvider',
|
||||
48 => 'Collective\\Html\\HtmlServiceProvider',
|
||||
49 => 'Intervention\\Image\\ImageServiceProvider',
|
||||
50 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
|
||||
51 => 'Yajra\\DataTables\\DataTablesServiceProvider',
|
||||
52 => 'Reliese\\Coders\\CodersServiceProvider',
|
||||
),
|
||||
'eager' =>
|
||||
array (
|
||||
|
|
@ -87,11 +88,12 @@
|
|||
28 => 'App\\Providers\\EventServiceProvider',
|
||||
29 => 'App\\Providers\\RouteServiceProvider',
|
||||
30 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider',
|
||||
31 => 'Jenssegers\\Date\\DateServiceProvider',
|
||||
32 => 'Intervention\\Image\\ImageServiceProvider',
|
||||
33 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
|
||||
34 => 'Yajra\\DataTables\\DataTablesServiceProvider',
|
||||
35 => 'Reliese\\Coders\\CodersServiceProvider',
|
||||
31 => 'Barryvdh\\DomPDF\\ServiceProvider',
|
||||
32 => 'Jenssegers\\Date\\DateServiceProvider',
|
||||
33 => 'Intervention\\Image\\ImageServiceProvider',
|
||||
34 => 'Maatwebsite\\Excel\\ExcelServiceProvider',
|
||||
35 => 'Yajra\\DataTables\\DataTablesServiceProvider',
|
||||
36 => 'Reliese\\Coders\\CodersServiceProvider',
|
||||
),
|
||||
'deferred' =>
|
||||
array (
|
||||
|
|
|
|||
718
composer.lock
generated
718
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -172,6 +172,7 @@ return [
|
|||
App\Providers\RouteServiceProvider::class,
|
||||
|
||||
Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
|
||||
Barryvdh\DomPDF\ServiceProvider::class,
|
||||
Jenssegers\Date\DateServiceProvider::class,
|
||||
Collective\Html\HtmlServiceProvider::class,
|
||||
Intervention\Image\ImageServiceProvider::class,
|
||||
|
|
@ -239,6 +240,7 @@ return [
|
|||
'Util' => App\Services\Util::class,
|
||||
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
|
||||
'DataTables' => Yajra\DataTables\Facades\DataTables::class,
|
||||
'PDF' => Barryvdh\DomPDF\Facade::class,
|
||||
|
||||
],
|
||||
|
||||
|
|
|
|||
5
config/booking.php
Executable file
5
config/booking.php
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
];
|
||||
|
|
@ -60,12 +60,30 @@ return [
|
|||
'url' => env('APP_URL').'/storage/customer',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
'travel_user' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/travel_user'),
|
||||
'url' => env('APP_URL').'/storage/travel_user',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
'booking' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/booking'),
|
||||
'url' => env('APP_URL').'/storage/booking',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
'general' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/general'),
|
||||
'url' => env('APP_URL').'/storage/general',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
'booking_fewo' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/booking_fewo'),
|
||||
'url' => env('APP_URL').'/storage/booking_fewo',
|
||||
'visibility' => 'public',
|
||||
],
|
||||
'fewo_invoices' => [
|
||||
'driver' => 'local',
|
||||
'root' => storage_path('app/fewo/invoices'),
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ return [
|
|||
2 => [
|
||||
'sua-st' => ['name' => 'SUPERADMIN > Einstellungen' , 'color' => 'superadmin'],
|
||||
'sua-st-al' => ['name' => 'SUPERADMIN > Einstellungen > Airline' , 'color' => 'superadmin'],
|
||||
'sua-st-et' => ['name' => 'SUPERADMIN > Einstellungen > E-Mail Vorlagen' , 'color' => 'superadmin'],
|
||||
'sua-st-em' => ['name' => 'SUPERADMIN > Einstellungen > E-Mails' , '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'],
|
||||
|
|
@ -46,7 +46,6 @@ return [
|
|||
'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'],
|
||||
|
||||
],
|
||||
|
|
|
|||
|
|
@ -21,13 +21,15 @@ class CreateTravelCountryTable extends Migration
|
|||
$table->string('name')->nullable();
|
||||
$table->string('slug')->nullable();
|
||||
|
||||
|
||||
$table->string('mail_dir_name')->nullable();
|
||||
|
||||
$table->text('html_information')->nullable();
|
||||
$table->string('text_before')->nullable();
|
||||
$table->string('text_after')->nullable();
|
||||
|
||||
$table->string('contact_lands')->nullable();
|
||||
$table->string('mail_dirs')->nullable();
|
||||
|
||||
$table->string('contact_headline')->nullable();
|
||||
$table->text('contact_text_1')->nullable();
|
||||
$table->text('contact_text_2')->nullable();
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class CreateCMSContentsTable extends Migration
|
|||
|
||||
$table->string('name');
|
||||
$table->string('slug')->index()->unique();
|
||||
$table->string('identifier')->nullable()->index();
|
||||
|
||||
$table->string('field', 10)->index();
|
||||
|
||||
|
|
@ -26,6 +27,9 @@ class CreateCMSContentsTable extends Migration
|
|||
$table->integer('integer')->nullable();
|
||||
$table->decimal('decimal')->nullable();
|
||||
|
||||
$table->unsignedTinyInteger('pos')->default(0);
|
||||
|
||||
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,12 +33,11 @@ class CreateCustomerMailsTable extends Migration
|
|||
$table->text('message')->nullable();
|
||||
|
||||
$table->unsignedTinyInteger('dir')->default(0);
|
||||
$table->bigInteger('travel_country_id')->nullable();
|
||||
$table->bigInteger('subdir')->nullable();
|
||||
|
||||
$table->boolean('draft')->default(false);
|
||||
$table->boolean('important')->default(false);
|
||||
|
||||
|
||||
$table->boolean('send')->default(false);
|
||||
$table->boolean('fail')->default(false);
|
||||
$table->text('error')->nullable();
|
||||
|
|
@ -64,12 +63,6 @@ class CreateCustomerMailsTable extends Migration
|
|||
$table->foreign('reply_id')
|
||||
->references('id')
|
||||
->on('customer_mails');
|
||||
|
||||
$table->foreign('travel_country_id')
|
||||
->references('id')
|
||||
->on('travel_country');
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateEmailTemplateDirsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('email_template_dirs', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('name');
|
||||
$table->string('color', 10)->nullable();
|
||||
$table->boolean('active')->default(true);
|
||||
$table->unsignedTinyInteger('pos')->default(0);
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('email_template_dirs');
|
||||
}
|
||||
}
|
||||
|
|
@ -15,10 +15,16 @@ class CreateEmailTemplatesTable extends Migration
|
|||
{
|
||||
Schema::create('email_templates', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('subject', 255);
|
||||
$table->unsignedInteger('email_template_dir_id')->nullable();
|
||||
$table->string('name', 255);
|
||||
$table->string('subject', 255)->nullable();
|
||||
$table->text('message')->nullable();
|
||||
$table->boolean('active')->default(true);
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('email_template_dir_id')
|
||||
->references('id')
|
||||
->on('email_template_dirs');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateCustomerFewoMailsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql_stern')->create('customer_fewo_mails', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->unsignedInteger('travel_user_booking_fewo_id');
|
||||
$table->unsignedInteger('travel_user_id');
|
||||
|
||||
$table->boolean('is_answer')->default(false);
|
||||
$table->unsignedInteger('reply_id');
|
||||
|
||||
$table->string('email', 255);
|
||||
|
||||
$table->text('recipient')->nullable();
|
||||
$table->text('cc')->nullable();
|
||||
$table->text('bcc')->nullable();
|
||||
|
||||
$table->string('subject', 255);
|
||||
$table->text('message')->nullable();
|
||||
|
||||
$table->unsignedTinyInteger('dir')->default(0);
|
||||
$table->bigInteger('subdir')->nullable();
|
||||
|
||||
$table->boolean('draft')->default(false);
|
||||
$table->boolean('important')->default(false);
|
||||
|
||||
$table->boolean('send')->default(false);
|
||||
$table->boolean('fail')->default(false);
|
||||
$table->text('error')->nullable();
|
||||
|
||||
$table->timestamp('sent_at')->nullable();
|
||||
$table->timestamp('scheduled_at')->nullable();
|
||||
$table->timestamp('delivered_at')->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('travel_user_booking_fewo_id')
|
||||
->references('id')
|
||||
->on('travel_user_booking_fewos');
|
||||
|
||||
$table->foreign('travel_user_id')
|
||||
->references('id')
|
||||
->on('travel_users');
|
||||
|
||||
$table->foreign('reply_id')
|
||||
->references('id')
|
||||
->on('customer_fewo_mails');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql_stern')->dropIfExists('customer_fewo_mails');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateCustomerFewoFilesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql_stern')->create('customer_fewo_files', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->unsignedInteger('travel_user_id')->nullable();
|
||||
$table->unsignedInteger('customer_fewo_mail_id')->nullable();
|
||||
|
||||
$table->string('identifier')->index();
|
||||
$table->string('filename');
|
||||
$table->string('dir');
|
||||
$table->string('original_name');
|
||||
$table->string('ext');
|
||||
$table->string('mine');
|
||||
$table->unsignedInteger('size');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('travel_user_id')
|
||||
->references('id')
|
||||
->on('travel_users');
|
||||
|
||||
$table->foreign('customer_fewo_mail_id')
|
||||
->references('id')
|
||||
->on('customer_fewo_mails');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql_stern')->dropIfExists('customer_fewo_files');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateTravelUserBookingFilesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('mysql_stern')->create('travel_user_booking_files', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->unsignedInteger('travel_user_booking_fewo_id')->nullable();
|
||||
|
||||
$table->string('identifier')->index();
|
||||
$table->string('filename');
|
||||
$table->string('dir');
|
||||
$table->string('original_name');
|
||||
$table->string('ext');
|
||||
$table->string('mine');
|
||||
$table->unsignedInteger('size');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('travel_user_booking_fewo_id')
|
||||
->references('id')
|
||||
->on('travel_user_booking_fewos');
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('mysql_stern')->dropIfExists('travel_user_booking_files');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateGeneralFilesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('general_files', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->bigInteger('travel_country_id')->nullable();
|
||||
|
||||
$table->string('identifier')->index();
|
||||
$table->string('filename');
|
||||
$table->string('dir');
|
||||
$table->string('original_name');
|
||||
$table->string('ext');
|
||||
$table->string('mine');
|
||||
$table->unsignedInteger('size');
|
||||
$table->timestamps();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('general_files');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateTravelCountryServicesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('travel_country_services', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
|
||||
$table->bigInteger('travel_country_id')->nullable()->index();
|
||||
$table->integer('crm_travel_country_id')->nullable();
|
||||
|
||||
$table->string('name')->nullable()->index();
|
||||
$table->text('description')->nullable();
|
||||
$table->boolean('active')->default(true);
|
||||
$table->unsignedTinyInteger('pos')->default(0);
|
||||
$table->timestamps();
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('travel_country_services');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateBookingCountryServicesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('booking_country_services', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
|
||||
$table->unsignedInteger('travel_country_service_id')->index();
|
||||
$table->bigInteger('booking_id')->index();
|
||||
|
||||
$table->unsignedTinyInteger('status')->default(0);
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('travel_country_service_id', 'booking_country_services_tcsid')
|
||||
->references('id')
|
||||
->on('travel_country_services');
|
||||
|
||||
$table->foreign('booking_id')
|
||||
->references('id')
|
||||
->on('booking');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('booking_travel_country_services');
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ use Illuminate\Database\Migrations\Migration;
|
|||
* Migration auto-generated by Sequel Pro Laravel Export (1.4.1)
|
||||
* @see https://github.com/cviebrock/sequel-pro-laravel-export
|
||||
*/
|
||||
class CreateSalutationTable extends Migration
|
||||
class CreateTravelCountryTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
|
|
@ -17,13 +17,30 @@ class CreateSalutationTable extends Migration
|
|||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('salutation', function (Blueprint $table) {
|
||||
Schema::create('travel_country', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('name', 255);
|
||||
$table->string('mail_dir_name', 255)->nullable();
|
||||
$table->tinyInteger('is_customer_country')->nullable()->default(0);
|
||||
$table->tinyInteger('active_backend')->nullable()->default(0);
|
||||
$table->string('contact_lands', 255)->nullable();
|
||||
$table->string('mail_dirs', 255)->nullable();
|
||||
$table->string('contact_headline', 255)->nullable();
|
||||
$table->text('contact_text_1')->nullable();
|
||||
$table->text('contact_text_2')->nullable();
|
||||
$table->text('contact_text_3')->nullable();
|
||||
$table->text('contact_text_4')->nullable();
|
||||
$table->text('contact_footer')->nullable();
|
||||
$table->text('contact_emails')->nullable();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -33,6 +50,6 @@ class CreateSalutationTable extends Migration
|
|||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('salutation');
|
||||
Schema::dropIfExists('travel_country');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use Illuminate\Database\Migrations\Migration;
|
|||
* Migration auto-generated by Sequel Pro Laravel Export (1.4.1)
|
||||
* @see https://github.com/cviebrock/sequel-pro-laravel-export
|
||||
*/
|
||||
class CreateTravelCountryTable extends Migration
|
||||
class CreateSalutationTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
|
|
@ -17,13 +17,18 @@ class CreateTravelCountryTable extends Migration
|
|||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('travel_country', function (Blueprint $table) {
|
||||
Schema::create('salutation', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->string('name', 255);
|
||||
$table->tinyInteger('is_customer_country')->nullable()->default(false);
|
||||
$table->boolean('active_backend')->nullable()->default(false);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -33,6 +38,6 @@ class CreateTravelCountryTable extends Migration
|
|||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('travel_country');
|
||||
Schema::dropIfExists('salutation');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -470,3 +470,44 @@ div.dropzone.dz-drag-hover {
|
|||
.ql-picker.ql-placeholder > span.ql-picker-options > span.ql-picker-item::before {
|
||||
content: attr(data-label);
|
||||
}
|
||||
|
||||
.nav-tabs-top > .nav .nav-link{
|
||||
line-height: 1.3em;
|
||||
background-color: rgba(24, 28, 33, 0.10);
|
||||
border-color: rgba(24, 28, 33, 0.15);
|
||||
|
||||
}
|
||||
.nav-tabs-top > .nav .nav-link:hover{
|
||||
line-height: 1.3em;
|
||||
border-color: rgba(24, 28, 33, 0.25);
|
||||
}
|
||||
.nav-tabs-top > .nav .nav-link.active {
|
||||
color: #66500f;
|
||||
background-color: #ffc926;
|
||||
font-weight: bold;
|
||||
border-color: rgba(24, 28, 33, 0.25);
|
||||
|
||||
}
|
||||
.nav-tabs-top > .nav {
|
||||
padding-left: 0.25em;
|
||||
padding-right: 0.25em;
|
||||
|
||||
}
|
||||
.nav-tabs-top > .tab-content {
|
||||
border: none;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
#filter_email_templates_directory {
|
||||
position: absolute;width: 50%;z-index: 999;margin-top: -5px;
|
||||
}
|
||||
}
|
||||
.no-break {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.card-header,
|
||||
.card-footer,
|
||||
.card hr {
|
||||
border-color: rgba(24, 28, 33, 0.15);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,15 +10,16 @@ body {
|
|||
padding: 0;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
font-size: 10pt;
|
||||
line-height: 1.2em;
|
||||
font-size: 9.5pt;
|
||||
line-height: 1.15em;
|
||||
font-family: Helvetica;
|
||||
}
|
||||
table {
|
||||
border: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 600;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@page {
|
||||
|
|
@ -35,7 +36,7 @@ strong {
|
|||
}
|
||||
|
||||
.font-weight-bold {
|
||||
font-weight: 600;
|
||||
font-weight: bold;
|
||||
}
|
||||
#logo_box {
|
||||
position: absolute;
|
||||
|
|
@ -57,7 +58,7 @@ strong {
|
|||
width: 100mm;
|
||||
height: 45mm;
|
||||
z-index: 1;
|
||||
font-size: 11pt;
|
||||
font-size: 10pt;
|
||||
color:#000;
|
||||
}
|
||||
#address_box #address_back{
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ $(function () {
|
|||
$.each(button.data(), function(index, value){
|
||||
data[index] = value;
|
||||
});
|
||||
//console.log(data);
|
||||
// console.log(data);
|
||||
loadModalInner(this, data);
|
||||
|
||||
});
|
||||
|
|
@ -173,7 +173,7 @@ $(function () {
|
|||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(data) {
|
||||
// console.log(data);
|
||||
// console.log(data);
|
||||
$(data.response.target).find('.modal-dialog').html(data.html);
|
||||
$(data.response.target).find('.selectpicker').selectpicker('refresh');
|
||||
initModalInner();
|
||||
|
|
@ -371,15 +371,25 @@ jQuery(document).ready(function() {
|
|||
});
|
||||
});
|
||||
|
||||
jQuery.each(jQuery('textarea.autoExpand'), function() {
|
||||
var offset = this.offsetHeight - this.clientHeight;
|
||||
var resizeTextarea = function(el) {
|
||||
var resizeTextarea = function(el) {
|
||||
if(el.scrollHeight > 0){
|
||||
var offset = el.offsetHeight - el.clientHeight;
|
||||
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
|
||||
};
|
||||
jQuery(this).on('keyup input', function() { resizeTextarea(this); }).removeClass('autoExpand');
|
||||
}
|
||||
$(this).removeClass('autoExpand');
|
||||
|
||||
};
|
||||
jQuery.each(jQuery('textarea.autoExpand'), function() {
|
||||
jQuery(this).on('keyup input', function() { resizeTextarea(this); });
|
||||
jQuery(this).on('focus input', function() { resizeTextarea(this); });
|
||||
resizeTextarea(this);
|
||||
});
|
||||
jQuery('.collapse').on('shown.bs.collapse', function () {
|
||||
$('#'+$(this).attr('id')).find('textarea.autoExpand').each(function () {
|
||||
resizeTextarea(this);
|
||||
});
|
||||
|
||||
})
|
||||
$(function() {
|
||||
|
||||
$('.datepicker-range').datepicker({
|
||||
|
|
@ -392,7 +402,6 @@ $(function() {
|
|||
|
||||
});
|
||||
|
||||
|
||||
$('.datepicker-base').datepicker({
|
||||
calendarWeeks: true,
|
||||
todayBtn: 'linked',
|
||||
|
|
|
|||
36
resources/views/admin/modal/country-service.blade.php
Executable file
36
resources/views/admin/modal/country-service.blade.php
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
<div class="modal-content">
|
||||
{!! Form::open(['url' => $data['url'], 'class' => '', 'enctype' => 'multipart/form-data']) !!}
|
||||
{{ Form::hidden('travel_county_service_id', $data['id']) }}
|
||||
{{ Form::hidden('back', $data['back']) }}
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
Länderleistungen Agenturleistungen
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="name" class="form-label">{{ __('Name') }}</label>
|
||||
{{ Form::text('name', $value->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'required')) }}
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label for="full_text" class="form-label">{{ __('Beschreibung') }}</label>
|
||||
{{ Form::textarea('description', $value->description, array('Beschreibung'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pos" class="form-label">{{ __('Position') }}</label>
|
||||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary" name="update-action" value="save-travel-county-service">speichern</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
</script>
|
||||
98
resources/views/admin/modal/upload.blade.php
Executable file
98
resources/views/admin/modal/upload.blade.php
Executable file
|
|
@ -0,0 +1,98 @@
|
|||
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
{{ __('Datei') }}
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-row show-content-file">
|
||||
<div class="col-12">
|
||||
<div class="alert alert-danger alert-dismissable" style="display:none;"></div>
|
||||
</div>
|
||||
<div class="col-12 mt-2 mb-4">
|
||||
{!! Form::open([ 'url' => $data['url'], 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'uploadModalFile' ]) !!}
|
||||
<input type="hidden" name="id" value="{{ $data['id'] }}">
|
||||
<input type="hidden" name="action" value="{{ $data['action'] }}">
|
||||
<input type="hidden" name="back" value="{{ $data['back'] }}">
|
||||
|
||||
<div class="fallback">
|
||||
<input name="file" type="file" multiple>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$( document ).ready(function() {
|
||||
Dropzone.autoDiscover = false;
|
||||
$("#uploadModalFile").dropzone({
|
||||
uploadMultiple: false,
|
||||
parallelUploads: 1,
|
||||
maxFilesize: 32,
|
||||
addRemoveLinks: true,
|
||||
dictDefaultMessage: '<i class="ion ion-ios-cloud-upload "></i>Hier klicken, oder Datei hier reinziehen (Drag&Drop)',
|
||||
dictFallbackMessage: 'Ihr Browser unterstützt Drag&Drop Dateiuploads nicht',
|
||||
dictFallbackText: 'Benutzen Sie das Formular um Ihre Dateien hochzuladen',
|
||||
dictFileTooBig: "Die Datei ist zu groß. Die maximale Dateigröße beträgt 32 MB",
|
||||
dictInvalidFileType: 'Eine Datei dieses Typs kann nicht hochgeladen werden',
|
||||
dictResponseError: "Der Server hat ihre Anfrage mit Status error abgelehnt",
|
||||
dictCancelUpload: 'Hochladen abbrechen',
|
||||
dictCancelUploadConfirmation: null,
|
||||
dictRemoveFile: 'Datei entfernen',
|
||||
dictMaxFilesExceeded: 'Sie können keine weiteren Dateien mehr hochladen',
|
||||
acceptedFiles: "image/jpeg,image/pjpeg,image/png,image/gif,application/pdf,text/plain",
|
||||
// The setting up of the dropzone
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
init:function() {
|
||||
this.on("removedfile", function(file) {
|
||||
var _ele = $('.alert-danger');
|
||||
_ele.fadeOut();
|
||||
|
||||
});
|
||||
this.on("addedfile", function (file) {
|
||||
var _ele = $('.alert-danger');
|
||||
_ele.fadeOut();
|
||||
});
|
||||
},
|
||||
error: function(file, response) {
|
||||
var message
|
||||
if($.type(response) === "string")
|
||||
message = response; //dropzone sends it's own error messages in string
|
||||
else
|
||||
message = response.message;
|
||||
var _ele = $('.alert-danger');
|
||||
_ele.fadeIn();
|
||||
console.log(message);
|
||||
_ele.text(message);
|
||||
},
|
||||
success: function(file, response) {
|
||||
console.log(file);
|
||||
console.log(response);
|
||||
if(response.error === false){
|
||||
if(response.redirect){
|
||||
window.location.href = response.redirect
|
||||
}else{
|
||||
//window.location.href = window.location.href; //This is a possibility
|
||||
window.location.reload(); //Another possiblity
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
|
@ -41,33 +41,94 @@
|
|||
<label class="form-label" for="title">{{ __('Reisetitel') }}</label>
|
||||
{{ Form::text('title', $booking->title, array('placeholder'=>__('Reisetitel'), 'class'=>'form-control', 'id'=>'title', 'readonly')) }}
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<h5 class="card-title mt-3 mb-1">Status</h5>
|
||||
<hr class="mt-0">
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="paying_out">{{ __('K-Wunsch') }}</label>
|
||||
{{ Form::select('paying_out', \App\Models\Booking::$paying_out_types , $booking->paying_out, array('class'=>'custom-select', 'id'=>'paying_out' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="paying_out_status">{{ __('KW-Status') }}</label>
|
||||
{{ Form::select('paying_out_status', \App\Models\Booking::$paying_out_status_types , $booking->paying_out_status, array('class'=>'custom-select', 'id'=>'paying_out_status' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="refund">{{ __('Refund') }}</label>
|
||||
{{ Form::select('refund', \App\Models\Booking::$refund_types , $booking->refund, array('class'=>'custom-select', 'id'=>'refund' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="refund_date">{{ __('Refund Datum') }}</label>
|
||||
{{ Form::text('refund_date', _format_date($booking->refund_date), array('placeholder'=>__('Refund Datum'), 'class'=>'form-control datepicker-base', 'id'=>'refund_date')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="xx_tkt">{{ __('XX TKT') }}</label>
|
||||
{{ Form::select('xx_tkt', \App\Models\Booking::$xx_tkt_types , $booking->xx_tkt, array('class'=>'custom-select', 'id'=>'xx_tkt' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="xx_tkt_date">{{ __('XX TKT Datum') }}</label>
|
||||
{{ Form::text('xx_tkt_date', _format_date($booking->xx_tkt_date), array('placeholder'=>__('XX TKT Datum'), 'class'=>'form-control datepicker-base', 'id'=>'xx_tkt_date')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="hold">{{ __('Hold') }}</label>
|
||||
{{ Form::select('hold', \App\Models\Booking::$hold_types , $booking->hold, array('class'=>'custom-select', 'id'=>'hold' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="airline_id">{{ __('Airline') }}</label>
|
||||
{{ Form::select('airline_id', \App\Models\Airline::getAsNameIdArray() , $booking->airline_id, array('class'=>'custom-select', 'id'=>'airline_id' )) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="filekey">{{ __('Filekey') }}</label>
|
||||
{{ Form::text('filekey', $booking->filekey, array('placeholder'=>__('Filekey'), 'class'=>'form-control', 'id'=>'filekey')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for=""> </label>
|
||||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||||
{!! Form::checkbox('is_rail_fly', 1, $booking->is_rail_fly, ['class'=>'custom-control-input', 'id'=>'is_rail_fly']) !!}
|
||||
<span class="custom-control-label">{{__('Rail & Fly')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="lawyer_date">{{ __('Anwaltsfrist') }}</label>
|
||||
{{ Form::text('lawyer_date', _format_date($booking->lawyer_date), array('placeholder'=>__('Anwaltsfrist'), 'class'=>'form-control datepicker-base', 'id'=>'lawyer_date')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="paying_out">{{ __('K-Wunsch') }}</label>
|
||||
{{ Form::text('paying_out', $booking->getPayingOutType(), array('placeholder'=>__('K-Wunsch'), 'class'=>'form-control', 'id'=>'paying_out', 'readonly')) }}
|
||||
<div class="form-group col-sm-12 col-md-12">
|
||||
<label class="form-label" for="notice">{{ __('Bemerkung') }}</label>
|
||||
{{ Form::text('notice', $booking->notice, array('placeholder'=>__('Bemerkung'), 'class'=>'form-control', 'id'=>'notice')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="paying_out_status">{{ __('KW-Status') }}</label>
|
||||
{{ Form::text('paying_out_status', $booking->getPayingOutStatusType(), array('placeholder'=>__('KW-Status'), 'class'=>'form-control', 'id'=>'paying_out_status', 'readonly')) }}
|
||||
|
||||
<div class="col-12">
|
||||
<h5 class="card-title mt-3 mb-1">Leistungen</h5>
|
||||
<hr class="mt-0">
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="refund">{{ __('Refund') }}</label>
|
||||
{{ Form::text('refund', $booking->getRefundType(), array('placeholder'=>__('Refund'), 'class'=>'form-control', 'id'=>'refund', 'readonly')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="refund_date">{{ __('Refund Datum') }}</label>
|
||||
{{ Form::text('refund_date', _format_date($booking->refund_date), array('placeholder'=>__('Refund Datum'), 'class'=>'form-control', 'id'=>'refund_date', 'readonly')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="xx_tkt">{{ __('XX TKT') }}</label>
|
||||
{{ Form::text('xx_tkt', $booking->getXxTktType(), array('placeholder'=>__('XX TKT'), 'class'=>'form-control', 'id'=>'xx_tkt', 'readonly')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6 col-md-4">
|
||||
<label class="form-label" for="xx_tkt_date">{{ __('XX TKT Datum') }}</label>
|
||||
{{ Form::text('xx_tkt_date', _format_date($booking->xx_tkt_date), array('placeholder'=>__('XX TKT Datum'), 'class'=>'form-control', 'id'=>'xx_tkt_date', 'readonly')) }}
|
||||
|
||||
@foreach($booking->travel_country->getContactLandsModels() as $TravelCountry)
|
||||
@if($TravelCountry->stern_travel_country)
|
||||
@foreach($TravelCountry->stern_travel_country->travel_country_services as $travel_country_service)
|
||||
<div class="col-sm-6 col-md-4">
|
||||
<label class="switcher switcher-on-off">
|
||||
{{ Form::hidden('country_service['.$travel_country_service->id.']', 0) }}
|
||||
{{ Form::checkbox('country_service['.$travel_country_service->id.']', 1, \App\Models\BookingCountryService::getStatus($travel_country_service->id, $booking->id), array('class'=>'switcher-input')) }}
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"><span class="ion ion-md-checkmark"></span></span>
|
||||
<span class="switcher-no"><span class="ion ion-md-close"></span></span>
|
||||
</span>
|
||||
<span class="switcher-label">{{ $travel_country_service->name }}</span>
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
<div class="col-12">
|
||||
<hr>
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" name="action" value="update_booking" class="btn btn-sm btn-secondary">{{ __('save changes') }}</button>
|
||||
<a href="{{route('bookings')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -180,27 +180,59 @@
|
|||
@endforeach
|
||||
@endif
|
||||
|
||||
@if($security_certificate = \App\Models\CMSContent::getModelBySlug('sicherungsschein-nach-sis651r-pdf'))
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $security_certificate->getURL() }}" class="badge badge-md badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{$security_certificate->name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ $security_certificate->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($security_certificate->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<a href="{{ $security_certificate->getURL('download') }}" class="btn btn-xs btn-default"
|
||||
title="Download" data-placement="left" rel="tooltip">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@foreach(\App\Services\Booking::contentFiles() as $content_file)
|
||||
@if($file = \App\Models\CMSContent::getModelBySlug($content_file))
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $file->getURL() }}" class="badge badge-md badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{$file->name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@if(Auth::user()->isPermission('sua-st-em'))
|
||||
<a href="{{route('admin_settings_emails', ['settings'])}}">E-Mails</a> |
|
||||
@endif
|
||||
{{ $file->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($file->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<a href="{{ $file->getURL('download') }}" class="btn btn-xs btn-default"
|
||||
title="Download" data-placement="left" rel="tooltip">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@foreach($booking->travel_country->getContactLandsModels() as $TravelCountry)
|
||||
@if($TravelCountry->stern_travel_country)
|
||||
@foreach($TravelCountry->stern_travel_country->general_files as $general_files)
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $general_files->getURL() }}" class="badge badge-md badge-info">
|
||||
<i class="{{$general_files->getIconExt()}} mr-1"></i> {{$general_files->original_name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@if(Auth::user()->isPermission('sua-st-co'))
|
||||
<a href="{{route('admin_settings_travel_country_detail', [$TravelCountry->stern_travel_country->id, 'data'])}}">{{$TravelCountry->stern_travel_country->name }}</a> |
|
||||
@endif
|
||||
{{ $general_files->mine }} | {{ $general_files->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($general_files->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<a href="{{ $general_files->getURL('download') }}" class="btn btn-xs btn-default"
|
||||
title="Download" data-placement="left" rel="tooltip">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@if($booking->booking_files)
|
||||
@foreach($booking->booking_files as $booking_file)
|
||||
|
|
@ -220,6 +252,8 @@
|
|||
title="Download" data-placement="left" rel="tooltip">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
<a class="ml-2 btn btn-xs btn-danger" href="{{ route('booking_delete', [$booking_file->id, 'booking_file']) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
|
@ -228,8 +262,15 @@
|
|||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="text-right d-block w-100">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
|
||||
@if(Auth::user()->isPermission('sua-st-em'))
|
||||
<div class="float-left small">Allgemeine Dateien unter: <a href="{{route('admin_settings_emails', ['settings'])}}">Einstellungen -> E-Mails / Einstellungen</a></div>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('sua-st-co'))
|
||||
<br><div class="float-left small">Landesspezifische Dateien unter: <a href="{{route('admin_settings_travel_country', [])}}">Einstellungen -> Reieseländer</a></div>
|
||||
@endif
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
|
||||
data-target="#modals-load-content"
|
||||
data-id="new-file"
|
||||
data-model="bookingFile"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
<div class="card mb-2">
|
||||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingMails" aria-expanded="false" aria-controls="collapseBookingMails">
|
||||
<strong style="line-height: 1.6em">E-Mails</strong>
|
||||
<span class="badge badge-secondary">{{ $booking->customer_mails->count() }}</span>
|
||||
|
||||
</h6>
|
||||
<div class="collapse" id="collapseBookingMails">
|
||||
<div class="container-fluid d-flex align-items-stretch flex-grow-1 p-0">
|
||||
|
|
@ -16,25 +18,25 @@
|
|||
<button type="button" class="btn btn-sm btn-secondary mb-3 btn-compare-customer-mails" data-toggle="modal"
|
||||
data-target="#modals-load-content"
|
||||
data-id="new-send"
|
||||
data-model="customerMail"
|
||||
data-model="CustomerMail"
|
||||
data-action="new-customer-mail"
|
||||
data-url="{{route('customer_mail_send_mail')}}"
|
||||
data-redirect="back"
|
||||
data-booking_id="{{$booking->id}}"
|
||||
data-customer_mail_dir="0"
|
||||
data-customer_mail_country="0"
|
||||
data-customer_mail_subdir="0"
|
||||
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-open"></i> E-Mail schreiben</button>
|
||||
|
||||
<button type="button" class="btn btn-sm btn-next btn-compare-customer-mails" data-toggle="modal"
|
||||
data-target="#modals-load-content"
|
||||
data-id="new-save"
|
||||
data-model="customerMail"
|
||||
data-model="CustomerMail"
|
||||
data-action="reply-customer-mail"
|
||||
data-url="{{route('customer_mail_reply_mail')}}"
|
||||
data-redirect="back"
|
||||
data-booking_id="{{$booking->id}}"
|
||||
data-customer_mail_dir="0"
|
||||
data-customer_mail_country="0"
|
||||
data-customer_mail_subdir="0"
|
||||
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-unread"></i> Antwort speichern</button>
|
||||
</div>
|
||||
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">×</a>
|
||||
|
|
@ -44,40 +46,50 @@
|
|||
|
||||
<style>
|
||||
.sidebox-nav-item {
|
||||
color: #838387 !important;
|
||||
}
|
||||
.sidebox-nav-item_sub {
|
||||
color: #a3a4a6 !important;
|
||||
}
|
||||
.sidebox-nav-item[href]:hover,
|
||||
.sidebox-nav-item[href]:focus {
|
||||
color: #8c8e90 !important;
|
||||
color: #606265 !important;
|
||||
}
|
||||
.sidebox-nav-item.active .item {
|
||||
color: #4E5155 !important;
|
||||
color: #3e4244 !important;
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
</style>
|
||||
<!-- Mail boxes -->
|
||||
|
||||
@foreach(\App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
@php($badge = $customer_mail_dir->pos === 0 ? "badge-primary" : "badge-outline-primary")
|
||||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item @if($customer_mail_dir->pos === 0) active @endif"
|
||||
data-dir="{{$customer_mail_dir->pos}}" data-subdir="0" data-icon="{{$customer_mail_dir->getArrayContent('icon')}}" data-name="{{$customer_mail_dir->name}}">
|
||||
<div class="item">
|
||||
<i class="ion {{$customer_mail_dir->getArrayContent('icon')}}"></i> {{$customer_mail_dir->name}}
|
||||
</div>
|
||||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($customer_mail_dir->pos)}}</div>
|
||||
</a>
|
||||
@foreach($booking->travel_country->getMailDirs($customer_mail_dir->pos) as $mail_dir_id)
|
||||
@php ($mail_dir_name = \App\Services\Booking::getCustomerMailName($customer_mail_dir, $mail_dir_id))
|
||||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-1 px-4 sidebox-nav-item sidebox-nav-item_sub"
|
||||
data-dir="{{$customer_mail_dir->pos}}" data-subdir="{{$mail_dir_id}}" data-icon="{{$customer_mail_dir->getArrayContent('icon')}}" data-name="{{$mail_dir_name}}">
|
||||
<div class="item pl-2">
|
||||
<i class="ion {{$customer_mail_dir->getArrayContent('icon')}}"></i> {{$mail_dir_name}}
|
||||
</div>
|
||||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($customer_mail_dir->pos, $mail_dir_id)}}</div>
|
||||
</a>
|
||||
@endforeach
|
||||
@endforeach
|
||||
@foreach($booking::$customer_mail_dirs as $dir_id => $customer_mail_dir)
|
||||
|
||||
@php($badge = $dir_id === 0 ? "badge-primary" : "badge-outline-primary")
|
||||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item @if($dir_id === 0) active @endif"
|
||||
data-dir="{{$dir_id}}" data-country="0" data-icon="{{$customer_mail_dir['icon']}}" data-name="{{$customer_mail_dir['name']}}">
|
||||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item"
|
||||
data-dir="{{$dir_id}}" data-subdir="0" data-icon="{{$customer_mail_dir['icon']}}" data-name="{{$customer_mail_dir['name']}}">
|
||||
<div class="item">
|
||||
<i class="ion {{$customer_mail_dir['icon']}}"></i> {{$customer_mail_dir['name']}}
|
||||
</div>
|
||||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($dir_id)}}</div>
|
||||
</a>
|
||||
@if($dir_id === 1 && $booking->travel_country)
|
||||
@foreach($booking->travel_country->getCountryLands() as $id => $name)
|
||||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item"
|
||||
data-dir="{{$dir_id}}" data-country="{{$id}}" data-icon="{{$customer_mail_dir['icon']}}" data-name="{{$name}}">
|
||||
<div class="item pl-2">
|
||||
<i class="ion {{$customer_mail_dir['icon']}}"></i> {{$name}}
|
||||
</div>
|
||||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($dir_id, $id)}}</div>
|
||||
</a>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
<hr class="border-light m-4">
|
||||
</div>
|
||||
|
|
@ -110,7 +122,7 @@
|
|||
<div class="table-responsive" id="customer_mails_table">
|
||||
<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="">
|
||||
<input type="hidden" name="customer_mail_subdir" value="">
|
||||
<table id="datatables-customer-mails" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -3,14 +3,6 @@
|
|||
@section('content')
|
||||
|
||||
<style>
|
||||
/* body {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}*/
|
||||
.btn-xs {
|
||||
line-height: 1.3em;
|
||||
}
|
||||
|
|
@ -46,23 +38,6 @@
|
|||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
Buchung verwalten
|
||||
</h4>
|
||||
|
||||
{{--
|
||||
<style>
|
||||
[class*="nav-tabs"]
|
||||
{
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
background-color: #fff;
|
||||
margin-top: -11%; // adjust according to your need
|
||||
}
|
||||
[class*="tab-content"]
|
||||
{
|
||||
margin-top: 5%;
|
||||
}
|
||||
</style>
|
||||
|
||||
--}}
|
||||
<ul class="nav nav-sm nav-tabs nav-justified tabs-alt mb-3" id="top-nav-quick-jump">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingInfo">
|
||||
|
|
@ -138,6 +113,11 @@
|
|||
|
||||
@include('booking._detail_files')
|
||||
|
||||
<div class="float-right mt-3">
|
||||
<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>
|
||||
|
||||
<div class="modal fade" id="modals-load-next">
|
||||
<div class="modal-dialog modal-lg">
|
||||
|
||||
|
|
@ -229,7 +209,6 @@
|
|||
init_site();
|
||||
|
||||
|
||||
|
||||
var oTable = $('#datatables-customer-mails').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
|
@ -237,9 +216,10 @@
|
|||
ajax: {
|
||||
url: '{!! route( 'customer_mail_data_table' ) !!}',
|
||||
data: function(d) {
|
||||
d.model = 'CustomerMail';
|
||||
d.booking_id = $('#customer_mails_table input[name=booking_id]').val();
|
||||
d.customer_mail_dir = $('#customer_mails_table input[name=customer_mail_dir]').val();
|
||||
d.customer_mail_country = $('#customer_mails_table input[name=customer_mail_country]').val();
|
||||
d.customer_mail_subdir = $('#customer_mails_table input[name=customer_mail_subdir]').val();
|
||||
d.data_table_search = $('#dataTableInputSearchField').val();
|
||||
}
|
||||
},
|
||||
|
|
@ -276,10 +256,10 @@
|
|||
return;
|
||||
}
|
||||
$('#customer_mails_table input[name=customer_mail_dir]').val($(this).data('dir'));
|
||||
$('#customer_mails_table input[name=customer_mail_country]').val($(this).data('country'));
|
||||
$('#customer_mails_table input[name=customer_mail_subdir]').val($(this).data('subdir'));
|
||||
if($(this).data('dir') <= 10){
|
||||
$('.btn-compare-customer-mails').data('customer_mail_dir', $(this).data('dir'));
|
||||
$('.btn-compare-customer-mails').data('customer_mail_country', $(this).data('country'));
|
||||
$('.btn-compare-customer-mails').data('customer_mail_subdir', $(this).data('subdir'));
|
||||
$('.btn-compare-customer-mails').prop('disabled', false);
|
||||
}else{
|
||||
$('.btn-compare-customer-mails').prop('disabled', true);
|
||||
|
|
@ -291,7 +271,6 @@
|
|||
$('#message-sidebox-title-name').html($(this).data('name'));
|
||||
$('.messages-wrapper .sidebox-nav-item').find('.badge-primary').removeClass('badge-primary').addClass('badge-outline-primary');
|
||||
$(this).find('.badge').removeClass('badge-outline-primary').addClass('badge-primary');
|
||||
|
||||
});
|
||||
|
||||
$('#dataTableInputSearchField').keyup(function(){
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@
|
|||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal"
|
||||
data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-identifier="{{$identifier_content}}"
|
||||
data-model="content"
|
||||
data-back="{{route('cms_content_all')}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}"
|
||||
>Neuen Content anlegen</button>
|
||||
</div>
|
||||
|
|
@ -39,7 +41,6 @@
|
|||
<th>{{__('Slug')}}</th>
|
||||
<th>{{__('Inhalt')}}</th>
|
||||
<th>{{__('Type')}}</th>
|
||||
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -49,7 +50,9 @@
|
|||
<td class="not">
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{ $value->id }}"
|
||||
data-identifier="{{$identifier_content}}"
|
||||
data-model="content"
|
||||
data-back="{{route('cms_content_all')}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
|
|
@ -58,9 +61,7 @@
|
|||
<td>{{ $value->slug }}</td>
|
||||
<td>@if($value->isFile()) {!! $value->getPreviewContent() !!} @else {{ $value->getPreviewContent() }} @endif</td>
|
||||
<td>{{ $value->getFieldName() }}</td>
|
||||
|
||||
<td><a class="text-danger" href="{{ route('cms_content_all_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
|
@ -68,12 +69,13 @@
|
|||
<div class="mt-4 mr-4 text-right">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-identifier="{{$identifier_content}}"
|
||||
data-model="content"
|
||||
data-back="{{route('cms_content_all')}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}"
|
||||
>Neuen Content anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
|
|
@ -89,8 +91,4 @@
|
|||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
|
||||
{!! Form::open(['url' => route('cms_content_all_store'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
|
||||
{!! Form::open(['url' => route('cms_content_all_store'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data', 'id'=> 'cmsContentForm']) !!}
|
||||
|
||||
<input type="hidden" name="id" id="id" value="{{ $value->id > 0 ? $value->id : 'new' }}">
|
||||
<input type="hidden" name="identifier" id="identifier" value="{{ $value->identifier }}">
|
||||
<input type="hidden" name="back" id="back" value="{{ $data['back'] }}">
|
||||
|
||||
|
||||
<div class="modal-header">
|
||||
|
|
@ -39,7 +41,7 @@
|
|||
|
||||
<div class="form-row show-content-full_text" style="display:none ;">
|
||||
<div class="form-group col">
|
||||
<label for="text" class="form-label">{{ __('Full Text') }}</label>
|
||||
<label for="full_text" class="form-label">{{ __('Full Text') }}</label>
|
||||
{{ Form::textarea('full_text', $value->full_text, array('placeholder'=>__('Full Text'), 'class'=>'form-control', 'rows'=>20)) }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -81,16 +83,20 @@
|
|||
</div>
|
||||
<div class="col-12 mt-2 mb-4">
|
||||
<!-- You can add extra form fields here -->
|
||||
<div class="dropzone" id="fileUpload"></div>
|
||||
<div class="dropzone" id="fileUploadContentForm"></div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-row show-field-slug">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">{{ __('Slug') }}</label>
|
||||
<div class="form-group col-sm-10">
|
||||
<label for="slug" class="form-label">{{ __('Slug') }}</label>
|
||||
{{ Form::text('slug', $value->slug, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2">
|
||||
<label for="pos" class="form-label">{{ __('Position') }}</label>
|
||||
{{ Form::text('pos', $value->pos, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -107,24 +113,30 @@
|
|||
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('div[class*="show-content"]').hide();
|
||||
$('.show-content-'+$('select[name="field"]').val()).show();
|
||||
$('#cmsContentForm div[class*="show-content"]').hide();
|
||||
$('#cmsContentForm .show-content-'+$('#cmsContentForm select[name="field"]').val()).show();
|
||||
|
||||
$('select[name="field"]').on('change', function () {
|
||||
$('div[class*="show-content"]').hide();
|
||||
$('.show-content-'+$(this).val()).show();
|
||||
if($(this).val() == 'file' && $('input[name="id"]').val() == 'new'){
|
||||
function cmsContentShowFileFields(){
|
||||
if($('#cmsContentForm select[name="field"]').val() === 'file' && $('#cmsContentForm input[name="id"]').val() === 'new'){
|
||||
$('.show-field-slug').hide();
|
||||
$('.show-field-name').hide();
|
||||
}else{
|
||||
$('.show-field-slug').show();
|
||||
$('.show-field-name').show();
|
||||
}
|
||||
}
|
||||
cmsContentShowFileFields();
|
||||
|
||||
$('#cmsContentForm select[name="field"]').on('change', function () {
|
||||
$('#cmsContentForm div[class*="show-content"]').hide();
|
||||
$('#cmsContentForm .show-content-'+$(this).val()).show();
|
||||
cmsContentShowFileFields();
|
||||
});
|
||||
|
||||
Dropzone.autoDiscover = false;
|
||||
$("#fileUpload").dropzone({
|
||||
$("#fileUploadContentForm").dropzone({
|
||||
url: "{{route('cms_content_all_store')}}",
|
||||
params: {'identifier':'{{ $value->identifier }}','back':'{{$data['back'] }}'},
|
||||
uploadMultiple: false,
|
||||
parallelUploads: 1,
|
||||
maxFilesize: 32,
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12">
|
||||
<label class="form-label" for="feedback_pagetitle">{{ __('META-Titel (optional)') }}</label>
|
||||
|
|
@ -80,7 +79,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>
|
||||
<a href="{{route('cms_feedback')}}" class="btn btn-default">{{ __('back') }}</a>
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@
|
|||
<div class="message-attachment ui-bordered p-2 mr-3 mb-3">
|
||||
<div class="message-attachment-file display-4"><i class="{{$file->getIconExt()}}"></i></div>
|
||||
<div class="media-body ml-3">
|
||||
<strong class="message-attachment-filename">{{$file->filename}}</strong>
|
||||
<strong class="message-attachment-filename">{{$file->original_name}}</strong>
|
||||
<div class="text-muted small">{{$file->formatBytes()}}</div>
|
||||
<div>
|
||||
<a href="{{$file->getURL()}}" target="_blank" class="mail-att-show">Vorschau</a>
|
||||
|
|
|
|||
|
|
@ -154,27 +154,52 @@
|
|||
@endforeach
|
||||
@endif
|
||||
|
||||
@if($security_certificate = \App\Models\CMSContent::getModelBySlug('sicherungsschein-nach-sis651r-pdf'))
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $security_certificate->getURL() }}" class="badge badge-md badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{$security_certificate->name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ $security_certificate->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($security_certificate->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<button data-target="{{ $security_certificate->getURL() }}" data-name="{{ $security_certificate->name }}" 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>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@foreach(\App\Services\Booking::contentFiles() as $content_file)
|
||||
@if($file = \App\Models\CMSContent::getModelBySlug($content_file))
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $file->getURL() }}" class="badge badge-md badge-next">
|
||||
<i class="fa fa-file-pdf mr-1"></i> {{$file->name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ $file->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($file->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<button data-target="{{ $file->getURL() }}" data-name="{{ $file->name }}" 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>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
@foreach($booking->travel_country->getContactLandsModels() as $TravelCountry)
|
||||
@if($TravelCountry->stern_travel_country)
|
||||
@foreach($TravelCountry->stern_travel_country->general_files as $general_files)
|
||||
<tr>
|
||||
<th scope="row">{{$booking_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $general_files->getURL() }}" class="badge badge-md badge-info">
|
||||
<i class="{{$general_files->getIconExt()}} mr-1"></i> {{$general_files->original_name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ $general_files->mine }} | {{ $general_files->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($general_files->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<button data-target="{{ $general_files->getURL() }}" data-name="{{ $general_files->original_name }}" 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>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
@if($booking->booking_files)
|
||||
@foreach($booking->booking_files as $booking_file)
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -130,8 +130,8 @@
|
|||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="message">Nachricht</label>
|
||||
@if($value->show === 'single' || $value->show === 'multi')
|
||||
@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>
|
||||
@if(Auth::user()->isPermission('sua-st-em'))
|
||||
<div class="float-right small">Vorlage unter: <a href="{{route('admin_settings_emails')}}">Einstellungen -> E-Mails / Vorlagen</a></div>
|
||||
@endif
|
||||
@endif
|
||||
<div id="message-editor-toolbar">
|
||||
|
|
@ -175,12 +175,21 @@
|
|||
</div>
|
||||
<div class="collapse col-12" id="collapseModalEmailTemplate">
|
||||
<hr class="mt-0">
|
||||
|
||||
<select class="custom-select" name="filter_email_templates_directory" id="filter_email_templates_directory" style="">
|
||||
<option value="">Alle Verzeichniss</option>
|
||||
@foreach($value->filter_email_templates_directories as $id=>$name)
|
||||
<option value="{{$id}}" >{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
<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>{{__('Vorlage Bezeichnung')}}</th>
|
||||
<th>{{__('Verzeichniss')}}</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -197,23 +206,27 @@
|
|||
<div class="col-sm-6">
|
||||
<label for="send_mail_dir" class="form-label">Ablegen unter:</label>
|
||||
<select class="custom-select" name="dir" id="send_mail_dir">
|
||||
@foreach($value->booking::$customer_mail_dirs as $dir_id=>$customer_mail_dirs)
|
||||
@if($dir_id <= 10)
|
||||
<option value="{{$dir_id}}" @if($value->customer_mail_dir == $dir_id) selected @endif>{{$customer_mail_dirs['name']}}</option>
|
||||
@endif
|
||||
@foreach(\App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
<option value="{{$customer_mail_dir->pos}}" @if($value->customer_mail_dir == $customer_mail_dir->pos) selected @endif>{{$customer_mail_dir->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label for="send_mail_country" class="form-label"> </label>
|
||||
<select class="custom-select" name="travel_country_id" id="send_mail_country">
|
||||
@if($value->booking->travel_country)
|
||||
@foreach($value->booking->travel_country->getCountryLands() as $country_id => $country_name)
|
||||
<option value="0">Nur bei Agentur -> Land</option>
|
||||
<option value="{{$country_id}}" @if($value->customer_mail_country == $country_id) selected @endif>{{$country_name}}</option>
|
||||
<label for="subdir" class="form-label"> </label>
|
||||
{{-- TODO load subdirs by pos id --}}
|
||||
@if(isset($value->booking) && $value->booking->travel_country)
|
||||
@foreach(\App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
@if($customer_mail_dir->pos > 0)
|
||||
<select class="custom-select send_mail_subdir" name="subdir" id="send_mail_subdir_{{$customer_mail_dir->pos}}">
|
||||
<option value="0">keinen Unterordner</option>
|
||||
@foreach($value->booking->travel_country->getMailDirs($customer_mail_dir->pos) as $mail_dir_id)
|
||||
@php ($mail_dir_name = \App\Services\Booking::getCustomerMailName($customer_mail_dir, $mail_dir_id))
|
||||
<option value="{{$mail_dir_id}}" @if($value->customer_mail_subdir == $mail_dir_id) selected @endif>{{$mail_dir_name}}</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
</select>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
|
@ -244,7 +257,7 @@
|
|||
<div class="message-attachment ui-bordered p-2 mr-3 mb-3">
|
||||
<div class="message-attachment-file display-4"><i class="mail-att-icon {{$customer_file->getIconExt()}}"></i></div>
|
||||
<div class="media-body ml-3">
|
||||
<strong class="message-attachment-filename">{{$customer_file->filename}}</strong>
|
||||
<strong class="message-attachment-filename">{{$customer_file->original_name}}</strong>
|
||||
<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>
|
||||
|
|
@ -320,22 +333,25 @@
|
|||
$('#preview-mail-attachment').append(template);
|
||||
}
|
||||
|
||||
function change_dir_country_select(){
|
||||
//agentur
|
||||
if($('#send_mail_dir').val() == 1){
|
||||
|
||||
$('#send_mail_country').prop('disabled', false);
|
||||
}else{
|
||||
$('#send_mail_country').prop('disabled', true);
|
||||
$('#send_mail_country').val(0);
|
||||
}
|
||||
function change_mail_subdir_select(){
|
||||
var $dir_id = $('#send_mail_dir').val();
|
||||
$('.send_mail_subdir').each(function () {
|
||||
var send_mail_subdir = 'send_mail_subdir_' + $dir_id;
|
||||
if($(this).attr('id') === send_mail_subdir){
|
||||
$(this).prop('disabled', false);
|
||||
$(this).show();
|
||||
}else{
|
||||
$(this).prop('disabled', true);
|
||||
$(this).val(0);
|
||||
$(this).hide();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
change_dir_country_select();
|
||||
change_mail_subdir_select();
|
||||
$('#send_mail_dir').on('change', function () {
|
||||
change_dir_country_select();
|
||||
change_mail_subdir_select();
|
||||
});
|
||||
if (!window.Quill) {
|
||||
$('#message-editor,#message-editor-toolbar').remove();
|
||||
|
|
@ -344,6 +360,7 @@
|
|||
Quill.register('modules/placeholder', PlaceholderModule.default(Quill))
|
||||
//$('#message-editor-fallback').remove();
|
||||
var quill = new Quill('#message-editor', {
|
||||
debug: 'error',
|
||||
modules: {
|
||||
toolbar: '#message-editor-toolbar',
|
||||
placeholder: {
|
||||
|
|
@ -400,7 +417,6 @@
|
|||
});
|
||||
|
||||
|
||||
|
||||
var emailTempplateTable = $('#datatables-email-templates').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
|
|
@ -408,10 +424,14 @@
|
|||
"autoWidth": false,
|
||||
ajax: {
|
||||
url: '{!! route( 'email_template_data_table' ) !!}',
|
||||
data: function(d) {
|
||||
d.filter_email_templates_directory = $('select[name=filter_email_templates_directory]').val();
|
||||
}
|
||||
},
|
||||
"columns": [
|
||||
{ data: 'id', width: '8%', searchable: true },
|
||||
{ data: 'subject', name: 'subject', width: '', searchable: true },
|
||||
{ data: 'name', name: 'name', width: '', searchable: true },
|
||||
{ data: 'email_template_dir.name', name: 'email_template_dir.name', width: '25%', orderable: false, searchable: false },
|
||||
{ data: 'action', width: '8%', orderable: false, searchable: false},
|
||||
],
|
||||
"bLengthChange": false,
|
||||
|
|
@ -428,6 +448,10 @@
|
|||
});
|
||||
}
|
||||
});
|
||||
$('#filter_email_templates_directory').on('change', function(){
|
||||
emailTempplateTable.draw();
|
||||
});
|
||||
|
||||
function callback_email_template_data_table(data) {
|
||||
if(data.status === 'success'){
|
||||
$('input#subject').val(data.response.subject + $('input#lead_title_id').val());
|
||||
|
|
|
|||
|
|
@ -110,34 +110,40 @@
|
|||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(isset($show_move_dirs))
|
||||
<hr class="border-light m-0">
|
||||
<div class="px-4 pt-4 pb-2">
|
||||
{!! Form::open(['url' => route('customer_mail_detail', [$customer_mail->id, 'move-mail']), 'class' => 'move-mail-form']) !!}
|
||||
<div class="form-row">
|
||||
<div class="col-sm-6">
|
||||
<label for="customer_mail_dir_{{$customer_mail->id}}" class="form-label">Ablegen unter:</label>
|
||||
<select class="custom-select customer_mail_dir" name="dir" id="customer_mail_dir_{{$customer_mail->id}}">
|
||||
@foreach($customer_mail->booking::$customer_mail_dirs as $dir_id=>$customer_mail_dirs)
|
||||
@if($dir_id <= 10)
|
||||
<option value="{{$dir_id}}" @if($customer_mail->dir == $dir_id) selected @endif>{{$customer_mail_dirs['name']}}</option>
|
||||
@endif
|
||||
<label for="customer_mail_dir" class="form-label">Ablegen unter:</label>
|
||||
<select class="custom-select customer_mail_dir" name="dir" id="customer_mail_dir">
|
||||
@foreach(\App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
<option value="{{$customer_mail_dir->pos}}" @if($customer_mail->dir == $customer_mail_dir->pos) selected @endif>{{$customer_mail_dir->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<button type="submit" class="btn btn-xs btn-default float-right mt-1"><i class="ion ion-ios-redo"></i> verschieben</button>
|
||||
<label for="customer_mail_country_{{$customer_mail->id}}" class="form-label"> </label>
|
||||
<select class="custom-select customer_mail_country" name="travel_country_id" id="customer_mail_country_{{$customer_mail->id}}">
|
||||
@if($customer_mail->booking->travel_country)
|
||||
@foreach($customer_mail->booking->travel_country->getCountryLands() as $country_id => $country_name)
|
||||
<option value="0">Nur bei Agentur -> Land</option>
|
||||
<option value="{{$country_id}}" @if($customer_mail->travel_country_id == $country_id) selected @endif>{{$country_name}}</option>
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
|
||||
<label for="subdir" class="form-label"> </label>
|
||||
{{-- TODO load subdirs by pos id --}}
|
||||
@if($customer_mail->booking->travel_country)
|
||||
@foreach(\App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
@if($customer_mail_dir->pos > 0)
|
||||
<select class="custom-select customer_mail_subdir" name="subdir" id="customer_mail_subdir_{{$customer_mail_dir->pos}}">
|
||||
<option value="0">keinen Unterordner</option>
|
||||
@foreach($customer_mail->booking->travel_country->getMailDirs($customer_mail_dir->pos) as $mail_dir_id)
|
||||
@php ($mail_dir_name = \App\Services\Booking::getCustomerMailName($customer_mail_dir, $mail_dir_id))
|
||||
<option value="{{$mail_dir_id}}" @if($customer_mail->subdir == $mail_dir_id) selected @endif>{{$mail_dir_name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
@include('customer.mail.modal-show-mail-inner', ['customer_mail' => $customer_mail])
|
||||
@include('customer.mail.modal-show-mail-inner', ['customer_mail' => $customer_mail, 'show_move_dirs' => true])
|
||||
|
||||
@if($customer_mail->customer_mail)
|
||||
@include('customer.mail.modal-show-mail-inner', ['customer_mail' => $customer_mail->customer_mail])
|
||||
|
|
@ -21,26 +21,33 @@
|
|||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
function change_dir_country_select(_form){
|
||||
if(_form.find('.customer_mail_dir').val() == 1){
|
||||
_form.find('.customer_mail_country').prop('disabled', false);
|
||||
}else{
|
||||
_form.find('.customer_mail_country').prop('disabled', true);
|
||||
_form.find('.customer_mail_country').val(0);
|
||||
}
|
||||
function change_mail_subdir_select(_form){
|
||||
|
||||
var $dir_id = _form.find('#customer_mail_dir').val();
|
||||
$('.customer_mail_subdir').each(function () {
|
||||
var customer_mail_subdir = 'customer_mail_subdir_' + $dir_id;
|
||||
if($(this).attr('id') === customer_mail_subdir){
|
||||
$(this).prop('disabled', false);
|
||||
$(this).show();
|
||||
}else{
|
||||
$(this).prop('disabled', true);
|
||||
$(this).val(0);
|
||||
$(this).hide();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('form.move-mail-form').each(function () {
|
||||
var _form = $(this);
|
||||
$(this).find('.customer_mail_dir').on('change', function () {
|
||||
change_dir_country_select(_form);
|
||||
change_mail_subdir_select(_form);
|
||||
_form.find('.btn-default').removeClass('btn-default').addClass('btn-primary');
|
||||
});
|
||||
$(this).find('.customer_mail_country').on('change', function () {
|
||||
$(this).find('.customer_mail_subdir').on('change', function () {
|
||||
_form.find('.btn-default').removeClass('btn-default').addClass('btn-primary');
|
||||
});
|
||||
change_dir_country_select(_form);
|
||||
change_mail_subdir_select(_form);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -7,15 +7,15 @@
|
|||
<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-top-drafts">Übersicht</a>
|
||||
<a class="nav-link @if(!$step) active show @endif" data-toggle="tab" href="#navs-top-drafts">Übersicht</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if($step == 'type') active show @endif" data-toggle="tab" href="#navs-top-draft_types">Typen</a>
|
||||
<a class="nav-link @if($step === 'type') active show @endif" data-toggle="tab" href="#navs-top-draft_types">Typen</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane fade @if($step == false) active show @endif" id="navs-top-drafts">
|
||||
<div class="tab-pane fade @if(!$step) active show @endif" id="navs-top-drafts">
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-drafts table table-striped table-bordered">
|
||||
|
|
@ -71,9 +71,8 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step == 'type') active show @endif" id="navs-top-draft_types">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="tab-pane fade @if($step === 'type') active show @endif" id="navs-top-draft_types">
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-types table table-striped table-bordered">
|
||||
<thead>
|
||||
|
|
@ -122,7 +121,7 @@
|
|||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 text-left">
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
|
||||
data-id="new"
|
||||
data-name=""
|
||||
|
|
@ -179,7 +178,6 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
|
@ -213,7 +211,6 @@
|
|||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@
|
|||
@yield('styles')
|
||||
|
||||
<!-- Application stylesheets -->
|
||||
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=7{{ get_file_last_time('js/application.css') }}">
|
||||
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=9{{ 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') }}" />
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
|
||||
<!-- Application javascripts -->
|
||||
<script src="{{ mix('/js/application.js') }}"></script>
|
||||
<script src="{{ asset('/js/custom.js?v=7') }}{{ get_file_last_time('/js/custom.js') }}"></script>
|
||||
<script src="{{ asset('/js/custom.js?v=9') }}{{ get_file_last_time('/js/custom.js') }}"></script>
|
||||
|
||||
|
||||
@include('asset.js')
|
||||
|
|
@ -229,8 +229,6 @@
|
|||
|
||||
$(document).ready(function() {
|
||||
|
||||
|
||||
|
||||
$('.summernote').summernote({
|
||||
height: 300,
|
||||
tabsize: 2,
|
||||
|
|
|
|||
|
|
@ -214,9 +214,9 @@
|
|||
<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-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>
|
||||
@if(Auth::user()->isPermission('sua-st-em'))
|
||||
<li class="sidenav-item{{ Request::is('admin/settings/emails') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_settings_emails') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-mail"></i><div>{{ __('E-Mails') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
@if(Auth::user()->isPermission('sua-st-ke'))
|
||||
|
|
@ -284,48 +284,11 @@
|
|||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
@if(Auth::user()->isPermission('sua-ur-rt'))
|
||||
<li class="sidenav-item{{ Request::is('admin/users') ? ' active' : '' }} {{ Request::is('admin/user/edit/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-ribbon"></i><div>{{ __('User Rechte') }}</div></a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
|
||||
{{--
|
||||
<li class="sidenav-item @if(Request::is('iq/tools/content/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"><i class="sidenav-icon ion ion-md-apps"></i>
|
||||
<div>Tools</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item">
|
||||
<a target="_blank" href="{{route('iq_tools_content_links')}}" class="sidenav-link">
|
||||
<div>Tree from HTML</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
--}}
|
||||
|
||||
|
||||
{{-- <li class="sidenav-item{{ Request::is('admin/translate/*') ? ' open' : '' }}">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-browsers"></i>
|
||||
<div>Inhalte</div>
|
||||
</a>
|
||||
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('admin/translate/file/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_translate_file') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-browsers"></i><div>{{ __('Vorlagen') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('admin/translate/all/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_translate_all') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-browsers"></i><div>{{ __('Allgemein') }}</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
--}}
|
||||
|
||||
|
||||
@endif
|
||||
|
||||
@if(Auth::user()->isSySAdmin())
|
||||
|
|
|
|||
|
|
@ -1,15 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<base href="{{ url('/') }}">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title></title>
|
||||
{!! Html::style('css/stern_fewo_pdf.css') !!}
|
||||
<style>
|
||||
{!! \App\Services\Util::getURLasContent(asset('/css/stern_fewo_pdf.css')) !!}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="logo_box">
|
||||
<img src="{{asset('images/stern-tours-logo.png')}}">
|
||||
<img src="{{\App\Services\Util::getURLasContent(asset('/images/stern-tours-logo.png'), true)}}" alt="STERNTOURS">
|
||||
</div>
|
||||
|
||||
|
||||
@yield('content')
|
||||
|
||||
<div id="footer_box">
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@
|
|||
<th>{{__('Anreise')}}</th>
|
||||
<th>{{__('Abreise')}}</th>
|
||||
<th>{{__('U.')}}</th>
|
||||
<th>{{__('L.')}}</th>
|
||||
<th>{{__('Sachbearbeiter')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('E-Mail')}}</th>
|
||||
|
|
@ -266,6 +267,7 @@
|
|||
{ data: 'start_date', name: 'start_date' },
|
||||
{ data: 'end_date', name: 'end_date' },
|
||||
{ data: 'travel_documents', name: 'travel_documents', orderable: false },
|
||||
{ data: 'booking_country_services', name: 'booking_country_services', orderable: false },
|
||||
{ data: 'sf_guard_user_id', name: 'sf_guard_user_id', orderable: false },
|
||||
{ data: 'lead.status_id', name: 'lead.status_id', orderable: false },
|
||||
{ data: 'last_customer_email', name: 'last_customer_email', orderable: true },
|
||||
|
|
@ -302,7 +304,7 @@
|
|||
}
|
||||
} );
|
||||
} );*/
|
||||
this.api().columns(11).every( function () {
|
||||
this.api().columns(13).every( function () {
|
||||
var column = this;
|
||||
var title = $(column.header()).html();
|
||||
var select = $('<select class="selectpicker"><option value="">'+title+'</option></select>')
|
||||
|
|
@ -344,6 +346,21 @@
|
|||
drawCallback: function () {
|
||||
//console.log($('#travel_option_agenda_id').prop('disabled'));
|
||||
//only when is disabled, refesh list is load by other filter.
|
||||
|
||||
$('#datatables-requests [rel="tooltip"]').tooltip({trigger: "hover"});
|
||||
$('#datatables-requests [data-toggle="popover"]').popover({trigger: "hover", content: get_popover_content, html: true,});
|
||||
|
||||
/* $('#datatables-requests [data-toggle="popover"]').hover(function() {
|
||||
var e = $(this);
|
||||
e.off('hover');
|
||||
console.log(e.data('booking_id'))
|
||||
e.popover({content: "test"}).popover('show');
|
||||
/*$.get(e.data('load_id'),function(d) {
|
||||
e.popover({content: d}).popover('show');
|
||||
});
|
||||
});*/
|
||||
|
||||
|
||||
if($('#travel_option_agenda_id').prop('disabled')) {
|
||||
var data = table.ajax.params();
|
||||
//console.log(data);
|
||||
|
|
@ -381,6 +398,41 @@
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
function get_popover_content() {
|
||||
|
||||
|
||||
|
||||
if ($(this).data('booking_id')) {
|
||||
var data = {};
|
||||
data['action'] = 'get_popover_booking_services';
|
||||
data['booking_id'] = $(this).data('booking_id');
|
||||
$(this).addClass("loading");
|
||||
var icontent = $.ajax({
|
||||
url: '{!! route( 'data_ajax_requests' ) !!}',
|
||||
data: data,
|
||||
type: "POST",
|
||||
dataType: "html",
|
||||
cache: false,
|
||||
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
encode: true,
|
||||
async: false,
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function() {
|
||||
// just get the response
|
||||
},
|
||||
error: function() {
|
||||
// nothing
|
||||
}
|
||||
}).responseText;
|
||||
$(this).removeClass("loading");
|
||||
return icontent;
|
||||
}
|
||||
return "Keine Buchungs-ID";
|
||||
}
|
||||
|
||||
function clearTravelOptionAgenda(){
|
||||
$('#travel_option_agenda_id').empty().prop('disabled', true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,64 +0,0 @@
|
|||
@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;"> </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') }}"> 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
|
||||
619
resources/views/settings/emails/index.blade.php
Executable file
619
resources/views/settings/emails/index.blade.php
Executable file
|
|
@ -0,0 +1,619 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-3 mb-1">
|
||||
E-Mail Vorlagen
|
||||
</h4>
|
||||
|
||||
<div class="nav-tabs-top mb-4">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if(!$step) active show @endif" data-toggle="tab" href="#navs-top-drafts">Vorlagen</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if($step === 'directories') active show @endif" data-toggle="tab" href="#navs-top-directories">Verzeichnisse</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if($step === 'settings') active show @endif" data-toggle="tab" href="#navs-top-settings">Einstellungen</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane fade @if(!$step) active show @endif" id="navs-top-drafts">
|
||||
<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;"> </th>
|
||||
<th>{{__('Vorlage Bezeichnung')}}</th>
|
||||
<th>{{__('Verzeichniss')}}</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 icon-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_emails_load') }}"><span class="fa fa-edit"></span></button>
|
||||
</td>
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>@if($value->email_template_dir)
|
||||
<span class="badge badge-default" style="background-color: {{$value->email_template_dir->color}}">{{ $value->email_template_dir->name }}</span>
|
||||
@else
|
||||
|
||||
@endif
|
||||
</td>
|
||||
<td data-sort="{{ $value->active }}">{!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!}</td>
|
||||
<td><a class="text-danger" href="{{ route('admin_settings_emails_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_emails_load') }}"> 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>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step === 'directories') active show @endif" id="navs-top-directories">
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatables-types table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('POS')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Farbe')}}</th>
|
||||
<th>{{__('sichtbar')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($email_template_dirs as $value)
|
||||
<tr>
|
||||
<td>
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
|
||||
data-id="{{ $value->id }}"
|
||||
data-name="{{ $value->name }}"
|
||||
data-color="{{ $value->color }}"
|
||||
data-active="{{ $value->active }}"
|
||||
data-pos="{{ $value->pos }}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $value->pos }}</td>
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>@if($value->color)
|
||||
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: {{$value->color}}"></div>
|
||||
{{ $value->color }}
|
||||
@else
|
||||
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: #fff"></div>
|
||||
@endif
|
||||
</td>
|
||||
<td data-sort="{{ $value->active }}">
|
||||
@if($value->active)
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>
|
||||
@else
|
||||
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
|
||||
@endif
|
||||
</td>
|
||||
<td><a class="text-danger" href="{{ route('draft_type_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
|
||||
data-id="new"
|
||||
data-name=""
|
||||
data-active="1"
|
||||
data-pos="0"
|
||||
>Neues Verzeichniss anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modals-type">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('admin_settings_emails_update') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" class="form-control" name="id">
|
||||
<input type="hidden" class="form-control" name="action" value="email_template_dir">
|
||||
<input type="hidden" class="form-control" name="step" value="directories">
|
||||
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Verzeichniss <span class="font-weight-light">anlegen/bearbeiten</span></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">Name*</label>
|
||||
<input type="text" class="form-control" name="name" placeholder="{{__('Description')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="pos" class="form-label">POS*</label>
|
||||
<input type="text" class="form-control" name="pos" placeholder="{{__('Position')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">Farbe*</label>
|
||||
<input type="text" name="color" id="minicolors-hue" class="form-control" value="#fff">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox m-0">
|
||||
<input type="checkbox" class="custom-control-input" name="active" checked>
|
||||
<span class="custom-control-label">{{__('sichtbar')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
|
||||
$('#minicolors-hue').minicolors({
|
||||
control: 'hue',
|
||||
position: 'bottom ' + 'left',
|
||||
});
|
||||
|
||||
$('#modals-type').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
$(this).find(".modal-content input[name='id']").val(button.data('id'));
|
||||
$(this).find(".modal-body input[name='name']").val(button.data('name'));
|
||||
$(this).find(".modal-body input[name='pos']").val(button.data('pos'));
|
||||
color = '#fff';
|
||||
if(button.data('color') != ""){
|
||||
color = button.data('color');
|
||||
}
|
||||
$('#minicolors-hue').minicolors('value', color);
|
||||
|
||||
// $('.selectpicker').selectpicker('refresh');
|
||||
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
|
||||
});
|
||||
|
||||
$('.datatables-types').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step === 'settings') active show @endif" id="navs-top-settings">
|
||||
<div class="card">
|
||||
<h4 class="mt-4 mb-2 ml-4">Ordner für Buchungen/E-Mail Ablage</h4>
|
||||
<p class="ml-4">Unterordner werden für das jeweilige Reiseland der Buchung unter <a href="{{route('admin_settings_travel_country')}}">Reiseländer</a> -> Land / E-Mails zugewiesen </p>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-customer-mail-dirs table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('ID')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Icon')}}</th>
|
||||
<th>{{__('Model')}}</th>
|
||||
<th>{{__('E-Mails')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php($next_customer_mail_dir_id = 0)
|
||||
@foreach($customer_mail_dirs as $customer_mail_dir)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-customer-mail-dirs"
|
||||
data-id="{{$customer_mail_dir->id}}"
|
||||
data-icon="{{$customer_mail_dir->getArrayContent('icon')}}"
|
||||
data-model="{{$customer_mail_dir->getArrayContent('model')}}"
|
||||
data-emails="{{\App\Services\Util::_implodeLines($customer_mail_dir->getArrayContent('emails'))}}"
|
||||
data-name="{{$customer_mail_dir->name}}"
|
||||
data-pos="{{$customer_mail_dir->pos}}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $customer_mail_dir->pos }}</td>
|
||||
<td>{{ $customer_mail_dir->name }}</td>
|
||||
<td>{{ $customer_mail_dir->getArrayContent('icon') }}</td>
|
||||
<td>{{ $customer_mail_dir->getArrayContent('model') }}</td>
|
||||
<td>
|
||||
{!! \App\Services\Util::_implodeLines( $customer_mail_dir->getArrayContent('emails'), "<br>") !!}
|
||||
</td>
|
||||
{{-- <td><a class="text-danger" href="" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td> --}}
|
||||
</tr>
|
||||
@php($next_customer_mail_dir_id = $customer_mail_dir->pos+1)
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-customer-mail-dirs"
|
||||
data-id="new"
|
||||
data-icon=""
|
||||
data-model=""
|
||||
data-emails=""
|
||||
data-name=""
|
||||
data-pos="{{$next_customer_mail_dir_id}}"
|
||||
>Neuen Ordner anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modals-customer-mail-dirs">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('admin_settings_emails_update') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" class="form-control" name="id">
|
||||
<input type="hidden" class="form-control" name="action" value="customer_mail_dirs">
|
||||
<input type="hidden" class="form-control" name="step" value="settings">
|
||||
<input type="hidden" class="form-control" name="identifier" value="customer-mail-dirs">
|
||||
<input type="hidden" class="form-control" name="field" value="array">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">E-Mail Ordner <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="pos" class="form-label">ID*</label>
|
||||
<input type="text" class="form-control" name="pos" placeholder="{{__('ID')}}" required>
|
||||
<em>Die ID definiert die Zuweisung der E-Mails in die jeweiligen Ordner, bei Änderungen der ID können schon zugeordnete E-Mails nicht mehr angezeigt werden.</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">Name*</label>
|
||||
<input type="text" class="form-control" name="name" placeholder="{{__('Description')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="icon" class="form-label">Icon*</label>
|
||||
<input type="text" class="form-control" name="icon" placeholder="{{__('Icon')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="model" class="form-label">Model <span class="text-muted">(wird benötigt um Unterordner unter Reiseländer zuzuweisen)</span></label>
|
||||
<input type="text" class="form-control" name="model" placeholder="{{__('Model')}}">
|
||||
<em>Das Model das muss vorab in der Programmierung erfasst werden.</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label class="form-label" for="emails">Für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
|
||||
<textarea class="form-control" rows="4" name="emails" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<h4 class="mt-2 mb-0 ml-4">Allgemeine PDF Dateien für Buchungen/E-Mail-Anhänge</h4>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-booking-email-files table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('POS')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Slug')}}</th>
|
||||
<th>{{__('Inhalt')}}</th>
|
||||
<th>{{__('Type')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($booking_email_files as $value)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{ $value->id }}"
|
||||
data-pos="{{ $value->pos }}"
|
||||
data-identifier="{{$identifier_booking_file}}"
|
||||
data-model="content"
|
||||
data-back="{{route('admin_settings_emails', ['settings'])}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $value->pos }}</td>
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>{{ $value->slug }}</td>
|
||||
<td>@if($value->isFile()) {!! $value->getPreviewContent() !!} @else {{ $value->getPreviewContent() }} @endif</td>
|
||||
<td>{{ $value->getFieldName() }}</td>
|
||||
<td><a class="text-danger" href="{{ route('cms_content_all_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-identifier="{{$identifier_booking_file}}"
|
||||
data-field="file"
|
||||
data-model="content"
|
||||
data-back="{{route('admin_settings_emails', ['settings'])}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}"
|
||||
>Neue Datei anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr><hr>
|
||||
|
||||
<!-- FEWO -->
|
||||
<h4 class="mt-4 mb-2 ml-4">Ordner für FeWo/E-Mail Ablage</h4>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-customer-fewo-mail-dirs table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('ID')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Icon')}}</th>
|
||||
<th>{{__('Model')}}</th>
|
||||
<th>{{__('E-Mails')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@php($next_customer_fewo_mail_dir_id = 0)
|
||||
@foreach($customer_fewo_mail_dirs as $customer_fewo_mail_dir)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-customer-fewo-mail-dirs"
|
||||
data-id="{{$customer_fewo_mail_dir->id}}"
|
||||
data-icon="{{$customer_fewo_mail_dir->getArrayContent('icon')}}"
|
||||
data-model="{{$customer_fewo_mail_dir->getArrayContent('model')}}"
|
||||
data-emails="{{\App\Services\Util::_implodeLines($customer_fewo_mail_dir->getArrayContent('emails'))}}"
|
||||
data-name="{{$customer_fewo_mail_dir->name}}"
|
||||
data-pos="{{$customer_fewo_mail_dir->pos}}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $customer_fewo_mail_dir->pos }}</td>
|
||||
<td>{{ $customer_fewo_mail_dir->name }}</td>
|
||||
<td>{{ $customer_fewo_mail_dir->getArrayContent('icon') }}</td>
|
||||
<td>{{ $customer_fewo_mail_dir->getArrayContent('model') }}</td>
|
||||
<td>
|
||||
{!! \App\Services\Util::_implodeLines( $customer_fewo_mail_dir->getArrayContent('emails'), "<br>") !!}
|
||||
</td>
|
||||
{{-- <td><a class="text-danger" href="" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td> --}}
|
||||
</tr>
|
||||
@php($next_customer_fewo_mail_dir_id = $customer_fewo_mail_dir->pos+1)
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-customer-fewo-mail-dirs"
|
||||
data-id="new"
|
||||
data-icon=""
|
||||
data-model=""
|
||||
data-emails=""
|
||||
data-name=""
|
||||
data-pos="{{$next_customer_fewo_mail_dir_id}}"
|
||||
>Neuen Ordner anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modals-customer-fewo-mail-dirs">
|
||||
<div class="modal-dialog">
|
||||
<form class="modal-content" action="{{ route('admin_settings_emails_update') }}" method="post">
|
||||
@csrf
|
||||
<input type="hidden" class="form-control" name="id">
|
||||
<input type="hidden" class="form-control" name="action" value="customer_mail_dirs">
|
||||
<input type="hidden" class="form-control" name="step" value="settings">
|
||||
<input type="hidden" class="form-control" name="identifier" value="customer-fewo-mail-dirs">
|
||||
<input type="hidden" class="form-control" name="field" value="array">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">E-Mail Ordner <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="pos" class="form-label">ID*</label>
|
||||
<input type="text" class="form-control" name="pos" placeholder="{{__('ID')}}" required>
|
||||
<em>Die ID definiert die Zuweisung der E-Mails in die jeweiligen Ordner, bei Änderungen der ID können schon zugeordnete E-Mails nicht mehr angezeigt werden.</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="name" class="form-label">Name*</label>
|
||||
<input type="text" class="form-control" name="name" placeholder="{{__('Description')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="icon" class="form-label">Icon*</label>
|
||||
<input type="text" class="form-control" name="icon" placeholder="{{__('Icon')}}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="model" class="form-label">Model <span class="text-muted">(wird benötigt um Unterordner unter Reiseländer zuzuweisen)</span></label>
|
||||
<input type="text" class="form-control" name="model" placeholder="{{__('Model')}}">
|
||||
<em>Das Model das muss vorab in der Programmierung erfasst werden.</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label class="form-label" for="emails">Für interene Mails <span class="text-muted">(jede E-Mail in eine extra Zeile)</span></label>
|
||||
<textarea class="form-control" rows="4" name="emails" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('save')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<h4 class="mt-2 mb-0 ml-4">Allgemeine PDF Dateien für FeWo/E-Mail-Anhänge</h4>
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
<table class="datatables-fewo-email-files table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="max-width: 60px;"> </th>
|
||||
<th style="width: 2%;">{{__('POS')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Slug')}}</th>
|
||||
<th>{{__('Inhalt')}}</th>
|
||||
<th>{{__('Type')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($fewo_email_files as $value)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{ $value->id }}"
|
||||
data-pos="{{ $value->pos }}"
|
||||
data-identifier="{{$identifier_fewo_file}}"
|
||||
data-model="content"
|
||||
data-back="{{route('admin_settings_emails', ['settings'])}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}">
|
||||
<span class="fa fa-edit"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td>{{ $value->pos }}</td>
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>{{ $value->slug }}</td>
|
||||
<td>@if($value->isFile()) {!! $value->getPreviewContent() !!} @else {{ $value->getPreviewContent() }} @endif</td>
|
||||
<td>{{ $value->getFieldName() }}</td>
|
||||
<td><a class="text-danger" href="{{ route('cms_content_all_delete', [$value->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="mt-4 ml-3 text-left">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-identifier="{{$identifier_fewo_file}}"
|
||||
data-field="file"
|
||||
data-model="content"
|
||||
data-back="{{route('admin_settings_emails', ['settings'])}}"
|
||||
data-route="{{ route('cms_content_all_load_modal') }}"
|
||||
>Neue Datei anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('.datatables-booking-email-files').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('.datatables-customer-mail-dirs').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "asc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('.datatables-customer-fewo-mail-dirs').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "asc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('.datatables-fewo-email-files').dataTable({
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "desc" ]],
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
|
||||
$('#modals-customer-mail-dirs').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
$(this).find(".modal-content input[name='id']").val(button.data('id'));
|
||||
$(this).find(".modal-body input[name='name']").val(button.data('name'));
|
||||
$(this).find(".modal-body input[name='pos']").val(button.data('pos'));
|
||||
$(this).find(".modal-body input[name='icon']").val(button.data('icon'));
|
||||
$(this).find(".modal-body input[name='model']").val(button.data('model'));
|
||||
$(this).find(".modal-body textarea[name='emails']").val(button.data('emails'));
|
||||
});
|
||||
|
||||
$('#modals-customer-fewo-mail-dirs').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget);
|
||||
$(this).find(".modal-content input[name='id']").val(button.data('id'));
|
||||
$(this).find(".modal-body input[name='name']").val(button.data('name'));
|
||||
$(this).find(".modal-body input[name='pos']").val(button.data('pos'));
|
||||
$(this).find(".modal-body input[name='icon']").val(button.data('icon'));
|
||||
$(this).find(".modal-body input[name='model']").val(button.data('model'));
|
||||
$(this).find(".modal-body textarea[name='emails']").val(button.data('emails'));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -1,14 +1,36 @@
|
|||
{!! Form::open([ 'url' => route('admin_settings_email_template_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
|
||||
{!! Form::open([ 'url' => route('admin_settings_emails_update'), 'method' => 'post', 'class' => 'modal-content' ]) !!}
|
||||
{{ Form::hidden('action', 'email_template') }}
|
||||
{{ Form::hidden('step', false) }}
|
||||
{{ 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">
|
||||
<label class="form-label" for="filter_service_provider_id">Verzeichniss</label>
|
||||
<select class="custom-select" name="email_template_dir_id" id="email_template_dir_id">
|
||||
<option value="">Kein Verzeichniss</option>
|
||||
@foreach($directories as $directory)
|
||||
<option value="{{$directory->id}}" @if($value->email_template_dir_id === $directory->id) selected @endif>{{$directory->name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
<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)) }}
|
||||
<label for="name" class="form-label">Vorlage Bezeichnung*</label>
|
||||
{{ Form::text('name', $value->name, array('class'=>'form-control', 'required'=>true)) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
|
|
@ -45,7 +45,6 @@
|
|||
data-name=""
|
||||
data-active="1"
|
||||
data-travelcountry_id="0"
|
||||
|
||||
>Neues Reiseprogramm anlegen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,14 +16,22 @@
|
|||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<a class="nav-link @if($step === 'emails') active show @endif" data-toggle="tab" href="#navs-emails">E-Mails</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if($step === 'data') active show @endif" data-toggle="tab" href="#navs-data">PDF-Dateien</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link @if($step === 'services') active show @endif" data-toggle="tab" href="#navs-services">Leistungen</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>
|
||||
|
||||
|
|
@ -31,6 +39,12 @@
|
|||
<div class="tab-content">
|
||||
<div class="tab-pane fade @if($step == false) active show @endif" id="navs-site">
|
||||
<div class="card-body">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<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>
|
||||
<br>
|
||||
<h4>Inhalte für Seite</h4>
|
||||
<div class="form-row">
|
||||
|
|
@ -83,7 +97,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step == 'form') active show @endif" id="navs-form">
|
||||
<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>
|
||||
|
|
@ -102,27 +116,20 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step == 'contact') active show @endif" id="navs-contact">
|
||||
<div class="tab-pane fade @if($step === 'contact') active show @endif" id="navs-contact">
|
||||
<div class="card-body">
|
||||
<h4>Land/Länder für Kontaktdaten definieren</h4>
|
||||
<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>
|
||||
<em>Das Land selbst muss auch hier selbst aufgeführt werden, wenn es angezeicht werden soll. Die Kontaktdaten der definierten Länder (Reiselandes) werden nacheinander am Ende des PDF's (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>
|
||||
<h4>Kontaktdaten im PDF</h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="contact_headline">Überschrift</label>
|
||||
|
|
@ -147,7 +154,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<h4>Rückfragen PDF</h4>
|
||||
<h4>Rückfragen im 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>
|
||||
|
|
@ -164,7 +171,161 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step == 'travel') active show @endif" id="navs-travel">
|
||||
<div class="tab-pane fade @if($step === 'emails') active show @endif" id="navs-emails">
|
||||
<div class="card-body">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="mail_dir_name">Angezeigter Ordnername für dieses Land*</label>
|
||||
{{ Form::text('mail_dir_name', $model->mail_dir_name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name')) }}
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<h4>Vordefinierte E-Mail-Adressen <span class="text-muted">für dieses Reiseland</span></h4>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<div class="form-group col-sm-">
|
||||
<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>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<h4>Unterordner für die E-Mail Ablage für dieses Land</h4>
|
||||
<p>Unterordner können unter <a href="{{route('admin_settings_emails', ['settings'])}}">Einstellungen -> E-Mails / Einstellungen</a> bearbeitet werden</p>
|
||||
<hr>
|
||||
@foreach(App\Services\Booking::getCustomerMailDirs() as $customer_mail_dir)
|
||||
@if($customer_mail_dir->getArrayContent('model'))
|
||||
<h5><i class="ion {{$customer_mail_dir->getArrayContent('icon')}}"></i> {{$customer_mail_dir->name}} <span class="text-muted">angezeigte E-Mail-Ordner</span></h5>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="mail_dirs">Unterordner hinzufügen</label>
|
||||
<select class="selectpicker" data-style="btn-default" name="mail_dirs[{{$customer_mail_dir->pos}}][]" multiple data-live-search="true">
|
||||
{!! HTMLHelper::getCustomerMailDirsOptions($customer_mail_dir, $model->getMailDirs($customer_mail_dir->pos)) !!}
|
||||
</select>
|
||||
<em>Zum jeweiligen Reiseland können hier weitere Unterordner für die E-Mail-Ablage ausgewählt werden.
|
||||
Die vordefinierten E-Mail-Adressen des Reiselandes werden bei einer neuen E-Mail entsprechend einsetzt.</em>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
@endif
|
||||
@endforeach
|
||||
<button type="submit" name="action" value="emails" class="btn btn-submit">{{ __('save changes') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step === 'data') active show @endif" id="navs-data">
|
||||
<div class="card-body">
|
||||
<br>
|
||||
<h4>PDF-Dateien <span class="text-muted">für dieses Reiseland</span></h4>
|
||||
<div class="table-responsive" id="booking_files_table">
|
||||
<table class="table table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Datei</th>
|
||||
<th>Inhalt</th>
|
||||
<th>Datum</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if($model->general_files)
|
||||
@php($general_files_count = 1)
|
||||
@foreach($model->general_files as $general_file)
|
||||
<tr>
|
||||
<th scope="row">{{$general_files_count++}}</th>
|
||||
<td>
|
||||
<a target="_blank" href="{{ $general_file->getURL() }}" class="badge badge-md badge-secondary">
|
||||
<i class="{{$general_file->getIconExt()}} mr-1"></i> {{$general_file->original_name}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ $general_file->mine }} | {{ $general_file->formatBytes() }}
|
||||
</td>
|
||||
<td>{{\App\Services\Util::_format_date($general_file->created_at, 'date')}}</td>
|
||||
<td>
|
||||
<a href="{{ $general_file->getURL('download') }}" class="btn btn-xs btn-default"
|
||||
title="Download" data-placement="left" rel="tooltip">
|
||||
<i class="fa fa-download"></i>
|
||||
</a>
|
||||
<a class="ml-2 btn btn-xs btn-danger" href="{{ route('admin_settings_travel_country_delete', [$general_file->id, 'general_file']) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="text-right d-block w-100">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{$model->id}}"
|
||||
data-model="GeneralFile"
|
||||
data-action="modal-upload-travel_country-file"
|
||||
data-back="{{route('admin_settings_travel_country_detail', [$model->id, 'data'])}}"
|
||||
data-url="{{ route('modal_load') }}"
|
||||
data-route="{{ route('modal_load') }}"><i class="ion ion-md-cloud-upload"></i> Datei hinzufügen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step === 'services') active show @endif" id="navs-services">
|
||||
<div class="card-body">
|
||||
<br>
|
||||
<h4>Länderleistungen/Agenturleistungen <span class="text-muted">für dieses Reiseland</span></h4>
|
||||
<div class="table-responsive" id="booking_files_table">
|
||||
<table class="table table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 2%;"> </th>
|
||||
<th style="width: 6%;">{{__('POS')}}</th>
|
||||
<th>Leistung</th>
|
||||
<th>Beschreibung</th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if($model->travel_country_services)
|
||||
@foreach($model->travel_country_services as $travel_country_service)
|
||||
<tr>
|
||||
<td class="not">
|
||||
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{$travel_country_service->id}}"
|
||||
data-model="TravelCountryService"
|
||||
data-action="modal-travel_country-services"
|
||||
data-back="{{route('admin_settings_travel_country_detail', [$model->id, 'services'])}}"
|
||||
data-url="{{ route('admin_settings_travel_country_update', [$model->id]) }}"
|
||||
data-route="{{ route('modal_load') }}"><span class="fa fa-edit"></span></button>
|
||||
</td>
|
||||
<td>{{$travel_country_service->pos }}</td>
|
||||
<td>{{$travel_country_service->name}}</td>
|
||||
<td>{{$travel_country_service->description}}</td>
|
||||
<td>
|
||||
<a class="ml-2 btn btn-xs btn-danger" href="{{ route('admin_settings_travel_country_delete', [$travel_country_service->id, 'country_service']) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="text-right d-block w-100">
|
||||
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="new"
|
||||
data-model="TravelCountryService"
|
||||
data-action="modal-travel_country-services"
|
||||
data-back="{{route('admin_settings_travel_country_detail', [$model->id, 'services'])}}"
|
||||
data-url="{{ route('admin_settings_travel_country_update', [$model->id]) }}"
|
||||
data-route="{{ route('modal_load') }}"><i class="ion ion-md-add-circle"></i> Leistung hinzufügen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade @if($step === 'travel') active show @endif" id="navs-travel">
|
||||
<div class="card-body">
|
||||
<br>
|
||||
<h4>Einreisebestimmungen</h4>
|
||||
|
|
@ -175,22 +336,16 @@
|
|||
{{ 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>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-left mt-3">
|
||||
<a href="{{route('admin_settings_travel_country')}}" class="btn btn-default">{{ __('back') }}</a>
|
||||
</div>
|
||||
|
||||
{!! Form::close() !!}
|
||||
|
||||
<script>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue