17 nov 2018

This commit is contained in:
Kevin Adametz 2018-11-17 02:03:59 +01:00
parent 0c9a118281
commit 765d6a2f6b
52 changed files with 3200 additions and 229 deletions

2
.env
View file

@ -3,7 +3,7 @@ APP_ENV=local
APP_KEY=base64:cxq+xNckU1xLwp8V9Bfj9+nOK5iZL6urcZ1EBO8usXg=
APP_DEBUG=true
APP_URL=http://crm-stern-tours.local
APP_OLR_URL = http://cms-stern-tours.local
APP_OLD_URL = http://cms-stern-tours.local
LOG_CHANNEL=stack

5
.idea/php.xml generated
View file

@ -109,4 +109,9 @@
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.1" />
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings load_method="CUSTOM_LOADER" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" />
</phpunit_settings>
</component>
</project>

694
.idea/workspace.xml generated
View file

@ -2,31 +2,243 @@
<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/API/LoaderController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/BookingController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/TranslationFileController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/TravelCountry.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Models/TravelProgramCountry.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Repositories/BookingRepository.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/Requests/TranslationRequest.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_travel_country_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/database/migrations/2018_10_29_193349_create_travel_program_country_table.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/lang/de/_vorlagen.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/detail.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/booking/index.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/emails/_auth.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/translation/index_file.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.env" beforeDir="false" afterPath="$PROJECT_DIR$/.env" 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/API/DraftController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/API/DraftController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/DataTableController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/DataTableController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/DraftController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/DraftController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/HomeController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/HomeController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/TranslationController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/TranslationController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailActivateUser.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailActivateUser.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailResetPassword.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailResetPassword.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailVerifyAccount.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailVerifyAccount.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Mail/MailVerifyContact.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailVerifyContact.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/DraftItem.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/DraftItem.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/TravelProgram.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/TravelProgram.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/app.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/app.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/localization.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/localization.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2018_10_19_114519_create_draft_types_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_19_114519_create_draft_types_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2018_10_19_114521_create_draft_items_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_19_114521_create_draft_items_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/custom.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/custom.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/lang/de/auth.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/lang/de/auth.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/lang/de/lead.php" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/drafts/detail.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/drafts/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/emails/auth.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/emails/auth.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/translation/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/translation/index.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/translation/translation_row.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/translation/translation_row.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/vendor/defuse/php-encryption/" />
<ignored path="$PROJECT_DIR$/vendor/doctrine/cache/" />
<ignored path="$PROJECT_DIR$/vendor/doctrine/dbal/" />
<ignored path="$PROJECT_DIR$/vendor/doctrine/event-manager/" />
<ignored path="$PROJECT_DIR$/vendor/firebase/php-jwt/" />
<ignored path="$PROJECT_DIR$/vendor/laravel/passport/" />
<ignored path="$PROJECT_DIR$/vendor/lcobucci/jwt/" />
<ignored path="$PROJECT_DIR$/vendor/league/event/" />
<ignored path="$PROJECT_DIR$/vendor/league/oauth2-server/" />
<ignored path="$PROJECT_DIR$/vendor/phpseclib/phpseclib/" />
<ignored path="$PROJECT_DIR$/vendor/symfony/psr-http-message-bridge/" />
<ignored path="$PROJECT_DIR$/vendor/zendframework/zend-diactoros/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
</component>
<component name="FUSProjectUsageTrigger">
<session id="1709161781">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.closed" value="1" />
<entry key="project.closed" value="18" />
<entry key="project.open.time.0" value="7" />
<entry key="project.open.time.1" value="1" />
<entry key="project.open.time.2" value="3" />
<entry key="project.open.time.3" value="3" />
<entry key="project.open.time.4" value="3" />
<entry key="project.opened" value="17" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="env" value="1" />
<entry key="js" value="6" />
<entry key="json" value="1" />
<entry key="php" value="172" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key=".env file" value="1" />
<entry key="Blade" value="33" />
<entry key="JSON" value="1" />
<entry key="JavaScript" value="6" />
<entry key="PHP" value="139" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="dummy" value="13" />
<entry key="env" value="1" />
<entry key="js" value="34" />
<entry key="php" value="7541" />
<entry key="txt" value="184" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key=".env file" value="1" />
<entry key="Blade" value="2416" />
<entry key="JavaScript" value="34" />
<entry key="PHP" value="5125" />
<entry key="PLAIN_TEXT" value="197" />
</counts>
</usages-collector>
</session>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/resources/views/booking/detail.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="84" column="46" selection-start-line="84" selection-start-column="46" selection-end-line="84" selection-end-column="46" />
<folding>
<element signature="e#1221#1227#0#HTML" expanded="true" />
<element signature="e#7681#7687#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/Repositories/BookingRepository.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="20" column="1" lean-forward="true" selection-start-line="20" selection-start-column="1" selection-end-line="20" selection-end-column="1" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/Repositories/TravelProgramRepository.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/BookingController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="436">
<caret line="117" column="85" lean-forward="true" selection-start-line="117" selection-start-column="85" selection-end-line="117" selection-end-column="85" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/resources/views/drafts/detail.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1610">
<caret line="115" column="30" selection-start-line="115" selection-start-column="30" selection-end-line="115" selection-end-column="59" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>datepic</find>
<find>datepicker</find>
<find>url</find>
<find>translations</find>
</findStrings>
</component>
<component name="FrameworkCommandLineHistory">
<commandsHistory>
<command text="composer run-script post-update-cmd" />
<command text="php artisan ide-helper:models" />
<command text="composer run-script post-update-cmd" />
<command text="php artisan ide-helper:models" />
</commandsHistory>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="mock:///Dummy.txt" root0="SKIP_INSPECTION" />
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/database/migrations/2018_10_19_114521_create_draft_items_table.php" />
<option value="$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_booking_draft_items_table.php" />
<option value="$PROJECT_DIR$/app/Models/DraftItem.php" />
<option value="$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_travel_country_table.php" />
<option value="$PROJECT_DIR$/database/migrations/2018_10_29_193349_create_travel_program_country_table.php" />
<option value="$PROJECT_DIR$/app/Models/TravelProgramCountry.php" />
<option value="$PROJECT_DIR$/app/Models/TravelProgram.php" />
<option value="$PROJECT_DIR$/app/Models/TravelCountry.php" />
<option value="$PROJECT_DIR$/routes/api.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/API/LoaderController.php" />
<option value="$PROJECT_DIR$/database/migrations/2018_11_06_185812_create_bookings_table.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/HomeController.php" />
<option value="$PROJECT_DIR$/app/Repositories/BookingRepository.php" />
<option value="$PROJECT_DIR$/public/js/custom.js" />
<option value="$PROJECT_DIR$/app/Models/Booking.php" />
<option value="$PROJECT_DIR$/app/Models/BookingDraftItem.php" />
<option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/app/Http/Controllers/BookingController.php" />
<option value="$PROJECT_DIR$/resources/views/booking/index.blade.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/DataTableController.php" />
<option value="$PROJECT_DIR$/app/Mail/MailResetPassword.php" />
<option value="$PROJECT_DIR$/app/Mail/MailActivateUser.php" />
<option value="$PROJECT_DIR$/app/Mail/MailVerifyAccount.php" />
<option value="$PROJECT_DIR$/app/Mail/MailVerifyContact.php" />
<option value="$PROJECT_DIR$/resources/views/emails/auth.blade.php" />
<option value="$PROJECT_DIR$/config/localization.php" />
<option value="$PROJECT_DIR$/routes/web.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/TranslationController.php" />
<option value="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" />
<option value="$PROJECT_DIR$/resources/views/translation/tramslation_row.blade.php" />
<option value="$PROJECT_DIR$/app/Requests/TranslationRequest.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/TranslationFileController.php" />
<option value="$PROJECT_DIR$/resources/views/translation/index_file.blade.php" />
<option value="$PROJECT_DIR$/resources/views/translation/index.blade.php" />
<option value="$PROJECT_DIR$/resources/views/translation/translation_row.blade.php" />
<option value="$PROJECT_DIR$/resources/lang/de/lead.php" />
<option value="$PROJECT_DIR$/config/app.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/API/DraftController.php" />
<option value="$PROJECT_DIR$/resources/lang/de/_vorlagen.php" />
<option value="$PROJECT_DIR$/database/migrations/2018_10_19_114519_create_draft_types_table.php" />
<option value="$PROJECT_DIR$/app/Http/Controllers/DraftController.php" />
<option value="$PROJECT_DIR$/resources/views/drafts/index.blade.php" />
<option value="$PROJECT_DIR$/resources/views/layouts/application.blade.php" />
<option value="$PROJECT_DIR$/resources/views/drafts/detail.blade.php" />
<option value="$PROJECT_DIR$/resources/views/booking/detail.blade.php" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
@ -34,6 +246,14 @@
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodeModulesDirectoryManager">
<handled-path value="$PROJECT_DIR$/node_modules" />
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths>
<path value="$PROJECT_DIR$/package.json" />
</packageJsonPaths>
</component>
<component name="PhpWorkspaceProjectConfiguration" interpreter_name="PHP 7.1">
<include_path>
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
@ -142,12 +362,19 @@
<path value="$PROJECT_DIR$/vendor/laravel/passport" />
</include_path>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="18" />
<option name="y" value="23" />
<option name="width" value="2542" />
<option name="height" value="1334" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -181,14 +408,6 @@
<item name="Controllers" type="462c0819:PsiDirectoryNode" />
<item name="API" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Http" type="462c0819:PsiDirectoryNode" />
<item name="Controllers" type="462c0819:PsiDirectoryNode" />
<item name="Auth" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
@ -201,6 +420,12 @@
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Repositories" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="Requests" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
@ -232,13 +457,20 @@
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="database" type="462c0819:PsiDirectoryNode" />
<item name="seeds" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="assets" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="assets" type="462c0819:PsiDirectoryNode" />
<item name="js" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
@ -246,12 +478,33 @@
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="lang" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="lang" type="462c0819:PsiDirectoryNode" />
<item name="de" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="admin" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="booking" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
@ -259,6 +512,13 @@
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="drafts" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="emails" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
@ -266,6 +526,14 @@
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="layouts" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="views" type="462c0819:PsiDirectoryNode" />
<item name="layouts" type="462c0819:PsiDirectoryNode" />
<item name="includes" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
@ -286,18 +554,24 @@
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="routes" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="_crm" type="b2602c69:ProjectViewProjectNode" />
<item name="_crm" type="462c0819:PsiDirectoryNode" />
<item name="vendor" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/resources/lang/de" />
<recent name="$PROJECT_DIR$/resources/views/translation" />
<recent name="$PROJECT_DIR$/app/Requests" />
<recent name="$PROJECT_DIR$/app/Http/Controllers" />
<recent name="$PROJECT_DIR$/resources/views/emails" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
@ -315,7 +589,7 @@
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="aaf2a2d9-a796-42b0-8525-54dceb16381b" name="Default Changelist" comment="" />
<changelist id="e1ac1cea-a1a5-4c16-b5f0-5908c7d368de" name="Default Changelist" comment="" />
<created>1538118843707</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
@ -345,16 +619,34 @@
<workItem from="1540728176087" duration="3905000" />
<workItem from="1540732264022" duration="16297000" />
<workItem from="1540798314103" duration="1583000" />
<workItem from="1540828968681" duration="6952000" />
<workItem from="1540917357628" duration="8142000" />
<workItem from="1541090003686" duration="18000" />
<workItem from="1541090032501" duration="26000" />
<workItem from="1541090708414" duration="674000" />
<workItem from="1541163893743" duration="3725000" />
<workItem from="1541243573238" duration="2000" />
<workItem from="1541436414799" duration="217000" />
<workItem from="1541501763178" duration="2161000" />
<workItem from="1541526253759" duration="722000" />
<workItem from="1541527089921" duration="179000" />
<workItem from="1541695433230" duration="8130000" />
<workItem from="1542128317995" duration="2620000" />
<workItem from="1542196892651" duration="10134000" />
<workItem from="1542271762249" duration="144000" />
<workItem from="1542272844920" duration="169000" />
<workItem from="1542384658589" duration="287000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="63000" />
<option name="totallyTimeSpent" value="44365000" />
</component>
<component name="ToolWindowManager">
<frame x="-17" y="334" width="2546" height="1415" extended-state="0" />
<frame x="18" y="23" width="2542" height="1334" extended-state="0" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.17971246" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2036" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="npm" order="2" side_tool="true" />
<window_info id="Favorites" order="3" side_tool="true" />
@ -368,8 +660,8 @@
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="9" sideWeight="0.49960065" weight="0.32955405" />
<window_info anchor="bottom" id="Command Line Tools Console" order="10" sideWeight="0.49720448" visible="true" weight="0.32955405" />
<window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.49920127" weight="0.32955405" />
<window_info anchor="bottom" id="Command Line Tools Console" order="10" sideWeight="0.49720448" weight="0.32930756" />
<window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.49920127" weight="0.32769728" />
<window_info anchor="bottom" id="Event Log" order="12" sideWeight="0.5027955" side_tool="true" weight="0.32955405" />
<window_info anchor="right" id="Commander" order="0" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
@ -377,4 +669,354 @@
<window_info anchor="right" id="Database" order="3" weight="0.3298722" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_booking_draft_items_table.php</url>
<line>62</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/resources/views/travel/program/detail.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="818">
<caret line="187" lean-forward="true" selection-start-line="187" selection-end-line="187" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="17" column="25" lean-forward="true" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/admin/users.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1120">
<caret line="80" column="42" lean-forward="true" selection-start-line="80" selection-start-column="42" selection-end-line="80" selection-end-column="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/DataTableController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="145">
<caret line="28" column="57" lean-forward="true" selection-start-line="28" selection-start-column="57" selection-end-line="28" selection-end-column="57" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/layouts/includes/layout-navbar.blade.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/DraftItem.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="363">
<caret line="55" column="6" selection-start-line="49" selection-start-column="3" selection-end-line="55" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/Draft.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="896">
<caret line="64" column="5" selection-start-line="40" selection-start-column="3" selection-end-line="64" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/booking/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="27" column="55" selection-start-line="27" selection-start-column="55" selection-end-line="27" selection-end-column="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2018_10_29_193339_create_booking_draft_items_table.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="490">
<caret line="37" column="65" lean-forward="true" selection-start-line="37" selection-start-column="65" selection-end-line="37" selection-end-column="65" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Library/Mobile Documents/com~apple~CloudDocs/Webseiten/appwork-v1_1_0/html-demo/assets/js/ui_drag-and-drop.js">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret selection-end-line="17" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/Account.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Mail/MailActivateUser.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="38" column="8" selection-start-line="38" selection-start-column="8" selection-end-line="38" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Mail/MailVerifyAccount.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="462">
<caret line="37" column="10" selection-start-line="37" selection-start-column="10" selection-end-line="37" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Mail/MailVerifyContact.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="462">
<caret line="37" column="9" selection-start-line="37" selection-start-column="9" selection-end-line="37" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2018_10_29_202123_create_booking_table.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="155">
<caret line="20" column="37" selection-start-line="20" selection-start-column="35" selection-end-line="20" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Mail/MailResetPassword.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="476">
<caret line="38" column="8" lean-forward="true" selection-start-line="31" selection-start-column="8" selection-end-line="38" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/emails/auth.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3276">
<caret line="234" column="24" lean-forward="true" selection-start-line="234" selection-start-column="24" selection-end-line="234" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/emails/_auth.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="901">
<caret line="199" column="66" selection-start-line="197" selection-start-column="35" selection-end-line="199" selection-end-column="66" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/localization.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="505">
<caret line="128" column="72" selection-start-line="128" selection-start-column="72" selection-end-line="128" selection-end-column="72" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="936">
<caret line="90" selection-start-line="90" selection-end-line="90" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/translation/_index.blade.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Requests/TranslationRequest.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="21" column="5" selection-start-line="21" selection-start-column="5" selection-end-line="21" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/routes/web.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="923">
<caret line="167" column="149" selection-start-line="167" selection-start-column="124" selection-end-line="167" selection-end-column="149" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/TranslationController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="38" selection-start-line="38" selection-end-line="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/translation/index_file.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="823">
<caret line="72" column="47" selection-start-line="72" selection-start-column="47" selection-end-line="72" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/translation/translation_row.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="364">
<caret line="26" column="12" selection-start-line="26" selection-start-column="12" selection-end-line="26" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/lang/de/auth.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="70">
<caret line="5" column="2" selection-start-line="5" selection-start-column="2" selection-end-line="5" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/lang/de/lead.php" />
<entry file="file://$PROJECT_DIR$/resources/views/translation/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="555">
<caret line="87" column="76" selection-start-line="87" selection-start-column="76" selection-end-line="87" selection-end-column="76" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/app.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="346">
<caret line="55" lean-forward="true" selection-start-line="55" selection-end-line="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/TranslationFileController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-151">
<caret line="178" column="22" lean-forward="true" selection-start-line="178" selection-start-column="22" selection-end-line="178" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/lang/de/email.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/resources/lang/de/pagination.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="17" lean-forward="true" selection-end-line="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/API/LoaderController.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/API/UserController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="42" column="5" lean-forward="true" selection-start-line="42" selection-start-column="5" selection-end-line="42" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/API/DraftController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="490">
<caret line="116" column="63" lean-forward="true" selection-start-line="116" selection-start-column="38" selection-end-line="116" selection-end-column="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/lang/de/_vorlagen.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="98">
<caret line="7" column="2" lean-forward="true" selection-start-line="7" selection-start-column="2" selection-end-line="7" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/_ide_helper.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="909">
<caret line="19870" column="10" selection-start-line="19870" selection-start-column="10" selection-end-line="19870" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Models/BookingDraftItem.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="805">
<caret line="102" column="5" lean-forward="true" selection-start-line="102" selection-start-column="5" selection-end-line="102" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Services/HTMLHelper.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="857">
<caret line="101" column="18" lean-forward="true" selection-start-line="101" selection-start-column="18" selection-end-line="101" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2018_10_19_114521_create_draft_items_table.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="252">
<caret line="20" column="67" selection-start-line="20" selection-start-column="59" selection-end-line="20" selection-end-column="67" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/layouts/application.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588">
<caret line="42" column="69" selection-start-line="42" selection-start-column="69" selection-end-line="42" selection-end-column="69" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/database/migrations/2018_10_19_114519_create_draft_types_table.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="29" column="7" selection-start-line="29" selection-start-column="7" selection-end-line="29" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/DraftController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="575">
<caret line="160" selection-start-line="160" selection-end-line="160" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/drafts/index.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="633">
<caret line="93" column="148" selection-start-line="93" selection-start-column="148" selection-end-line="93" selection-end-column="148" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/booking/detail.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="84" column="46" selection-start-line="84" selection-start-column="46" selection-end-line="84" selection-end-column="46" />
<folding>
<element signature="e#1221#1227#0#HTML" expanded="true" />
<element signature="e#7681#7687#0#HTML" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/views/drafts/detail.blade.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1610">
<caret line="115" column="30" selection-start-line="115" selection-start-column="30" selection-end-line="115" selection-end-column="59" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Repositories/BookingRepository.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="20" column="1" lean-forward="true" selection-start-line="20" selection-start-column="1" selection-end-line="20" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Repositories/TravelProgramRepository.php">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/TravelProgramController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504">
<caret line="40" column="17" lean-forward="true" selection-start-line="40" selection-start-column="17" selection-end-line="40" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/Http/Controllers/BookingController.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="436">
<caret line="117" column="85" lean-forward="true" selection-start-line="117" selection-start-column="85" selection-end-line="117" selection-end-column="85" />
</state>
</provider>
</entry>
</component>
</project>

View file

@ -5,7 +5,7 @@ namespace PHPSTORM_META {
/**
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
* Generated on 2018-10-29 08:56:20.
* Generated on 2018-11-08 17:44:35.
*
* @author Barry vd. Heuvel <barryvdh@gmail.com>
* @see https://github.com/barryvdh/laravel-ide-helper

View file

@ -3,7 +3,7 @@
/**
* A helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel 5.6.39 on 2018-10-29 08:56:19.
* Generated for Laravel 5.6.39 on 2018-11-08 17:44:34.
*
* This file should not be included in your code, only analyzed by your IDE!
*

View file

@ -142,6 +142,14 @@ namespace App\Models{
class TravelProgramDraft extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\Booking
*
*/
class Booking extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\UserUpdateEmail
@ -152,6 +160,61 @@ namespace App\Models{
class UserUpdateEmail extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\BookingDraftItem
*
* @property int $id
* @property int $booking_id
* @property int $travel_program_id
* @property int|null $travel_class_id
* @property int|null $draft_item_id
* @property int|null $draft_type_id
* @property string|null $request_date
* @property int|null $days_start
* @property int|null $days_duration
* @property string|null $start_date
* @property string|null $end_date
* @property string|null $service
* @property float|null $price_adult
* @property int|null $adult
* @property float|null $price_children
* @property int|null $children
* @property int|null $pos
* @property int $in_pdf
* @property int $status
* @property int $comfort
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\DraftItem|null $draft_item
* @property-read \App\Models\DraftType|null $draft_type
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereAdult($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereChildren($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereComfort($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDaysDuration($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDaysStart($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDraftItemId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDraftTypeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereEndDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereInPdf($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePriceAdult($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePriceChildren($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereRequestDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereService($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereStartDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereTravelClassId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereTravelProgramId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingDraftItem extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\Country
@ -245,6 +308,39 @@ namespace App\Models{
class Account extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\TravelCountry
*
* @property int $id
* @property string|null $name
* @property string $html_information
* @property string|null $entry_requirements
* @property int|null $feedback_page_id
* @property-read \App\Models\TravelProgramCountry $travel_program_country
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereEntryRequirements($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereFeedbackPageId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereHtmlInformation($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereName($value)
*/
class TravelCountry extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\TravelProgramCountry
*
* @property int|null $program_id
* @property int|null $country_id
* @property-read \App\Models\TravelCountry|null $travel_country
* @property-read \App\Models\TravelProgram|null $travel_program
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry whereCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry whereProgramId($value)
*/
class TravelProgramCountry extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\TravelClass
@ -389,6 +485,7 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram whereUpdatedAt($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelProgramDraft[] $travel_program_drafts
* @property-read \App\Models\TravelProgramCountry $travel_program_country
*/
class TravelProgram extends \Eloquent {}
}

View file

@ -3,43 +3,413 @@
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\BookingDraftItem;
use App\Models\Draft;
use App\Models\TravelProgram;
use Carbon\Carbon;
use HTMLHelper;
class DraftController extends Controller
{
public $successStatus = 200;
public $data = "";
public $room_str = "";
public $room_name = "";
public $className = "";
public $option = "";
public function draft($action)
{
if($action == "get_draft_list"){
if ($action == "get_draft_list") {
$drafts = Draft::where('active', true)->get()->sortByDesc("id");
return response()->json(['success' => $drafts], $this->successStatus);
}
if($action == "get_draft_list_for_table"){
if ($action == "get_draft_list_for_table") {
$ret = [];
if(request('program_id') && request('program_id') > 0){
if (request('program_id') && request('program_id') > 0) {
$travel_program = TravelProgram::find(request('program_id'));
if(count($travel_program->travel_program_drafts)){
foreach ($travel_program->travel_program_drafts as $travel_program_draft){
if ($travel_program && count($travel_program->travel_program_drafts)) {
foreach ($travel_program->travel_program_drafts as $travel_program_draft) {
$key = $travel_program_draft->id;
$ret[$key]['name'] = $travel_program_draft->draft->name;
if($travel_program_draft->travel_class){
if ($travel_program_draft->travel_class) {
$ret[$key]['travel_class'] = $travel_program_draft->travel_class->name;
}else{
} else {
$ret[$key]['travel_class'] = "alle Kategorien";
}
$ret[$key]['weekdays'] = HTMLHelper::getWeekdaysString($travel_program_draft->weekdays);
$ret[$key]['weekdays'] = HTMLHelper::getWeekdaysString($travel_program_draft->weekdays);
}
}
}
return response()->json(['success' => $ret], $this->successStatus);
}
if ($action == "create_drafts_from_booking") {
$data = \Input::all();
$this->data = $data;
$weekday = date('w', strtotime($data['startDateStr']));
$travel_program = TravelProgram::find($data['travel_program_id']);
$draft = $this->getDraftByTravelProgramData($travel_program, $data, $weekday);
$start_date = Carbon::parse($data['startDateStr']);
$end_date = Carbon::parse($data['endDateStr']);
if($draft){
//------------------------------------------------------------------------------
//prepare rooms
//request('rooms'); // //["rooms"]=> array(1) { [0]=> object(stdClass)#7284 (5) { ["name"]=> string(12) "Einzelzimmer" ["price_adult"]=> float(1682.16) ["adult"]=> int(1) ["children"]=> int(0) ["price_children"]=> int(0) }
$price_info_rooms = [];
$room_names = [];
$room_adult = 0;
$room_children = 0;
$room_price_adult = 0;
$room_price_children = 0;
$data['rooms'] = array_reverse($data['rooms']);
foreach ($data['rooms'] as $room){
$room_adult += $room['adult'];
$room_children += $room['children'];
$room_price_adult += ($room['price_adult'] * $room['adult']);
$room_price_children += ($room['price_children'] * $room['children']);
if(isset($room_names[$room['name']])){
$room_names[$room['name']] = $room_names[$room['name']]+1;
}else{
$room_names[$room['name']] = 1;
}
$service = trans('_vorlagen.grundpreis_reise');
$this->room_name = $room['name'];
$service = $this->replaceService($service);
$price_info_rooms[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 30,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => null,
'start_date' => $data['startDateStr'],
'end_date' => $data['endDateStr'],
'service' => $service,
'price_adult' => $room['price_adult'],
'adult' => $room['adult'],
'price_children' => $room['price_children'],
'children' => $room['children'],
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
$this->room_str = "";
foreach ($room_names as $name=>$count){
$this->room_str .= $count.' x '.$name.', ';
}
$this->room_str = rtrim($this->room_str, ', ');
//------------------------------------------------------------------------------
//prepare extra_charge
$price_info_extra_charge = [];
if($data['departure_extra_charge'] > 0){
$service = trans('_vorlagen.aufpreis_flug');
$service = $this->replaceService($service);
$price_info_extra_charge[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 33,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => null,
'start_date' => null,
'end_date' => null,
'service' => $service,
'price_adult' => $data['departure_extra_charge'] ,
'adult' => $data['traveler'] ,
'price_children' => 0,
'children' => 0,
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
//------------------------------------------------------------------------------
//prepare $class_options
$price_info_class_options = [];
foreach ($data['class_options'] as $class_option){
$service = trans('_vorlagen.aufpreis_kategorie');
$this->className = $class_option['name'];
$service = $this->replaceService($service);
$price_info_class_options[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 32,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => null,
'start_date' => null,
'end_date' => null,
'service' => $service,
'price_adult' => $class_option['price'],
'adult' => $class_option['count'],
'price_children' => 0,
'children' => 0,
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
//------------------------------------------------------------------------------
//prepare $travel_options
$price_info_travel_options = [];
foreach ($data['travel_options'] as $travel_option){
$service = trans('_vorlagen.aufpreis_option');
$this->option = $travel_option['name'];
$service = $this->replaceService($service);
$price_info_travel_options[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 34,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => null,
'start_date' => null,
'end_date' => null,
'service' => $service,
'price_adult' => $travel_option['price_adult'],
'adult' => $travel_option['adult'],
'price_children' => $travel_option['price_children'],
'children' => $travel_option['children'],
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
$info_texts = [];
$last_post = 0;
foreach ($draft->draft_items as $draft_item){
$service = $draft_item->service;
$price_adult = 0;
$adult = 0;
$price_children = 0;
$children = 0;
switch ($draft_item->draft_type->id){
case 24: //rundreise
$price_adult = $room_price_adult;
$adult = $room_adult;
$price_children = $room_price_children;
$children = $room_children;
break;
case 4: //flug
// "Hinflug: Rückflug: Flugzeiten ?"
break;
}
$start_date_temp = null;
if($draft_item->days_start > 0){
$start_date_temp = clone $start_date;
$start_date_temp->addDay($draft_item->days_start-1);
}
$end_date_temp = null;
if($draft_item->days_duration > 0){
$end_date_temp = clone $start_date;
$end_date_temp->addDay($draft_item->days_duration-1);
}
$service = $this->replaceService($service);
if($draft_item->draft_type->id == 27){
//text -at last
$info_texts[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => $draft_item->id,
'draft_type_id' => $draft_item->draft_type->id,
'request_date' => $data['request_date'],
'days_start' => $draft_item->days_start,
'days_duration' => $draft_item->days_duration,
'start_date' => $start_date_temp ? $start_date_temp->format("Y-m-d") : null,
'end_date' => $end_date_temp ? $end_date_temp->format("Y-m-d") : null,
'service' => $service,
'price_adult' => $price_adult,
'adult' => $adult,
'price_children' => $price_children,
'children' => $children,
'pos' => $draft_item->pos,
'in_pdf' => $draft_item->in_pdf,
'comfort' => $data['comfort']
];
}else{
//create new from draft items
BookingDraftItem::create([
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => $draft_item->id,
'draft_type_id' => $draft_item->draft_type->id,
'request_date' => $data['request_date'],
'days_start' => $draft_item->days_start,
'days_duration' => $draft_item->days_duration,
'start_date' => $start_date_temp ? $start_date_temp->format("Y-m-d") : null,
'end_date' => $end_date_temp ? $end_date_temp->format("Y-m-d") : null,
'service' => $service,
'price_adult' => $price_adult,
'adult' => $adult,
'price_children' => $price_children,
'children' => $children,
'pos' => $draft_item->pos,
'in_pdf' => $draft_item->in_pdf,
'comfort' => $data['comfort']
]);
}
$last_post = $draft_item->pos;
}
//set room prices
if(count($price_info_rooms)){
foreach ($price_info_rooms as $price_info_room){
$last_post ++;
$price_info_room['pos'] = $last_post;
BookingDraftItem::create($price_info_room);
}
}
//set extra charge price
if(count($price_info_extra_charge)){
foreach ($price_info_extra_charge as $price_info_extra){
$last_post ++;
$price_info_extra['pos'] = $last_post;
BookingDraftItem::create($price_info_extra);
}
}
//set class options prices
if(count($price_info_class_options)){
foreach ($price_info_class_options as $price_info_class_option){
$last_post ++;
$price_info_class_option['pos'] = $last_post;
BookingDraftItem::create($price_info_class_option);
}
}
//set travel options prices
if(count($price_info_travel_options)){
foreach ($price_info_travel_options as $price_info_travel_option){
$last_post ++;
$price_info_travel_option['pos'] = $last_post;
BookingDraftItem::create($price_info_travel_option);
}
}
//set travel options prices
if(count($info_texts)){
foreach ($info_texts as $info_text){
$last_post ++;
$info_text['pos'] = $last_post;
BookingDraftItem::create($info_text);
}
}
}
$ret = [];
/*
$travel_program_id = request('travel_program_id');
$comfort = request('comfort');
$booking_id = request('booking_id');
$startDateStr = request('startDateStr');
$endDateStr = request('endDateStr');
$departure = request('departure');
$departure_extra_charge = request('departure_extra_charge');
$traveler = request('traveler');
$title = request('title');
$number = request('number');
$rooms = request('rooms'); // //["rooms"]=> array(1) { [0]=> object(stdClass)#7284 (5) { ["name"]=> string(12) "Einzelzimmer" ["price_adult"]=> float(1682.16) ["adults"]=> int(1) ["children"]=> int(0) ["price_children"]=> int(0) }
$class_options = request('class_options'); //["travel_options"]=> array(2) { [0]=> array(5) { ["name"]=> string(20) "Aufpreis Halbpension" ["price_adult"]=> float(75) ["adult"]=> int(5) ["children"]=> int(0) ["price_children"]=> int(0) }
$travel_options = request('travel_options'); //["class_options"]=> array(1) { [0]=> array(3) { ["name"]=> string(39) "zugebuchte Leistung: Komfort (4 Sterne)" ["price"]=> float(152) ["count"]=> int(1)
*/
return response()->json(['success' => $draft->id], $this->successStatus);
}
}
}
protected function replaceService($service){
$service = str_replace('#Name#', $this->data['title'], $service);
$service = str_replace('#Nummer#', $this->data['number'], $service);
$service = str_replace('#Zimmer#', $this->room_str, $service);
$service = str_replace('#Raumname#', $this->room_name, $service);
$service = str_replace('#Kategorie#', $this->className, $service);
$service = str_replace('#Option#', $this->option, $service);
$service = str_replace('#Flughafen#', $this->data['departure'], $service);
return $service;
}
protected function getDraftByTravelProgramData($travel_program, $data, $weekday){
if ($travel_program && count($travel_program->travel_program_drafts)) {
foreach ($travel_program->travel_program_drafts as $travel_program_draft) {
//this need an realation to travel class by booking and price
if(in_array($weekday, $travel_program_draft->weekdays)){
if($data['comfort'] == false && strpos(strtolower($travel_program_draft->travel_class->name), 'standard') !== false){
return $travel_program_draft->draft;
}
if($data['comfort'] == true && strpos(strtolower($travel_program_draft->travel_class->name), 'komfort') !== false){
return $travel_program_draft->draft;
}
}
}
}
return null;
}
}
/*
array(14) {
["travel_program_id"]=> int(197) ["comfort"]=> bool(true) ["booking_id"]=> string(4) "8435" ["request_date"]=> string(10) "2018-10-29" ["startDateStr"]=> string(10) "2018-11-03" ["endDateStr"]=> string(10) "2018-11-10" ["departure"]=> string(7) "Hamburg" ["departure_extra_charge"]=> float(55) ["traveler"]=> int(3) ["title"]=> string(35) "Höhepunkte Jordaniens ab Nov. 2018" ["number"]=> string(16) "JOR-HOE1920018B1" ["rooms"]=> array(2) {
[0]=> array(5) {
["name"]=> string(12) "Doppelzimmer" ["price_adult"]=> float(1473.85) ["adults"]=> int(2) ["children"]=> int(0) ["price_children"]=> int(0) } [1]=> array(5) {
["name"]=> string(12) "Einzelzimmer" ["price_adult"]=> float(1682.16) ["adults"]=> int(1) ["children"]=> int(0) ["price_children"]=> int(0) } } ["class_options"]=> array(2) {
[0]=> array(3) {
["name"]=> string(39) "zugebuchte Leistung: Komfort (4 Sterne)" ["price"]=> float(122) ["count"]=> int(2) } [1]=> array(3) {
["name"]=> string(39) "zugebuchte Leistung: Komfort (4 Sterne)" ["price"]=> float(171) ["count"]=> int(1) } } ["travel_options"]=> array(1) {
[0]=> array(5) {
["name"]=> string(20) "Aufpreis Halbpension" ["price_adult"]=> float(75) ["adults"]=> int(3) ["children"]=> int(0) ["price_children"]=> int(0) } } }
*/

View file

@ -0,0 +1,37 @@
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\BookingDraftItem;
use App\Models\Draft;
use App\Models\TravelCountry;
use App\Models\TravelProgram;
use Carbon\Carbon;
use HTMLHelper;
class LoaderController extends Controller
{
public $successStatus = 200;
public function load($action)
{
if ($action == "travel_program") {
$program = TravelProgram::where('status', 1)->get()->pluck('title', 'id');
return response()->json(['success' => $program], $this->successStatus);
}
if ($action == "travel_country") {
$program = TravelCountry::all()->pluck('name', 'id');;
return response()->json(['success' => $program], $this->successStatus);
}
$ret = [];
return response()->json(['success' => $ret], $this->successStatus);
}
}

View file

@ -0,0 +1,186 @@
<?php
namespace App\Http\Controllers;
use App\Models\Booking;
use App\Models\BookingDraftItem;
use App\Repositories\BookingRepository;
use Input;
class BookingController extends Controller
{
protected $bookingRepo;
public function __construct(BookingRepository $bookingRepo)
{
$this->middleware('admin');
$this->bookingRepo = $bookingRepo;
}
public function index($step = false)
{
$data = [
//'bookings' => Booking::all()->sortByDesc("id"),
'step' => $step
];
return view('booking.index', $data);
}
public function detail($id)
{
if($id == "new") {
$booking = new Booking();
$id = 'new';
}else{
$booking = Booking::findOrFail($id);
$id = $booking->id;
}
$data = [
'booking' => $booking,
'id' => $id,
];
return view('booking.detail', $data);
}
public function store($id)
{
// \Session()->flash('alert-save', '1');
$data = Input::all();
if($id == "new") {
$booking = new Booking();
}else{
$booking = Booking::findOrFail($id);
}
$booking->merlin_order_number = $data['merlin_order_number'];
$booking->save();
$i = 1;
if($data['action'] == 'addItemUp'){
$travel_program_id = null;
$request_date = null;
$comfort = 0;
if(count($booking->booking_draft_items)){
$first_booking_draft_item = $booking->booking_draft_items()->first();
$travel_program_id = $first_booking_draft_item->travel_program_id;
$request_date = $first_booking_draft_item->request_date;
$comfort = $first_booking_draft_item->comfort;
}
$booking->booking_draft_items()->create([
'booking_id' => $booking->id,
'travel_program_id' => $travel_program_id,
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => null,
'request_date' => $request_date,
'days_start' => null,
'days_duration' => null,
'start_date' => null,
'end_date' => null,
'service' => '',
'price_adult' => null,
'adult' => null ,
'price_children' => 0,
'children' => 0,
'pos' => $i,
'in_pdf' => true,
'comfort' => $comfort
]);
$i++;
}
if(isset($data['draft_item'])){
foreach ($data['draft_item'] as $booking_draft_item_id => $draft_item){
$di = BookingDraftItem::findOrFail($booking_draft_item_id);
$di->draft_type_id = $draft_item['draft_type_id'];
$di->start_date = $draft_item['start_date'];
$di->end_date = $draft_item['end_date'];
$di->service = $draft_item['service'];
$di->in_pdf = isset($draft_item['in_pdf']) ? true : false;
$di->pos = $i++;
$di->save();
}
}
if($data['action'] == 'addItemDown'){
$travel_program_id = null;
$request_date = null;
$comfort = 0;
if(count($booking->booking_draft_items)){
$first_booking_draft_item = $booking->booking_draft_items()->first();
$travel_program_id = $first_booking_draft_item->travel_program_id;
$request_date = $first_booking_draft_item->request_date;
$comfort = $first_booking_draft_item->comfort;
}
$booking->booking_draft_items()->create([
'booking_id' => $booking->id,
'travel_program_id' => $travel_program_id,
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => null,
'request_date' => $request_date,
'days_start' => null,
'days_duration' => null,
'start_date' => null,
'end_date' => null,
'service' => '',
'price_adult' => null,
'adult' => null ,
'price_children' => 0,
'children' => 0,
'pos' => $i,
'in_pdf' => true,
'comfort' => $comfort
]);
}
if(strpos($data['action'], 'up_') !== false) {
$reId = intval(str_replace('up_', '', $data['action']));
$d_from = BookingDraftItem::findOrFail($reId);
$d_to = $booking->findBeforeDraftItemRelation($reId);
if($d_to) {
$t_pos = $d_from->pos;
$d_from->pos = $d_to->pos;
$d_to->pos = $t_pos;
$d_from->save();
$d_to->save();
}
}
if(strpos($data['action'], 'down_') !== false) {
$reId = intval(str_replace('down_', '', $data['action']));
$d_from = BookingDraftItem::findOrFail($reId);
$d_to = $booking->findAfterDraftItemRelation($reId);
if($d_to) {
$t_pos = $d_from->pos;
$d_from->pos = $d_to->pos;
$d_to->pos = $t_pos;
$d_from->save();
$d_to->save();
}
}
\Session()->flash('alert-save', '1');
return redirect(route('booking_detail', [$booking->id]));
}
public function draftItemDelete($id){
$boking_draft_item = BookingDraftItem::findOrFail($id);
$booking_id = $boking_draft_item->booking_id;
$boking_draft_item->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
return redirect(route('booking_detail', [$booking_id]));
}
}

View file

@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Models\Booking;
use App\Services\HTMLHelper;
use DataTables;
use App\User;
@ -68,6 +69,26 @@ class DataTableController extends Controller
->make(true);
}
public function getBookings()
{
//confirmation_code_remider is delete 2
$query = Booking::orderBy("id", "DESC");
return \DataTables::eloquent($query)
->addColumn('action_edit', function (Booking $booking) {
return '<a href="' . route('booking_detail', [$booking->id]) . '" class="btn icon-btn btn-sm btn-primary"><span class="far fa-edit"></span></a>';
})
->addColumn('id', function (Booking $booking) {
return '<a href="' . route('booking_detail', [$booking->id]) . '" data-id="'.$booking->id.'">'.$booking->id.'</a>';
})
->rawColumns(['action_edit', 'id'])
->make(true);
}
}

View file

@ -151,6 +151,8 @@ class DraftController extends Controller
$draft_type = DraftType::find($data['id']);
$draft_type->name = $data['name'];
$draft_type->active = isset($data['active']) ? true : false;
$draft_type->color = $data['color'];
$draft_type->save();
}

View file

@ -66,7 +66,7 @@ class HomeController extends Controller
abort(404);
}
public function checkLogin($identify, $token)
public function checkLogin($identify, $token, $show = false)
{
if($identify){
//user find by $identify
@ -96,14 +96,27 @@ class HomeController extends Controller
$sf_guard_user->token = null;
$sf_guard_user->token_at = null;
$sf_guard_user->save();
if(!Auth::check()){
$user->last_login = now();
$user->save();
Auth::login($user);
}
if(Auth::check()){
return redirect(route('drafts'));
if(!$show){
return redirect(route('home'));
}
if($show == 'drafts'){
return redirect(route('drafts'));
}
if(strpos($show, 'drafts_edit_booking_') !== false){
$booking_id = str_replace('drafts_edit_booking_', '', $show);
return redirect(route('booking_detail', [$booking_id]));
}
}
}
return abort(404);
}

View file

@ -33,7 +33,7 @@ class TranslationController extends Controller
*/
public function index()
{
return redirect('admin/translate/edit/de');
return redirect('admin/translate/all/edit/de');
}
@ -79,7 +79,7 @@ class TranslationController extends Controller
$jsonData = json_encode($ret, TRUE);
file_put_contents($file, $jsonData);
return redirect()
->route('admin_translate_edit', [$language])
->route('admin_translate_all_edit', [$language])
->with('message', 'Translation added successfully');
}

View file

@ -0,0 +1,288 @@
<?php
//use Input;
//use Request;
namespace App\Http\Controllers;
use App;
use File;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Collection;
use App\Requests\TranslationRequest;
class TranslationFileController extends Controller
{
/**
* Translator
*
* @var \Illuminate\Translation\Translator
*/
protected $translator;
/**
* Translation loader
*
* @var \Illuminate\Translation\LoaderInterface
*/
protected $loader;
/**
* @var \League\Flysystem\Adapter\Local
*/
protected $filesystem;
/**
* @var string
*/
protected $languagesPath;
protected $languageRead;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->directory_separator = DIRECTORY_SEPARATOR;
$this->translator = App::make('translator');
$this->loader = Lang::getLoader();
$this->languagesPath = App::langPath();
$this->directory_separator = DIRECTORY_SEPARATOR;
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$language = App::getLocale();
$langsource = 'de';
$this->languageRead = $language;
$langs = array_keys(config('localization.supportedLocales'));
$files = $this->files();
$translations = null;
$edit = false;
$show = 'all';
return view('translation.index_file', compact('files', 'translations', 'language', 'langsource', 'langs', 'edit', 'show'));
//return view('admin.transitions', $data);
}
/**
* Display edit form page
*
* @param string $language
* @param string $file
* @param string|null $namespace
*
* @return \Illuminate\Http\Response
*/
public function edit($file, $language = 'en', $langsource = 'de', $show = 'all')
{
$this->languageRead = $language;
$langs = array_keys(config('localization.supportedLocales'));
$files = $this->files();
$translations = $this->translations($file, $langsource);
$prefix = $this->groupName($file);
$langsource = $langsource;
$edit = $file;
$show = $show;
return view('translation.index_file', compact('files', 'language', 'langsource', 'file', 'translations', 'prefix', 'langs', 'edit', 'show'));
}
/**
* Save translation file
*
* @param \GeniusTS\TranslationManager\Requests\TranslationRequest $request
* @param string $language
* @param string $file
*
* @return \Illuminate\Http\Response
*/
public function update(TranslationRequest $request, $file, $language, $langsource, $show)
{
$keys = array_keys($this->translations($file));
$this->exportFile($request->only($keys), $file, $language);
return redirect()
->route('admin_translate_file_edit', [$file, $language, $langsource, $show])
->with('message', 'Translation added successfully');
}
/**
* Save a translation file
*
* @param array $translation
* @param $filename
* @param $language
*
* @return bool
*/
public function exportFile($translation, $filename, $language)
{
$path = "{$this->languagesPath}{$this->directory_separator}{$language}{$this->directory_separator}{$filename}.php";
$this->backup($path, $language, $filename);
$content = "<?php \n\n return " . var_export($translation, true) . ";";
return (bool) file_put_contents($path, $content);
//return (bool) $this->filesystem->write($path, $content, new Config);
}
/**
* Backup the existing translation files
*/
private function backup($path, $language, $filename)
{
if(!File::exists($path)){
return;
}
if (!File::exists(storage_path('language/'.time().'/'.$language))) {
File::makeDirectory(storage_path('language/'.time().'/'.$language), 0755, true);
}
return File::copy($path, storage_path('language/'.time().'/'.$language.'/'.$filename.'.php'));
}
/**
* Get the translation of a group and name space
*
* @param string $file
* @param string|null $namespace
* @param string|null $language
*
* @return array
*/
public function translations($file, $language = null)
{
$group = $this->groupName($file);
$key = $group;
return $this->translator->trans($key, [], $language ?: $this->defaultLanguage());
}
public function files($lang = false)
{
$path = $this->namespacePath($this->languagesPath, $lang);
$content = $this->pathContent($path);
return $content
->map(function ($file) use ($path) {
$path = ltrim($path . DIRECTORY_SEPARATOR, '/');
//read file empty entries
$count = $this->countEmptyEntries(Str::replaceLast($path, '', $file));
//var_dump($translations);
return array(ltrim($this->groupName(Str::replaceLast($path, '', $file)), '/') => ltrim($this->groupName(Str::replaceLast($path, '', $file)), '/')." (".$count.")");
})
->flatten();
}
public function countEmptyEntries($file){
$translation = $this->translations($file);
$group = $this->groupName($file);
$entries = 0;
$count = 0;
foreach ($translation as $key => $value)
{
$this->searchForEmpty($key, $value, null, $count, $entries, $group);
}
return $entries."/".$count;
}
protected function searchForEmpty($key, $value, $prefix, &$count, &$entries, $group)
{
$prefix = $prefix ? "{$prefix}.{$key}" : $group.".".$key;
if (is_array($value))
{
foreach ($value as $subKey => $subValue)
{
$this->searchForEmpty($subKey, $subValue, $prefix, $count,$entries, $group);
}
}
else
{
if(Lang::has($prefix, $this->languageRead, false)){
$count++;
}
if(Lang::has($prefix, 'de', false)){
$entries ++;
}
}
}
/**
* Get default language
*
* @return string
*/
public function defaultLanguage()
{
return config('app.fallback_locale', 'de');
}
/**
* Get the group name from a filename
*
* @param $filename
*
* @return mixed
*/
public function groupName($filename)
{
return preg_replace('/\.php$/', '', $filename);
}
/**
* Get default language
*
* @param string $path
* @param string $language
*
* @return string
*/
protected function namespacePath($path, $language = null)
{
return "{$path}{$this->directory_separator}" . ($language ?: $this->defaultLanguage());
}
/**
* List content of a path
*
* @param null $path
* @param bool $recursive
*
* @return \Illuminate\Support\Collection
*/
protected function pathContent($path = null, $recursive = false)
{
//var_dump($this->filesystem->listContents($path, $recursive));
//return new Collection(($this->filesystem->listContents($path, $recursive)));
return new Collection(File::files($path));
}
}

View file

@ -29,13 +29,14 @@ class MailActivateUser extends Mailable
{
$salutation = __('Dear customer').",";
if($this->user->account){
/* if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
*/
/* $message = [
'link' => route('user.update_email_confirm', $token),
'line1' => 'Bitte aktivieren Sie Ihre neue E-Mail über diesen Link:',

View file

@ -28,13 +28,15 @@ class MailResetPassword extends Mailable
public function build()
{
$salutation = __('Dear customer').",";
if($this->user->account){
/* if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
*/
return $this->view('emails.auth')->with([
'url' => route('password.reset', $this->token),

View file

@ -28,13 +28,14 @@ class MailVerifyAccount extends Mailable
public function build()
{
$salutation = __('Dear customer').",";
if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
/* if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
*/
return $this->view('emails.auth')->with([
'url' => route('register_verify', $this->confirmation_code),

View file

@ -28,13 +28,14 @@ class MailVerifyContact extends Mailable
public function build()
{
$salutation = __('Dear customer').",";
if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
/* if($this->user->account){
if($this->user->account->salutation == "mr"){
$salutation = __('Dear Sir')." ".$this->user->account->last_name.",";
}else{
$salutation = __('Dear Mrs')." ".$this->user->account->last_name.",";
}
}
*/
return $this->view('emails.auth')->with([
'url' => route('register_verify', $this->confirmation_code),

49
app/Models/Booking.php Normal file
View file

@ -0,0 +1,49 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
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');
}
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;
}
}

View file

@ -0,0 +1,130 @@
<?php
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\BookingDraftItem
*
* @property int $id
* @property int $booking_id
* @property int $travel_program_id
* @property int|null $travel_class_id
* @property int|null $draft_item_id
* @property int|null $draft_type_id
* @property string|null $request_date
* @property int|null $days_start
* @property int|null $days_duration
* @property string|null $start_date
* @property string|null $end_date
* @property string|null $service
* @property float|null $price_adult
* @property int|null $adult
* @property float|null $price_children
* @property int|null $children
* @property int|null $pos
* @property int $in_pdf
* @property int $status
* @property int $comfort
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\DraftItem|null $draft_item
* @property-read \App\Models\DraftType|null $draft_type
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereAdult($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereBookingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereChildren($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereComfort($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDaysDuration($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDaysStart($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDraftItemId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereDraftTypeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereEndDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereInPdf($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePriceAdult($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePriceChildren($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereRequestDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereService($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereStartDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereTravelClassId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereTravelProgramId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereUpdatedAt($value)
* @mixin \Eloquent
*/
class BookingDraftItem extends Model
{
protected $connection = 'mysql';
protected $table = 'booking_draft_items';
protected $fillable = [
'booking_id',
'travel_program_id',
'travel_class_id',
'draft_item_id',
'draft_type_id',
'request_date',
'days_start',
'days_duration',
'start_date',
'end_date',
'service',
'price_adult',
'adult',
'price_children',
'children',
'pos',
'in_pdf',
'comfort',
];
/* public function booking()
{
return $this->belongsTo('App\Models\Booking', 'booking_id');
}
*/
public function booking()
{
return $this->belongsTo('App\Models\Booking', 'booking_id');
}
public function draft_item()
{
return $this->belongsTo('App\Models\DraftItem', 'draft_item_id');
}
public function draft_type()
{
return $this->belongsTo('App\Models\DraftType', 'draft_type_id');
}
public function getStartDateAttribute(){
return isset($this->attributes['start_date']) ? Carbon::parse($this->attributes['start_date'])->format("d.m.Y") : '';
}
public function getEndDateAttribute(){
return isset($this->attributes['end_date']) ? Carbon::parse($this->attributes['end_date'])->format("d.m.Y") : '';
}
public function setStartDateAttribute($value)
{
if (!$value) {
$this->attributes['start_date'] = null;
} else {
$this->attributes['start_date'] = (new Carbon($value))->format('Y-m-d');
}
}
public function setEndDateAttribute($value){
if (!$value) {
$this->attributes['end_date'] = null;
} else {
$this->attributes['end_date'] = (new Carbon($value))->format('Y-m-d');
}
}
}

View file

@ -55,6 +55,8 @@ class DraftItem extends Model
'pos',
];
public function draft()
{
return $this->belongsTo('App\Models\Draft', 'draft_id');

View file

@ -0,0 +1,26 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class TravelCountry extends Model
{
//use the connection to sec. Datebase sterntours
protected $connection = 'mysql_stern';
protected $table = 'travel_country';
protected $fillable = [
'name',
'html_information',
];
public $timestamps = false;
public function travel_program_country()
{
return $this->hasOne('App\Models\TravelProgramCountry', 'country_id', 'id');
}
}

View file

@ -129,6 +129,11 @@ class TravelProgram extends Model
return $this->hasMany('App\Models\TravelProgramDraft', 'travel_program_id', 'id');
}
public function travel_program_country()
{
return $this->hasOne('App\Models\TravelProgramCountry', 'program_id', 'id');
}
public function getWeekdaysArray(){
if($this->weekdays){
return explode(',', $this->weekdays);

View file

@ -0,0 +1,31 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class TravelProgramCountry extends Model
{
//use the connection to sec. Datebase sterntours
protected $connection = 'mysql_stern';
protected $table = 'travel_program_country';
protected $fillable = [
'program_id',
'country_id',
];
public $timestamps = false;
public function travel_program()
{
return $this->belongsTo('App\Models\TravelProgram', 'program_id');
}
public function travel_country()
{
return $this->belongsTo('App\Models\TravelCountry', 'country_id');
}
}

View file

@ -0,0 +1,21 @@
<?php
namespace App\Repositories;
use App\Models\Booking;
class BookingRepository extends BaseRepository {
public function __construct(Booking $model)
{
$this->model = $model;
}
public function update($data)
{
return $this->model;
}
}

View file

@ -0,0 +1,73 @@
<?php
namespace App\Requests;
use App\Http\Controllers\TranslationFileController;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class TranslationRequest
*
* @package GeniusTS\TranslationManager
*/
class TranslationRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$manager = new TranslationFileController;
$rules = [];
$file = $this->route()->parameter('file');
$translation = $manager->translations($file);
foreach ($translation as $key => $value)
{
$this->generateRulesOfKey($key, $value, null, $rules);
}
return $rules;
}
/**
* Generate rule form an element
*
* @param string $key
* @param string $value
* @param string $prefix
* @param array $rules
*/
protected function generateRulesOfKey($key, $value, $prefix, &$rules)
{
$rule = $prefix ? "{$prefix}{$key}" : $key;
if (is_array($value))
{
//$rules[$rule] = 'required|array';
foreach ($value as $subKey => $subValue)
{
$this->generateRulesOfKey($subKey, $subValue, "{$rule}.", $rules);
}
}
else
{
//$rules[$rule] = "required|string";
}
}
}

View file

@ -54,7 +54,7 @@ return [
'url' => env('APP_URL', 'http://crm-stern-tours.local'),
'old_url' => env('APP_OLR_URL', 'http://cms-stern-tours.local'),
'old_url' => env('APP_OLD_URL', 'http://cms-stern-tours.local'),
/*
|--------------------------------------------------------------------------
@ -93,7 +93,7 @@ return [
|
*/
'fallback_locale' => 'en',
'fallback_locale' => 'de',
/*
|--------------------------------------------------------------------------

View file

@ -42,7 +42,7 @@ return [
//'et' => ['name' => 'Estonian', 'script' => 'Latn', 'native' => 'eesti', 'regional' => 'et_EE'],
//'na' => ['name' => 'Nauru', 'script' => 'Latn', 'native' => 'Ekakairũ Naoero', 'regional' => ''],
//'guz' => ['name' => 'Ekegusii', 'script' => 'Latn', 'native' => 'Ekegusii', 'regional' => ''],
'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English', 'regional' => 'en_GB'],
// 'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English', 'regional' => 'en_GB'],
//'en-AU' => ['name' => 'Australian English', 'script' => 'Latn', 'native' => 'Australian English', 'regional' => 'en_AU'],
//'en-GB' => ['name' => 'British English', 'script' => 'Latn', 'native' => 'British English', 'regional' => 'en_GB'],
//'en-US' => ['name' => 'U.S. English', 'script' => 'Latn', 'native' => 'U.S. English', 'regional' => 'en_US'],
@ -52,7 +52,7 @@ return [
//'ewo' => ['name' => 'Ewondo', 'script' => 'Latn', 'native' => 'ewondo', 'regional' => ''],
//'ee' => ['name' => 'Ewe', 'script' => 'Latn', 'native' => 'eʋegbe', 'regional' => ''],
//'fil' => ['name' => 'Filipino', 'script' => 'Latn', 'native' => 'Filipino', 'regional' => 'fil_PH'],
'fr' => ['name' => 'French', 'script' => 'Latn', 'native' => 'français', 'regional' => 'fr_FR'],
// 'fr' => ['name' => 'French', 'script' => 'Latn', 'native' => 'français', 'regional' => 'fr_FR'],
//'fr-CA' => ['name' => 'Canadian French', 'script' => 'Latn', 'native' => 'français canadien', 'regional' => 'fr_CA'],
//'fy' => ['name' => 'Western Frisian', 'script' => 'Latn', 'native' => 'frysk', 'regional' => 'fy_DE'],
//'fur' => ['name' => 'Friulian', 'script' => 'Latn', 'native' => 'furlan', 'regional' => 'fur_IT'],
@ -130,7 +130,7 @@ return [
//'mtr' => ['name' => 'Mewari', 'script' => 'Latn', 'native' => 'Mewari', 'regional' => ''],
//'mua' => ['name' => 'Mundang', 'script' => 'Latn', 'native' => 'Mundang', 'regional' => ''],
//'mi' => ['name' => 'Māori', 'script' => 'Latn', 'native' => 'Māori', 'regional' => 'mi_NZ'],
'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'],
// 'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'],
//'nmg' => ['name' => 'Kwasio', 'script' => 'Latn', 'native' => 'ngumba', 'regional' => ''],
//'yav' => ['name' => 'Yangben', 'script' => 'Latn', 'native' => 'nuasue', 'regional' => ''],
//'nn' => ['name' => 'Norwegian Nynorsk', 'script' => 'Latn', 'native' => 'nynorsk', 'regional' => 'nn_NO'],

View file

@ -16,6 +16,7 @@ class CreateDraftTypesTable extends Migration
Schema::create('draft_types', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('color', 10)->nullable();
$table->boolean('active')->default(true);
$table->timestamps();

View file

@ -16,20 +16,17 @@ class CreateDraftItemsTable extends Migration
Schema::create('draft_items', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('draft_id')->index();
$table->unsignedInteger('draft_type_id')->index();
$table->unsignedInteger('draft_type_id')->nullable()->index();
$table->tinyInteger('days_start')->unsigned()->nullable();
$table->tinyInteger('days_duration')->unsigned()->nullable();
$table->string('name')->nullable();
$table->text('service')->nullable();
$table->decimal('price_adult', 8, 2)->nullable();
$table->tinyInteger('adult')->unsigned()->nullable();
$table->decimal('price_children', 8, 2)->nullable();
$table->tinyInteger('children')->unsigned()->nullable();
$table->text('content')->nullable();
$table->tinyInteger('pos')->unsigned()->nullable();
$table->boolean('in_pdf')->default(true);
$table->boolean('active')->default(true);
@ -56,3 +53,6 @@ class CreateDraftItemsTable extends Migration
Schema::dropIfExists('draft_items');
}
}

View file

@ -0,0 +1,75 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBookingDraftItemsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking_draft_items', function (Blueprint $table) {
$table->increments('id');
$table->bigInteger('booking_id')->index();
$table->integer('travel_program_id')->index();
$table->integer('travel_class_id')->nullable()->index();
$table->unsignedInteger('draft_item_id')->nullable()->index();
$table->integer('draft_type_id')->nullable()->index();
$table->date('request_date')->nullable();
$table->tinyInteger('days_start')->unsigned()->nullable();
$table->tinyInteger('days_duration')->unsigned()->nullable();
$table->date('start_date')->nullable();
$table->date('end_date')->nullable();
$table->text('service')->nullable();
$table->decimal('price_adult', 8, 2)->nullable();
$table->tinyInteger('adult')->unsigned()->nullable();
$table->decimal('price_children', 8, 2)->nullable();
$table->tinyInteger('children')->unsigned()->nullable();
$table->tinyInteger('pos')->unsigned()->nullable();
$table->boolean('in_pdf')->default(true);
$table->boolean('status')->default(false);
$table->boolean('comfort')->default(false);
$table->timestamps();
$table->foreign('booking_id')
->references('id')
->on('booking');
$table->foreign('draft_item_id')
->references('id')
->on('draft_items');
$table->foreign('draft_type_id')
->references('id')
->on('draft_types');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking_draft_items');
}
}

View file

@ -0,0 +1,35 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTravelCountryTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql_stern')->create('travel_country', function (Blueprint $table) {
$table->increments('id');
$table->integer('id')->index();
$table->string('name')->nullable();
$table->string('html_information')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql_stern')->dropIfExists('travel_country');
}
}

View file

@ -0,0 +1,43 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateTravelProgramCountryTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql_stern')->create('travel_program_country', function (Blueprint $table) {
$table->increments('id');
$table->integer('program_id')->nullable()->index();
$table->integer('country_id')->nullable()->index();
$table->foreign('program_id')
->references('id')
->on('travel_program');
$table->foreign('country_id')
->references('id')
->on('travel_country');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql_stern')->dropIfExists('travel_program_country');
}
}

View file

@ -0,0 +1,99 @@
<?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 CreateBookingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('booking', function (Blueprint $table) {
$table->bigIncrements('id');
$table->date('booking_date')->nullable();
$table->bigInteger('customer_id');
$table->bigInteger('lead_id')->nullable();
$table->tinyInteger('new_drafts')->nullable();
$table->integer('sf_guard_user_id');
$table->bigInteger('branch_id');
$table->decimal('service_fee', 10, 2)->nullable()->default(0.00);
$table->bigInteger('travel_country_id')->nullable();
$table->bigInteger('travel_category_id')->nullable();
$table->bigInteger('pax')->nullable();
$table->bigInteger('coupon_id')->nullable();
$table->dateTime('created_at');
$table->dateTime('updated_at');
$table->string('title', 255)->nullable();
$table->date('start_date')->nullable();
$table->date('end_date')->nullable();
$table->bigInteger('website_id')->nullable();
$table->string('travel_number', 30)->nullable();
$table->string('participant_name', 80)->nullable();
$table->string('participant_firstname', 80)->nullable();
$table->date('participant_birthdate')->nullable();
$table->bigInteger('participant_salutation_id')->nullable();
$table->string('ev_number', 255)->nullable();
$table->string('merlin_knr', 255)->nullable();
$table->string('merlin_order_number', 255)->nullable();
$table->bigInteger('travel_company_id')->nullable();
$table->decimal('price', 10, 2)->nullable();
$table->decimal('price_total', 10, 2)->nullable();
$table->decimal('deposit_total', 10, 2)->nullable();
$table->decimal('final_payment', 10, 2)->nullable();
$table->date('final_payment_date')->nullable();
$table->bigInteger('travelagenda_id')->nullable();
$table->index('lead_id', 'lead_id_idx');
$table->index('sf_guard_user_id', 'sf_guard_user_id_idx');
$table->index('branch_id', 'branch_id_idx');
$table->index('customer_id', 'customer_id_idx');
$table->index('coupon_id', 'coupon_id_idx');
$table->index('travel_category_id', 'travel_category_id_idx');
$table->index('travel_country_id', 'travel_country_id_idx');
$table->index('travel_company_id', 'booking_travel_company_id_idx');
$table->index('travelagenda_id', 'booking_travelagenda_id_idx');
$table->foreign('branch_id', 'booking_branch_id_branch_id')->references('id')->on('branch')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('coupon_id', 'booking_coupon_id_coupon_id')->references('id')->on('coupon')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('customer_id', 'booking_customer_id_customer_id')->references('id')->on('customer')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('lead_id', 'booking_lead_id_lead_id')->references('id')->on('lead')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('sf_guard_user_id', 'booking_sf_guard_user_id_sf_guard_user_id')->references('id')->on('sf_guard_user')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('travel_category_id', 'booking_travel_category_id_travel_category_id')->references('id')->on('travel_category')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('travel_company_id', 'booking_travel_company_id_travel_company_id')->references('id')->on('travel_company')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('travel_country_id', 'booking_travel_country_id_travel_country_id')->references('id')->on('travel_country')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
$table->foreign('travelagenda_id', 'booking_travelagenda_id_travel_agenda_id')->references('id')->on('travel_agenda')->onDelete('RESTRICT
')->onUpdate('RESTRICT');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('booking');
}
}

1
public/js/bootstrap-datepicker.de.min.js vendored Executable file
View file

@ -0,0 +1 @@
!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery);

View file

@ -47,7 +47,23 @@ jQuery(document).ready(function() {
});
});
$(function() {
$('.datepicker-base').datepicker({
orientation: 'auto right',
calendarWeeks: true,
todayBtn: 'linked',
daysOfWeekDisabled: '1',
todayHighlight: true,
multidate: false,
daysOfWeekHighlighted: '0,6',
autoclose: true,
format: 'dd.mm.yyyy',
language: 'de',
clearBtn: true,
});
});
/*
$(function() {
$('.select2-main').each(function() {

View file

@ -0,0 +1,8 @@
<?php
return array (
'grundpreis_reise' => 'pro Person im #Raumname#',
'aufpreis_kategorie' => 'pro Person: #Kategorie#',
'aufpreis_flug' => 'Aufschlag für Abfahrts-/Abflugort pro Person: ab #Flughafen#',
'aufpreis_option' => 'pro Person: #Option#',
);

View file

@ -1,17 +1,6 @@
<?php
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.',
'throttle' => 'Zu viele Loginversuche. Versuchen Sie es bitte in :seconds Sekunden nochmal.',
];
return array (
'failed' => 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.',
'throttle' => 'Zu viele Loginversuche. Versuchen Sie es bitte in :seconds Sekunden nochmal.',
);

View file

@ -1,46 +0,0 @@
<?php
return array (
'Mr' => 'Herr',
'MS ' => 'Frau',
'please select' => 'Bitte wählen',
'further countries' => 'weitere Länder',
'no' => 'Keine',
'Company data' => 'Firmendaten',
'Company name' => 'Firmenname',
'Street' => 'Straße',
'House number' => 'Hausnummer',
'Place' => 'Ort',
'Postcode' => 'PLZ',
'Country' => 'Land',
'Phone' => 'Telefon',
'Homepage' => 'Homepage',
'Industry' => 'Branche',
'Your Data' => 'Ihre Daten',
'Function' => 'Funktion',
'Salutation' => 'Anrede',
'Title' => 'Titel',
'First name' => 'Vorname',
'Last Name' => 'Nachname',
'Your interests' => 'Ihre Interessen',
'Your contact at JACKON' => 'Ihr Ansprechpartner bei JACKON',
'Name' => 'Name',
'Consent & Privacy' => 'Einwilligung & Datenschutz',
"Confirm Password" => "Passwort bestätigen",
"E-Mail Address" => "E-Mail Adresse",
"Forgot Your Password?" => "Passwort vergessen?",
"Login" => "Einloggen",
"Logout" => "Ausloggen",
"Password" => "Passwort",
"Register" => "Registrieren",
"Remember Me" => "Angemeldet bleiben",
"Reset Password" => "Passwort zurücksetzen",
"Send Password Reset Link" => "Link zum Zurücksetzen des Passworts senden"
);

View file

@ -0,0 +1,148 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-1">
Buchung verwalten
</h4>
{!! Form::open(['url' => route('booking_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<input type="hidden" name="id" id="id" value="{{$id}}">
<!-- draft -->
<div class="card mb-2">
<div class="card-body row">
<div class="form-group col-sm-6">
<label class="form-label" for="merlin_order_number">{{ __('MyJack Nr.') }}*</label>
{{ Form::text('merlin_order_number', $booking->merlin_order_number, array('placeholder'=>__('MyJack Nr.'), 'class'=>'form-control', 'id'=>'merlin_order_number')) }}
</div>
<div class="form-group col-sm-6">
<label class="form-label" for="booking_id">{{ __('Nr.') }}*</label>
{{ Form::text('id', $booking->id, array('placeholder'=>__('Nr.'), 'class'=>'form-control', 'id'=>'booking_id', 'readonly')) }}
</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>
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
</div>
<hr>
@if($booking->new_drafts )
@php($i = 1)
<div class="text-right mb-2">
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen <i class="far fa-arrow-up"></i></button>
</div>
<div id="dragula-drag-handles">
@foreach($booking->booking_draft_items as $booking_draft_item)
<!-- item -->
<div class="card mb-2" @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<div class="card-body row" style="">
<div class="form-group col-md-3 col-12">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][draft_type_id]" id="draft_item_{{$booking_draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-md-3 col-4">
{{ Form::text('draft_item['.$booking_draft_item->id.'][start_date]', $booking_draft_item->start_date, array('placeholder'=>__('Start Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_start_dat')) }}
</div>
<div class="form-group col-md-3 col-4">
{{ Form::text('draft_item['.$booking_draft_item->id.'][end_date]', $booking_draft_item->end_date, array('placeholder'=>__('End Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_end_date')) }}
</div>
<div class="form-group col-md-3 col-4 text-right">
<h5 class="float-right mt-1">#{{ $i++ }} </h5>
<span class=" handle ion ion-ios-move d-inline-block bg-primary text-white p-2 mr-2 mb-1"></span>
<button type="submit" name="action" value="up_{{$booking_draft_item->id}}" class="btn btn-xs btn-default"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$booking_draft_item->id}}" class="btn btn-xs btn-default mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
<div class="form-group col-sm-10 col-8">
{{ Form::textarea('draft_item['.$booking_draft_item->id.'][service]', $booking_draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$booking_draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-4">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$booking_draft_item->id.'][in_pdf]', 1, $booking_draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
@if(in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35]))
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][adult]" id="draft_item_{{$booking_draft_item->id }}_adult">
<option value="">Teilnehmer</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, ' T.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_adult]', $booking_draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_adult',)) }}
</div>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][children]" id="draft_item_{{$booking_draft_item->id}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, ' K.') !!}
</select>
</div>
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_children]', $booking_draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_children')) }}
</div>
</div>
@endif
</div>
</div>
@endforeach
</div>
@endif
<div class="text-right">
<button type="submit" name="action" value="addItemDown" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen <i class="far fa-arrow-down"></i></button>
</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>
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
</div>
{!! Form::close() !!}
@endsection

View file

@ -0,0 +1,43 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-3 mb-4">
{{ __('Buchungen') }}
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-bookings table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Nr.')}}</th>
</tr>
</thead>
</table>
</div>
</div>
<script>
$( document ).ready(function() {
$('.datatables-bookings').dataTable({
"processing": true,
"serverSide": true,
"ajax": '{!! route('data_table_bookings') !!}',
"columns": [
{ data: 'action_edit', orderable: false, searchable: false},
{ data: 'id', name: 'id' },
],
"bLengthChange": false,
"iDisplayLength": 50,
"language": {
"url": "/js/German.json"
}
});
});
</script>
@endsection

View file

@ -4,9 +4,80 @@
<h4 class="font-weight-bold py-3 mb-1">
Vorlage verwalten
<span class="float-right">
<button class="btn btn-sm btn-warning" data-toggle="modal" data-target="#exampleNotice"><i class="fa">?</i> </button>
</span>
</h4>
<!-- Modal -->
<div class="modal fade" id="exampleNotice" tabindex="-1" role="dialog" aria-labelledby="exampleNoticeTitle" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleNoticeTitle">Hinweise</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>
Hinweise zu Platzhaltern im den Vorlagen:
</p>
<style>
ul.exampleModal {
padding-left: 15px;
}
ul.exampleModal li {
border-bottom: 1px solid #cfcfcf;
margin-bottom: 8px;
}
</style>
<ul class="exampleModal">
<li><strong>#Name#</strong> (in jedem Textfeld)<br>
Name der Reise - Jordanien ..
</li>
<li><strong>#Nummer#</strong> (in jedem Textfeld)<br>
Reisenummer - JORD-INT..
</li>
<li><strong>#Zimmer#</strong> (in jedem Textfeld)<br>
Anzahl x Beichnung der gebuchten Zimmer mit Komma getrennt - 2 x Doppel..,
</li>
<li><strong>#Flughafen#</strong> (in jedem Textfeld)<br>
Name es Abflughafens - Düssel..
</li>
<li><strong>#Raumname#</strong> (wird bei Grundpreis Reise ausgewertet)<br>
Name des gebuchten Raums - Doppel..
</li>
<li><strong>#Kategorie#</strong> (wird bei Aufpreis Kategorie ausgewertet)<br>
Name der zusätzlichen Kategorie - Komfort (4 Sterne)
</li>
<li><strong>#Option#</strong> (wird bei Aufpreis Option (derzeit nur Verpflegung) ausgewertet)<br>
Name der zusätzlichen Optionen - Halbpension
</li>
</ul>
@if(Auth::user()->isSuperAdmin())
<br>
<p><strong>Anpassung der Textbausteine für die Preisen <a href="{{ url('admin/translation/file/_vorlagen/de/de/all') }}">Inhalte -> Vorlagen</a></strong></p>
@endif
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">schließen</button>
</div>
</div>
</div>
</div>
{!! Form::open(['url' => route('draft_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<input type="hidden" name="id" id="id" value="{{$id}}">
@ -27,57 +98,76 @@
</div>
</div>
@if(count($draft->draft_items))
@php($i = 1)
<div class="text-right mb-2">
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen</button>
<div class="text-left mt-3 mb-2">
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('drafts')}}" class="btn btn-default">{{ __('back') }}</a>
<div class="float-right">
<button type="submit" name="action" value="addItem" class="btn btn-sm btn-primary"><i class="far fa-plus"></i> Neue Leistung hinzufügen</button>
</div>
</div>
<div id="dragula-drag-handles">
@foreach($draft->draft_items as $draft_item)
<!-- item -->
<div class="card mb-2">
<div class="card mb-2" @if($draft_item->draft_type) style="background-color: {{ $draft_item->draft_type->color }}" @endif>
<div class="card-body row">
<div class="form-group col-sm-4">
<div class="form-group col-md-3 col-12">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][draft_type_id]" id="draft_item_{{$draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($draft_item->draft_type_id) !!}
</select>
</div>
<div class="form-group col-sm-3 col-6">
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_start]]" id="draft_item_{{$draft_item->id }}_days_start">
<option value="">(Datum) Start + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_start, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-sm-3 col-6">
<div class="form-group col-md-3 col-4">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][days_duration]" id="draft_item_{{$draft_item->id }}_days_duration">
<option value="">(Datum) Dauer + Tage</option>
{!! HTMLHelper::getRangeOptions($draft_item->days_duration, 30, ' Tag(e)') !!}
</select>
</div>
<div class="form-group col-sm-2 text-right">
<div class="form-group col-md-3 col-4 text-right">
<h5 class="float-right mt-1">#{{ $i++ }} </h5>
<span class=" handle ion ion-ios-move d-inline-block bg-primary text-white p-2 mr-2 mb-1"></span>
<button type="submit" name="action" value="up_{{$draft_item->id}}" class="btn btn-xs btn-default"><i class="fa fa-arrow-up"></i> </button>
<button type="submit" name="action" value="down_{{$draft_item->id}}" class="btn btn-xs btn-default mr-2"><i class="fa fa-arrow-down"></i> </button>
</div>
<div class="form-group col-sm-12">
{{ Form::textarea('draft_item['.$draft_item->id.'][service]', $draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control', 'id'=>'draft_item_'.$draft_item->id.'_service', 'rows'=>'1')) }}
<div class="form-group col-sm-10 col-8">
{{ Form::textarea('draft_item['.$draft_item->id.'][service]', $draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
</div>
<div class="form-group col-sm-2 col-3">
<div class="form-group col-sm-2 col-4">
<div class="text-right mt-2 float-right">
<a class="text-danger" href="{{ route('draft_item_delete', [$draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
{!! Form::checkbox('draft_item['.$draft_item->id.'][in_pdf]', 1, $draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][adult]" id="draft_item_{{$draft_item->id }}_adult">
<option value="">Teilnehmer</option>
{!! HTMLHelper::getRangeOptions($draft_item->adult, 10, ' T.') !!}
</select>
</div>
<div class="form-group col-sm-2 col-3">
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
@ -87,14 +177,14 @@
</div>
<div class="form-group col-sm-2 col-3">
<div class="form-group col-3">
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$draft_item->id}}][children]" id="draft_item_{{$draft_item->id}}_children">
<option value="">Kinder</option>
{!! HTMLHelper::getRangeOptions($draft_item->children, 10, ' K.') !!}
</select>
</div>
<div class="form-group col-sm-2 col-3">
<div class="form-group col-3">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
@ -103,22 +193,12 @@
</div>
</div>
<div class="form-group col-sm-2 col-3">
<label class="custom-control custom-checkbox mt-2">
{!! Form::checkbox('draft_item['.$draft_item->id.'][in_pdf]', 1, $draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('in PDF')}}</span>
</label>
</div>
<div class="form-group col-sm-2 col-6">
<div class="text-right mt-3">
<a class="text-danger" href="{{ route('draft_item_delete', [$draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="far fa-trash-alt"></i></a>
</div>
</div>
</div>
</div>
@endforeach
</div>
@endif
@if(!empty($draft_items))

View file

@ -82,6 +82,7 @@
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Farbe')}}</th>
<th>{{__('sichtbar')}}</th>
<th></th>
</tr>
@ -93,11 +94,20 @@
<button type="button" class="btn icon-btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-type"
data-id="{{ $value->id }}"
data-name="{{ $value->name }}"
data-color="{{ $value->color }}"
data-active="{{ $value->active }}">
<span class="far fa-edit"></span>
</button>
</td>
<td>{{ $value->name }}</td>
<td>@if($value->color)
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: {{$value->color}}"></div>
{{ $value->color }}
@else
<div style="display:inline-block; width: 20px; height: 20px; border: 1px solid #888a85; background-color: #fff"></div>
@endif
</td>
<td data-sort="{{ $value->active }}">
@if($value->active)
<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>
@ -140,6 +150,15 @@
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="name" class="form-label">Farbe*</label>
<input type="text" name="color" id="minicolors-hue" class="form-control" value="#fff">
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="active" checked>
@ -158,11 +177,23 @@
<script>
$( document ).ready(function() {
$('#minicolors-hue').minicolors({
control: 'hue',
position: 'bottom ' + 'left',
});
$('#modals-type').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='name']").val(button.data('name'));
$('.selectpicker').selectpicker('refresh');
color = '#fff';
if(button.data('color') != ""){
color = button.data('color');
}
$('#minicolors-hue').minicolors('value', color);
// $('.selectpicker').selectpicker('refresh');
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
});

View file

@ -0,0 +1,214 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>STERN TOURS</title>
<!-- Designed by https://github.com/kaytcat -->
<!-- Robot header image designed by Freepik.com -->
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
/* Take care of image borders and formatting */
img {
max-width: 600px;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a {
text-decoration: none;
border: 0;
outline: none;
color: #5f8155;
}
a:hover {
color:#e5aa30;
}
a img {
border: none;
}
/* General styling */
td, h1, h2, h3 {
font-family: "Roboto", Helvetica, Arial, sans-serif;
font-weight: 400;
}
td {
text-align: center;
}
body {
-webkit-font-smoothing:antialiased;
-webkit-text-size-adjust:none;
width: 100%;
height: 100%;
color: #37302d;
background: #ffffff;
font-size: 15px;
line-height: 26px
}
table {
border-collapse: collapse !important;
}
.headline {
color: #5f8155;
font-size: 16px;
}
.force-full-width {
width: 100% !important;
}
</style>
<style type="text/css" media="screen">
@media screen {
/*Thanks Outlook 2013! http://goo.gl/XLxpyl*/
td, h1, h2, h3 {
font-family: 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif' !important;
}
}
</style>
<style type="text/css" media="only screen and (max-width: 480px)">
/* Mobile styles */
@media only screen and (max-width: 480px) {
table[class="w320"] {
width: 320px !important;
}
}
</style>
<!--[if mso]>
<style type="text/css">
body, table, td {font-family: Helvetica, Arial, sans-serif !important;}
</style>
<![endif]-->
</head>
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%" >
<tr>
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
<tr>
<td align="center" valign="top">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%" style="margin:0 auto;">
<tr>
<td style="font-size: 30px; text-align:center;">
<br>
<img src="https://www.sterntours.de/images/da2f996_wlogo_1.png" alt="STERN TOURS" style="border:none" width="260">
<br>
<br>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
<tr>
<td class="headline">
<br><br>
<b>{{ $salutation }} </b>
</td>
</tr>
<tr>
<td>
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#514d6a;">
<br>
{{ $copy1line }}
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
<tr>
<td>
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:50px;v-text-anchor:middle;width:250px;" arcsize="50%" stroke="f" fillcolor="#5f8155">
<w:anchorlock/>
<center>
<![endif]-->
<a href="{{ $url }}"
style="background-color:#5f8155;border-radius:40px;color:#ffffff;display:inline-block;font-family:Helvetica, Arial, sans-serif;font-size:15px;font-weight:bold;line-height:50px;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;">{{ $button }}</a>
<!--[if mso]>
</center>
</v:roundrect>
<![endif]-->
<br>
</td>
<tr>
<tr>
<td style="color:#514d6a;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#514d6a;">
<br>
{{ $copy2line }}<br>
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;">{{ $url }}</span>
<br><br>
<b>{{ $greetings }}</b> <br><b>Ihr Team von STERN TOURS</b>
<br>
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width" bgcolor="#f8f8f8">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<br>
STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin<br>
Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de<br>
<br>
<a href="https://www.sterntours.de" style="color: #7B7B7E; text-decoration: underline;">www.sterntours.de</a>
<br>
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px; line-height: 14px;">
<br>
Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111<br>
Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf<br>
© 2018 All Rights Reserved
<br>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -1,17 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>STERN TOURS</title>
<!-- Designed by https://github.com/kaytcat -->
<!-- Robot header image designed by Freepik.com -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mein STERN TOURS</title>
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
/* Take care of image borders and formatting */
img {
max-width: 600px;
outline: none;
@ -25,6 +21,7 @@
outline: none;
color: #5f8155;
}
a:hover {
color:#e5aa30;
}
@ -33,9 +30,7 @@
border: none;
}
/* General styling */
td, h1, h2, h3 {
td, h1, h2, h3 {
font-family: "Roboto", Helvetica, Arial, sans-serif;
font-weight: 400;
}
@ -45,8 +40,8 @@
}
body {
-webkit-font-smoothing:antialiased;
-webkit-text-size-adjust:none;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
width: 100%;
height: 100%;
color: #37302d;
@ -58,10 +53,12 @@
table {
border-collapse: collapse !important;
}
.headline {
color: #5f8155;
font-size: 16px;
}
.force-full-width {
width: 100% !important;
}
@ -86,39 +83,59 @@
width: 320px !important;
}
}
</style>
<!--[if mso]>
<style type="text/css">
body, table, td {font-family: Helvetica, Arial, sans-serif !important;}
body, table, td {
font-family: Helvetica, Arial, sans-serif !important;
}
</style>
<![endif]-->
</head>
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%" >
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
{{ $copy1line }}
</div>
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<center>
<br>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
<tr>
<td align="center" valign="top">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%" style="margin:0 auto;">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td style="font-size: 30px; text-align:center;">
<br>
<img src="https://www.sterntours.de/images/da2f996_wlogo_1.png" alt="STERN TOURS" style="border:none" width="260">
<br>
<br>
<td style=" text-align:center;">
<center>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="">
<tbody class="">
<tr class="">
<td align="center" valign="top" style="font-size: 0px;" class="">
<picture class="">
<img src="https://www.sterntours.de/images/da2f996_wlogo_1.png" alt="STERN TOURS" style="border:none" width="260">
</picture>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%"
bgcolor="#ffffff">
<tr>
<td class="headline">
<br><br>
@ -130,7 +147,7 @@
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#514d6a;">
<td style="color:#37302d;">
<br>
{{ $copy1line }}
<br>
@ -143,37 +160,46 @@
</tr>
<tr>
<td>
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:50px;v-text-anchor:middle;width:250px;" arcsize="50%" stroke="f" fillcolor="#5f8155">
<w:anchorlock/>
<center>
<![endif]-->
<a href="{{ $url }}"
style="background-color:#5f8155;border-radius:40px;color:#ffffff;display:inline-block;font-family:Helvetica, Arial, sans-serif;font-size:15px;font-weight:bold;line-height:50px;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;">{{ $button }}</a>
<!--[if mso]>
<center>
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-wrap:break-word;background:transparent;font-size:0px;padding:10px 25px;padding-top:15px;padding-bottom:15px;padding-right:40px;padding-left:40px;" align="center" valign="top" background="data:image/gif;base64,">
<table role="presentation" cellpadding="0" cellspacing="0" align="center" border="0">
<tbody>
<tr>
<td style="border:none;border-radius:20px;color:#ffffff;cursor:auto;padding:15px 25px;" align="center" valign="middle" bgcolor="#5f8155">
<p style="text-decoration:none;background:#5f8155;color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:normal;line-height:120%;text-transform:none;margin:0px;">
<a href="{{ $url }}" style="color:#ffffff;font-size:14px;font-weight:bold;text-align:center;text-decoration:none;-webkit-text-size-adjust:none;">{{ $button }}</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</center>
</v:roundrect>
<![endif]-->
<br>
</td>
<tr>
<tr>
<td style="color:#514d6a;font-size: 14px;">
<td style="color:#37302d;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#514d6a;">
<td style="color:#37302d;">
<br>
{{ $copy2line }}<br>
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;">{{ $url }}</span>
<br><br>
<b>{{ $greetings }}</b> <br><b>Ihr Team von STERN TOURS</b>
<br>
{{ $greetings }} <br><b>Ihr Team von STERN TOURS</b>
<br>
<br>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</table>
</center>
@ -181,7 +207,9 @@
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width" bgcolor="#f8f8f8">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width"
bgcolor="#f8f8f8" style="margin: 0 auto">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<br>
@ -193,12 +221,11 @@
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px; line-height: 14px;">
<br>
<td style="color:#bbbbbb; font-size:12px;">
Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111<br>
Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf<br>
© 2018 All Rights Reserved
<br>
<a href="{{route('data_protected')}}">Datenschutzerklärung</a> <br>
© 2018 All Rights Reserved <br>
<br>
</td>
</tr>

View file

@ -35,7 +35,9 @@
<link rel="stylesheet" href="{{ mix('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/dragula/dragula.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/minicolors/minicolors.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
@ -55,6 +57,16 @@
.card-body {
padding: 1rem 1.5rem;
}
textarea.autoExpand{
box-sizing: border-box;
resize: none;
overflow: hidden;
}
.card {
border: 1px solid rgba(24, 28, 33, 0.20);
}
</style>
@yield('styles')
@ -107,6 +119,10 @@
<script src="{{ mix('/vendor/libs/select2/select2.js') }}"></script>
<script src="{{ mix('/vendor/libs/datatables/datatables.js') }}"></script>
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ mix('/vendor/libs/dragula/dragula.js') }}"></script>
<script src="{{ mix('/vendor/libs/minicolors/minicolors.js') }}"></script>
@ -121,6 +137,27 @@
<script src="{{ mix('/js/application.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}"></script>
<script>
// Dragula
$(function() {
// Drag handle
dragula([$('#dragula-drag-handles')[0]], {
moves: function (el, container, handle) {
return handle.classList.contains('handle');
}
});
});
jQuery.each(jQuery('textarea.autoExpand'), function() {
var offset = this.offsetHeight - this.clientHeight;
var resizeTextarea = function(el) {
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
};
jQuery(this).on('keyup input', function() { resizeTextarea(this); }).removeClass('autoExpand');
resizeTextarea(this);
});
</script>
</body>
</html>

View file

@ -28,6 +28,9 @@
<li class="sidenav-item{{ Request::is('drafts') ? ' active' : '' }}">
<a href="{{ route('drafts') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-paper"></i><div>Vorlagen</div></a>
</li>
<li class="sidenav-item{{ Request::is('bookings') ? ' active' : '' }}">
<a href="{{ route('bookings') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-bed"></i><div>Buchungen</div></a>
</li>
<li class="sidenav-divider mb-1"></li>
<li class="sidenav-header small font-weight-semibold">ADMIN altes System</li>
@ -66,14 +69,30 @@
<li class="sidenav-divider mb-1"></li>
<li class="sidenav-header small font-weight-semibold">SUPERADMIN</li>
<li class="sidenav-item{{ Request::is('admin/users') ? ' active' : '' }} {{ Request::is('admin/user/edit/*') ? ' active' : '' }}">
<li class="sidenav-item{{ Request::is('admin/users/*') ? ' active' : '' }} {{ Request::is('admin/user/edit/*') ? ' active' : '' }}">
<a href="{{ route('admin_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-ribbon"></i><div>{{ __('User Rechte') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/translate') ? ' active' : '' }}">
<a href="{{ route('admin_translate') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-browsers"></i><div>{{ __('Translate') }}</div></a>
<li class="sidenav-item{{ Request::is('admin/translate/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-ios-browsers"></i>
<div>Inhalte</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('admin/translate/file/*') ? ' active' : '' }}">
<a href="{{ route('admin_translate_file') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-browsers"></i><div>{{ __('Vorlagen') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/translate/all/*') ? ' active' : '' }}">
<a href="{{ route('admin_translate_all') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-browsers"></i><div>{{ __('Allgemein') }}</div></a>
</li>
</ul>
</li>
@endif
<li class="sidenav-divider mb-1"></li>

View file

@ -4,11 +4,11 @@
<!-- row -->
<div class="row">
<div class="col-lg-3 col-xl-2">
<!-- <div class="col-lg-3 col-xl-2">
<div>
@foreach($files as $k => $fl)
<a href="{{ url('/admin/translate/edit/'.$k) }}" class="media align-items-center bg-lighter text-dark py-1 px-1 @if($k == $language) active @endif">
<a href="{{ url('/admin/translate/all/edit/'.$k) }}" class="media align-items-center bg-lighter text-dark py-1 px-1 @if($k == $language) active @endif">
<div class=" text-center text-xlarge"><img src="{{asset('images/'.$k.'.png')}}" alt="" height="20"></div>
<div class="media-body ml-3">
{{ $k }}
@ -19,6 +19,7 @@
</div>
</div>
-->
<div class="col">
<div class="white-box p-0 min-height-500">
@ -28,7 +29,7 @@
@if($translations)
{!! Form::open([ 'url' => route('admin_translate_update', [$language, $from]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
{!! Form::open([ 'url' => route('admin_translate_all_update', [$language, $from]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
<!-- /.left-aside-column-->
<div class="right-aside">
@ -39,14 +40,15 @@
<div class="row">
<div class="col-12">
<div class="float-right">
<!-- <div class="float-right">
Translation from
<select class="selectpicker" onchange="if (this.value) window.location.href=this.value" >
@foreach($files as $k => $fl)
<option value="{{ url('/admin/translate/edit/'.$language.'/'.$k) }}" @if($k == $from) selected @endif>{{ $k }}</option>
<option value="{{ url('/admin/translate/all/edit/'.$language.'/'.$k) }}" @if($k == $from) selected @endif>{{ $k }}</option>
@endforeach
</select>
</div>
-->
<div class="">
<br>
<button type="submit" class="btn btn-primary">
@ -67,7 +69,7 @@
<tr>
<th width="30%">Source</th>
<th width="70%">Translation {{ $language }}
<th width="70%">Inhalt {{ $language }}
@ -106,13 +108,11 @@
</div>
<div class="row">
<div class="col-xs-12">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
{!! Form::close() !!}
@endif

View file

@ -0,0 +1,131 @@
@extends('layouts.layout-2')
@section('content')
<style type="text/css">
.form-control.has-error {
border: 1px solid #ea8e49;
}
</style>
<div class="row">
<div class="col-lg-3 col-xl-2">
<div>
@foreach($files as $fl)
<?php
$ae = substr($fl, 0, strrpos($fl,' ('));
?>
<a href="{{ url('/admin/translation/file/'.substr($fl, 0, strrpos($fl,' (')).'/'.$language.'/'.$langsource.'/'.$show) }}" class="media align-items-center bg-lighter text-dark py-1 px-1 @if($ae === $edit) active @endif">
<div class="media-body ml-3">
{{ $fl }}
</div>
</a>
@endforeach
</div>
</div>
<div class="col">
<div class="white-box p-0 min-height-500">
<!-- .left-right-aside-column-->
<div class="page-aside">
<!-- .left-aside-column-->
@if($translations)
{!! Form::open([ 'url' => route('admin_translate_file_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
<!-- /.left-aside-column-->
<div class="right-aside">
<div class="clearfix"></div>
<div class="scrollable">
<div class="row">
<div class="col-12">
<!-- <div class="float-right">
Translation from
<select class="selectpicker" onchange="if (this.value) window.location.href=this.value" >
@foreach($langs as $source)
<option value="{{ url('/admin/translation/file/'.$file.'/'.$language.'/'.$source.'/'.$show) }}" @if($source == $langsource) selected @endif>{{ $source }}</option>
@endforeach
</select>
</div>
<div class="float-right">
Translation
<select class="selectpicker" onchange="if (this.value) window.location.href=this.value" >
@foreach($langs as $lang)
<option value="{{ url('/admin/translation/file/'.$file.'/'.$lang.'/'.$langsource.'/'.$show) }}" @if($language == $lang) selected @endif>{{ $lang }}</option>
@endforeach
</select>
</div>
-->
<div class="">
<br>
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
<div class="clearfix"><br></div>
<div class="table-responsive">
<table class="table table-striped">
<tbody>
@foreach($translations as $key => $value)
@include('translation.translation_row', [
'key' => $key,
'value' => $value,
'language'=> $language,
'parent' => null,
'prefix' => $prefix,
'langsource' => $langsource,
'show' => $show,
])
@endforeach
</tbody>
</table>
</div>
</div>
<div class="col-xs-12">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
{!! Form::close() !!}
@endif
<!-- .left-aside-column-->
</div>
<!-- /.left-right-aside-column-->
</div>
</div>
</div>
<!-- /.row -->
@endsection

View file

@ -1,12 +1,12 @@
@if(is_array($value))
<tr>
<td @if(is_array($value))colspan="3"@endif>
<td @if(is_array($value))colspan="2"@endif>
<h4>{{ $key }}</h4>
</td>
</tr>
@foreach($value as $subKey => $subValue)
@include('components.translation_row', [
@include('translation.translation_row', [
'language' => $language,
'key' => $subKey,
'value' => $subValue,
@ -19,12 +19,12 @@
@endforeach
@else
<?php
$bool = Lang::has($prefix.'.'.$key, $language, false);
<?php
$bool = Lang::has($prefix.'.'.$key, $language, false);
?>
<tr <?php if($show == 'empty' && $bool) echo 'style="display:none"'; ?>>
<td>{{ $key }}</td>
<td>{!! nl2br(htmlentities($value)) !!}</td>
<!--<td>{!! nl2br(htmlentities($value)) !!}</td> -->
<td>
<?php
$old = $key;
@ -37,8 +37,8 @@
?>
<textarea name="{{ $name }}"
class="form-control @if(!$bool) has-error @endif"
rows="4">{{ old(
class="form-control @if(!$bool) has-error @endif"
rows="4">{{ old(
"{$old}",
$bool ? Lang::trans($prefix.'.'.$key, [], $language) : null
) }}</textarea>

View file

@ -17,4 +17,6 @@ Route::post('login', 'API\UserController@login');
Route::group(['middleware' => 'auth:api'], function(){
Route::post('details', 'API\UserController@details');
Route::post('draft/{action}', 'API\DraftController@draft');
Route::post('load/{action}', 'API\LoaderController@load');
});

View file

@ -54,7 +54,7 @@ Route::post('/loading/modal', 'HomeController@loadingModal')->name('loading_moda
Route::get('/', 'HomeController@index')->name('home');
Route::get('/check/login/{identify}/{token}', 'HomeController@checkLogin')->name('check_login');
Route::get('/check/login/{identify}/{token}/{show?}', 'HomeController@checkLogin')->name('check_login');
Route::get('/user/update_email_confirm/{token}', 'UserUpdateEmailController@activateMail')->name('user_update_email_confirm');
@ -106,6 +106,7 @@ Route::group(['middleware' => ['auth']], function()
Route::group(['middleware' => ['admin']], function()
{
//drafts
Route::get('/drafts/{step?}', 'DraftController@index')->name('drafts');
Route::get('/draft/detail/{id}', 'DraftController@detail')->name('draft_detail');
@ -123,6 +124,7 @@ Route::group(['middleware' => ['admin']], function()
Route::get('/draft/load/old', 'DraftController@loadOld')->name('draft_load_old');
Route::post('/draft/load/old', 'DraftController@loadOldAction')->name('draft_load_old');
//travel Programs
Route::get('/travel/programs/{step?}', 'TravelProgramController@index')->name('travel_programs');
Route::get('/travel/program/detail/{id}', 'TravelProgramController@detail')->name('travel_program_detail');
@ -134,6 +136,15 @@ Route::group(['middleware' => ['admin']], function()
Route::post('/travel/program/draft/update', 'TravelProgramController@draftUpdate')->name('travel_program_draft_update');
Route::get('/travel/program/draft/delete/{id}', 'TravelProgramController@draftDelete')->name('travel_program_draft_delete');
//bookings
Route::get('data/table/bookings', 'DataTableController@getBookings')->name('data_table_bookings');
Route::get('/bookings/{step?}', 'BookingController@index')->name('bookings');
Route::get('/booking/detail/{id}', 'BookingController@detail')->name('booking_detail');
Route::post('/booking/detail/{id}', 'BookingController@store')->name('booking_detail');
Route::get('/booking/draft_item/delete/{id}', 'BookingController@draftItemDelete')->name('booking_draft_item_delete');
});
//login pages for worker
@ -149,9 +160,13 @@ Route::group(['middleware' => ['superadmin']], function() {
Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users');
Route::get('/admin/translate', 'TranslationController@index')->name('admin_translate');
Route::get('/admin/translate/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_edit');
Route::post('/admin/translate/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_update');
Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all');
Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit');
Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update');
Route::get('/admin/translate/file', 'TranslationFileController@index')->name('admin_translate_file');
Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit');
Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update');
});