Mail and Booking

This commit is contained in:
Kevin Adametz 2020-04-15 12:11:42 +02:00
parent 62e84637b6
commit 5daea268f7
250 changed files with 5377 additions and 1473 deletions

32
.env
View file

@ -2,40 +2,30 @@ APP_NAME="STERN TOURS CRM"
APP_ENV=local
APP_KEY=base64:cxq+xNckU1xLwp8V9Bfj9+nOK5iZL6urcZ1EBO8usXg=
APP_DEBUG=true
APP_URL=http://mein.sterntours.local
APP_OLD_URL=https://cms-stern-tours.local
APP_URL=http://mein.sterntours.test
APP_OLD_URL=https://cms-stern-tours.test
#APP_URL_V2=https://v2.stern-tours.de
APP_URL_V2=http://v2-sterntours.local
APP_URL_V2=http://v2-sterntours.test
#APP_URL_STERN=https://www.sterntours.de
APP_URL_STERN=http://sterntours.local
APP_URL_STERN=http://sterntours.test
LOG_CHANNEL=stack
#DB_CONNECTION=mysql
#DB_HOST=localhost
#DB_PORT=3306
#DB_DATABASE=cmssso_db1
#DB_USERNAME=root
#DB_PASSWORD=KT32vQ7
# on neptune
DB_CONNECTION=mysql
DB_HOST=localhost
DB_HOST=192.168.1.8
DB_PORT=3306
DB_DATABASE=cmssso_db1
DB_USERNAME=root
DB_PASSWORD=KT32vQ7
DB_USERNAME=kadmin
DB_PASSWORD=KT32vQ7ix
DB_CONNECTION_STERN=mysql
DB_HOST_STERN=localhost
DB_HOST_STERN=192.168.1.8
DB_PORT_STERN=3306
DB_DATABASE_STERN=sterntours
DB_USERNAME_STERN=root
DB_PASSWORD_STERN=KT32vQ7
DB_DATABASE_STERN=relaunch1
DB_USERNAME_STERN=kadmin
DB_PASSWORD_STERN=KT32vQ7ix
BROADCAST_DRIVER=log

2
.idea/.name generated
View file

@ -1 +1 @@
mein.sterntours
mein.sterntours.test

2
.idea/deployment.xml generated
View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="mein.sterntours.local" />
<component name="PublishConfigData" serverName="mein.sterntours.test" />
</project>

View file

@ -2,12 +2,13 @@
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" packagePrefix="App\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-debugbar" />
<excludeFolder url="file://$MODULE_DIR$/vendor/barryvdh/laravel-dompdf" />
<excludeFolder url="file://$MODULE_DIR$/vendor/cocur/slugify" />
<excludeFolder url="file://$MODULE_DIR$/vendor/css/pages" />
<excludeFolder url="file://$MODULE_DIR$/vendor/cviebrock/eloquent-sluggable" />
<excludeFolder url="file://$MODULE_DIR$/vendor/defuse/php-encryption" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
@ -24,12 +25,27 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/league/commonmark" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/event" />
<excludeFolder url="file://$MODULE_DIR$/vendor/league/oauth2-server" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/bootbox" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/bootstrap-material-datetimepicker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/bootstrap-sweetalert" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/chartist" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/chartjs" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/jstree" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/moment" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/popper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/spinkit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/summernote" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/swiper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/timepicker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/libs/validate" />
<excludeFolder url="file://$MODULE_DIR$/vendor/markbaker/complex" />
<excludeFolder url="file://$MODULE_DIR$/vendor/markbaker/matrix" />
<excludeFolder url="file://$MODULE_DIR$/vendor/maximebf/debugbar" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nyholm/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phenx/php-font-lib" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phenx/php-svg-lib" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-http/message-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpoffice/phpspreadsheet" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpoption/phpoption" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpseclib/phpseclib" />
@ -38,7 +54,10 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
<excludeFolder url="file://$MODULE_DIR$/vendor/reliese/laravel" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sabberworm/php-css-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/type" />
<excludeFolder url="file://$MODULE_DIR$/vendor/setasign/fpdf" />
<excludeFolder url="file://$MODULE_DIR$/vendor/setasign/fpdi" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/error-handler" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher-contracts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/mime" />

2
.idea/modules.xml generated
View file

@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/mein.sterntours.iml" filepath="$PROJECT_DIR$/.idea/mein.sterntours.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/mein.sterntours.test.iml" filepath="$PROJECT_DIR$/.idea/mein.sterntours.test.iml" />
</modules>
</component>
</project>

19
.idea/php.xml generated
View file

@ -131,6 +131,25 @@
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/vendor/laravel/helpers" />
<path value="$PROJECT_DIR$/vendor/css/pages" />
<path value="$PROJECT_DIR$/vendor/libs/moment" />
<path value="$PROJECT_DIR$/vendor/libs/bootstrap-sweetalert" />
<path value="$PROJECT_DIR$/vendor/libs/timepicker" />
<path value="$PROJECT_DIR$/vendor/libs/summernote" />
<path value="$PROJECT_DIR$/vendor/libs/jstree" />
<path value="$PROJECT_DIR$/vendor/libs/bootstrap-material-datetimepicker" />
<path value="$PROJECT_DIR$/vendor/libs/chartist" />
<path value="$PROJECT_DIR$/vendor/libs/bootbox" />
<path value="$PROJECT_DIR$/vendor/libs/validate" />
<path value="$PROJECT_DIR$/vendor/libs/popper" />
<path value="$PROJECT_DIR$/vendor/libs/swiper" />
<path value="$PROJECT_DIR$/vendor/libs/chartjs" />
<path value="$PROJECT_DIR$/vendor/libs/spinkit" />
<path value="$PROJECT_DIR$/vendor/setasign/fpdf" />
<path value="$PROJECT_DIR$/vendor/setasign/fpdi" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" />

409
.idea/workspace.xml generated
View file

@ -2,11 +2,24 @@
<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/BookingStatusController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/CustomerFile.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Repositories/FileRepository.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_03_19_152708_create_booking_storno_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_03_23_151608_create_customer_files_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/CustomerFileController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/AirlineController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Libraries/CouponPDF.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/Airline.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/BookingApplication.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/BookingConfirmation.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/BookingInvoice.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/BookingStorno.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/BookingVoucher.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/TravelInsurance.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Services/CreateCouponPDF.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/config/fpdf.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_03_27_095607_create_airlines_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_08_094455_create_booking_application_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_08_094456_create_booking_confirmation_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_08_094503_create_booking_invoice_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_08_094514_create_booking_voucher_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2020_04_08_094528_create_travel_insurance_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" />
@ -26,90 +39,91 @@
<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/customer/mail/modal-new-mail.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail-inner.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/customer/mail/modal-show-mail.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/status/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ac59cc0_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ae88686_ustvadezember.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ef84dc1_mcwebartworkqrg181130.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1f2d7c2e_payoneplatformtestdataen.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b225b0ed62_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b3644bf721_wlogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b492402436_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b8ab17b3b5_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78c9ab01d68_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ca461db73_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cabfcc631_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78caee86679_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb08e8fda_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb0c29487_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb5297d99_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ce73a0b51_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cec300ea9_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cef2a2811_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ceff86c13_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf1d742c7_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf23670ae_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfb1a7800_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfbd8ef63_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d0037eca4_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02050d7c_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02498dfd_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d183c4f80_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1c454e6f_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1cf536e8_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d35b13cdf_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d3faa91df_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d45fdbc3b_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d463478f2_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d464c5ab1_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a01b5d_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a312bf_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d564d217f_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d5ef6c709_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d60335e7a_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6341a8ab_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6470bf25_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d7038592f_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d78baa10e_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d98658c62_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78db64e414c_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dbc255921_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dc789e5ec_ust111.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dce263b11_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dd3a57e2c_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ddbd11b14_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de3e83a57_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de619eef4_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dea62a197_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dfdf5464a_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e019450d8_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e0416765e_jackodurextrusionsstrang.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e05dcf7c8_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e086b0a43_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/128.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/fonts/arial.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/fonts/arialbd.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/images/coupon-background.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/images/coupon-background.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/images/coupon-background1.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/public/pdf/coupon/images/coupon-background1.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/report/service_providers.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/settings/airline/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e8ca526256d3_wlogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e8ca561244c3_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e8cafd9cfa1a_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e8cafeb5138a_jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/04/5e8cb00b8222e_wlogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/jdatlastoollogo.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.env" beforeDir="false" afterPath="$PROJECT_DIR$/.env" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.name" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.name" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/deployment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/deployment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/mein.sterntours.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/php.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/php.xml" 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" afterPath="$PROJECT_DIR$/app/Http/Controllers/CMS/CMSContentCountryController.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/HomeController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/HomeController.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/TravelAgendaController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/TravelAgendaController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailSendInfo.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailSendInfo.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Settings/BookingStatusController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/BookingStatusController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Settings/KeywordController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Settings/KeywordController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Arrangement.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Arrangement.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/ArrangementTemplate.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ArrangementTemplate.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/ArrangementType.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ArrangementType.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/BookingDraftItem.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/BookingDraftItem.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/CMSAuthor.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/CMSAuthor.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Coupon.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Coupon.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/CreditCardType.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/CreditCardType.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Customer.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Customer.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/InitialContactType.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/InitialContactType.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Inquiry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Inquiry.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/InquiryTemplate.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/InquiryTemplate.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/InquiryType.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/InquiryType.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/InsuranceCertificate.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/InsuranceCertificate.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Keyword.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Keyword.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Lead.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Lead.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/LeadParticipant.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/LeadParticipant.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Offer.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Offer.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Participant.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Participant.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Salutation.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Salutation.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Searchengine.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Searchengine.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/ServiceProviderEntry.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ServiceProviderEntry.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/Status.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Status.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/StatusHistory.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/StatusHistory.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/Sym/_Booking.php" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelBooking.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelBooking.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelCategory.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelCategory.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/Website.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Website.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/DraftRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/DraftRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Repositories/FileRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/CustomerFileRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/HTMLHelper.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/HTMLHelper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/Util.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/Util.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/helpers.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/helpers.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/debugbar.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/debugbar.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/filesystems.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/filesystems.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/archiv.tar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/archiv.tar.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/composer.json" beforeDir="false" afterPath="$PROJECT_DIR$/composer.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/composer.lock" beforeDir="false" afterPath="$PROJECT_DIR$/composer.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/models.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/models.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_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/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/2018_10_29_202125_create_lead_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_29_202125_create_lead_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2020_01_29_152708_create_coupon_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_01_29_152708_create_coupon_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_03_19_152708_create_booking_storno_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2020_03_19_152708_create_booking_storno_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$/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" />
@ -159,14 +173,149 @@
<change beforePath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/resize.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/packages/iqcontent/laravel-filemanager/src/views/resize.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/css/application.css" beforeDir="false" afterPath="$PROJECT_DIR$/public/css/application.css" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/custom.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/custom.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/storage" beforeDir="false" afterPath="$PROJECT_DIR$/public/storage" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/report/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/report/bookings.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/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/drafts/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/drafts/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/country/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/cms/content/country/detail.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/cms/content/country/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/cms/content/country/index.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/emails/content.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/emails/content.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/request/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/request/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/request/modal-mail.blade.php" beforeDir="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$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ac59cc0_ust111.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ac59cc0_ust111.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ae88686_ustvadezember.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ae88686_ustvadezember.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ef84dc1_mcwebartworkqrg181130.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1ef84dc1_mcwebartworkqrg181130.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1f2d7c2e_payoneplatformtestdataen.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e78e1f2d7c2e_payoneplatformtestdataen.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b225b0ed62_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b225b0ed62_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b3644bf721_wlogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b3644bf721_wlogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b492402436_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b492402436_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b8ab17b3b5_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/attachment/2020/03/5e7b8ab17b3b5_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78c9ab01d68_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78c9ab01d68_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ca461db73_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ca461db73_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cabfcc631_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cabfcc631_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78caee86679_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78caee86679_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb08e8fda_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb08e8fda_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb0c29487_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb0c29487_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb5297d99_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cb5297d99_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ce73a0b51_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ce73a0b51_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cec300ea9_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cec300ea9_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cef2a2811_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cef2a2811_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ceff86c13_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ceff86c13_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf1d742c7_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf1d742c7_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf23670ae_ust111.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cf23670ae_ust111.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfb1a7800_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfb1a7800_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfbd8ef63_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78cfbd8ef63_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d0037eca4_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d0037eca4_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02050d7c_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02050d7c_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02498dfd_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d02498dfd_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d183c4f80_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d183c4f80_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1c454e6f_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1c454e6f_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1cf536e8_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d1cf536e8_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d35b13cdf_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d35b13cdf_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d3faa91df_ust111.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d3faa91df_ust111.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d45fdbc3b_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d45fdbc3b_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d463478f2_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d463478f2_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d464c5ab1_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d464c5ab1_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a01b5d_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a01b5d_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a312bf_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d46a312bf_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d564d217f_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d564d217f_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d5ef6c709_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d5ef6c709_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d60335e7a_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d60335e7a_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6341a8ab_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6341a8ab_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6470bf25_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d6470bf25_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d7038592f_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d7038592f_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d78baa10e_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d78baa10e_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d98658c62_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78d98658c62_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78db64e414c_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78db64e414c_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dbc255921_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dbc255921_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dc789e5ec_ust111.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dc789e5ec_ust111.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dce263b11_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dce263b11_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dd3a57e2c_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dd3a57e2c_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ddbd11b14_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78ddbd11b14_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de3e83a57_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de3e83a57_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de619eef4_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78de619eef4_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dea62a197_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dea62a197_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dfdf5464a_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78dfdf5464a_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e019450d8_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e019450d8_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e0416765e_jackodurextrusionsstrang.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e0416765e_jackodurextrusionsstrang.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e05dcf7c8_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e05dcf7c8_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e086b0a43_jdatlastoollogo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/customer/tmp/attachment/5e78e086b0a43_jdatlastoollogo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-1231433.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-1231433.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-123431221321.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-123431221321.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-12345.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-123455.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-123455.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-1243414.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/infos/2019/Anreiseinfo-1243414.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1231433.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1231433.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/123431221321.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/123431221321.pdf" 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" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/123455.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/123455.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1234556.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1234556.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1243414.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1243414.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1312.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/1312.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/9538.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/invoices/2019/9538.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/fewo/travel/infos/2019/Anreiseinfo-123455.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/fewo/travel/infos/2019/Anreiseinfo-123455.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/12345.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/12345.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/123455.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/123455.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/1243.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/1243.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/1243414.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/invoices/fewo/2019/1243414.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/Stern-Tours-Mietbedingungen.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/Stern-Tours-Mietbedingungen.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/5095742f201612038.pdf" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/5095742f201612038.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Datenblatt-BFX2019-01-15.xlsx" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Datenblatt-BFX2019-01-15.xlsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1_cropped_1582804461.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Muscat-Sultan-Qaboos-Moschee-h1_cropped_1582804461.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.youtube" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.youtube" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/6.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/6.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/7.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/7.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/8.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/8.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/thumbs/4_cropped_1574181421.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/thumbs/4_cropped_1574181421.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Bilder-in/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/logo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/logo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/6.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/6.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/7.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/7.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/8.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/8.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/logo.png" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/Bilder/thumbs/logo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/formsextras.html" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/formsextras.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/5_cropped_1574182410.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/5_cropped_1574182410.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/thumbs/5_cropped_1574182410.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/thumbs/5_cropped_1574182410.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/Wir-STERN-TOURS.youtube" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/Wir-STERN-TOURS.youtube" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/thumbs/Wir-STERN-TOURS.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root/youtube/youtube-in/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root2/1Baustein-Q-Board-Zeus.xls" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root2/1Baustein-Q-Board-Zeus.xls" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root2/4cropped1574181421212.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root2/4cropped1574181421212.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/root2/thumbs/Wir-STERN-TOURS.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/root2/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/test/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/test/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/test/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/test/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/test/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/test/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/test/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/test/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/128.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/128.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-2.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie-3.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1-Kopie.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1_cropped_1582804461.JPG" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Muscat-Sultan-Qaboos-Moschee-h1_cropped_1582804461.JPG" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Wir-STERN-TOURS.jpg" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/files/shares/thumbs/Wir-STERN-TOURS.jpg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/debugbar/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/debugbar/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/oauth-private.key" beforeDir="false" afterPath="$PROJECT_DIR$/storage/oauth-private.key" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/oauth-public.key" beforeDir="false" afterPath="$PROJECT_DIR$/storage/oauth-public.key" afterDir="false" />
<change beforePath="$PROJECT_DIR$/vendor.tar.gz" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/which" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -350,6 +499,25 @@
<path value="$PROJECT_DIR$/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/vendor/laravel/helpers" />
<path value="$PROJECT_DIR$/vendor/css/pages" />
<path value="$PROJECT_DIR$/vendor/libs/moment" />
<path value="$PROJECT_DIR$/vendor/libs/bootstrap-sweetalert" />
<path value="$PROJECT_DIR$/vendor/libs/timepicker" />
<path value="$PROJECT_DIR$/vendor/libs/summernote" />
<path value="$PROJECT_DIR$/vendor/libs/jstree" />
<path value="$PROJECT_DIR$/vendor/libs/bootstrap-material-datetimepicker" />
<path value="$PROJECT_DIR$/vendor/libs/chartist" />
<path value="$PROJECT_DIR$/vendor/libs/bootbox" />
<path value="$PROJECT_DIR$/vendor/libs/validate" />
<path value="$PROJECT_DIR$/vendor/libs/popper" />
<path value="$PROJECT_DIR$/vendor/libs/swiper" />
<path value="$PROJECT_DIR$/vendor/libs/chartjs" />
<path value="$PROJECT_DIR$/vendor/libs/spinkit" />
<path value="$PROJECT_DIR$/vendor/setasign/fpdf" />
<path value="$PROJECT_DIR$/vendor/setasign/fpdi" />
<path value="$PROJECT_DIR$/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/vendor/nyholm/psr7" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit" />
</include_path>
</component>
<component name="ProjectId" id="1OVGC0t0zLFaJgjHUxM3IZZZaeh" />
@ -369,9 +537,9 @@
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="database.console.LAST_STATE" value="false" />
<property name="js.buildTools.grunt.grunt-cli.package" value="" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/customer/mail" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/Libraries" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
@ -382,11 +550,11 @@
<recent name="$PROJECT_DIR$/app/Models" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/views/customer/mail" />
<recent name="$PROJECT_DIR$/app/Libraries" />
<recent name="$PROJECT_DIR$/app/Services" />
<recent name="$PROJECT_DIR$/app/Repositories" />
<recent name="$PROJECT_DIR$/resources/views/settings" />
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
<recent name="$PROJECT_DIR$/app/Http/Controllers/Settings" />
<recent name="$PROJECT_DIR$/database/migrations" />
</key>
</component>
<component name="RunAnythingCache">
@ -705,7 +873,37 @@
<workItem from="1585044001412" duration="7367000" />
<workItem from="1585123733934" duration="24500000" />
<workItem from="1585209760763" duration="2000" />
<workItem from="1585211863723" duration="318000" />
<workItem from="1585211863723" duration="3523000" />
<workItem from="1585219403585" duration="10652000" />
<workItem from="1585299253569" duration="2308000" />
<workItem from="1585310212836" duration="3506000" />
<workItem from="1585332789505" duration="810000" />
<workItem from="1585396765468" duration="50000" />
<workItem from="1585396821275" duration="1000" />
<workItem from="1585817075183" duration="16749000" />
<workItem from="1585848259695" duration="871000" />
<workItem from="1585903713877" duration="317000" />
<workItem from="1585904144061" duration="1000" />
<workItem from="1585905114889" duration="14440000" />
<workItem from="1585997878390" duration="1198000" />
<workItem from="1585999085587" duration="4135000" />
<workItem from="1586022000023" duration="1681000" />
<workItem from="1586167974741" duration="13770000" />
<workItem from="1586249950117" duration="695000" />
<workItem from="1586264644114" duration="134000" />
<workItem from="1586265086720" duration="225000" />
<workItem from="1586265349121" duration="10000" />
<workItem from="1586268037326" duration="53000" />
<workItem from="1586268098453" duration="46000" />
<workItem from="1586268182833" duration="9539000" />
<workItem from="1586281983675" duration="1120000" />
<workItem from="1586331005408" duration="28570000" />
<workItem from="1586418113516" duration="1000" />
<workItem from="1586418704081" duration="343000" />
<workItem from="1586420826140" duration="9000" />
<workItem from="1586420844552" duration="3000" />
<workItem from="1586454358482" duration="377000" />
<workItem from="1586851166069" duration="20000" />
</task>
<servers />
</component>
@ -732,18 +930,25 @@
</ignored-roots>
</component>
<component name="WindowStateProjectService">
<state x="873" y="395" key="#Notifications" timestamp="1586283483077">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<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="-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="1581431073950">
<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="723" y="54" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog" timestamp="1581351314829">
<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">
<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="1585128425251">
<screen x="0" y="23" width="2560" height="1417" />
@ -753,37 +958,29 @@
<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 x="1097" y="610" width="600" height="300" key="ComposerAddDependencyOutputPopupDimensionServiceKey/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1577532820637" />
<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="1020" y="544" width="535" height="375" key="PHPComposerAddDependencyDialogDimensionKey/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1577532821964" />
<state x="1063" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1585151743715">
<state x="815" y="370" key="SettingsEditor" timestamp="1585999076795">
<screen x="0" y="23" width="2560" height="1417" />
</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="1585151743715" />
<state x="1063" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1577126837332" />
<state x="-1690" y="380" width="1487" height="939" key="find.popup" timestamp="1585157716675">
<screen x="-2560" y="23" width="2560" height="1417" />
<state x="815" y="370" key="SettingsEditor/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585999076795" />
<state x="1063" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1585232936868">
<screen x="0" y="23" width="2560" height="1417" />
</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="870" y="380" width="1487" height="939" key="find.popup" timestamp="1586367147094">
<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="-1690" y="380" width="1487" height="939" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585157716675" />
<state x="938" y="488" width="1035" height="714" key="find.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1577550564294" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup" timestamp="1585136385851">
<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="946" y="348" width="670" height="676" key="search.everywhere.popup" timestamp="1586370499861">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1586370499861" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1585136385851" />
<state x="946" y="348" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1577643900011" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/resources/views/booking/detail.blade.php</url>
<line>313</line>
<option name="timeStamp" value="2" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<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" />
</component>
</project>

View file

@ -5,7 +5,7 @@ namespace PHPSTORM_META {
/**
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
* Generated on 2020-03-11 14:36:00.
* Generated on 2020-04-08 15:47:00.
*
* @author Barry vd. Heuvel <barryvdh@gmail.com>
* @see https://github.com/barryvdh/laravel-ide-helper
@ -41,6 +41,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -202,6 +204,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -363,6 +367,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -524,6 +530,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -685,6 +693,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -846,6 +856,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -1007,6 +1019,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,
@ -1168,6 +1182,8 @@ namespace PHPSTORM_META {
'Maatwebsite\Excel\Transactions\TransactionManager' => \Maatwebsite\Excel\Transactions\TransactionManager::class,
'NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener' => \NunoMaduro\Collision\Adapters\Phpunit\Listener::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class,
'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class,
'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class,
'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class,

View file

@ -3,7 +3,7 @@
/**
* A helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel 6.17.0 on 2020-03-11 14:36:00.
* Generated for Laravel 6.18.5 on 2020-04-08 15:47:00.
*
* This file should not be included in your code, only analyzed by your IDE!
*
@ -506,8 +506,6 @@ namespace Illuminate\Support\Facades {
/**
* Resolve the given type from the container.
*
* (Overriding Container::make)
*
* @param string $abstract
* @param array $parameters
@ -522,8 +520,6 @@ namespace Illuminate\Support\Facades {
/**
* Determine if the given abstract type has been bound.
*
* (Overriding Container::bound)
*
* @param string $abstract
* @return bool
@ -2734,7 +2730,6 @@ namespace Illuminate\Support\Facades {
*
* @param mixed $command
* @return mixed
* @throws \RuntimeException
* @static
*/
public static function dispatchToQueue($command)
@ -9961,7 +9956,9 @@ namespace Illuminate\Support\Facades {
* Gets the preferred format for the response by inspecting, in the following order:
* * the request format set using setRequestFormat
* * the values of the Accept HTTP header
* * the content type of the body of the request.
*
* Note that if you use this method, you should send the "Vary: Accept" header
* in the response to prevent any issues with intermediary HTTP caches.
*
* @static
*/
@ -16437,7 +16434,9 @@ namespace Illuminate\Support\Facades {
* Gets the preferred format for the response by inspecting, in the following order:
* * the request format set using setRequestFormat
* * the values of the Accept HTTP header
* * the content type of the body of the request.
*
* Note that if you use this method, you should send the "Vary: Accept" header
* in the response to prevent any issues with intermediary HTTP caches.
*
* @static
*/

View file

@ -80,94 +80,6 @@ namespace App{
class User extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\Booking
*
* @property int $id
* @property string|null $booking_date
* @property int $customer_id
* @property int|null $lead_id
* @property int|null $new_drafts
* @property int $sf_guard_user_id
* @property int $branch_id
* @property float|null $service_fee
* @property int|null $travel_country_id
* @property int|null $travel_category_id
* @property int|null $pax
* @property int|null $coupon_id
* @property \Illuminate\Support\Carbon $created_at
* @property \Illuminate\Support\Carbon $updated_at
* @property string|null $title
* @property string|null $start_date
* @property string|null $end_date
* @property int|null $website_id
* @property string|null $travel_number
* @property string|null $participant_name
* @property string|null $participant_firstname
* @property string|null $participant_birthdate
* @property int|null $participant_salutation_id
* @property string|null $ev_number
* @property string|null $merlin_knr
* @property string|null $merlin_order_number
* @property int|null $travel_company_id
* @property int|null $travel_documents
* @property float|null $price
* @property float|null $price_total
* @property float|null $deposit_total
* @property float|null $final_payment
* @property string|null $final_payment_date
* @property int|null $travelagenda_id
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Sym\Arrangement[] $arrangements
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingDraftItem[] $booking_draft_items
* @property-read \App\Models\TravelCountry|null $lead
* @property-read \App\Models\SfGuardUser $sf_guard_user
* @property-read \App\Models\TravelAgenda|null $travel_agenda
* @property-read \App\Models\TravelCountry|null $travel_country
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereBookingDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereBranchId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCouponId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereDepositTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereEndDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereEvNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereLeadId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereMerlinKnr($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereMerlinOrderNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereNewDrafts($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantBirthdate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantFirstname($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantSalutationId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePax($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereServiceFee($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereSfGuardUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereStartDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCategoryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelDocuments($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelagendaId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereWebsiteId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking query()
* @property-read int|null $arrangements_count
* @property-read int|null $booking_draft_items_count
*/
class _Booking extends \Eloquent {}
}
namespace App\Models\Sym{
/**
* App\Models\Sym\TravelCountry
@ -200,6 +112,8 @@ namespace App\Models\Sym{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactLands($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Booking[] $bookings
* @property-read int|null $bookings_count
* @property array|null $contact_emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactEmails($value)
*/
class TravelCountry extends \Eloquent {}
}
@ -289,6 +203,40 @@ namespace App\Models\Sym{
class Arrangement extends \Eloquent {}
}
namespace App\Models{
/**
* Class BookingInvoice
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $deposit
* @property float $final_payment
* @property Carbon $deposit_payment_date
* @property Carbon $final_payment_date
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereDepositPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingInvoice extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\TravelProgramDraft
@ -464,6 +412,44 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereWebsiteId($value)
* @mixin \Eloquent
* @property-read int|null $service_provider_entries_count
* @property float|null $canceled
* @property float|null $price_canceled
* @property int|null $paying_out
* @property int|null $paying_out_status
* @property int|null $airline_id
* @property int|null $refund
* @property \Illuminate\Support\Carbon|null $refund_date
* @property int|null $hold
* @property int|null $xx_tkt
* @property string|null $xx_tkt_date
* @property string|null $filekey
* @property-read \App\Models\Airline|null $airline
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerMail[] $customer_mails
* @property-read int|null $customer_mails_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerMail[] $customer_mails_sent_at
* @property-read int|null $customer_mails_sent_at_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereAirlineId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCanceled($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFilekey($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereHold($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePayingOut($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePayingOutStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceCanceled($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereRefund($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereRefundDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereXxTkt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereXxTktDate($value)
* @property int|null $is_rail_fly
* @property string|null $notice
* @property-read \App\Models\CustomerMail $customer_mail_last
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereIsRailFly($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereNotice($value)
* @property-read int|null $booking_applications_count
* @property-read int|null $booking_confirmations_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingStorno[] $booking_stornos
* @property-read int|null $booking_stornos_count
* @property-read int|null $booking_vouchers_count
* @property-read int|null $travel_insurances_count
*/
class Booking extends \Eloquent {}
}
@ -725,6 +711,30 @@ namespace App\Models{
class TravelPageGuide extends \Eloquent {}
}
namespace App\Models{
/**
* Class BookingVoucher
*
* @property int $id
* @property int $booking_id
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingVoucher extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\IQContentTreeNode
@ -880,8 +890,18 @@ namespace App\Models{
* @property int $booking_id
* @property int $customer_id
* @property int $lead_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 $travel_country_id
* @property bool $draft
* @property bool $important
* @property bool $send
* @property bool $fail
* @property string $error
@ -892,24 +912,40 @@ namespace App\Models{
* @property Carbon $updated_at
* @property Booking $booking
* @property Customer $customer
* @property CustomerMail $customer_mail
* @property TravelCountry $travel_country
* @property Lead $lead
* @property Collection|CustomerFile[] $customer_files
* @property Collection|CustomerMail[] $customer_mails
* @package App\Models
* @property-read int|null $customer_files_count
* @property-read int|null $customer_mails_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereBcc($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCc($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDeliveredAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDir($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDraft($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereError($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereFail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereImportant($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereIsAnswer($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereLeadId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereMessage($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereRecipient($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereReplyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereScheduledAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSend($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSentAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSubject($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereTravelCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereUpdatedAt($value)
* @mixin \Eloquent
*/
@ -1170,6 +1206,33 @@ namespace App\Models{
class InitialContactType extends \Eloquent {}
}
namespace App\Models{
/**
* Class Airline
*
* @property int $id
* @property string $name
* @property string $name_full
* @property Carbon $created_at
* @property Carbon $updated_at
* @package App\Models
* @property array|null $contact_emails
* @property array|null $emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereContactEmails($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereEmails($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereNameFull($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereUpdatedAt($value)
* @mixin \Eloquent
*/
class Airline extends \Eloquent {}
}
namespace App\Models{
/**
* Class FewoLodgingType
@ -1268,6 +1331,32 @@ namespace App\Models{
class DraftItem extends \Eloquent {}
}
namespace App\Models{
/**
* Class BookingApplication
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingApplication extends \Eloquent {}
}
namespace App\Models{
/**
* Class FewoLodgingImage
@ -1321,6 +1410,46 @@ namespace App\Models{
class LeadParticipant extends \Eloquent {}
}
namespace App\Models{
/**
* Class CustomerFile
*
* @property int $id
* @property int $customer_id
* @property int $customer_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 Customer $customer
* @property CustomerMail $customer_mail
* @package App\Models
* @property-read \App\User $user
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCustomerMailId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereDir($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereExt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereFilename($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereMine($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereOriginalName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereSize($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereUpdatedAt($value)
* @mixin \Eloquent
*/
class CustomerFile extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\Account
@ -1447,6 +1576,8 @@ namespace App\Models{
* @property array|null $contact_lands
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactLands($value)
* @property-read int|null $travel_nationality_requirements_count
* @property array|null $contact_emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactEmails($value)
*/
class TravelCountry extends \Eloquent {}
}
@ -1721,21 +1852,24 @@ namespace App\Models{
namespace App\Models{
/**
* App\Models\Status
* Class Status
*
* @property int $id
* @property string $name
* @property int $handling_days
* @property string|null $color
* @property-read \App\Models\Status $status
* @property string $color
* @property Collection|Lead[] $leads
* @property Collection|StatusHistory[] $status_histories
* @package App\Models
* @property-read int|null $leads_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereColor($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereHandlingDays($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereName($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status query()
*/
class Status extends \Eloquent {}
}
@ -1761,6 +1895,40 @@ namespace App\Models{
class TravelCategory extends \Eloquent {}
}
namespace App\Models{
/**
* Class TravelInsurance
*
* @property int $id
* @property int $booking_id
* @property string $policy_number
* @property string $ak
* @property string $an
* @property string $akt
* @property float $premium
* @property string $request_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAk($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAkt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAn($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance wherePolicyNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance wherePremium($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereRequestData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereUpdatedAt($value)
* @mixin \Eloquent
*/
class TravelInsurance extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\IQContentSite
@ -2276,6 +2444,8 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereWebsiteId($value)
* @mixin \Eloquent
* @property-read \App\Models\Sym\TravelCountry|null $travel_country_crm
* @property bool|null $is_rebook
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereIsRebook($value)
*/
class Lead extends \Eloquent {}
}
@ -2524,6 +2694,8 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereValidDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereValue($value)
* @mixin \Eloquent
* @property string|null $text
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereText($value)
*/
class Coupon extends \Eloquent {}
}
@ -2858,6 +3030,40 @@ namespace App\Models{
class TravelUser extends \Eloquent {}
}
namespace App\Models{
/**
* Class BookingConfirmation
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $deposit
* @property float $final_payment
* @property Carbon $deposit_payment_date
* @property Carbon $final_payment_date
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereDepositPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingConfirmation extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\CMSInfo
@ -2943,6 +3149,38 @@ namespace App\Models{
class IQContentTree extends \Eloquent {}
}
namespace App\Models{
/**
* Class BookingStorno
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $storno
* @property Carbon $storno_date
* @property boolean $binary_data
* @property bool $done
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereDone($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereStorno($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereStornoDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingStorno extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\SfGuardUser

View file

@ -24,13 +24,12 @@ class ReportController extends Controller
$this->middleware('superadmin');
}
public function bookings()
{
$data = [
'text' => "Umsetzung folgt",
//'serviceProviders' => ServiceProvider::all(),
];
return view('_empty', $data);
return view('admin.report.bookings', $data);
}
public function providers()
@ -38,10 +37,234 @@ class ReportController extends Controller
$data = [
'serviceProviders' => ServiceProvider::all(),
];
return view('admin.report.index', $data);
return view('admin.report.service_providers', $data);
}
public function providersExport(){
private function prozessBookingSearch()
{
$query = Booking::with( 'customer', 'lead', 'service_provider_entries', 'service_provider_entries.service_provider');
if(Request::get('filter_travel_date_from') != ""){
$travel_date_from = Carbon::parse(Request::get('filter_travel_date_from'))->format("Y-m-d");
$query->where("start_date", '>=', $travel_date_from);
}
if(Request::get('filter_travel_date_to') != ""){
$travel_date_to = Carbon::parse(Request::get('filter_travel_date_to'))->format("Y-m-d");
$query->where("start_date", '<=', $travel_date_to);
}
if(Request::get('filter_booking_date_from') != ""){
$travel_date_from = Carbon::parse(Request::get('filter_booking_date_from'))->format("Y-m-d");
$query->where("booking_date", '>=', $travel_date_from);
}
if(Request::get('filter_booking_date_to') != ""){
$travel_date_to = Carbon::parse(Request::get('filter_booking_date_to'))->format("Y-m-d");
$query->where("booking_date", '<=', $travel_date_to);
}
return $query;
}
public function bookingsDatatable()
{
$query = $this->prozessBookingSearch();
return \DataTables::eloquent($query)
->with('price_total_sum', function() use ($query) {
return Util::_number_format($query->sum('price'));
})
->with('proceed_total_sum', function() use ($query) {
if($query->count() > 200){
return 'max 200 ';
}
$all = $query->get();
$proceeds = 0;
foreach ($all as $v){
$proceeds += $v->proceedsRaw();
}
return Util::_number_format($proceeds);
})
->addColumn('id', function (Booking $booking) {
return '<a data-order="' . $booking->id . '" href="' . route('booking_detail', [$booking->id]) . '" data-id="' . $booking->id . '">' . $booking->id . '</a>';
})
->addColumn('customer.fullName', function (Booking $booking) {
return $booking->customer->fullName();
})
->addColumn('proceeds', function (Booking $booking) {
return $booking->proceeds();
})
->addColumn('start_date', function (Booking $booking) {
return $booking->getStartDateFormat();
})
->addColumn('end_date', function (Booking $booking) {
return $booking->getEndDateFormat();
})
->addColumn('booking_date', function (Booking $booking) {
return $booking->getBookingDateFormat();
})
->addColumn('service_provider.names', function (Booking $booking) {
$ret = "";
if($booking->service_provider_entries){
foreach ($booking->service_provider_entries as $service_provider_entry){
$ret .= '<span class="ui-stars">'.$service_provider_entry->service_provider->name." | ";
$ret .= $service_provider_entry->getAmountFinalEur()." | ";
$ret .= $service_provider_entry->is_cleared ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>';
$ret .= "</span><br>";
}
}
return $ret === "" ? "-" : $ret;
})
->addColumn('lead.status_id', function (Booking $booking) {
//umbuchen
if($booking->lead->status_id){
$color = $booking->lead->status->color;
$icon = "";
if($booking->lead->status_id == 14 && $booking->lead->is_rebook){
$color = '#94ae59';
$icon = '<i class="fa fa-check-circle"></i> ';
}
if($booking->lead->status_id == 14 && !$booking->lead->is_rebook){
$icon = '<i class="fa fa-times-circle"></i> ';
}
return '<span data-order="'.$booking->lead->status_id.'"><span class="badge badge-dark" style="background-color: '.$color.'">'.$icon.$booking->lead->status->name.'</span></span>';
}
return '<span data-order="0">-</span>';
})
->filterColumn('customer.fullName', function ($query, $keyword) {
if ($keyword != "") {
$query->whereHas('customer', function ($q) use ($keyword) {
$q->where("name", 'LIKE', '%' . $keyword . '%')
->orWhere('firstname', 'LIKE', '%' . $keyword . '%');
});
}
})
->orderColumn('id', 'id $1')
->orderColumn('start_date', 'start_date $1')
->orderColumn('start_date', 'start_date $1')
->orderColumn('customer.fullName', 'customer.firstname $1')
//->orderColumn('lead.status_id', 'lead.status_id $1')
//->orderColumn('is_cleared', 'is_cleared $1')
->rawColumns(['id', 'lead.status_id', 'service_provider.names'])
->make(true);
}
public function bookingsExport(){
$query = $this->prozessBookingSearch();
$query->orderBy("id", 'ASC');
$filename = "file-".date('Y-m-d-H-i-s');
$exports = $query->get();
$columns = [];
if(Request::get('export') === "export"){
$filename = "Buchungen_".date('Y-m-d-H-i-s');
$headers = array(
'BuchungsID',
'Status',
'MyJack Nr.',
'Reisepreis',
'Erlös',
'Kunde',
'Reisedatum',
'bis',
'Buchungsdatum',
'Reiseland',
'Reiseprogramm',
'Reiseteilnehmer',
'Leistungsträger',
'Zahlung',
'Zahlungsdatum',
'Rechnungsnummer',
'abgeschlossen',
);
$total_price = 0;
$total_proceeds = 0;
$total_amount_final = 0;
foreach($exports as $export) {
if($export->service_provider_entries->count()){
$new = true;
foreach ($export->service_provider_entries as $service_provider_entry){
if($new){
$total_price += $export->getPriceRaw();
$total_proceeds += $export->proceedsRaw();
}
$total_amount_final += $service_provider_entry->getAmountFinalEurRaw();
$columns[] = array(
'BuchungsID' => $new ? $export->id : "",
'Status' => $new ? $export->lead->status->name : "",
'MyJack Nr.' => $new ? $export->merlin_order_number : "",
'Reisepreis' => $new ? $export->price : "",
'Erlös' => $new ? $export->proceeds() : "",
'Kunde' => $new ? $export->customer->fullName() : "",
'Reisedatum' => $new ? $export->getStartDateFormat() : "",
'bis' => $new ? $export->getEndDateFormat() : "",
'Buchungsdatum' => $new ? $export->getBookingDateFormat() : "",
'Reiseland' => $new && $export->travel_country ? $export->travel_country->name : "",
'Reiseprogramm' => $new && $export->travel_agenda ? $export->travel_agenda->name : "",
'Reiseteilnehmer' => $new ? $export->pax : "",
'Leistungsträger' => $service_provider_entry->service_provider->name,
'Zahlung' => $service_provider_entry->getAmountFinalEur(),
'Zahlungsdatum' => $service_provider_entry->getPaymentDateFormat(),
'Rechnungsnummer' => $service_provider_entry->invoice_number,
'abgeschlossen' => $service_provider_entry->is_cleared ? 'J' : 'N',
);
$new = false;
}
}else{
$total_price += $export->getPriceRaw();
$columns[] = array(
'BuchungsID' => $export->id,
'Status' => $export->lead->status->name,
'MyJack Nr.' => $export->merlin_order_number,
'Reisepreis' => $export->price,
'Erlös' => $export->proceeds(),
'Kunde' => $export->customer->fullName(),
'Reisedatum' => $export->getStartDateFormat(),
'bis' => $export->getEndDateFormat(),
'Buchungsdatum' => $export->getBookingDateFormat(),
'Reiseland' => $export->travel_country ? $export->travel_country->name : "",
'Reiseprogramm' => $export->travel_agenda ? $export->travel_agenda->name : "",
'Reiseteilnehmer' => $export->pax,
'Leistungsträger' => "",
'Zahlung' => "",
'Zahlungsdatum' => "",
'Rechnungsnummer' => "",
'abgeschlossen' => "",
);
}
}
$columns[] = array(
'BuchungsID' => "Total",
'Status' => "",
'MyJack Nr.' => "",
'Reisepreis' => Util::_number_format($total_price),
'Erlös' => Util::_number_format($total_proceeds),
'Kunde' => "",
'Reisedatum' => "",
'bis' => "",
'Buchungsdatum' => "",
'Reiseland' => "",
'Reiseprogramm' => "",
'Reiseteilnehmer' => "",
'Leistungsträger' => "",
'Zahlung' => Util::_number_format($total_amount_final),
'Zahlungsdatum' => "",
'Rechnungsnummer' => "",
'abgeschlossen' => "",
);
}
return Excel::download(new ReportCollectionExport($columns, $headers), $filename.'.xls');
}
private function prozessProvidersSearch(){
$query = ServiceProviderEntry::with('booking', 'service_provider', 'booking.customer');
if(Request::get('filter_is_cleared') != ""){
@ -63,6 +286,87 @@ class ReportController extends Controller
});
}
return $query;
}
public function providersDatatable()
{
$query = $this->prozessProvidersSearch();
return \DataTables::eloquent($query)
->with('price_total_sum', function() use ($query) {
if($query->count() > 200){
return 'max 200 ';
}
$all = $query->get();
$price = 0;
$isset = [];
foreach ($all as $v){
$price += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->getPriceRaw();
$isset[] = $v->booking->lead_id;
}
return Util::_number_format($price);
})
->with('proceed_total_sum', function() use ($query) {
if($query->count() > 200){
return 'max 200 ';
}
$all = $query->get();
$proceeds = 0;
$isset = [];
foreach ($all as $v){
$proceeds += in_array($v->booking->lead_id, $isset) ? 0 : $v->booking->proceedsRaw();
$isset[] = $v->booking->lead_id;
}
return Util::_number_format($proceeds);
/*$all = $query->get();
$proceeds = 0;
foreach ($all as $v){
$proceeds += $v->proceedsRaw();
}
return Util::_number_format($proceeds);*/
})
->addColumn('booking.id', function (ServiceProviderEntry $serviceProviderEntry) {
return '<a data-order="' . $serviceProviderEntry->booking->id . '" href="' . route('booking_detail', [$serviceProviderEntry->booking->id]) . '" data-id="' . $serviceProviderEntry->booking->id . '">' . $serviceProviderEntry->booking->id . '</a>';
})
->addColumn('booking.customer.fullName', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->customer->fullName();
})
->addColumn('booking.proceeds', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->proceeds();
})
->addColumn('booking.start_date', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->getStartDateFormat();
})
->addColumn('booking.end_date', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->getEndDateFormat();
})
->addColumn('is_cleared', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->is_cleared ? ' <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>';
})
->filterColumn('booking.customer.fullName', function ($query, $keyword) {
if ($keyword != "") {
$query->whereHas('booking', function ($q) use ($keyword) {
$q->whereHas('customer', function ($q) use ($keyword) {
$q->where("name", 'LIKE', '%' . $keyword . '%')
->orWhere('firstname', 'LIKE', '%' . $keyword . '%');
});
});
}
})
->orderColumn('booking.id', 'booking.id $1')
->orderColumn('booking.start_date', 'booking.start_date $1')
->orderColumn('booking.end_date', 'booking.end_date $1')
->orderColumn('is_cleared', 'is_cleared $1')
->rawColumns(['is_cleared', 'booking.id'])
->make(true);
}
public function providersExport()
{
$query = $this->prozessProvidersSearch();
$query->whereHas('booking', function ($q) {
$q->orderBy("lead_id", 'ASC');
});
@ -70,6 +374,7 @@ class ReportController extends Controller
$filename = "file-".date('Y-m-d-H-i-s');
$exports = $query->get();
$columns = [];
if(Request::get('export') === "export"){
$filename = "Export_".date('Y-m-d-H-i-s');
@ -91,8 +396,16 @@ class ReportController extends Controller
'Konto',
);
$isset = [];
$total_price = 0;
$total_amount_final = 0;
$total_proceeds = 0;
foreach($exports as $export) {
$new = in_array($export->booking->lead_id, $isset) ? false : true;
if($new){
$total_price += $export->booking->getPriceRaw();
$total_proceeds += $export->booking->proceedsRaw();
}
$total_amount_final += $export->getAmountFinalEurRaw();
$columns[] = array(
'Zähler' => $new ? $export->getCounter() : "",
'MyJack Nr.' => $new ? $export->booking->merlin_order_number : "",
@ -112,6 +425,23 @@ class ReportController extends Controller
);
$isset[] = $export->booking->lead_id;
}
$columns[] = array(
'Zähler' => "Total",
'MyJack Nr.' => "",
'CRM Nr' => "",
'Kunde' =>"",
'Reisedatum' => "",
'Gesamtreisepreis' => Util::_number_format($total_price),
'Reiseland' => "",
'Reiseprogramm' => "",
'Reiseteilnehmer' => "",
'Leistungsträger' => "",
'Rechnungsnummer' => "",
'Zahlung' => Util::_number_format($total_amount_final),
'Zahlungsdatum' => "",
'Erlös' => Util::_number_format($total_proceeds),
'Konto' => ""
);
}
if(Request::get('export') === "export_lt"){
$filename = "Export_LT_".date('Y-m-d-H-i-s');
@ -131,8 +461,14 @@ class ReportController extends Controller
'ZahlungVorgang',
);
$isset = [];
$total_amount_final = 0;
$payments_total = 0;
foreach($exports as $export) {
$new = in_array($export->booking->lead_id, $isset) ? false : true;
if($new) {
$payments_total += $export->booking->getServiceProviderPaymentsTotalRaw();
}
$total_amount_final += $export->getAmountFinalEurRaw();
$columns[] = array(
'Zähler' => $new ? $export->getCounter() : "",
'MyJack Nr.' => $new ? $export->booking->merlin_order_number : "",
@ -149,67 +485,23 @@ class ReportController extends Controller
);
$isset[] = $export->booking->lead_id;
}
$columns[] = array(
'Zähler' => "Total",
'MyJack Nr.' => "",
'CRM Nr' => "",
'Kunde' => "",
'Reisedatum' => "",
'Reiseland' => "",
'Reiseprogramm' => "",
'Reiseteilnehmer' => "",
'Leistungsträger' => "",
'Rechnungsnummer' => "",
'Zahlung' => Util::_number_format($total_amount_final),
'ZahlungVorgang' => Util::_number_format($payments_total),
);
}
return Excel::download(new ReportCollectionExport($columns, $headers), $filename.'.xls');
}
public function providersDatatable()
{
$query = ServiceProviderEntry::with('booking', 'service_provider', 'booking.customer');
if(Request::get('filter_is_cleared') != ""){
$query->where('is_cleared', '=', Request::get('filter_is_cleared'));
}
if(Request::get('filter_service_provider_id') != ""){
$query->where('service_provider_id', '=', Request::get('filter_service_provider_id'));
}
if(Request::get('filter_travel_date_from') != ""){
$query->whereHas('booking', function ($q) {
$travel_date_from = Carbon::parse(Request::get('filter_travel_date_from'))->format("Y-m-d");
$q->where("start_date", '>=', $travel_date_from);
});
}
if(Request::get('filter_travel_date_to') != ""){
$query->whereHas('booking', function ($q) {
$travel_date_to = Carbon::parse(Request::get('filter_travel_date_to'))->format("Y-m-d");
$q->where("start_date", '<=', $travel_date_to);
});
}
return \DataTables::eloquent($query)
->addColumn('booking.customer.fullName', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->customer->fullName();
})
->addColumn('booking.proceeds', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->proceeds();
})
->addColumn('booking.start_date', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->booking->getStartDateFormat();
})
->addColumn('is_cleared', function (ServiceProviderEntry $serviceProviderEntry) {
return $serviceProviderEntry->is_cleared ? ' <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>';
})
->filterColumn('booking.customer.fullName', function ($query, $keyword) {
if ($keyword != "") {
$query->whereHas('booking', function ($q) use ($keyword) {
$q->whereHas('customer', function ($q) use ($keyword) {
$q->where("name", 'LIKE', '%' . $keyword . '%')
->orWhere('firstname', 'LIKE', '%' . $keyword . '%');
});
});
}
})
->orderColumn('booking.start_date', 'booking.start_date $1')
->orderColumn('is_cleared', 'is_cleared $1')
->rawColumns(['is_cleared'])
->make(true);
}
}

View file

@ -7,6 +7,7 @@ use App\Models\BookingDraftItem;
use App\Models\Customer;
use App\Repositories\BookingRepository;
use App\Repositories\CustomerMailRepository;
use App\Repositories\DraftRepository;
use Request;
class BookingController extends Controller
@ -64,7 +65,7 @@ class BookingController extends Controller
$i = 1;
if($data['action'] == 'addItemUp'){
if($data['action'] === 'addItemUp'){
$travel_program_id = null;
$request_date = null;
$comfort = 0;
@ -98,8 +99,6 @@ class BookingController extends Controller
]);
$i++;
}
if(isset($data['draft_item'])){
foreach ($data['draft_item'] as $booking_draft_item_id => $draft_item){
@ -116,12 +115,10 @@ class BookingController extends Controller
$draft_item['in_pdf'] = isset($draft_item['in_pdf']) ? true : false;
$BookingDraftItem->fill($draft_item);
$BookingDraftItem->save();
}
}
if($data['action'] == 'addItemDown'){
if($data['action'] === 'addItemDown'){
$travel_program_id = null;
$request_date = null;
$comfort = 0;
@ -183,7 +180,6 @@ class BookingController extends Controller
}
\Session()->flash('alert-save', '1');
return redirect(route('booking_detail', [$booking->id]));
}
@ -193,11 +189,11 @@ class BookingController extends Controller
if(Request::ajax()){
$data['customers'] = [];
if($data['action'] === "new-customer-mail" && isset($data['booking_id']) && $booking = Booking::find($data['booking_id'])){
$tmp = "";
$tmp .= $booking->customer ? $booking->customer->email." | " : "- | ";
$tmp .= $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | ";
$tmp .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | ";
$tmp .= $booking->travelagenda_id ? $booking->travel_agenda->name."" : "-";
$tmp = [];
$tmp['email'] = $booking->customer ? $booking->customer->email : "";
$tmp['name'] = $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | ";
$tmp['name'] .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | ";
$tmp['name'] .= $booking->travelagenda_id ? $booking->travel_agenda->name."" : "-";
$data['customers'][$booking->id] = $tmp;
}
$ret = CustomerMailRepository::loadModal($data);
@ -215,7 +211,17 @@ class BookingController extends Controller
return redirect(route('booking_detail', [$booking->id]));
}
public function action($action, $id=false){
if($action === 'change_travel_dates'){
if($booking = Booking::find($id)){
$draftRepo = new DraftRepository($booking);
$draftRepo->change_dates_drafts_from_booking(Request::get('change_travel_start_date'));
\Session()->flash('alert-success', __('Datum der Reise wurde geändert'));
return redirect(route('booking_detail', [$booking->id]));
}
}
}
}

View file

@ -53,6 +53,11 @@ class CMSContentCountryController extends Controller
{
$data = Request::all();
if(isset($data['contact_emails'])){
$data['contact_emails'] = explode('#', str_replace(array("\r\n", "\r", "\n"),"#",$data['contact_emails']));
}else{
$data['contact_emails'] = null;
}
if(!isset($data['contact_lands'])){
$data['contact_lands'] = null;
}

View file

@ -0,0 +1,114 @@
<?php
namespace App\Http\Controllers;
use App\Models\BookingApplication;
use App\Models\BookingConfirmation;
use App\Models\BookingStorno;
use App\Models\BookingVoucher;
use App\Models\Coupon;
use App\Models\InsuranceCertificate;
use App\Models\TravelInsurance;
use App\Repositories\CustomerFileRepository;
use App\Services\CreateCouponPDF;
use Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\URL;
use Request;
use Response;
class CustomerFileController extends Controller
{
protected $customerFileRepo;
public function __construct(CustomerFileRepository $customerFileRepo)
{
$this->middleware('admin');
$this->customerFileRepo = $customerFileRepo;
}
public function index()
{
$data = [
];
return view('customer.mail.index', $data);
}
public function show($model, $id, $cd = false){
$content_disposition = $cd ? 'attachment' : 'inline';
$file = false;
$filename = "";
switch ($model){
case 'booking_application':
if($booking_application = BookingApplication::find($id)){
$filename = "Buchungsauftrag-".$booking_application->booking->getBookingNumber().".pdf";
$file = base64_decode($booking_application->binary_data);
}
break;
case 'booking_confirmation':
if($booking_confirmation = BookingConfirmation::find($id)){
$filename = "Reisebestaetigung-".$booking_confirmation->booking->getBookingNumber().".pdf";
$file = base64_decode($booking_confirmation->binary_data);
}
break;
case 'booking_storno':
if($booking_stornos = BookingStorno::find($id)){
$filename = "Reisestornierung-".$booking_stornos->booking->getBookingNumber().".pdf";
$file = base64_decode($booking_stornos->binary_data);
}
break;
case 'coupon':
if($coupon = Coupon::find($id)){
$filename = "Gutschein-".$coupon->number.".pdf";
$pdf = new CreateCouponPDF($coupon);
$pdf->create();
return $pdf->output($filename, $cd);
}
break;
case 'booking_voucher':
if($booking_vouchers = BookingVoucher::find($id)){
$filename = "Voucher-".$booking_vouchers->booking->getBookingNumber().".pdf";
$file = base64_decode($booking_vouchers->binary_data);
}
break;
case 'insurance_certificate':
if($insurance_certificate = InsuranceCertificate::find($id)){
$filename = $insurance_certificate->filename;
$file = base64_decode($insurance_certificate->binary_data);
}
break;
case 'travel_insurance':
if($booking_application = TravelInsurance::find($id)){
$filename = "Buchungsauftrag-".$booking_application->booking->getBookingNumber().".pdf";
$file = base64_decode($booking_application->binary_data);
}
break;
}
if($file){
return Response::make($file, 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => $content_disposition.'; filename="'.$filename.'"'
]);
}
die( 'error' );
}
//$path = storage_path($filename); //file_get_contents($path)
//return response()->file($pathToFile, $headers);
//return response()->download($pathToFile, $name, $headers);
}

View file

@ -6,7 +6,7 @@ use App\Models\Customer;
use App\Models\CustomerFile;
use App\Models\CustomerMail;
use App\Repositories\CustomerMailRepository;
use App\Repositories\FileRepository;
use App\Repositories\CustomerFileRepository;
use Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\URL;
@ -64,9 +64,14 @@ class CustomerMailController extends Controller
}
public function delete($id){
/*
\Session()->flash('alert-success', __('Eintrag gelöscht'));
return redirect(route('lead_detail', [$lead->id]));*/
$customer_mail = CustomerMail::find($id);
$customer_mail->dir = 12;
$customer_mail->travel_country_id = null;
$customer_mail->draft = false;
$customer_mail->save();
\Session()->flash('alert-success', __('Mail gelöscht'));
return back();
}
@ -108,7 +113,11 @@ class CustomerMailController extends Controller
public function sendMail(CustomerMailRepository $customerMailRepository){
$data = Request::all();
$customerMailRepository->sendAndStore($data);
\Session()->flash('alert-success', "Mails gesendet!");
if($data['action'] == 'draft'){
\Session()->flash('alert-success', "Entwurf gespeichert!");
}else{
\Session()->flash('alert-success', "Mail gesendet!");
}
return back();
}
@ -168,10 +177,9 @@ class CustomerMailController extends Controller
->make(true);
}
public function uploadAttachment($id){
$fileRepo = new FileRepository(new CustomerFile());
$fileRepo = new CustomerFileRepository(new CustomerFile());
if($id === 'tmp'){
$fileRepo->_set('disk', 'customer');
$fileRepo->_set('dir', '/attachment/'.date('Y/m').'/');
@ -186,6 +194,124 @@ class CustomerMailController extends Controller
'code' => 200
], 200);
}
public function ajax(){
$data = Request::all();
$ret = "";
$status = false;
if(Request::ajax()){
if($data['action'] === 'toggle_important'){
$customer_mail = CustomerMail::find($data['id']);
$customer_mail->important = ($customer_mail->important ? false : true);
$customer_mail->save();
$status = 'success';
}
}
return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]);
}
private function getSearchRequests()
{
if (!Request::get('booking_id')) {
return false;
}
$query = CustomerMail::where('booking_id', '=', Request::get('booking_id'));
if (Request::get('customer_mail_dir') == 11) { //draft
$query->where('draft', '=', true);
}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'));
}
return $query;
}
public function getRequests(){
$query = $this->getSearchRequests();
return \DataTables::eloquent($query)
->addColumn('checkbox', function (CustomerMail $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 (CustomerMail $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_mail_ajax').'" data-id="'.$customer_mail->id.'" data-important="'.$customer_mail->important.'" data-action="toggle_important"></a>';
})
->addColumn('subject', function (CustomerMail $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_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="customerMail"
data-action="'.$action.'" data-url="'.$url.'" data-redirect="back"
data-customer_mail_id="'.$customer_mail->id.'" data-route="'.route('booking_modal_load').'">
'.$to_icon.'<i class="ion '.$icon.' ui-w-30 text-center" style="opacity: 0.7"></i>'.$customer_mail->subject.'
'.($customer_mail->customer_files->count() ? '&nbsp; <i class="ion ion-md-attach"> <span class="badge badge-primary indicator">'.$customer_mail->customer_files->count().'</span></i>' : '');
})
->addColumn('date', function (CustomerMail $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 (CustomerMail $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_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.'">
<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>
&nbsp;
<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.'">
<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>
&nbsp;';
}
$ret .= '<a href="'.route('customer_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>';
})
/* ->filter(function ($query) {
if (request()->has('search.value')) {
$query->where('subject', 'like', "%" . request('search.value') . "%");
}
if (request()->has('data_table_search')) {
$query->where('subject', 'like', "%" . request('data_table_search') . "%");
}
})*/
/*->filterColumn('subject', function($query, $keyword) {
if($keyword != ""){
$query->whereRaw("subject LIKE ?", '%'.$keyword.'%');
}
})*/
->orderColumn('date', 'sent_at $1')
->orderColumn('subject', 'subject $1')
->orderColumn('important', 'important $1')
->rawColumns(['checkbox', 'important', 'subject', 'date', 'action'])
->make(true);
}
}

View file

@ -116,6 +116,10 @@ class HomeController extends Controller
$booking_id = str_replace('drafts_edit_booking_', '', $show);
return redirect(route('booking_detail', [$booking_id]));
}
if(strpos($show, 'edit_booking_') !== false){
$booking_id = str_replace('edit_booking_', '', $show);
return redirect(route('booking_detail', [$booking_id]));
}
if($show == 'requests'){
return redirect(route('requests'));
}

View file

@ -2,7 +2,9 @@
namespace App\Http\Controllers;
use App\Models\Airline;
use App\Models\Booking;
use App\Models\CustomerMail;
use App\Models\Status;
use App\Models\Sym\TravelCountry;
use App\Models\TravelAgenda;
@ -32,6 +34,8 @@ class RequestController extends Controller
$filter_refund = Booking::$refund_types;
$filter_xx_tkt = Booking::$xx_tkt_types;
$filter_airlines = Airline::get()->pluck('name', 'id')->toArray();
unset($filter_paying_out[0]);
unset($filter_refund[0]);
unset($filter_xx_tkt[0]);
@ -44,6 +48,7 @@ class RequestController extends Controller
'filter_paying_out_status' => $filter_paying_out_status,
'filter_refund' => $filter_refund,
'filter_xx_tkt' => $filter_xx_tkt,
'filter_airlines' => $filter_airlines,
];
return view('request.index', $data);
}
@ -73,7 +78,7 @@ class RequestController extends Controller
*/
private function getSearchRequests(){
$query = Booking::with('lead')->where('lead_id', '!=', NULL);
$query = Booking::with('lead')->with('customer_mails')->where('lead_id', '!=', NULL);
if(Request::get('full_firstname_search') != ""){
$query->where('participant_firstname', 'LIKE', '%'.Request::get('full_firstname_search').'%');
@ -109,6 +114,9 @@ class RequestController extends Controller
if(Request::get('travel_option_xx_tkt') != ""){
$query->where('xx_tkt', '=', Request::get('travel_option_xx_tkt'));
}
if(Request::get('travel_option_airline_id') != ""){
$query->where('airline_id', '=', Request::get('travel_option_airline_id'));
}
// $query->where('end_date', '<=', $now);
@ -218,7 +226,6 @@ class RequestController extends Controller
return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id');
}
public function loadModal(){
$data = Request::all();
$ret = "";
@ -227,11 +234,11 @@ class RequestController extends Controller
$query = $this->getSearchRequests();
$bookings = $query->orderBy('id', 'DESC')->limit(50)->get();
foreach ($bookings as $booking){
$tmp = "";
$tmp .= $booking->customer ? $booking->customer->email." | " : "- | ";
$tmp .= $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | ";
$tmp .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | ";
$tmp .= $booking->travelagenda_id ? $booking->travel_agenda->name."" : "-";
$tmp = [];
$tmp['email'] = $booking->customer ? $booking->customer->email : "";
$tmp['name'] = $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | ";
$tmp['name'] .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | ";
$tmp['name'] .= $booking->travelagenda_id ? $booking->travel_agenda->name."" : "-";
$data['customers'][$booking->id] = $tmp;
}
$ret = CustomerMailRepository::loadModal($data);
@ -294,22 +301,17 @@ class RequestController extends Controller
$icon = '<i class="fa fa-times-circle"></i> ';
}
return '<span data-order="'.$booking->lead->status_id.'"><span class="badge badge-dark" style="background-color: '.$color.'">'.$icon.$booking->lead->status->name.'</span></span>';
}
return '<span data-order="0">-</span>';
})
->addColumn('last_customer_email', function (Booking $booking) {
//umbuchen
if($booking->customer_mails->count()){
$customer_mail = $booking->customer_mails_sent_at->last();
return '<a href="'.route('booking_detail', [$booking->id]).'#collapseBookingMails" data-order="'.$customer_mail->sent_at.'"><span class="badge '.($customer_mail->is_answer ? 'badge-default' : 'badge-secondary').'">'.$customer_mail->sent_at.'</span></a>';
return '<a data-order="'.$customer_mail->getSentAtRaw().'" href="'.route('booking_detail', [$booking->id]).'#collapseBookingMails" data-order="'.$customer_mail->sent_at.'"><span class="badge '.($customer_mail->is_answer ? 'badge-default' : 'badge-secondary').'">'.$customer_mail->sent_at.'</span></a>';
}
return '<span data-order="0">-</span>';
return '<span data-order="">-</span>';
})
->addColumn('paying_out', function (Booking $booking) {
$icon = "";
$badge = $booking->getPayingOutColor();
@ -325,21 +327,33 @@ class RequestController extends Controller
->addColumn('paying_out_status', function (Booking $booking) {
return '<span data-order="'.$booking->paying_out_status.'"><span class="badge badge-'.$booking->getPayingOutStatusColor().'">'.$booking->getPayingOutStatusType().'</span></span>';
})
->addColumn('airline_id', function (Booking $booking) {
return $booking->airline ? '<span data-order="'.$booking->airline_id.'">'.$booking->airline->name.'</span>' : '-';
})
->addColumn('refund', function (Booking $booking) {
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>';
})
->addColumn('xx_tkt', function (Booking $booking) {
return '<span data-order="'.$booking->xx_tkt_date.'"><span class="badge badge-'.$booking->getXxTktColor().'">'.$booking->getXxTktTypeList().'</span></span>';
})
/* ->filterColumn('travel_country_id', function($query, $keyword) {
if($keyword != "") {
$query->whereRaw("travel_country_id = ?", $keyword);
}
->orderColumn('last_customer_email', function ($query, $order) {
})
$query->whereHas('customer_mails',
function ($q) use ($order) {
// $q->select('sent_at')->where('sent_at', DB::raw("(select max('sent_at') customer_mails)")); //)
})->orderBy(
CustomerMail::select('sent_at')
->whereColumn('booking_id', 'booking.id')
->orderBy('sent_at', 'DESC')
->limit(1)
, $order);
})
/*
->filterColumn('travelagenda_id', function($query, $keyword) {
if($keyword != ""){
$query->whereRaw("travelagenda_id = ?", $keyword);
@ -359,9 +373,11 @@ class RequestController extends Controller
->orderColumn('paying_out', 'paying_out $1')
->orderColumn('paying_out_status', 'paying_out_status $1')
->orderColumn('refund', 'refund_date $1')
->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', 'sf_guard_user_id', 'lead.status_id', 'last_customer_email', 'id', 'travel_documents', 'paying_out', 'paying_out_status', 'refund', 'xx_tkt'])
->rawColumns(['action_lead_edit', 'lead_id', 'participant_firstname', 'participant_name', 'action_booking_edit', 'travel_country_id', 'travelagenda_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'])
->make(true);
}
}

View file

@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Airline;
use App\Models\Booking;
use Request;
class AirlineController extends Controller
{
public function __construct()
{
$this->middleware('admin');
}
public function index($step = false)
{
$data = [
'airline' => Airline::all(),
];
return view('settings.airline.index', $data);
}
public function update(){
$data = Request::all();
if(isset($data['contact_emails'])){
$data['contact_emails'] = explode('#', str_replace(array("\r\n", "\r", "\n"),"#",$data['contact_emails']));
}else{
$data['contact_emails'] = null;
}
if($data['id'] === "new"){
$model = Airline::create($data);
}else{
$model = Airline::find($data['id']);
$model->name = $data['name'];
$model->name_full = $data['name_full'];
$model->contact_emails = $data['contact_emails'];
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('admin_settings_airline'));
}
public function delete($id){
//TODO check ist linked
/*if(Booking::where('travelagenda_id', $id)->count()){
\Session()->flash('alert-error', 'Eintrag wird verwendet');
return redirect()->back();
}*/
$model = Airline::findOrFail($id);
if(Booking::where('airline_id', $model->id)->count()){
\Session()->flash('alert-error', 'Fehler: Airline in Buchnungen verwendet.');
return redirect()->back();
}
$model->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect()->back();
}
}

View file

@ -5,8 +5,6 @@ namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Status;
use App\Models\TravelNationality;
use App\Models\TravelNationalityRequirement;
use Request;
class BookingStatusController extends Controller

View file

@ -4,9 +4,7 @@ namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Booking;
use App\Models\Keyword;
use App\Models\TravelAgenda;
use Request;
class KeywordController extends Controller

View file

@ -0,0 +1,49 @@
<?php
namespace App\Libraries;
use \setasign\Fpdi\Fpdi;
class CouponPDF extends Fpdi
{
protected $_tplIdx;
protected $is_static_coupon;
public function _set($name, $value){
$this->{$name} = $value;
}
public function Header()
{
if($this->is_static_coupon){
$file = './pdf/coupon/images/coupon-background.pdf';
}else{
$file = './pdf/coupon/images/coupon-background1.pdf';
}
if (null === $this->_tplIdx) {
$this->setSourceFile($file);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx);
}
/*function Footer() {
$this->SetFont('Helvetica', '', 10);
$this->SetXY(15, 260);
$this->Cell(180, 0, '', 'T');
$this->Ln();
$this->SetXY(15, 261);
$this->MultiCell(180, 6, utf8_decode($this->_footer_data), 0, 'C');
$this->Ln();
} // end of footer
*/
}

56
app/Models/Airline.php Normal file
View file

@ -0,0 +1,56 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class Airline
*
* @property int $id
* @property string $name
* @property string $name_full
* @property Carbon $created_at
* @property Carbon $updated_at
* @package App\Models
* @property array|null $contact_emails
* @property array|null $emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereContactEmails($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereEmails($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereNameFull($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Airline whereUpdatedAt($value)
* @mixin \Eloquent
*/
class Airline extends Model
{
protected $connection = 'mysql';
protected $table = 'airlines';
protected $fillable = [
'name',
'name_full',
'emails',
'contact_emails',
];
protected $casts = ['contact_emails' => 'array'];
public function getContactEmailsStr($glue=PHP_EOL){
if($this->contact_emails){
return implode($glue, $this->contact_emails);
}
return "";
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Arrangement

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class ArrangementTemplate

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class ArrangementType

View file

@ -8,7 +8,7 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Booking
@ -116,6 +116,44 @@ use Reliese\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereWebsiteId($value)
* @mixin \Eloquent
* @property-read int|null $service_provider_entries_count
* @property float|null $canceled
* @property float|null $price_canceled
* @property int|null $paying_out
* @property int|null $paying_out_status
* @property int|null $airline_id
* @property int|null $refund
* @property \Illuminate\Support\Carbon|null $refund_date
* @property int|null $hold
* @property int|null $xx_tkt
* @property string|null $xx_tkt_date
* @property string|null $filekey
* @property-read \App\Models\Airline|null $airline
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerMail[] $customer_mails
* @property-read int|null $customer_mails_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CustomerMail[] $customer_mails_sent_at
* @property-read int|null $customer_mails_sent_at_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereAirlineId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCanceled($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFilekey($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereHold($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePayingOut($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePayingOutStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceCanceled($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereRefund($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereRefundDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereXxTkt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereXxTktDate($value)
* @property int|null $is_rail_fly
* @property string|null $notice
* @property-read \App\Models\CustomerMail $customer_mail_last
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereIsRailFly($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereNotice($value)
* @property-read int|null $booking_applications_count
* @property-read int|null $booking_confirmations_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingStorno[] $booking_stornos
* @property-read int|null $booking_stornos_count
* @property-read int|null $booking_vouchers_count
* @property-read int|null $travel_insurances_count
*/
class Booking extends Model
{
@ -144,6 +182,8 @@ class Booking extends Model
'final_payment' => 'float',
'travelagenda_id' => 'int',
'paying_out' => 'int',
'hold' => 'int',
'airline_id' => 'int',
'refund' => 'int',
'xx_tkt' => 'int',
@ -192,6 +232,8 @@ class Booking extends Model
'travelagenda_id',
'paying_out',
'paying_out_status',
'airline_id',
'hold',
'refund',
'refund_date',
'xx_tkt',
@ -225,7 +267,14 @@ class Booking extends Model
2 => 'erledigt',
];
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'],
];
protected $paying_out_colors = [
0 => '',
1 => 'info',
@ -252,6 +301,38 @@ class Booking extends Model
1 => 'danger',
2 => 'success',
];
/*
*
* <ul class="tabscontrol flatlist clearfix" id="tabscontrol">
<li class="tab"><a href="#customer" class="active"><?php echo __('Kunde') ?></a></li>
<?php if ($booking->relatedExists('Application')): ?>
<li class="tab"><a href="#application" class="active"><?php echo __('Reiseanmeldung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Confirmation')): ?>
<li class="tab"><a href="#confirmation" class="active"><?php echo __('Reisebestätigung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Invoice')): ?>
<li class="tab"><a href="#invoice" class="active"><?php echo __('Rechnung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Storno')): ?>
<li class="tab"><a href="#storno" class="active"><?php echo __('Storno') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('TravelInsurance')): ?>
<li class="tab"><a href="#travelinsurance" class="active"><?php echo __('Versicherung') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('InsuranceCertificate')): ?>
<li class="tab"><a href="#insurance" class="active"><?php echo __('Sicherungsschein') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Voucher')): ?>
<li class="tab"><a href="#voucher" class="active"><?php echo __('Voucher') ?></a></li>
<?php endif; ?>
<?php if ($booking->relatedExists('Coupon')): ?>
<li class="tab"><a href="#coupon" class="active"><?php echo __('Gutscheine') ?></a></li>
<?php endif; ?>
*/
/*public function branch()
{
return $this->belongsTo(Branch::class);
@ -303,6 +384,11 @@ class Booking extends Model
return $this->belongsTo(TravelAgenda::class, 'travelagenda_id');
}
public function airline()
{
return $this->belongsTo(Airline::class, 'airline_id');
}
public function arrangements()
{
return $this->hasMany(Arrangement::class);
@ -313,35 +399,18 @@ class Booking extends Model
return $this->hasMany(ArrangementType::class);
}
/*public function booking_applications()
{
return $this->hasMany(BookingApplication::class);
}
public function booking_confirmations()
{
return $this->hasMany(BookingConfirmation::class);
}*/
public function booking_draft_items()
{
return $this->hasMany(BookingDraftItem::class)->orderBy('pos', 'ASC');
}
/*public function booking_invoices()
{
return $this->hasMany(BookingInvoice::class);
}*/
public function booking_service_items()
{
return $this->hasMany(BookingServiceItem::class);
}
/*public function booking_vouchers()
{
return $this->hasMany(BookingVoucher::class);
}*/
public function coupons()
{
@ -373,11 +442,41 @@ class Booking extends Model
{
return $this->hasMany(CustomerMail::class, 'booking_id')->orderBy('sent_at', 'ASC');
}
/*
public function customer_mail_last()
{
return $this->hasOne(CustomerMail::class, 'booking_id')->latest();
}
public function booking_applications()
{
return $this->hasMany(BookingApplication::class);
}
public function booking_confirmations()
{
return $this->hasMany(BookingConfirmation::class);
}
public function booking_stornos()
{
return $this->hasMany(BookingStorno::class);
}
/*public function booking_invoices()
{
return $this->hasMany(BookingInvoice::class);
}*/
public function booking_vouchers()
{
return $this->hasMany(BookingVoucher::class);
}
public function travel_insurances()
{
return $this->hasMany(TravelInsurance::class);
}*/
}
public function calculate_price_total()
@ -461,6 +560,21 @@ class Booking extends Model
return Carbon::parse($this->attributes['end_date'])->format(\Util::formatDateDB());
}
public function getBookingDateFormat(){
if(!$this->attributes['booking_date']){ return ""; }
return Carbon::parse($this->attributes['booking_date'])->format(\Util::formatDateDB());
}
//erlös #getRevenueFactor
public function proceedsRaw(){
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
$total += $entry->amount / $entry->factor;
}
return $this->attributes['price'] - $total;
}
//erlös #getRevenueFactor
public function proceeds(){
@ -483,6 +597,16 @@ class Booking extends Model
return $total;
}
public function getServiceProviderPaymentsTotalRaw()
{
$total = 0;
foreach ($this->service_provider_entries as $entry)
{
$total += $entry->amount;
}
return $total;
}
public function getServiceProviderPaymentsTotal()
{
$total = 0;
@ -513,6 +637,16 @@ class Booking extends Model
return $this->ev_number;
}
public function getBookingNumber()
{
if ($this->lead)
{
return $this->lead->id;
}
return null;
}
public function getPayingOutType(){
return isset(self::$paying_out_types[$this->paying_out]) ? self::$paying_out_types[$this->paying_out] : '-';
}
@ -565,5 +699,14 @@ 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){
if($dir === 11){
return $this->customer_mails->where('draft', true)->count();
}
if($country){
return $this->customer_mails->where('dir', $dir)->where('travel_country_id', $country)->count();
}
return $this->customer_mails->where('dir', $dir)->count();
}
}

View file

@ -0,0 +1,53 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingApplication
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingApplication whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingApplication extends Model
{
protected $table = 'booking_application';
protected $casts = [
'booking_id' => 'int',
'total' => 'float',
];
protected $fillable = [
'booking_id',
'total',
'binary_data'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -0,0 +1,72 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingConfirmation
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $deposit
* @property float $final_payment
* @property Carbon $deposit_payment_date
* @property Carbon $final_payment_date
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereDepositPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingConfirmation whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingConfirmation extends Model
{
protected $table = 'booking_confirmation';
protected $casts = [
'booking_id' => 'int',
'total' => 'float',
'deposit' => 'float',
'final_payment' => 'float',
];
protected $dates = [
'deposit_payment_date',
'final_payment_date'
];
protected $fillable = [
'booking_id',
'total',
'deposit',
'final_payment',
'deposit_payment_date',
'final_payment_date',
'binary_data'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -145,9 +145,15 @@ class BookingDraftItem extends Model
public function getStartDateAttribute(){
return isset($this->attributes['start_date']) ? Carbon::parse($this->attributes['start_date'])->format("d.m.Y") : '';
}
public function getStartDateRow(){
return isset($this->attributes['start_date']) ? Carbon::parse($this->attributes['start_date']) : null;
}
public function getEndDateAttribute(){
return isset($this->attributes['end_date']) ? Carbon::parse($this->attributes['end_date'])->format("d.m.Y") : '';
}
public function getEndDateRow(){
return isset($this->attributes['end_date']) ? Carbon::parse($this->attributes['end_date']) : null;
}
public function setStartDateAttribute($value)
{
@ -157,6 +163,10 @@ class BookingDraftItem extends Model
$this->attributes['start_date'] = (new Carbon($value))->format('Y-m-d');
}
}
public function setStartDateRow($value)
{
$this->attributes['start_date'] = $value;
}
public function setEndDateAttribute($value){
if (!$value) {
$this->attributes['end_date'] = null;
@ -164,6 +174,9 @@ class BookingDraftItem extends Model
$this->attributes['end_date'] = (new Carbon($value))->format('Y-m-d');
}
}
public function setEndDateRow($value){
$this->attributes['end_date'] = $value;
}
//price_adult
public function setPriceAdultAttribute($value)

View file

@ -0,0 +1,72 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingInvoice
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $deposit
* @property float $final_payment
* @property Carbon $deposit_payment_date
* @property Carbon $final_payment_date
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereDepositPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingInvoice whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingInvoice extends Model
{
protected $table = 'booking_invoice';
protected $casts = [
'booking_id' => 'int',
'total' => 'float',
'deposit' => 'float',
'final_payment' => 'float',
];
protected $dates = [
'deposit_payment_date',
'final_payment_date'
];
protected $fillable = [
'booking_id',
'total',
'deposit',
'final_payment',
'deposit_payment_date',
'final_payment_date',
'binary_data'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingServiceItem

View file

@ -0,0 +1,68 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingStorno
*
* @property int $id
* @property int $booking_id
* @property float $total
* @property float $storno
* @property Carbon $storno_date
* @property boolean $binary_data
* @property bool $done
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereDone($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereStorno($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereStornoDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingStorno whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingStorno extends Model
{
protected $table = 'booking_storno';
protected $casts = [
'booking_id' => 'int',
'total' => 'float',
'storno' => 'float',
'done' => 'bool'
];
protected $dates = [
'storno_date'
];
protected $fillable = [
'booking_id',
'total',
'storno',
'storno_date',
'binary_data',
'done'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -0,0 +1,49 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class BookingVoucher
*
* @property int $id
* @property int $booking_id
* @property boolean $binary_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereBinaryData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingVoucher whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingVoucher extends Model
{
protected $table = 'booking_voucher';
protected $casts = [
'booking_id' => 'int',
];
protected $fillable = [
'booking_id',
'binary_data'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class CMSAuthor

View file

@ -8,7 +8,7 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Coupon
@ -44,6 +44,8 @@ use Reliese\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereValidDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereValue($value)
* @mixin \Eloquent
* @property string|null $text
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Coupon whereText($value)
*/
class Coupon extends Model
{
@ -90,4 +92,9 @@ class Coupon extends Model
{
return $this->hasMany(Booking::class);
}
public function isLegal(){
//TODO
return false;
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class CreditCardType

View file

@ -8,7 +8,7 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Customer

View file

@ -6,12 +6,13 @@
namespace App\Models;
use App\User;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class CustomerFile
*
*
* @property int $id
* @property int $customer_id
* @property int $customer_mail_id
@ -24,11 +25,26 @@ use Reliese\Database\Eloquent\Model;
* @property int $size
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @property Customer $customer
* @property CustomerMail $customer_mail
*
* @package App\Models
* @property-read \App\User $user
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereCustomerMailId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereDir($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereExt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereFilename($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereMine($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereOriginalName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereSize($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerFile whereUpdatedAt($value)
* @mixin \Eloquent
*/
class CustomerFile extends Model
{

View file

@ -8,11 +8,11 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class CustomerMail
*
*
* @property int $id
* @property int $booking_id
* @property int $customer_id
@ -20,8 +20,15 @@ use Reliese\Database\Eloquent\Model;
* @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 $travel_country_id
* @property bool $draft
* @property bool $important
* @property bool $send
* @property bool $fail
* @property string $error
@ -30,28 +37,73 @@ use Reliese\Database\Eloquent\Model;
* @property Carbon $delivered_at
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @property Booking $booking
* @property Customer $customer
* @property CustomerMail $customer_mail
* @property TravelCountry $travel_country
* @property Lead $lead
* @property Collection|CustomerFile[] $customer_files
* @property Collection|CustomerMail[] $customer_mails
*
* @package App\Models
* @property-read int|null $customer_files_count
* @property-read int|null $customer_mails_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereBcc($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCc($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDeliveredAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDir($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDraft($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereError($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereFail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereImportant($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereIsAnswer($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereLeadId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereMessage($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereRecipient($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereReplyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereScheduledAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSend($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSentAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSubject($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereTravelCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereUpdatedAt($value)
* @mixin \Eloquent
*/
class CustomerMail extends Model
{
protected $table = 'customer_mails';
public $dir_types = [
0 => 'Reisender',
1 => 'Agentur',
2 => 'Flug',
3 => 'Versicherung',
11 => 'Entwurf',
12 => 'Papierkorb',
];
protected $casts = [
'booking_id' => 'int',
'customer_id' => 'int',
'lead_id' => 'int',
'is_answer' => 'bool',
'reply_id' => 'int',
'dir' => 'int',
'travel_country_id' => 'int',
'draft' => 'bool',
'important' => 'bool',
'send' => 'bool',
'fail' => 'bool'
'fail' => 'bool',
'recipient' => 'array',
'cc' => 'array',
'bcc' => 'array'
];
protected $dates = [
@ -67,8 +119,15 @@ class CustomerMail extends Model
'is_answer',
'reply_id',
'email',
'recipient',
'cc',
'bcc',
'subject',
'message',
'dir',
'travel_country_id',
'draft',
'important',
'send',
'fail',
'error',
@ -92,6 +151,11 @@ class CustomerMail extends Model
return $this->belongsTo(CustomerMail::class, 'reply_id');
}
public function travel_country()
{
return $this->belongsTo(TravelCountry::class);
}
public function lead()
{
return $this->belongsTo(Lead::class);
@ -107,6 +171,9 @@ class CustomerMail extends Model
return $this->hasMany(CustomerMail::class, 'reply_id');
}
public function getSentAtRaw(){
return $this->attributes['sent_at'];
}
public function getSentAtAttribute(){
if(!$this->attributes['sent_at']){ return ""; }

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class InitialContactType

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Inquiry

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class InquiryTemplate

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class InquiryType

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class InsuranceCertificate
@ -44,7 +44,6 @@ class InsuranceCertificate extends Model
protected $casts = [
'booking_id' => 'int',
'internal_id' => 'int',
'binary_data' => 'boolean'
];
protected $fillable = [

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Keyword

View file

@ -8,7 +8,7 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Lead
@ -91,6 +91,8 @@ use Reliese\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereWebsiteId($value)
* @mixin \Eloquent
* @property-read \App\Models\Sym\TravelCountry|null $travel_country_crm
* @property bool|null $is_rebook
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereIsRebook($value)
*/
class Lead extends Model
{

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class LeadParticipant

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Offer

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Participant

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Salutation

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Searchengine

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class ServiceProvider

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class ServiceProviderEntry
@ -102,7 +102,13 @@ class ServiceProviderEntry extends Model
$ret = $this->amount_eur;
}
return number_format($ret, 2, ',', '.');
;
}
public function getAmountFinalEurRaw(){
if($this->amount_eur && $this->amount_eur > 0){
return $this->amount_eur;
}
return $this->amount;
}
public function getPaymentDateFormat(){

View file

@ -7,20 +7,27 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Status
*
*
* @property int $id
* @property string $name
* @property int $handling_days
* @property string $color
*
* @property Collection|Lead[] $leads
* @property Collection|StatusHistory[] $status_histories
*
* @package App\Models
* @property-read int|null $leads_count
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereColor($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereHandlingDays($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereName($value)
* @mixin \Eloquent
*/
class Status extends Model
{

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class StatusHistory

View file

@ -38,6 +38,8 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactLands($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Booking[] $bookings
* @property-read int|null $bookings_count
* @property array|null $contact_emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereContactEmails($value)
*/
class TravelCountry extends Model
{
@ -57,15 +59,14 @@ class TravelCountry extends Model
'contact_text_3',
'contact_text_4',
'contact_footer',
'contact_emails',
];
protected $casts = ['contact_lands' => 'array'];
protected $casts = ['contact_lands' => 'array', 'contact_emails' => 'array'];
public $timestamps = false;
/*public function leads()
{
return $this->hasMany(Lead::class, 'travelcountry_id', 'id');
@ -76,8 +77,17 @@ class TravelCountry extends Model
return $this->hasMany(Booking::class, 'travel_country_id', 'id');
}
public function getCountryLands(){
$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->name;
}
}
}else{
$ret[$this->id] = $this->name;
}
return $ret;
}
}

View file

@ -1,210 +0,0 @@
<?php
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\Booking
*
* @property int $id
* @property string|null $booking_date
* @property int $customer_id
* @property int|null $lead_id
* @property int|null $new_drafts
* @property int $sf_guard_user_id
* @property int $branch_id
* @property float|null $service_fee
* @property int|null $travel_country_id
* @property int|null $travel_category_id
* @property int|null $pax
* @property int|null $coupon_id
* @property \Illuminate\Support\Carbon $created_at
* @property \Illuminate\Support\Carbon $updated_at
* @property string|null $title
* @property string|null $start_date
* @property string|null $end_date
* @property int|null $website_id
* @property string|null $travel_number
* @property string|null $participant_name
* @property string|null $participant_firstname
* @property string|null $participant_birthdate
* @property int|null $participant_salutation_id
* @property string|null $ev_number
* @property string|null $merlin_knr
* @property string|null $merlin_order_number
* @property int|null $travel_company_id
* @property int|null $travel_documents
* @property float|null $price
* @property float|null $price_total
* @property float|null $deposit_total
* @property float|null $final_payment
* @property string|null $final_payment_date
* @property int|null $travelagenda_id
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Sym\Arrangement[] $arrangements
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\BookingDraftItem[] $booking_draft_items
* @property-read \App\Models\TravelCountry|null $lead
* @property-read \App\Models\SfGuardUser $sf_guard_user
* @property-read \App\Models\TravelAgenda|null $travel_agenda
* @property-read \App\Models\TravelCountry|null $travel_country
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereBookingDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereBranchId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCouponId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereCustomerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereDepositTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereEndDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereEvNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFinalPayment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereFinalPaymentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereLeadId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereMerlinKnr($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereMerlinOrderNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereNewDrafts($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantBirthdate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantFirstname($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereParticipantSalutationId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePax($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking wherePriceTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereServiceFee($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereSfGuardUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereStartDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCategoryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelDocuments($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereTravelagendaId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereWebsiteId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking query()
* @property-read int|null $arrangements_count
* @property-read int|null $booking_draft_items_count
*/
class _Booking extends Model
{
protected $connection = 'mysql';
protected $table = 'booking';
/*protected $fillable = [
'pos',
];*/
public function booking_draft_items()
{
return $this->hasMany('App\Models\BookingDraftItem', 'booking_id', 'id')->orderBy('pos', 'ASC');
}
//on crm
public function travel_agenda()
{
return $this->belongsTo('App\Models\TravelAgenda', 'travelagenda_id', 'id');
}
public function travel_country()
{
return $this->belongsTo('App\Models\TravelCountry', 'travel_country_id', 'crm_id');
}
public function lead()
{
return $this->belongsTo('App\Models\Lead', 'lead_id', 'id');
}
public function sf_guard_user()
{
return $this->belongsTo('App\Models\SfGuardUser', 'sf_guard_user_id', 'id');
}
public function arrangements()
{
return $this->hasMany('App\Models\Sym\Arrangement', 'booking_id', 'id')->orderBy('view_position', 'DESC');
}
public function calculate_price_total()
{
$travel_draft_item = false;
$travel_price_adult = 0;
$travel_price_children = 0;
$total_adult = 0;
$total_children = 0;
foreach ($this->booking_draft_items as $booking_draft_item) {
//24 Rundreise
if($booking_draft_item->draft_type_id == 24){
$travel_draft_item = $booking_draft_item;
continue;
}
$prices = $booking_draft_item->getItemPrice();
//Grundpreis Reise
if($booking_draft_item->draft_type_id == 30){
$travel_price_adult += $prices['adult'];
$travel_price_children += $prices['children'];
}
$total_adult += $prices['adult'];
$total_children += $prices['children'];
}
if($travel_draft_item){
$travel_draft_item->setPriceAdultRaw($travel_price_adult);
$travel_draft_item->setPriceChildrenRaw($travel_price_children);
$travel_draft_item->save();
}
$this->price = $total_adult + $total_children;
$this->save();
}
public function getPriceAttribute()
{
// 2 = decimal places | '.' = decimal seperator | ',' = thousand seperator
return number_format(($this->attributes['price']), 2, ',', '.');
}
public function findBeforeDraftItemRelation($reid)
{
$before = false;
foreach($this->booking_draft_items as $booking_draft_items) {
if ($booking_draft_items->id == $reid) {
return $before;
}
$before = $booking_draft_items;
}
return false;
}
public function findAfterDraftItemRelation($reid)
{
$next = false;
foreach($this->booking_draft_items as $booking_draft_items) {
if($next){
return $booking_draft_items;
}
if ($booking_draft_items->id == $reid) {
$next = true;
}
}
return false;
}
public function getStartDateFormat(){
if(!$this->attributes['start_date']){ return ""; }
return Carbon::parse($this->attributes['start_date'])->format(\Util::formatDateDB());
}
public function getEndDateFormat(){
if(!$this->attributes['end_date']){ return ""; }
return Carbon::parse($this->attributes['end_date'])->format(\Util::formatDateDB());
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class TravelBooking

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class TravelCategory

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class TravelCompany

View file

@ -58,6 +58,8 @@ use Illuminate\Support\Str;
* @property array|null $contact_lands
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactLands($value)
* @property-read int|null $travel_nationality_requirements_count
* @property array|null $contact_emails
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereContactEmails($value)
*/
class TravelCountry extends Model
{
@ -81,13 +83,14 @@ class TravelCountry extends Model
'contact_text_4',
'contact_footer',
'entry_requirements',
'contact_emails',
'is_customer_country',
'active_frontend',
'active_backend'
];
protected $casts = ['contact_lands' => 'array'];
protected $casts = ['contact_lands' => 'array', 'contact_emails' => 'array'];
public $timestamps = false;
@ -115,6 +118,26 @@ class TravelCountry extends Model
}
}
public function getContactEmailsStr($glue=PHP_EOL){
if(isset($this->contact_emails)){
return implode($glue, $this->contact_emails);
}
return "";
}
public function getContactLandsArray(){
$ret = [];
if($this->contact_lands){
foreach ($this->contact_lands as $contact_land_id){
$travel_country = TravelCountry::where('crm_id', $contact_land_id)->first();
if($travel_country){
$ret[] = $travel_country->name;
}
}
}
return $ret;
}
public function getNationalityRequirement($travel_nationality_id){
$model = TravelNationalityRequirement::where('travel_country_id', $this->id)->where('travel_nationality_id', $travel_nationality_id)->first();

View file

@ -0,0 +1,65 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class TravelInsurance
*
* @property int $id
* @property int $booking_id
* @property string $policy_number
* @property string $ak
* @property string $an
* @property string $akt
* @property float $premium
* @property string $request_data
* @property Carbon $created_at
* @property Carbon $updated_at
* @property Booking $booking
* @package App\Models
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAk($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAkt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereAn($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance wherePolicyNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance wherePremium($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereRequestData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelInsurance whereUpdatedAt($value)
* @mixin \Eloquent
*/
class TravelInsurance extends Model
{
protected $table = 'travel_insurance';
protected $casts = [
'booking_id' => 'int',
'premium' => 'float'
];
protected $fillable = [
'booking_id',
'policy_number',
'ak',
'an',
'akt',
'premium',
'request_data'
];
public function booking()
{
return $this->belongsTo(Booking::class);
}
}

View file

@ -7,7 +7,7 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Reliese\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Model;
/**
* Class Website

View file

@ -10,7 +10,7 @@ use Util;
use Validator;
class FileRepository extends BaseRepository {
class CustomerFileRepository extends BaseRepository {
protected $rules;

View file

@ -3,11 +3,12 @@
namespace App\Repositories;
use App\Mail\MailSendFeWoService;
use App\Mail\MailSendInfo;
use App\Models\Airline;
use App\Models\Booking;
use App\Models\CustomerFile;
use App\Models\CustomerMail;
use App\Services\Util;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Mail;
@ -26,6 +27,8 @@ class CustomerMailRepository extends BaseRepository {
}
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 = [];
@ -36,20 +39,27 @@ class CustomerMailRepository extends BaseRepository {
}
}
}
foreach ($data['send_mail_to'] as $booking_id => $on) {
$booking = Booking::find($booking_id);
if ($booking->customer) {
$message = $this->prepareContent($booking, $data['message']);
$subject = $this->prepareContent($booking, $data['subject']);
$reply_id = isset($data['customer_mail_id']) ? $data['customer_mail_id'] : NULL;
$customer_mail = $this->store($booking, $subject, $message, $booking->customer->email, false, $reply_id);
$this->sendMail($customer_mail, $customer_files);
foreach ($customer_files as $file) {
$file->customer_id = $booking->customer_id;
$file->customer_mail_id = $customer_mail->id;
$file->save();
$data['draft'] = (isset($data['action']) && $data['action'] === 'draft' ? true : false);
if(!$data['draft']){
$data['message'] = $this->prepareContent($booking, $data['message']);
$data['subject'] = $this->prepareContent($booking, $data['subject']);
}
$reply_id = isset($data['customer_mail_id']) ? $data['customer_mail_id'] : NULL;
$email = isset($data['send_mail_to_mail'][$booking_id]) ? $data['send_mail_to_mail'][$booking_id] : $booking->customer->email;
$customer_mail = $this->store($booking, $data, $email, false, $reply_id);
foreach ($customer_files as $file) {
$file->customer_id = $booking->customer_id;
$file->customer_mail_id = $customer_mail->id;
$file->save();
}
if(isset($data['action']) && $data['action'] === 'send'){ //not at draft
$this->sendMail($customer_mail);
}
}
}
}
@ -67,10 +77,11 @@ class CustomerMailRepository extends BaseRepository {
}
}
if ($booking->customer) {
$data['draft'] = (isset($data['action']) && $data['action'] === 'draft' ? true : false);
$mail_from = isset($data['mail_from']) ? $data['mail_from'] : $booking->customer->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, $data['subject'], $data['message'], $mail_from, true, $reply_id, $sent_at);
$customer_mail = $this->store($booking, $data, $mail_from, true, $reply_id, $sent_at);
foreach ($customer_files as $file) {
$file->customer_id = $booking->customer_id;
$file->customer_mail_id = $customer_mail->id;
@ -81,26 +92,68 @@ class CustomerMailRepository extends BaseRepository {
}
}
public function store($booking, $subject, $message, $mail_from, $is_answer = false, $reply_id = NULL, $sent_at=false){
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([
'booking_id' => $booking->id,
'customer_id' => $booking->customer_id,
'lead_id' => $booking->lead_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,
'travel_country_id' => $data['travel_country_id'],
'draft' => $data['draft'],
'sent_at' => $sent_at ? $sent_at : now(),
])->save();
}else{
$customer_mail = CustomerMail::create([
'booking_id' => $booking->id,
'customer_id' => $booking->customer_id,
'lead_id' => $booking->lead_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,
'travel_country_id' => $data['travel_country_id'],
'draft' => $data['draft'],
'sent_at' => $sent_at ? $sent_at : now(),
]);
}
$customer_mail = CustomerMail::create([
'booking_id' => $booking->id,
'customer_id' => $booking->customer_id,
'lead_id' => $booking->lead_id,
'is_answer' => $is_answer,
'reply_id' => $reply_id,
'email' => $mail_from,
'subject' => $subject,
'message' => $message,
'sent_at' => $sent_at ? $sent_at : now(),
]);
return $customer_mail;
}
private function sendMail($customer_mail, $customer_files){
try{
Mail::to($customer_mail->email)->send(new MailSendInfo($customer_mail->subject, $customer_mail->message, $customer_files));
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
@ -124,48 +177,65 @@ class CustomerMailRepository extends BaseRepository {
$country = $booking->travel_country_id ? $booking->travel_country->name : "-";
$program = $booking->travelagenda_id ? $booking->travel_agenda->name : "-";
$salutation = $booking->customer->salutation->name;
$start_date = $booking->getStartDateFormat();
$end_date = $booking->getEndDateFormat();
$booking_date = $booking->getBookingDateFormat();
$airline = $booking->airline ? $booking->airline->name_full : '-';
$dear = $booking->customer->salutation_id == 1 ? 'geehrter' : 'geehrte';
$search = ['#geehrte/r#', '#Anrede#', '#Vorname#', '#Nachname#', '#Reiseland#', '#Programm#'];
$replace = [$dear, $salutation, $first_name, $last_name, $country, $program, $salutation];
$search = ['#geehrte/r#', '#Anrede#', '#Vorname#', '#Nachname#', '#Reiseland#', '#Programm#', '#Anreisedatum#', '#Abreisedatum#', '#Buchungsdatum#', '#Airline#'];
$replace = [$dear, $salutation, $first_name, $last_name, $country, $program, $start_date, $end_date, $booking_date, $airline];
$content = str_replace($search, $replace, $content);
return $content;
}
private static function prepareContactMails($value){
if(isset($value->customers) && $value->customer_mail_dir > 0){
$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){
$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;
}
public static function loadModal($data)
{
$value = new Collection();
$value->title = "";
$value->subtitle = "";
$value->url = "";
if ($data['action'] === "new-customer-mail") {
if (isset($data['booking_id'])) {
$value->id = $data['booking_id'];
$value->customers = $data['customers'];
$value->subject = "";
$value->message = "Sehr #geehrte/r# #Anrede# #Vorname# #Nachname#,\n\nText ....";
$value->s_placeholder = "Betreff der E-Mail";
$value->m_placeholder = "Nachricht der E-Mail";
if(isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])){
$value->subject = "Re: ".$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'];
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
}
}
$value->recipient = "";
$value->cc = "";
$value->bcc = "";
/*Ansicht*/
if ($data['action'] === "show-customer-mail") {
if (isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])) {
$value->url = $data['url'];
@ -173,17 +243,96 @@ class CustomerMailRepository extends BaseRepository {
return view("customer.mail.modal-show-mail", compact('data', 'value', 'customer_mail'))->render();
}
}
/* neue Mail */
if ($data['action'] === "edit-customer-mail") {
$value->id = $data['id']; //
$customer_mail = CustomerMail::find($value->id);
$booking = $customer_mail->booking;
$value->customer_files = $customer_mail->customer_files;
$value->save_customer_mail_id = $customer_mail->id;
$value->draft = true;
$value->id = $customer_mail->booking_id;
$value->booking = $booking;
$value->show = 'single';
$tmp = [];
$tmp['email'] = $customer_mail->email ? $customer_mail->email : "";
$tmp['name'] = $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | ";
$tmp['name'] .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | ";
$tmp['name'] .= $booking->travelagenda_id ? $booking->travel_agenda->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->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;
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
}
/* neue Mail */
if ($data['action'] === "new-customer-mail") {
$value->id = "";
$value->draft = false;
//singel
if (isset($data['booking_id']) && $booking = Booking::find($data['booking_id'])) {
$value->id = $data['booking_id'];
$value->booking = $booking;
$value->show = 'single';
$value->draft = true;
}else{
//multi
$value->show = 'multi';
}
$value->customers = $data['customers'];
$value->subject = "";
$value->message = "<p>Sehr #geehrte/r# #Anrede# #Vorname# #Nachname#,</p><p>Text ...</p>";
$value->s_placeholder = "Betreff der E-Mail";
$value->m_placeholder = "Nachricht der E-Mail";
if(isset($data['customer_mail_id']) && $customer_mail = CustomerMail::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_country = isset($data['customer_mail_country']) ? $data['customer_mail_country'] : 0;
$value = self::prepareContactMails($value);
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
}
/*Antwort speichern*/
if ($data['action'] === "reply-customer-mail") {
if (isset($data['booking_id']) && $booking = Booking::find($data['booking_id'])) {
$value->id = $data['booking_id'];
$value->draft = false;
$value->booking = $booking;
$value->message = "";
$value->subject = "";
$value->s_placeholder = "Betreff des Kunden";
$value->m_placeholder = "Nachricht des Kunden";
if(isset($data['customer_mail_id']) && $customer_mail = CustomerMail::find($data['customer_mail_id'])){
$value->subject = "Re: ".$customer_mail->subject;
$value->subject = "Re: ".Util::_first_replace($customer_mail->subject);
$value->customer_mail = $customer_mail;
}
$value->title = "E-Mail Antwort speichern";
@ -193,7 +342,11 @@ 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 = self::prepareContactMails($value);
return view("customer.mail.modal-new-mail", compact('data', 'value'))->render();
}

View file

@ -515,5 +515,74 @@ class DraftRepository extends BaseRepository {
return null;
}
public function change_dates_drafts_from_booking($new_start_date)
{
$booking = $this->model;
$start_date = $booking->start_date;
$_start_date = $booking->start_date;
$_end_date = $booking->end_date;
$new_start_date = Carbon::parse($new_start_date);
//$duration = $booking->start_date->diffInDays($booking->end_date, false);
$diff_days = $booking->start_date->diffInDays($new_start_date, false);
//new start date booking
$_start_date->modify($diff_days.' days');
//new end date booking
$_end_date->modify($diff_days.' days');
/*dump($diff_days);
dump($_start_date);
dump($_end_date);
*/
if($booking->booking_draft_items){
foreach ($booking->booking_draft_items as $booking_draft_item){
/* dump($booking_draft_item->id);
$start_date_temp = null;
$end_date_temp = null;
if($booking_draft_item->draft_item){
if($booking_draft_item->draft_item->days_start > 0){
$start_date_temp = clone $start_date;
$start_date_temp->addDay($booking_draft_item->draft_item->days_start-1+$diff_days);
dump($start_date_temp->format("d.m.Y"));
}
if($booking_draft_item->draft_item->days_duration > 0){
$end_date_temp = clone $start_date;
$end_date_temp->addDay($booking_draft_item->draft_item->days_duration-1+$diff_days);
dump($end_date_temp->format("d.m.Y"));
}
}*/
$d_start_date = null;
$d_end_date = null;
if($d_start_date = $booking_draft_item->getStartDateRow()){
$d_start_date->modify($diff_days.' days');
//dump($d_start_date->format('d.m.Y'));
$booking_draft_item->setStartDateRow($d_start_date->format('Y-m-d'));
}
if($d_end_date = $booking_draft_item->getEndDateRow()){
$d_end_date->modify($diff_days.' days');
//sdump($d_end_date->format('d.m.Y'));
$booking_draft_item->setEndDateRow($d_end_date->format('Y-m-d'));
}
/*if($start_date_temp != null && $start_date_temp == $d_start_date){
dump(true);
}
if($end_date_temp != null && $end_date_temp == $d_end_date){
dump(true);
}*/
$booking_draft_item->save();
}
}
if(!$booking->origin_start_date){
$booking->origin_start_date = $booking->start_date;
}
$booking->start_date = $_start_date;
$booking->end_date = $_end_date;
$booking->save();
return true;
}
}

View file

@ -0,0 +1,175 @@
<?php
namespace App\Services;
use App\Libraries\CouponPDF;
use App\Models\Coupon;
class CreateCouponPDF {
protected $pdfRenderer;
protected $coupon;
protected $styles = array();
protected $pdf;
public function __construct(Coupon $coupon)
{
$this->coupon = $coupon;
}
public function create(){
// initiate FPDI
$pdf = new CouponPDF();
if($this->coupon->text == NULL && $this->coupon->value == 50.00){
$is_static_coupon = true;
$pdf->_set('is_static_coupon', true);
}else{
$is_static_coupon = false;
$pdf->_set('is_static_coupon', false);
}
$pdf->AddFont('Helvetica', '', 'helvetica.php');
$pdf->AddPage('P', array(210, 297));
if ($this->coupon->isLegal()) {
$pdf->SetXY(20, 90);
$pdf->SetTextColor(230, 10, 10);
$pdf->SetFont('Helvetica', 'B', 28);
$pdf->Cell(80, 20, utf8_decode('Der Gutschein ist nicht mehr gültig!'), 0, 0, 'L');
}
if(!$is_static_coupon){
$pdf->SetXY(30, 55);
$pdf->SetTextColor(16, 77, 140);
$pdf->SetFont('Helvetica', 'B', 50);
$pdf->Cell(80, 20, Util::_number_format($this->coupon->value), 0, 0, 'L');
}
$pdf->SetDrawColor(16, 77, 140);
$pdf->SetFillColor(16, 77, 140);
$pdf->SetLineWidth(0.4);
$pdf->Rect(126, 31, 74, 20, 'DF');
$pdf->SetTextColor(255,255,255);
$x = 128;
$y = 32;
$border = 0;
$pdf->SetXY($x, $y);
$pdf->SetFont('Helvetica', 'B', 10);
$pdf->Cell(30, 6, "Nummer:", $border, 0, 'L');
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(40, 6, $this->coupon->number, $border, 0, 'R');
$y += 6;
$pdf->SetXY($x, $y);
$pdf->SetFont('Helvetica', 'B', 10);
$pdf->Cell(30, 6, utf8_decode('Gültig vom:'), $border, 0, 'L');
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(40, 6, Util::_format_date($this->coupon->issue_date), $border, 0, 'R');
$y += 6;
$pdf->SetXY($x, $y);
$pdf->SetFont('Helvetica', 'B', 10);
$pdf->Cell(30, 6, utf8_decode('Gültig bis:'), $border, 0, 'L');
$pdf->SetFont('Helvetica', '', 10);
$pdf->Cell(40, 6, Util::_format_date($this->coupon->valid_date), $border, 0, 'R');
//$pdf->SetDrawColor(16, 77, 140);
$pdf->SetFillColor(16, 77, 140);
$pdf->Rect(126, 56, 74, 7.5, 'DF');
$pdf->Rect(126, 56, 74, 35, 'D');
$x = 128;
$y = 56;
$pdf->SetXY($x, $y);
$pdf->SetFont('Helvetica', 'B', 10);
$pdf->Cell(40, 7.5, utf8_decode('Ausgestellt für:'), $border, 0, 'L');
$pdf->SetTextColor(16, 77, 140);
$pdf->SetFont('Helvetica', '', 10);
$customerName = ($this->coupon->customer && $this->coupon->customer->salutation ? $this->coupon->customer->salutation->name . ' ' : '' )
. ($this->coupon->customer->title ? $$this->coupon->customer->title . ' ' : '' )
. $this->coupon->customer->fullName();
$customerStreet = $this->coupon->customer ? $this->coupon->customer->street : '';
$customerRegion = $this->coupon->customer->zip ? $this->coupon->customer->zip." " : '';
$customerRegion .= $this->coupon->customer->city ? $this->coupon->customer->city : '';
$y += 12;
$pdf->SetXY($x, $y);
$pdf->Cell(70, 5.5, utf8_decode($customerName), $border, 0, 'L');
$y += 5.5;
$pdf->SetXY($x, $y);
$pdf->Cell(70, 5.5, utf8_decode($customerStreet), $border, 0, 'L');
$y += 5.5;
$pdf->SetXY($x, $y);
$pdf->Cell(70, 5.5, utf8_decode($customerRegion), $border, 0, 'L');
$x = 128;
$y = 106;
$pdf->SetXY($x, $y);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Helvetica', 'B', 10);
$sender = 'STERN TOURS GmbH'."\n".
'Emser Straße 3'."\n".
'10719 Berlin'."\n\n".
'Fon: +49 (0) 30 700 9410 0'."\n".
'Fax: +49 (0) 30 700 9410 44'."\n".
'e-Mail: stern@sterntours.de'."\n".
'Internet: www.sterntours.de'."\n";
$pdf->MultiCell(70, 5.5, utf8_decode($sender), $border, 'L');
if($is_static_coupon) {
$x = 12;
$y = 155.5;
$pdf->SetXY($x, $y);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Helvetica', 'B', 10);
$pdf->Cell(130, 5.5, utf8_decode('Gutscheinbedingungen:'), $border, 0, 'L');
$pdf->SetFont('Helvetica', '', 7);
$terms = '- gültig bei Pauschalreisen, Last Minute & More, Hotel und Ferienhäuser'."\n".
'- nur Einlösbar bei Buchungen mit einem Gesamtreisepreis von mind. Euro 750,-'."\n".
'- Der Gutscheinbetrag wird Ihnen nach Reiseantritt der nächsten Reise per'."\n".
' Banküberweisung zugestellt'."\n".
'- der Reise-Gutschein kann bis einen Tag vor Abreise eingelöst werden'."\n".
'- pro Buchung kann nur ein Reise-Gutschein eingelöst werden'."\n".
'- der Reise-Gutschein kann nicht auf Stornokosten angerechnet werden'."\n".
'- bei Stornierung der Reise wird der Reise-Gutschein ungültig und nicht ausgezahlt'."\n".
'- der Reise-Gutschein ist nicht übertragbar'."\n";
$y += 5.5;
$pdf->SetXY($x, $y);
$pdf->MultiCell(130, 3.5, utf8_decode($terms), $border, 'L');
}else{
$x = 12;
$y = 157;
$pdf->SetXY($x, $y);
$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont('Helvetica', '', 9);
if( $this->coupon->text !== ""){
$text = $this->coupon->text;
$text = preg_replace("/\r\n|\n|\r/", "\n", $text);
$pdf->MultiCell(180, 4.2, utf8_decode($text), 0, 'L');
}
}
$this->pdf = $pdf;
}
public function output($filename, $cd){
if($cd){
return $this->pdf->Output($filename, 'D');
}
return $this->pdf->Output();
}
}
?>

View file

@ -233,12 +233,10 @@ class HTMLHelper
}
public static function getTravelCountriesOptions($countryId = false){
$checked = [];
if($countryId){
!is_array($countryId) ? $checked = array($countryId) : $checked = $countryId;
}
$options = TravelCountry::where('active_backend',1)->get();
$ret = '';
foreach ($options as $option){

View file

@ -1,18 +1,14 @@
<?php
namespace App\Services;
class Util
{
public static function formatDate(){
if(\App::getLocale() == "en"){
return 'yyyy-mm-dd';
}
return 'dd.mm.yyyy';
}
public static function formatDateDB(){
@ -42,6 +38,39 @@ class Util
}
public static function _number_format($value){
return number_format(($value), 2, ',', '.');
}
public static function _first_replace($value, $search='re:', $replace=''){
do {
$before = strlen($value);
$value = trim(preg_replace('/^'.$search.'/i', $replace, $value));
}while($before !== strlen($value));
return $value;
}
public static function _explodeLines($value = false){
if($value){
return explode('#', str_replace(array("\r\n", "\r", "\n"),"#", $value));
}
return null;
}
public static function _implodeLines($value, $glue=PHP_EOL){
if(is_array($value)){
return implode($glue, $value);
}
return "";
}
public function getContactEmailsStr($glue=PHP_EOL){
if(isset($this->contact_emails)){
return implode($glue, $this->contact_emails);
}
return "";
}
public static function _clean_float($value){
$groups = explode(".", preg_replace("/[^0-9.-]/", "", str_replace(',', '.', $value)));
@ -74,9 +103,7 @@ class Util
$clean;
}
public static function replacePlaceholders($search, $replace){
preg_match_all("/\{{(.+?)\}}/", $search, $matches);
if (isset($matches[1]) && count($matches[1]) > 0){
foreach ($matches[1] as $key => $value) {
@ -89,11 +116,8 @@ class Util
return $search;
}
public static function cleanHTML($html)
{
$html = str_replace('font-size: 14px;', ' ', $html);
$html = str_replace('font-weight: lighter; ', ' ', $html);
$html = str_replace('font-family: Helvetica, Arial, sans-serif; ', ' ', $html);

Binary file not shown.

Binary file not shown.

View file

@ -16,6 +16,8 @@
"require": {
"php": "^7.2",
"barryvdh/laravel-dompdf": "^0.8.5",
"setasign/fpdf": "1.8.*",
"setasign/fpdi": "^2.0",
"cviebrock/eloquent-sluggable": "*",
"doctrine/dbal": "*",
"fideloper/proxy": "*",

1484
composer.lock generated

File diff suppressed because it is too large Load diff

29
config/fpdf.php Normal file
View file

@ -0,0 +1,29 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Default configuration for FPDF
|--------------------------------------------------------------------------
|
| Specify the default values for creating a PDF with FPDF
|
*/
'orientation' => 'P',
'unit' => 'mm',
'size' => 'A4',
/*
|--------------------------------------------------------------------------
| With Laravel Vapor hosting
|--------------------------------------------------------------------------
|
| If the application is to be hosted in the Laravel Vapor hosting platform,
| a special header needs to be attached to each download response.
|
*/
'useVaporHeaders' => env('FPDF_VAPOR_HEADERS', false),
];

View file

@ -52,7 +52,7 @@ return [
|
*/
'parent' => Reliese\Database\Eloquent\Model::class,
'parent' => Illuminate\Database\Eloquent\Model::class,
/*
|--------------------------------------------------------------------------

View file

@ -38,6 +38,7 @@ return [
'sua-st-tn' => ['name' => 'SUPERADMIN > Einstellungen > Nationalitäten' , 'color' => 'superadmin'],
'sua-st-bs' => ['name' => 'SUPERADMIN > Einstellungen > Reisestatus' , 'color' => 'superadmin'],
'sua-st-ke' => ['name' => 'SUPERADMIN > Einstellungen > Keywords' , 'color' => 'superadmin'],
'sua-st-al' => ['name' => 'SUPERADMIN > Einstellungen > Airline' , 'color' => 'superadmin'],
'sua-re' => ['name' => 'SUPERADMIN > Export' , 'color' => 'superadmin'],
'sua-re-bo' => ['name' => 'SUPERADMIN > Export > Buchungen' , 'color' => 'superadmin'],
'sua-re-pp' => ['name' => 'SUPERADMIN > Export > Leistungsträger' , 'color' => 'superadmin'],

View file

@ -35,9 +35,10 @@ class CreateTravelCountryTable extends Migration
$table->text('contact_text_4')->nullable();
$table->text('contact_footer')->nullable();
$table->text('entry_requirements')->nullable(); //need?
$table->text('contact_emails')->nullable();
$table->boolean('is_customer_country');
$table->boolean('active_frontend')->default(false);
$table->boolean('active_backend')->default(true);

View file

@ -33,6 +33,7 @@ class CreateBookingTable extends Migration
$table->string('title', 255)->nullable();
$table->date('start_date')->nullable();
$table->date('end_date')->nullable();
$table->date('origin_start_date')->nullable();
$table->bigInteger('website_id')->nullable();
$table->string('travel_number', 80)->nullable();
$table->string('participant_name', 255)->nullable();
@ -54,8 +55,11 @@ class CreateBookingTable extends Migration
$table->bigInteger('travelagenda_id')->nullable();
$table->tinyInteger('paying_out')->nullable()->default(0);
$table->tinyInteger('paying_out_status')->nullable()->default(0);
$table->unsignedBigInteger('airline_id')->nullable();
$table->tinyInteger('refund')->nullable()->default(0);
$table->date('refund_date')->nullable();
$table->tinyInteger('hold')->nullable()->default(0);
$table->tinyInteger('xx_tkt')->nullable()->default(0);
$table->dateTime('updated_at');
$table->dateTime('created_at');
@ -88,6 +92,8 @@ class CreateBookingTable extends Migration
')->onUpdate('RESTRICT');
$table->foreign('travelagenda_id', 'booking_travelagenda_id_travel_agenda_id')->references('id')->on('travel_agenda')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('airline_id', 'booking_airline_id_airline_id')->references('id')->on('airline')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
});
}

View file

@ -23,11 +23,22 @@ class CreateCustomerMailsTable extends Migration
$table->boolean('is_answer')->default(false);
$table->unsignedBigInteger('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('travel_country_id')->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();
@ -54,6 +65,11 @@ class CreateCustomerMailsTable extends Migration
->references('id')
->on('customer_mails');
$table->foreign('travel_country_id')
->references('id')
->on('travel_country');
});
}

View file

@ -23,7 +23,7 @@ class CreateBookingStornoTable extends Migration
$table->decimal('total', 10, 2)->default(0.00);
$table->decimal('storno', 10, 2)->default(0.00);
$table->date('storno_date')->nullable();
//$table->UNKNOWN:longblob('binary_data');
$table->binary('binary_data');
$table->tinyInteger('done')->nullable()->default(0);
$table->dateTime('created_at');
$table->dateTime('updated_at');

View file

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

View file

@ -0,0 +1,48 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
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 CreateBookingApplicationTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking_application', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('booking_id');
$table->decimal('total', 10, 2)->default(0.00);
$table->binary('binary_data');
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->index('booking_id', 'booking_application_booking_id_idx');
$table->foreign('booking_id', 'booking_application_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking_application');
}
}

View file

@ -0,0 +1,52 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
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 CreateBookingConfirmationTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking_confirmation', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('booking_id');
$table->decimal('total', 10, 2)->default(0.00);
$table->decimal('deposit', 10, 2)->default(0.00);
$table->decimal('final_payment', 10, 2)->default(0.00);
$table->date('deposit_payment_date')->nullable();
$table->date('final_payment_date');
$table->binary('binary_data');
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->index('booking_id', 'booking_confirmation_booking_id_idx');
$table->foreign('booking_id', 'booking_confirmation_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking_confirmation');
}
}

View file

@ -0,0 +1,52 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
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 CreateBookingInvoiceTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking_invoice', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('booking_id');
$table->decimal('total', 10, 2)->default(0.00);
$table->decimal('deposit', 10, 2)->default(0.00);
$table->decimal('final_payment', 10, 2)->default(0.00);
$table->date('deposit_payment_date')->nullable();
$table->date('final_payment_date');
$table->binary('binary_data');
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->index('booking_id', 'booking_id_idx');
$table->foreign('booking_id', 'booking_invoice_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking_invoice');
}
}

View file

@ -0,0 +1,47 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
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 CreateBookingVoucherTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking_voucher', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('booking_id');
$table->binary('binary_data');
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->index('booking_id', 'booking_voucher_booking_id_idx');
$table->foreign('booking_id', 'booking_voucher_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking_voucher');
}
}

View file

@ -0,0 +1,53 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
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 CreateTravelInsuranceTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('travel_insurance', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('booking_id');
$table->string('policy_number', 10);
$table->string('ak', 255);
$table->string('an', 255);
$table->string('akt', 255);
$table->decimal('premium', 10, 2);
$table->text('request_data')->nullable();
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->index('booking_id', 'booking_id_idx');
$table->index('booking_id', 'travel_insurance_booking_id_idx');
$table->foreign('booking_id', 'travel_insurance_booking_id_booking_id')->references('id')->on('booking')->onDelete('CASCADE
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('travel_insurance');
}
}

View file

@ -21,6 +21,7 @@ class CreateSalutationTable extends Migration
$table->bigIncrements('id');
$table->string('name', 255);
});
}

BIN
public/128.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -341,7 +341,7 @@ figcaption {
margin: 0;
width: auto;
}
/*
.messages-wrapper {
position: relative;
display: -ms-flexbox;
@ -696,11 +696,81 @@ figcaption {
left: auto
}
}
*/
.btn-next {
border-color: rgba(0, 0, 0, 0);
background: #8897AA;
color:#fff
}
.btn-next:hover {
border-color: rgba(0, 0, 0, 0);
background: #818fa2;
color:#fff
}
.btn-next:focus, .btn-next.focus {
box-shadow:0 0 0 2px rgba(136, 151, 170, 0.4)
}
.btn-next.disabled, .btn-next:disabled {
border-color: rgba(0, 0, 0, 0) !important;
background: #8897AA !important;
box-shadow: none !important;
color:#fff !important
}
.btn-next .badge {
background: #fff;
color:#8897AA
}
.btn-next:active, .btn-next.active, .show > .btn-next.dropdown-toggle {
border-color: rgba(0, 0, 0, 0);
background: #768394;
box-shadow:none
}
.btn-group .btn-next, .input-group-prepend .btn-next, .input-group-append .btn-next {
border-right: 1px solid #768394;
border-left:1px solid #768394
}
.badge-md {
font-size: 0.95em;
}
.table.table-sm td {
font-size: 0.9em;
}
.badge-next {
background-color: #8897AA;
color:#fff;
}
.badge-next[href]:hover, .badge-next[href]:focus {
background-color: #768394;
color:#fff;
text-decoration: none;
}
.badge-dark {
background-color: rgba(200, 21, 176, 0.9);
color: #fff;
}
.badge-dark[href]:hover, .badge-dark[href]:focus {
background-color: rgb(176, 21, 152);
}
.badge-success {
background-color: #94ae59;
color: #fff;
}
.text-success {
color: #94ae59 !important;
}
.default-style .datepicker-dropdown {
z-index: 2080 !important;
@ -708,3 +778,6 @@ figcaption {
.default-style .dtp {
z-index: 2080;
}
.table th, .table td {
padding: 0.4rem;
}

View file

@ -151,7 +151,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 + '.selectpicker').selectpicker('refresh');
initModalInner();
@ -170,6 +170,41 @@ $(function () {
});
function ajax_object_action(event, object, callback) {
event.preventDefault();
var data = {};
$.each(object.data(), function(index, value){
data[index] = value;
});
var url = data['url'];
/*console.log(data);
console.log(url);*/
$.ajax({
url: url,
data: data,
type: "POST",
dataType: "json",
cache: false,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
encode: true,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(data) {
//data will send data to callback function
callback(data);
},
error: function(xhr, status, errorThrown) {
console.log(xhr);
console.log(xhr.responseText);
console.log(status);
console.log(errorThrown);
console.log("Sorry, there was a problem!");
}
});
return false;
}
function update_modal_data_show(e, $ele) {
e.preventDefault();
@ -178,8 +213,8 @@ function update_modal_data_show(e, $ele) {
data = {id:ele.data('data')} ,
contentType = 'application/x-www-form-urlencoded; charset=UTF-8';
console.log(data);
console.log(url);
/* console.log(data);
console.log(url);*/
$.ajax({
url: url,
data: data,
@ -381,25 +416,5 @@ $(function() {
e.preventDefault();
$('.messages-wrapper, .messages-card').toggleClass('messages-sidebox-open');
});
// New message
// {
if (!window.Quill) {
$('#message-editor,#message-editor-toolbar').remove();
$('#message-editor-fallback').removeClass('d-none');
} else {
$('#message-editor-fallback').remove();
new Quill('#message-editor', {
modules: {
toolbar: '#message-editor-toolbar'
},
placeholder: 'Type your message...',
theme: 'snow'
});
}
// }
});

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

View file

@ -1 +1 @@
/Users/kevinadametz/Websites/mein.sterntours.local/storage/app/public
/Users/kadmin/Websites/mein.sterntours.local/storage/app/public

View file

@ -0,0 +1,141 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Leistungsträger-Zahlungen
<a class="btn btn-default btn-sm float-right" href="{{ make_old_url('backend.php') }}" > zurück ins v1 CRM</a>
</h4>
<div class="card">
{!! Form::open(['url' => route('admin_report_export_bookings'), 'class' => '']) !!}
<div class="ui-bordered px-4 pt-3 mb-0">
<div class="form-row align-items-center">
<div class="col-12 col-md-4 mb-4">
<label class="form-label">Reisedatum</label>
<div class="row">
<div class="input-group col-6 pr-0">
<div class="input-group-prepend">
<span class="input-group-text">von</span>
</div>
<input class="form-control datepicker-base" name="filter_travel_date_from" type="text" value="">
</div>
<div class="input-group col-6 pl-1">
<div class="input-group-prepend">
<span class="input-group-text">bis</span>
</div>
<input class="form-control datepicker-base" name="filter_travel_date_to" type="text" value="">
</div>
</div>
</div>
<div class="col-12 col-md-4 mb-4">
<label class="form-label">Buchungsdatum</label>
<div class="row">
<div class="input-group col-6 pr-0">
<div class="input-group-prepend">
<span class="input-group-text">von</span>
</div>
<input class="form-control datepicker-base" name="filter_booking_date_from" type="text" value="">
</div>
<div class="input-group col-6 pl-1">
<div class="input-group-prepend">
<span class="input-group-text">bis</span>
</div>
<input class="form-control datepicker-base" name="filter_booking_date_to" type="text" value="">
</div>
</div>
</div>
<div class="col-6 col-md-1 mb-4 mt-4">
<a href="{{ route('admin_report_bookings') }}" class="btn icon-btn btn-sm btn-outline-dark float-right">
<span class="fa fa-sync"></span>
</a>
</div>
</div>
</div>
<div class="card-datatable table-responsive">
<table class="datatables-report table table-striped table-bordered">
<thead>
<tr>
<th>BuchungsID</th>
<th>{{__('Status')}}</th>
<th>{{__('MyJack Nr.')}}</th>
<th>{{__('Reisepreis')}}</th>
<th>{{__('Erlös')}}</th>
<th>{{__('Kunde')}}</th>
<th>{{__('Reisedatum')}}</th>
<th>{{__('bis')}}</th>
<th>{{__('Buchungsdatum')}}</th>
<th>{{__('Reiseveranstalter')}}</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr>
<td colspan="3">Total</td>
<td id="price_total_sum">0</td>
<td id="proceed_total_sum">0</td>
<td colspan="5"></td>
</tr>
</tfoot>
</table>
<div class="mt-4 col">
<button type="submit" name="export" value="export" class="btn btn-primary"><i class="ion"></i> Export </button>
</div>
</div>
{!! Form::close() !!}
</div>
<script>
$( document ).ready(function() {
var table = $('.datatables-report').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": '{!! route( 'admin_report_bookings_datatable' ) !!}',
"data": function(d) {
d.filter_travel_date_from = $('input[name=filter_travel_date_from]').val();
d.filter_travel_date_to = $('input[name=filter_travel_date_to]').val();
d.filter_booking_date_from = $('input[name=filter_booking_date_from]').val();
d.filter_booking_date_to = $('input[name=filter_booking_date_to]').val();
}
},
"columns": [
{ data: 'id', name: 'id' },
{ data: 'lead.status_id', name: 'lead.status_id', orderable: false, searchable: false },
{ data: 'merlin_order_number', name: 'merlin_order_number' },
{ data: 'price', name: 'price' },
{ data: 'proceeds', name: 'proceeds' },
{ data: 'customer.fullName', name: 'customer.fullName' },
{ data: 'start_date', name: 'start_date' },
{ data: 'end_date', name: 'end_date' },
{ data: 'booking_date', name: 'booking_date' },
{ data: 'service_provider.names', name: 'service_provider.names' },
],
"order": [[ 0, "desc" ]],
"orderSequence": ["desc", "asc"],
"bLengthChange": false,
"iDisplayLength": 100,
"language": {
"url": "/js/German.json"
},
drawCallback: function (settings) {
$('#price_total_sum').html(settings.json.price_total_sum);
$('#proceed_total_sum').html(settings.json.proceed_total_sum);
}
});
$('#filter_service_provider_id, #filter_is_cleared, #filter_sort_by').on('change', function(){
table.order( [ 0, 'desc' ] ).draw();
});
$('.datepicker-base').on('change', function(){
table.order( [ 0, 'desc' ] ).draw();
});
});
</script>
@endsection

View file

@ -11,7 +11,7 @@
<div class="ui-bordered px-4 pt-3 mb-0">
<div class="form-row align-items-center">
<div class="col-12 col-md-4 mb-4">
<label class="form-label" for="travel_option_search">Leistungsträger</label>
<label class="form-label" for="filter_service_provider_id">Leistungsträger</label>
<select class="custom-select" name="filter_service_provider_id" id="filter_service_provider_id">
<option value="">Filter aus</option>
@foreach($serviceProviders as $serviceProvider)
@ -38,7 +38,7 @@
</div>
</div>
<div class="col-6 col-md-3 mb-4">
<label class="form-label" for="travel_option_search">Bezahlt</label>
<label class="form-label" for="filter_is_cleared">Bezahlt</label>
<select class="custom-select" name="filter_is_cleared" id="filter_is_cleared">
<option value="">Filter aus</option>
<option value="1">Ja</option>
@ -57,16 +57,27 @@
<table class="datatables-report table table-striped table-bordered">
<thead>
<tr>
<th>ID</th>
<th>SPE ID</th>
<th>BuchungsID</th>
<th>{{__('Reiseveranstalter')}}</th>
<th>{{__('MyJack Nr.')}}</th>
<th>{{__('Reisepreis')}}</th>
<th>{{__('Erlös')}}</th>
<th>{{__('Kunde')}}</th>
<th>{{__('Reisedatum')}}</th>
<th>{{__('bis')}}</th>
<th>{{__('bezahlt')}}</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr>
<td colspan="4">Total</td>
<td id="price_total_sum">0</td>
<td id="proceed_total_sum">0</td>
<td colspan="3"></td>
</tr>
</tfoot>
</table>
<div class="mt-4 col">
@ -85,6 +96,7 @@
"ajax": {
"url": '{!! route( 'admin_report_providers_datatable' ) !!}',
"data": function(d) {
d.filter_sort_by = $('select[name=filter_sort_by]').val();
d.filter_service_provider_id = $('select[name=filter_service_provider_id]').val();
d.filter_travel_date_from = $('input[name=filter_travel_date_from]').val();
d.filter_travel_date_to = $('input[name=filter_travel_date_to]').val();
@ -93,12 +105,14 @@
},
"columns": [
{ data: 'id', name: 'id' },
{ data: 'booking.id', name: 'booking.id' },
{ data: 'service_provider.name', name: 'service_provider.name' },
{ data: 'booking.merlin_order_number', name: 'booking.merlin_order_number' },
{ data: 'booking.price', name: 'booking.price' },
{ data: 'booking.proceeds', name: 'booking.proceeds' },
{ data: 'booking.customer.fullName', name: 'booking.customer.fullName' },
{ data: 'booking.start_date', name: 'booking.start_date' },
{ data: 'booking.end_date', name: 'booking.end_date' },
{ data: 'is_cleared', name: 'is_cleared' },
],
"order": [[ 0, "desc" ]],
@ -107,10 +121,14 @@
"iDisplayLength": 100,
"language": {
"url": "/js/German.json"
},
drawCallback: function (settings) {
$('#price_total_sum').html(settings.json.price_total_sum);
$('#proceed_total_sum').html(settings.json.proceed_total_sum);
}
});
$('#filter_service_provider_id, #filter_is_cleared').on('change', function(){
$('#filter_service_provider_id, #filter_is_cleared, #filter_sort_by').on('change', function(){
table.order( [ 0, 'desc' ] ).draw();
});

View file

@ -32,6 +32,10 @@
.input-group-text {
padding: 0.438rem 0.475rem;
}
.badge.indicator:not(.badge-dot) {
-webkit-transform: translate(20%, -30%);
transform: translate(20%, -30%);
}
</style>
@ -96,6 +100,11 @@
<span class="badge badge-primary">{{$booking->customer_mails->count()}}</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingFiles">
PDF Dateien
</a>
</li>
</ul>
@ -303,7 +312,7 @@
</div>
</div>
</div>
{{--
{{--
<div class="text-left mt-3">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('bookings')}}" class="btn btn-default">{{ __('zur Übersicht') }}</a>
@ -321,7 +330,8 @@
@php($i = 1)
<div class="text-right mb-2 pr-2">
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neue Leistung hinzufügen <i class="fa fa-arrow-up"></i></button>
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neue Leistung hinzufügen <i class="fa fa-arrow-up"></i></button><br>
<button type="button" name="" class="btn btn-sm btn-info mt-2" data-toggle="modal" data-target="#modals-change-travel-dates"><i class="fa fa-sync"></i> Datum der Reise ändern </button>
</div>
<div class="table-responsive mb-4" style="overflow: visible">
<table class="table mb-0" id="table_dragula_tbody" style="min-width: 1080px">
@ -449,217 +459,505 @@
</div>
{!! Form::close() !!}
<!-- Mails -->
<div class="card mb-2">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingMails" aria-expanded="true" aria-controls="collapseBookingMails">
<strong style="line-height: 1.6em">E-Mails</strong>
</h6>
<div class="collapse show" id="collapseBookingMails">
<div class="card-body px-0">
<div class="pl-2">
<button type="button" class="btn btn-sm btn-secondary" data-toggle="modal"
data-target="#modals-load-content"
data-id="new-send"
data-model="customerMail"
data-action="new-customer-mail"
data-url="{{route('customer_mail_send_mail')}}"
data-redirect="back"
data-booking_id="{{$booking->id}}"
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-open"></i>&nbsp; Neue E-Mail an Kunden</button>
<div class="container-fluid d-flex align-items-stretch flex-grow-1 p-0">
<button type="button" class="btn btn-sm btn-default" data-toggle="modal"
data-target="#modals-load-content"
data-id="new-save"
data-model="customerMail"
data-action="reply-customer-mail"
data-url="{{route('customer_mail_reply_mail')}}"
data-redirect="back"
data-booking_id="{{$booking->id}}"
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-unread"></i>&nbsp;E-Mail Antwort speichern</button>
</div>
@if($booking->customer_mails)
<div class="table-responsive">
<table class="datatables-customer table table-striped">
<!-- `.messages-wrapper` fills all available space of container -->
<div class="messages-wrapper">
<!-- Messages sidebox -->
<div class="messages-sidebox messages-scroll bg-body border-right">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Mail-ID')}}</th>
{{-- <th>{{__('E-Mail')}}</th> --}}
<th>{{__('Betreff')}}</th>
<th>{{__('Anhang')}}</th>
<th>{{__('gesendet')}}</th>
<th>{{__('Gesendet')}}</th>
<th>{{__('#')}}</th>
<div class="py-3 px-4">
<div class="media align-items-center">
<div class="media-body text-center">
<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-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-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-open"></i>&nbsp;E-Mail schreiben</button>
</tr>
</thead>
<tbody>
@foreach($booking->customer_mails as $customer_mail)
<tr role="row" class="odd">
<td>
<a href="#" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>
</td>
<td>
<a data-order="{{ $customer_mail->id }}" href="{{route('customer_mail_detail', [$customer_mail->id])}}" data-id="{{$customer_mail->id}}">{{$customer_mail->id}}</a>
</td>
{{-- <td>{{ $customer_mail->email }}</td> --}}
<td> <a href="javascript:void(0)" class="badge @if($customer_mail->is_answer) badge-default @else badge-secondary @endif" data-toggle="modal"
data-target="#modals-load-content"
data-id="new"
data-model="customerMail"
data-action="show-customer-mail"
data-url=""
data-redirect="back"
data-customer_mail_id="{{$customer_mail->id}}"
data-route="{{ route('booking_modal_load') }}">
@if($customer_mail->reply_id)
<i class="ion ion-ios-redo ui-w-30 text-center" style="opacity: 0.7"></i>
@else
<i class="ion ion-ios-mail ui-w-30 text-center" style="opacity: 0.7"></i>
@endif
{{ $customer_mail->subject }}
</a>
</td>
<td>{{ $customer_mail->customer_files->count() }}</td>
<td>
@if($customer_mail->send)
<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>{{ $customer_mail->sent_at }}</td>
<td>
<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="{{$booking->id}}"
data-route="{{ route('booking_modal_load') }}">
<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>
&nbsp;
<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="{{$booking->id}}"
data-route="{{ route('booking_modal_load') }}">
<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>
</td>
</tr>
@endforeach
</tbody>
</table>
<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-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-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-unread"></i>&nbsp;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">&times;</a>
</div>
</div>
@endif
<hr class="border-light mx-4 mt-0 mb-4">
<style>
.sidebox-nav-item {
color: #a3a4a6 !important;
}
.sidebox-nav-item[href]:hover,
.sidebox-nav-item[href]:focus {
color: #8c8e90 !important;
}
.sidebox-nav-item.active .item {
color: #4E5155 !important;
font-weight: 700 !important;
}
</style>
<!-- Mail boxes -->
@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']}}">
<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>
<!-- / Messages sidebox -->
<!-- Messages content wrapper -->
<div class="d-flex flex-column w-100">
<!-- Header -->
<div class="flex-grow-0">
<h4 class="media align-items-center font-weight-bold container-p-x py-3 py-lg-4 m-0">
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block align-self-center text-muted px-3 mr-3"><i class="ion ion-md-more"></i></a>
<div class="media-body">&nbsp;
<i id="message-sidebox-title-icon" class="ion ion-ios-filing"></i> <span id="message-sidebox-title-name">Reisender</span>
</div>
<input type="text" class="form-control form-control-sm" placeholder="Suche ..." style="max-width: 10rem;" id="dataTableInputSearchField">
</h4>
<hr class="border-light m-0">
</div>
<!-- / Header -->
<style>
div.dataTables_info, div.dataTables_paginate {
padding: 10px;
}
</style>
<!-- Wrap `.messages-scroll` to properly position scroll area. Remove this wrapper if you don't need scroll -->
<div class="flex-grow-1 position-relative">
<!-- Remove `.messages-scroll` and add `.flex-grow-1` if you don't need scroll -->
<div class="messages-content flex-grow-1">
<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="">
<table id="datatables-customer-mails" class="table table-striped">
<thead>
<tr>
<th>&nbsp;</th>
{{-- <th>{{__('E-Mail')}}</th> --}}
<th>{{__('Betreff')}}</th>
<th>{{__('Datum')}}</th>
<th style="width: 100px">{{__('#')}}</th>
</tr>
</thead>
<tbody class="">
</tbody>
</table>
</div>
</div><!-- / .messages-content -->
</div>
</div>
</div><!-- / .messages-wrapper -->
</div>
</div>
</div>
<div class="modal fade" id="modals-load-next">
<div class="modal-dialog modal-lg">
<!-- Preis -->
<div class="card mb-2">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingFiles" aria-expanded="false" aria-controls="collapseBookingFiles">
<strong style="line-height: 1.6em">PDF Dateien</strong>
</h6>
<div class="collapse" id="collapseBookingFiles">
@php($booking_files_count = 1)
<div class="card-body row">
<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>&nbsp;</th>
</tr>
</thead>
<tbody>
@if($booking->booking_applications)
@foreach($booking->booking_applications as $booking_application)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['booking_application', $booking_application->id]) }}" target="_blank" class="badge badge-md badge-primary">
<i class="fa fa-file-pdf mr-1"></i> Reiseanmeldung
</a>
</td>
<td>
Gesamtpreis: {{ \App\Services\Util::_number_format($booking_application->total)}} &euro;
</td>
<td>{{\App\Services\Util::_format_date($booking_application->updated_at, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['booking_application', $booking_application->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->booking_confirmations)
@foreach($booking->booking_confirmations as $booking_confirmation)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id]) }}" target="_blank" class="badge badge-md badge-success">
<i class="fa fa-file-pdf mr-1"></i> Reisebestätigung
</a>
</td>
<td>
Gesamtpreis: {{ \App\Services\Util::_number_format($booking_confirmation->total)}} &euro; |
Anzahlung: {{ \App\Services\Util::_number_format($booking_confirmation->deposit)}} &euro; |
Restzahlung: {{ \App\Services\Util::_number_format($booking_confirmation->final_payment)}} &euro;
</td>
<td>{{\App\Services\Util::_format_date($booking_confirmation->updated_at, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->booking_stornos)
@foreach($booking->booking_stornos as $booking_storno)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['booking_storno', $booking_storno->id]) }}" target="_blank" class="badge badge-md badge-danger">
<i class="fa fa-file-pdf mr-1"></i> Stornobestätigung
</a>
</td>
<td>
Stornobetrag: {{ \App\Services\Util::_number_format($booking_storno->total)}} &euro;
</td>
<td>{{\App\Services\Util::_format_date($booking_storno->updated_at, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['booking_storno', $booking_storno->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->coupons)
@foreach($booking->coupons as $coupon)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['coupon', $coupon->id]) }}" target="_blank" class="badge badge-md badge-warning">
<i class="fa fa-file-pdf mr-1"></i> Gutschein {{$coupon->number}}
</a>
</td>
<td>
Wert: {{ \App\Services\Util::_number_format($coupon->value)}} &euro; |
bis: {{\App\Services\Util::_format_date($coupon->valid_date, 'date')}} |
@if($coupon->is_redeemed) <i class="fa fa-check-circle text-success"></i> {{\App\Services\Util::_format_date($coupon->redeem_date, 'date')}} @else <i class="fa fa-times-circle text-danger"></i> @endif
</td>
<td>{{\App\Services\Util::_format_date($coupon->issue_date, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['coupon', $coupon->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->booking_vouchers)
@foreach($booking->booking_vouchers as $booking_voucher)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['booking_voucher', $booking_voucher->id]) }}" target="_blank" class="badge badge-md badge-dark">
<i class="fa fa-file-pdf mr-1"></i> Voucher-ID {{$booking_voucher->id}}
</a>
</td>
<td>
&nbsp;
</td>
<td>{{\App\Services\Util::_format_date($booking_voucher->updated_at, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['booking_vouchers', $booking_voucher->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->insurance_certificates)
@foreach($booking->insurance_certificates as $insurance_certificate)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<a href="{{ route('customer_file_show', ['insurance_certificate', $insurance_certificate->id]) }}" target="_blank" class="badge badge-md badge-next">
<i class="fa fa-file-pdf mr-1"></i> Sicherungsschein Nr. {{$insurance_certificate->internal_id}}
</a>
</td>
<td>
&nbsp;
</td>
<td>{{\App\Services\Util::_format_date($insurance_certificate->updated_at, 'date')}}</td>
<td>
<a href="{{ route('customer_file_show', ['insurance_certificates', $insurance_certificate->id, true]) }}" class="btn btn-xs btn-default"
title="Download" data-placement="left" rel="tooltip">
<i class="fa fa-download"></i>
</a>
</td>
</tr>
@endforeach
@endif
@if($booking->travel_insurances)
@foreach($booking->travel_insurances as $travel_insurances)
<tr>
<th scope="row">{{$booking_files_count++}}</th>
<td>
<i class="fa fa-info-circle mr-1"></i> Policennummer {{$travel_insurances->policy_number}}
</td>
<td>
Gesamtprämie: {{ \App\Services\Util::_number_format($travel_insurances->premium)}} &euro;
</td>
<td>{{\App\Services\Util::_format_date($travel_insurances->updated_at, 'date')}}</td>
<td>
&nbsp;
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
</div>
</div>
<script>
$(document).ready(function() {
<div class="modal fade" id="modals-load-next">
<div class="modal-dialog modal-lg">
$('[rel="tooltip"]').tooltip({trigger: "hover"});
</div>
</div>
<!-- Modal template -->
<div class="modal fade" id="modals-change-travel-dates">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('booking_action', ['change_travel_dates', $booking->id]) }}" method="post" onsubmit="return confirm('Datum wirklich ändern?');">
@csrf
<div class="modal-header">
<h5 class="modal-title">Reise verschieben</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row mb-2">
<label for="">Neues Start-Datum von:</label>
<input type="text" class="form-control datepicker-base" name="change_travel_start_date" value="{{ \App\Services\Util::_format_date($booking->start_date)}}">
</div>
<p>Alle Einträge der Organisistion werden auf das neue Start-Datum angepasst.<br>
Neue Reiseanmeldung, Reisebestätigung vorerst im CRM v2 erstellen.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary">{{__('ändern')}}</button>
</div>
</form>
</div>
</div>
<script>
$(document).ready(function() {
$('[rel="tooltip"]').tooltip({trigger: "hover"});
$('#top-nav-quick-jump .nav-link').on('click', function (e) {
e.preventDefault();
$('#top-nav-quick-jump .nav-link').removeClass('active');
$(this).addClass('active');
$('#top-nav-quick-jump .nav-link').on('click', function (e) {
e.preventDefault();
$('#top-nav-quick-jump .nav-link').removeClass('active');
$(this).addClass('active');
var collapse_id = $(this).data('collapse');
console.log(collapse_id);
$(collapse_id).collapse('show');
// animate
$('html, body').animate({
scrollTop: $(collapse_id).parent('.card').offset().top
}, 300, function(){
var collapse_id = $(this).data('collapse');
console.log(collapse_id);
$(collapse_id).collapse('show');
// animate
$('html, body').animate({
scrollTop: $(collapse_id).parent('.card').offset().top
}, 300, function(){
// when done, add hash to url
// (default click behaviour)
//window.location.hash = collapse_id;
});
// when done, add hash to url
// (default click behaviour)
//window.location.hash = collapse_id;
});
});
$('.datatables-customer').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 5, "desc" ]],
"language": {
"url": "/js/German.json"
}
});
$.dragYScroll();
var sort_item_pos_number = function(){
var index = 1;
$('#table_dragula_tbody .draft_item_tbody').each(function () {
$(this).find('.item_pos_number').html(index);
$(this).data('rowPosition', index);
index++;
});
};
$(function() {
// Drag handle
var sortableItems = dragula([$('#table_dragula_tbody')[0]], {
moves: function (el, container, handle) {
return handle.classList.contains('handle');
var oTable = $('#datatables-customer-mails').DataTable({
"processing": true,
"serverSide": true,
"searching": false,
ajax: {
url: '{!! route( 'customer_mail_data_table' ) !!}',
data: function(d) {
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.data_table_search = $('#dataTableInputSearchField').val();
}
},
"columns": [
/* { data: 'checkbox', width: '10px', orderable: false, searchable: false}, */
{ data: 'important', width: '15px', searchable: false },
{ data: 'subject', name: 'subject', width: '', orderable: false, },
{ data: 'date', name: 'date', width: '' },
{ data: 'action', width: '100px', orderable: false, searchable: false},
],
"bLengthChange": false,
"iDisplayLength": 25,
"orderSequence": ["desc", "asc"],
"order": [[ 2, "desc" ]],
"language": {
"url": "/js/German.json"
},
"drawCallback": function( settings ) {
$('#datatables-customer-mails [rel="tooltip"]').tooltip({trigger: "hover"});
$('#datatables-customer-mails .customer-mail-ajax-action').on('click', function (event) {
ajax_object_action(event, $(this), callback_ajax);
});
}
});
sortableItems.on('dragend', function() {
//sort new
sort_item_pos_number();
$('.messages-wrapper .sidebox-nav-item').on('click', function (event) {
event.preventDefault();
if($(this).hasClass('active')){
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'));
console.log($(this).data('country'));
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').prop('disabled', false);
}else{
$('.btn-compare-customer-mails').prop('disabled', true);
}
oTable.draw();
$('.messages-wrapper .sidebox-nav-item').removeClass('active');
$(this).addClass('active');
$('#message-sidebox-title-icon').removeClass().addClass('fa ' + $(this).data('icon'));
$('#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');
});
function callback_ajax(data) {
if(data.status === 'success'){
oTable.draw();
}
}
$('#dataTableInputSearchField').keyup(function(){
oTable.search($(this).val()).draw();
});
$.dragYScroll();
var sort_item_pos_number = function(){
var index = 1;
$('#table_dragula_tbody .draft_item_tbody').each(function () {
$(this).find('.item_pos_number').html(index);
$(this).data('rowPosition', index);
index++;
});
};
$(function() {
// Drag handle
var sortableItems = dragula([$('#table_dragula_tbody')[0]], {
moves: function (el, container, handle) {
return handle.classList.contains('handle');
}
});
sortableItems.on('dragend', function() {
//sort new
sort_item_pos_number();
});
});
$('table .move-up-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var prevRow = thisRow.prev();
if (prevRow.length) {
prevRow.before(thisRow);
sort_item_pos_number()
}
});
$('table .move-down-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var nextRow = thisRow.next();
if (nextRow.length) {
nextRow.after(thisRow);
sort_item_pos_number()
}
});
});
</script>
$('table .move-up-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var prevRow = thisRow.prev();
if (prevRow.length) {
prevRow.before(thisRow);
sort_item_pos_number()
}
});
$('table .move-down-btn').on('click', function () {
var thisRow = $(this).closest('tbody');
var nextRow = thisRow.next();
if (nextRow.length) {
nextRow.after(thisRow);
sort_item_pos_number()
}
});
});
</script>
@endsection
@endsection

Some files were not shown because too many files have changed in this diff Show more