Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Kevin Adametz
9482f23ae4 On master: Tower Auto-Stash: 2018-06-26 17:56:28 +0200 2018-06-26 17:56:29 +02:00
Kevin Adametz
f33f070e43 index on master: 01d2efe footer remove agb 2018-06-26 17:56:29 +02:00
Kevin Adametz
01d2efe6e2 footer remove agb 2018-06-26 17:56:14 +02:00
24 changed files with 865 additions and 224 deletions

View file

@ -16,5 +16,21 @@
</td>
<td class="st-position-name-col">Gesamtpreis der Reise</td>
</tr>
<tr class="">
<td class="st-position-price-col">
{{ booking_price_info.deposit_total|number_format(2) }} €</span>
</td>
<td class="st-position-name-col">Anzahlung (ist sofort fällig)</td>
</tr>
<tr class="">
<td class="st-position-price-col">
<span>{{ booking_price_info.final_payment|number_format(2) }} €</span>
</td>
<td class="st-position-name-col">Restzahlung (bis zum {{ booking_price_info.final_payment_date}})</td>
</tr>
</tbody>
</table>

View file

@ -85,7 +85,6 @@
<div class="col-md-6 text-right">
<div class="link-footer">
<a href="/impressum" title="Impressum">Impressum</a> |
<a href="/agb" title="AGB">AGB</a> |
<a href="/arb" title="ARB">ARB</a> |
<a href="/datenschutz" title="Datenschutzerklärung">Datenschutzerklärung</a> |
<a href="/bildnachweis" title="Bildnachweise">Bildnachweise</a> |

View file

@ -29,6 +29,10 @@ Abfahrts-/Abflugort: {{ booking_request.departure.name }} {{ booking_request.
Gesamtpreis: {{ booking_price_info['total']|number_format(2) }} €
Anzahlung: {{ booking_price_info.deposit_total|number_format(2) }} € (ist sofort fällig)
Restzahlung: {{ booking_price_info.final_payment|number_format(2) }} € (bis zum {{ booking_price_info.final_payment_date}})
=====================================================================================
Reiseleistungen:
=====================================================================================
@ -64,16 +68,16 @@ Zimmernummer, Zimmertyp, Geschlecht, Vorname, Nachname, Geburtsdatum
{% set travelerCollection = booking_request.travelers|slice(0, booking_request.travelerCount) %}
{% for room in booking_request.occupiedRooms %}
{% if(room.type == 1) %}
{{ loop.index }}. Einzelzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}
{{ loop.index }}. Einzelzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{% set travelerIndex = travelerIndex + 1 %}
{% elseif (room.type == 2) %}
{{ loop.index }}. Doppelzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}
{{ loop.index }}. Doppelzimmer, {{ travelerCollection[travelerIndex+1].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+1].firstName }}, {{ travelerCollection[travelerIndex+1].lastName -}}, {{ travelerCollection[travelerIndex+1].birthDate }}
{{ loop.index }}. Doppelzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{{ loop.index }}. Doppelzimmer, {{ travelerCollection[travelerIndex+1].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+1].firstName }}, {{ travelerCollection[travelerIndex+1].lastName -}}, {{ travelerCollection[travelerIndex+1].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{% set travelerIndex = travelerIndex + 2 %}
{% elseif (room.type == 3) %}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex+1].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+1].firstName }}, {{ travelerCollection[travelerIndex+1].lastName -}}, {{ travelerCollection[travelerIndex+1].birthDate }}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex+2].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+2].firstName }}, {{ travelerCollection[travelerIndex+2].lastName -}}, {{ travelerCollection[travelerIndex+2].birthDate }}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex].firstName }}, {{ travelerCollection[travelerIndex].lastName -}}, {{ travelerCollection[travelerIndex].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex+1].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+1].firstName }}, {{ travelerCollection[travelerIndex+1].lastName -}}, {{ travelerCollection[travelerIndex+1].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{{ loop.index }}. Dreibettzimmer, {{ travelerCollection[travelerIndex+2].sex == 1 ? 'männlich' : 'weiblich' }}, {{ travelerCollection[travelerIndex+2].firstName }}, {{ travelerCollection[travelerIndex+2].lastName -}}, {{ travelerCollection[travelerIndex+2].birthDate }}, {{ travelerCollection[travelerIndex].nationalityName }}
{% set travelerIndex = travelerIndex + 3 %}
{% endif %}
{% endfor %}

View file

@ -183,7 +183,8 @@
<td>
<p style="white-space: normal;">
<br>
STERN TOURS GmbH empfiehlt generell den Abschluss einer Reise-Rücktrittskosten-Versicherung und einer Auslands-Reisekrankenversicherung mit Rücktransport. Im Anschluss der Buchung senden wir Ihnen diesbezüglich Informationen zu.
STERN TOURS GmbH empfiehlt generell den Abschluss einer Reise-Rücktrittskosten-Versicherung und einer Auslands-Reisekrankenversicherung mit Rücktransport.
Im Anschluss der Buchung senden wir Ihnen diesbezüglich Informationen zu.
</p>
</td>
</tr>
@ -200,7 +201,8 @@
<div class="st-booking-summary">
{% include 'default/components/booking/summary.html.twig' with {
'summary': summary,
'total_price': total_price
'total_price': total_price,
'booking_price_info': booking_price_info
} %}
</div>
</div>
@ -209,6 +211,53 @@
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseprogramm mit Anzeige der Reisetage</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
{% set travel_program_dates = travel_program.getTravelProgramDates(travel_date.start) %}
<ul class="c1">
{% for travel_program_date in travel_program_dates if travel_program_date.count < 1 %}
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
{% endfor %}
</ul>
<div class="accordion-toggle-2">
<div class="panel-group" id="accordion_program_date">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_program_date" href="#collapse_pd" aria-expanded="true">
<h3><span>Reiseablauf mit Reisetagen einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
</a>
<div id="collapse_pd" class="panel-collapse collapse" aria-expanded="true" style="">
<div class="panel-body">
<ul class="c1">
{% for travel_program_date in travel_program_dates if travel_program_date.count >= 1 %}
<li>
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
{% if travel_program_date.night is defined %}
<br>Übernachtung : {{ travel_program_date['night']|raw }}
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div><!-- accordion -->
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
@ -259,6 +308,9 @@
</div><!-- accordion -->
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
@ -343,7 +395,28 @@
</div>
</div><!-- end form-box -->
<div class="form-box">
<style type="text/css">
.form-box-small .form-group {
margin-bottom: 5px;
}
.form-box-small .help-block {
margin-top: 0px;
margin-bottom: 0px;
}
.form-box-small .form-control{
margin-bottom: 8px;
}
.form-box.form-box-small .st-travelers div.required:before {
margin-right: 20px;
right: 0px;
top: 0px;
}
</style>
<div class="form-box form-box-small">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseteilnehmer</h5>
@ -351,137 +424,165 @@
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="table-responsive" id="no-more-tables">
<table class="table">
<thead>
<tr>
<th>Zimmertyp</th>
<th>Geschlecht</th>
<th>Vorname</th>
<th>Nachname</th>
<th>Geburtsdatum</th>
</tr>
</thead>
<tbody class="st-travelers">
{% set currentIndex = 0 %}
{% for room in form.rooms %}
{% for traveler in room.travelers %}
{#{{ dump(room.vars.value.roomType) }}#}
{% set currentIndex = currentIndex + 1 %}
<tr class="st-traveler st-traveler-{{ currentIndex }}"
data-st-traveler-index="{{ currentIndex }}"
data-room-index="{{ loop.parent.loop.index }}"
data-room-type="{{ room.vars.value.type }}"
style="display: none;"
>
<td>
<button class="btn btn-primary btn-sm border-radius st-traveller-index"
type="button"
>
{% set roomType = " " %}
{% if loop.parent.loop.index is not null %}
{% if room.vars.value.type == "1" %}
{% set roomType = "Einzelzimmer" %}
{% elseif room.vars.value.type == "2" %}
{% set roomType = "Doppelzimmer" %}
{% elseif room.vars.value.type == "3" %}
{% set roomType = "Dreibettzimmer" %}
{% endif %}
{% endif %}
{{ roomType }}
</button>
</td>
<td>
{{ form_field_pho(traveler.sex, 'Geschlecht', {
<div class="st-travelers">
{% set currentIndex = 0 %}
{% for room in form.rooms %}
{% for traveler in room.travelers %}
{#{{ dump(room.vars.value.roomType) }}#}
{% set currentIndex = currentIndex + 1 %}
<div class="row st-traveler st-traveler-{{ currentIndex }}"
data-st-traveler-index="{{ currentIndex }}"
data-room-index="{{ loop.parent.loop.index }}"
data-room-type="{{ room.vars.value.type }}"
style="display: none; border-bottom:2px solid #ffc926; margin-bottom: 20px; padding-bottom: 10px;">
<div class="col-md-12 col-sm-12 col-xs-12" style="margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid #fff;">
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button">
{% set roomType = "" %}
{% if loop.parent.loop.index is not null %}
{% if room.vars.value.type == "1" %}
{% set roomType = "Einzelzimmer" %}
{% elseif room.vars.value.type == "2" %}
{% set roomType = "Doppelzimmer" %}
{% elseif room.vars.value.type == "3" %}
{% set roomType = "Dreibettzimmer" %}
{% endif %}
{% endif %}
Reiseteilnehmer | {{ roomType }}
</button>
</div>
<div class="col-md-3 col-sm-12 col-xs-12">
<div class="form-group" style="margin-top:5px;">
<div class="required">
{{ form_field_pho(traveler.sex, 'Geschlecht', {
required: false
}) }}
</td>
<td>
<div class="form-group" style="margin-bottom: 15px;">
<div class="required">
{{ form_field_pho(traveler.firstName, 'Vorname') }}
</div>
</div>
</td>
<td>
<div class="form-group" style="margin-bottom: 15px;">
<div class="required">
{{ form_field_pho(traveler.lastName, 'Nachname') }}
</div>
</div>
</td>
<td>
<div class="form-group" style="margin-bottom: 15px;">
<div class="required">
{{ form_field_pho(traveler.birthDate, 'Geburtsdatum') }}
</div>
</div>
</td>
</tr>
}) }}
</div>
<div class="help-block with-errors"></div>
</div>
</div>
{% endfor %}
{% endfor %}
</tbody>
</table>
</div>
<div class="col-md-4 col-sm-12 col-xs-12">
<div class="form-group">
<div class="required">
{{ form_field_pho(traveler.firstName, 'Vorname') }}
</div>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="col-md-5 col-sm-12 col-xs-12">
<div class="form-group">
<div class="required">
{{ form_field_pho(traveler.lastName, 'Nachname') }}
</div>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-offset-3 col-md-4 col-sm-12 col-xs-12">
<div class="form-group" style="margin-top:5px;">
<div class="required nationality_select" data-toggle="#nationality_entry_{{ currentIndex }}">
{{ form_field_pho(traveler.nationality, 'Nationalität') }}
</div>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-5 col-sm-12 col-xs-12">
<div class="form-group">
<div class="required">
{{ form_field_pho(traveler.birthDate, 'Geburtsdatum') }}
</div>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="accordion-toggle-2" id="nationality_entry_{{ currentIndex }}" style="display:none;">
<div class="panel-group" id="accordion_entry_{{ currentIndex }}">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_entry_{{ currentIndex }}" href="#collapse_entry_{{ currentIndex }}" aria-expanded="true">
<h3><span>Einreisebestimmungen</span><i class="indicator pull-right icon-plus"></i></h3>
</a>
<div id="collapse_entry_{{ currentIndex }}" class="panel-collapse collapse acc_nationality_panel" aria-expanded="true" style="">
<div class="panel-body">
{% for country in travel_program.countries %}
<h2>{{ country.name }}</h2>
{{ country.entryRequirements|raw|nl2br }}
{% endfor %}
<hr>
<h2>Hinweis</h2>
<p>Sofern Sie nicht oder nicht ausschließlich nur die deutsche Staatsbürgerschaft besitzen, können Sie die Reise nicht buchen,
da wir Sie vorher u.a. über die Einreisebestimmungen für Ihre individuelle Staatsbürgerschaft informieren müssen.
Bitte nehmen Sie vor einer Buchung Kontakt mit uns auf, damit Sie nach Erhalt der Informationen entscheiden können, ob Sie die Reise buchen möchten.</p>
</div>
</div>
</div>
</div><!-- accordion -->
<div class="form-group" style="margin-bottom: 15px;">
<div class="checkbox">
{{ form_widget(traveler.acceptEntryRequirements) }}
<label for="{{ traveler.acceptEntryRequirements.vars.id }}" style="line-height: 1.2em;">
Ich habe die oben genannten Hinweise zu den "Einreisebestimmungen, Visabestimmungen und gesundheitspolizeilichen Vorschriften" für mich und alle Mitreisenden gesehen und gelesen.
</label>
{{ form_errors(traveler.acceptEntryRequirements) }}
<div class="help-block with-errors"></div>
</div>
</div>
</div>
</div> <!-- row -->
{% endfor %}
{% endfor %}
</div> <!-- st trav -->
</div> <!-- col -->
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Mitteilungen / Sonstiges (optional)</h5>
<h5>Unverbindliche Anmerkungen</h5>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
{{ form_field(form.notes, 'Mitteilungen / Sonstiges (optional)', {
{{ form_field(form.notes, 'Unverbindliche Anmerkungen', {
'label_attr': {'class': 'sr-only'},
'attr': {'rows': '6'}
}) }}
</div>
</div>
</div><!-- end form-box -->
{#
<div class="form-box">
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Einreisebestimmungen</h5>
{% for country in travel_program.countries %}
<h2>{{ country.name }}</h2>
{{ country.entryRequirements|raw }}
{% endfor %}
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptEntryRequirements) }}
<label for="{{ form.acceptEntryRequirements.vars.id }}">
Bitte bestätigen Sie, dass die das gesetzliche Formblatt zur Kenntnis genommen haben.
</label>
{{ form_errors(form.acceptEntryRequirements) }}
<div class="help-block with-errors"></div>
</div>
<h5>Formblatt zur Unterrichtung des Reisenden bei einer Pauschalreise nach § 651a des Bürgerlichen Gesetzbuchs.</h5>
<div class="well">
<p>Bei der Ihnen angebotenen Kombination von Reiseleistungen handelt es sich um eine Pauschalreise im Sinne der Richtlinie (EU) 2015/2302.</p>
<p>Daher können Sie alle EU-Rechte in Anspruch nehmen, die für Pauschalreisen gelten. STERN TOURS GmbH, Emser Str. 3, 10719 Berlin trägt die volle Verantwortung für die ordnungsgemäße Durchführung der gesamten Pauschalreise. Zudem verfügt STERN TOURS GmbH über die gesetzlich vorgeschriebene Absicherung für die Rückzahlung Ihrer Zahlungen und, falls der Transport in der Pauschalreise inbegriffen ist, zur Sicherstellung Ihrer Rückbeförderung im Fall seiner Insolvenz.</p>
<a href="/uploads/{{ travel_program.organizer.fileFormPage }}" target="_blank">
Weiterführende Informationen zu Ihren wichtigsten Rechten nach der Richtlinie (EU) 2015/2302 (Formblatt)
</a>
</div>
</div>
</div>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseveranstalter</h5>
<p>{{ travel_program.organizer.name|raw }}</p>
<h5>Insolvensversicherer</h5>
<p>{{ travel_program.organizer.insolvency|raw }}</p>
<h5>gesetzliche Rechte</h5>
<p>{{ travel_program.organizer.legalRights|raw }}</p>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptLegalRights) }}
<label for="{{ form.acceptLegalRights.vars.id }}">
Bitte bestätigen Sie, dass die das gesetzliche Formblatt zur Kenntnis genommen haben.
<label for="{{ form.acceptLegalRights.vars.id }}" style="line-height: 1.2em;">
Hiermit bestätige ich, dass ich das Formblatt mit den Informationen zu meinen wichtigsten Rechten nach der Richtlinie (EU) 2015/2302 zur Kenntnis genommen habe.
</label>
{{ form_errors(form.acceptLegalRights) }}
<div class="help-block with-errors"></div>
@ -489,73 +590,123 @@
</div>
</div>
</div>
</div> #}
</div>
<!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reisebedingungen (ARB)</h5>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptTerms) }}
<label for="{{ form.acceptTerms.vars.id }}" style="line-height: 1.2em;">
Ich habe die
<a href="/uploads/{{ travel_program.organizer.fileName }}" target="_blank">
Allgemeinen Geschäftsbedingungen des Reiseveranstalters
</a> {{ travel_program.organizer.name }}
{% if travel_program.isMediated %}
sowie die
<a href="/uploads/{{ mediator_terms_filename }}" target="_blank">
Allgemeinen Geschäftsbedingungen des Reisevermittlers
</a>
{% endif %}
gelesen und akzeptiert. Zugleich erkenne ich diese für alle Reiseteilnehmer an.<br>
Es gelten die der Staatsbürgerschaft der einzelnen Reiseteilnehmer entsprechenden Einreise- und Impfbestimmungen für das Ziel- und Transitland.
Die für deutsche Staatsbürger geltenden Bestimmungen finden Sie auf den Seiten des <a href="https://www.auswaertiges-amt.de/de/ReiseUndSicherheit/reise-und-sicherheitshinweise" target="_blank">Auswärtigen Amts</a>
Ein Widerrufsrecht steht Ihnen gemäß § 312 g Abs. 2 Nr. 9 BGB (Bürgerliches Gesetzbuch) nicht zu.
</label>
{{ form_errors(form.acceptTerms) }}
<div class="help-block with-errors"></div>
</div>
</div>
</div>
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Bestätigung der persönlichen Daten und zahlungspflichtigen Buchung</h5>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptPrivacy) }}
<label for="{{ form.acceptPrivacy.vars.id }}" style="line-height: 1.2em;">Hiermit willige ich in die im Rahmen der
<a href="/datenschutz" target="_blank">
Datenschutzerklärung
</a> genannte Datenverarbeitung ein.
</label>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptProcessing) }}
<label for="{{ form.acceptProcessing.vars.id }}" style="line-height: 1.2em;">Hiermit willige ich in die Verarbeitung der von mir freiwillig
angegebenen personenbezogenen Daten ein.
Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit ohne Nachteile per Mail an
stern@sterntours.de widerrufen kann.
</label>
{{ form_errors(form.acceptProcessing) }}
<div class="help-block with-errors"></div>
</div>
</div>
</div>
Ich habe alle vorstehenden Daten überprüft und bestätige diese hiermit, bevor ich die Reise durch Anklicken des untenstehenden Buttons zahlungspflichtig buche.
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Wichtiger Hinweis</h5>
Nach Abschluss Ihrer Buchung erhalten Sie innerhalb von 15 Minuten eine Email zur Bestätigung Ihres verbindlichen Buchungsauftrages.
Sollten Sie diese Email nicht bekommen, kontaktieren Sie uns bitte per Email, oder per Telefon unter 030-70094100.
Wir sind Montag bis Freitag von 9 bis 22 Uhr, Samstag von 10 bis 22 Uhr und Sonn- und Feiertage von 11 bis 22:00 Uhr für Sie da.
</div>
</div>
</div><!-- end form-box -->
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Zahlung</h5>
<p>Die gewünschte Zahlungsart (Rechnung, Überweisung, Sofortüberweisung, Kreditkarten,
Barzahlung) stimmen wir mit Ihnen im Anschluss an Ihre Buchung ab.
</p>
<div class="well">
Die gewünschte Zahlungsart (Rechnung, Überweisung, Sofortüberweisung, Kreditkarten, Barzahlung) stimmen wir mit Ihnen im Anschluss an Ihre Buchung ab.
</div>
</div>
</div>
</div>
<!-- end form-box -->
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit"
class="aligncenter btn btn-primary btn-lg border-radius"
>
kostenpflichtig<br class="visible-xs"> buchen
</button>
</div>
<div class="form-box">
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Allgemeine Geschäftsbedingungen und Datenschutzerlärung</h5>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptTerms) }}
<label for="{{ form.acceptTerms.vars.id }}">
Ich habe alle Daten und Angaben auf Richtigkeit überprüft. Ich habe die
<a href="/uploads/{{ travel_program.organizer.fileName }}" target="_blank">
Allgemeinen Geschäftsbedingungen des Reiseveranstalters
</a> {{ travel_program.organizer.name }}
{% if travel_program.isMediated %}
sowie die
<a href="/uploads/{{ mediator_terms_filename }}" target="_blank">
Allgemeinen Geschäftsbedingungen des Reisevermittlers
</a>
{% endif %}
gelesen und akzeptiert. Zugleich erkenne ich diese für alle Reiseteilnehmer an.
</label>
{{ form_errors(form.acceptTerms) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptPrivacy) }}
<label for="{{ form.acceptPrivacy.vars.id }}">
Hiermit willige ich in die im Rahmen der
<a href="/datenschutz" target="_blank">
Datenschutzerklärung
</a> genannte Datenverarbeitung ein.
</label>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit"
class="aligncenter btn btn-primary btn-lg border-radius"
>
kostenpflichtig<br class="visible-xs"> buchen
</button>
</div>
</div>
</div><!-- end form-box -->
{{ form_rest(form) }}
</form>

View file

@ -62,7 +62,8 @@
<div class="st-booking-summary">
{% include 'default/components/booking/summary.html.twig' with {
'summary': summary,
'total_price': total_price
'total_price': total_price,
'booking_price_info': booking_price_info
} %}
</div>
</div>
@ -190,7 +191,6 @@
<div class="">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Reiseteilnehmer</h5>
<p>Bitte geben Sie Ihre Vornamen und Nachnamen in die beiden Felder "Vornamen" und "Nachnamen" ein, wie diese im maschinenlesbaren Teil in Ihrem Reisepass eingetragen sind.</p>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
@ -202,7 +202,8 @@
<th style="text-align: left;">Geschlecht</th>
<th style="text-align: left;">Vorname</th>
<th style="text-align: left;">Nachname</th>
<th style="text-align: left;">Geburtsdatum (TT.MM.JJJJ)</th>
<th style="text-align: left;">Geburtsdatum</th>
<th style="text-align: left;">Nationalität</th>
</tr>
</thead>
<tbody class="st-travelers">
@ -235,6 +236,9 @@
<td style="text-align: left;">
{{ participant.birthDate|date }}
</td>
<td style="text-align: left;">
{{ participant.getNationalityName }}
</td>
</tr>
{% endfor %}

View file

@ -91,6 +91,20 @@
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(contact_form.acceptProcessing) }}
<label for="{{ contact_form.acceptProcessing.vars.id }}" style="line-height: 1.2em;">Hiermit willige ich in die Verarbeitung der von mir freiwillig
angegebenen personenbezogenen Daten ein.
Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit ohne Nachteile per Mail an
stern@sterntours.de widerrufen kann.
</label>
{{ form_errors(contact_form.acceptProcessing) }}
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">

View file

@ -224,17 +224,29 @@
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptPrivacy) }}
<label for="{{ form.acceptPrivacy.vars.id }}">
Hiermit willige ich in die im Rahmen der
<a href="/datenschutz" target="_blank">
Datenschutzerklärung
</a> genannte Datenverarbeitung ein.
</label>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
<label for="{{ form.acceptPrivacy.vars.id }}">
Hiermit willige ich in die im Rahmen der
<a href="/datenschutz" target="_blank">
Datenschutzerklärung
</a> genannte Datenverarbeitung ein.
</label>
{{ form_errors(form.acceptPrivacy) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="form-group">
<div class="checkbox">
{{ form_widget(form.acceptProcessing) }}
<label for="{{ form.acceptProcessing.vars.id }}" style="line-height: 1.2em;">Hiermit willige ich in die Verarbeitung der von mir freiwillig
angegebenen personenbezogenen Daten ein.
Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit ohne Nachteile per Mail an
stern@sterntours.de widerrufen kann.
</label>
{{ form_errors(form.acceptProcessing) }}
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-12 col-sm-12 col-xs-12">
<button type="submit" value="SEND" id="submit"
class="aligncenter btn btn-primary btn-lg border-radius"

View file

@ -78,7 +78,6 @@ class BookingController extends Controller
$htmlSummary = [];
$bookingPriceInfo = [];
$totalPrice = $this->calculatePrice($travelDate, $bookingRequest, $htmlSummary, $bookingPriceInfo);
if ($action == '/buchen')
{
@ -156,6 +155,8 @@ class BookingController extends Controller
'travel_program' => $travelProgram,
'summary' => $htmlSummary,
'total_price' => $totalPrice,
'booking_price_info' => $bookingPriceInfo,
]);
}
@ -175,6 +176,7 @@ class BookingController extends Controller
'price_type_by_id' => $this->priceTypeById,
'summary' => $htmlSummary,
'total_price' => $totalPrice,
'booking_price_info' => $bookingPriceInfo,
'mediator_terms_filename' => $travelProgram->getIsMediated()
? $this->getDoctrine()->getRepository('AppBundle:TravelOrganizer')->find(1)->getFileName()
: null
@ -185,7 +187,8 @@ class BookingController extends Controller
return $this->render('default/components/booking/summary.html.twig', [
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'summary' => $htmlSummary,
'total_price' => $totalPrice
'total_price' => $totalPrice,
'booking_price_info' => $bookingPriceInfo,
]);
}
throw new \Exception('Unknow BookingController action: '. $action);
@ -220,8 +223,12 @@ class BookingController extends Controller
$outPriceInfo['insurances'] = [];
$outPriceInfo['options'] = [];
$outPriceInfo['classOptions'] = [];
$outPriceInfo['departure'] = 0;
$outPriceInfo['departure_extra'] = 0;
$outPriceInfo['flight_price'] = 0;
$outPriceInfo['final_payment_date'] = $travelDate->getFinalPaymentDate();
}
if($bookingRequest->getDeparture() != null)
{
$departure = Util\DepartureUtil::limitIndividualArrivalPrice($bookingRequest->getDeparture(),
@ -236,6 +243,7 @@ class BookingController extends Controller
$insuranceAssessmentBasis += $departure->getExtraCharge();
$a = $travelerCount * $departure->getExtraCharge();
$ret += $a;
$outPriceInfo['departure_extra'] += $a;
if (isset($outHtmlSummary))
{
$outHtmlSummary[] = [
@ -268,8 +276,6 @@ class BookingController extends Controller
}
}
$persons = [
'total' => $travelerCount,
'adults' => $travelerCount,
@ -320,6 +326,10 @@ class BookingController extends Controller
: ($adultCount * ($singleDiscountPrice - $singleFullPrice));
$ret += $roomPrice + $discount;
$singel_flight_price = $travelDate->getFlightCalcPrice();
$outPriceInfo['flight_price'] += (($singel_flight_price * $adultCount) + ($singel_flight_price * $room['persons']['children']));
if (isset($outPriceInfo))
{
$outPriceInfo['rooms'][] = [
@ -396,6 +406,15 @@ class BookingController extends Controller
{
$outPriceInfo['total'] = $ret;
$outPriceInfo['totalWithoutInsurance'] = $ret - $insuranceTotal;
if($outPriceInfo['departure_extra'] >= 0){
$outPriceInfo['flight_price'] = $outPriceInfo['flight_price'] + $outPriceInfo['departure_extra'];
}else{
$outPriceInfo['flight_price'] = 0;
}
$deposit = (($outPriceInfo['total'] - $outPriceInfo['flight_price']) / 100 * 20);
$outPriceInfo['deposit_total'] = ($deposit + $outPriceInfo['flight_price']);
$outPriceInfo['final_payment'] = ($outPriceInfo['total'] - $outPriceInfo['deposit_total']);
}
return $ret;

View file

@ -97,14 +97,12 @@ class BookingRequest
*/
private $acceptTerms = false;
/*
private $acceptEntryRequirements = false;
private $acceptLegalRights = false;
*/
private $acceptPrivacy = false;
private $acceptProcessing = false;
/**
* BookingRequest constructor.
*/
@ -624,45 +622,25 @@ class BookingRequest
{
$this->acceptTerms = $acceptTerms;
}
/**
* @return mixed
*/
/*
public function isAcceptEntryRequirements()
{
return $this->acceptEntryRequirements;
}
*/
/**
* @param mixed $acceptEntryRequirements
*/
/*
public function setAcceptEntryRequirements($acceptEntryRequirements)
{
$this->acceptEntryRequirements = $acceptEntryRequirements;
}
*/
/**
* @return mixed
*/
/*
public function isAcceptLegalRights()
{
return $this->acceptLegalRights;
}
*/
/**
* @param mixed $acceptLegalRights
*/
/*
public function setAcceptLegalRights($acceptLegalRights)
{
$this->acceptLegalRights = $acceptLegalRights;
}
*/
/**
* @return mixed
@ -680,6 +658,22 @@ class BookingRequest
$this->acceptPrivacy = $acceptPrivacy;
}
/**
* @return mixed
*/
public function isAcceptProcessing()
{
return $this->acceptProcessing;
}
/**
* @param mixed $acceptProcessing
*/
public function setAcceptProcessing($acceptProcessing)
{
$this->acceptProcessing = $acceptProcessing;
}
/**
* @Assert\Callback
*/

View file

@ -67,6 +67,8 @@ class ContactRequest
private $end;
private $acceptPrivacy = false;
private $acceptProcessing = false;
/**
* @var int|null $duration
@ -377,4 +379,20 @@ class ContactRequest
{
$this->acceptPrivacy = $acceptPrivacy;
}
/**
* @return mixed
*/
public function isAcceptProcessing()
{
return $this->acceptProcessing;
}
/**
* @param mixed $acceptProcessing
*/
public function setAcceptProcessing($acceptProcessing)
{
$this->acceptProcessing = $acceptProcessing;
}
}

View file

@ -85,6 +85,8 @@ class FewoBookingRequest
private $acceptPrivacy = false;
private $acceptProcessing = false;
private $lodging;
private $season;
@ -355,6 +357,22 @@ class FewoBookingRequest
$this->acceptPrivacy = $acceptPrivacy;
}
/**
* @return mixed
*/
public function isAcceptProcessing()
{
return $this->acceptProcessing;
}
/**
* @param mixed $acceptProcessing
*/
public function setAcceptProcessing($acceptProcessing)
{
$this->acceptProcessing = $acceptProcessing;
}
/**
* @return mixed
*/

View file

@ -208,6 +208,27 @@ class TravelBooking
*/
private $priceTotal;
/**
* @var float
*
* @ORM\Column(name="deposit_total", type="float", precision=10, scale=2, nullable=true)
*/
private $depositTotal;
/**
* @var float
*
* @ORM\Column(name="final_payment", type="float", precision=10, scale=2, nullable=true)
*/
private $finalPayment;
/**
* @var \DateTime
*
* @ORM\Column(name="final_payment_date", type="date", nullable=true)
*/
private $finalPaymentDate;
/**
* @var string
*
@ -257,6 +278,13 @@ class TravelBooking
*/
private $extraCategory;
/**
* @var string
*
* @ORM\Column(name="accept_legal_rights", type="integer", nullable=false)
*/
private $acceptLegalRights;
/**
* @var integer
*
@ -908,6 +936,8 @@ class TravelBooking
'first_name' => $traveler->getFirstName(),
'last_name' => $traveler->getLastName(),
'birthday' => $birthdate,
'nationality' => $traveler->getNationality(),
'acceptEntryRequirements' => $traveler->isAcceptEntryRequirements(),
];
}
@ -935,6 +965,7 @@ class TravelBooking
$traveler->setSex(intval($participant['gender']));
$traveler->setFirstName($participant['first_name']);
$traveler->setLastName($participant['last_name']);
$traveler->setNationality($participant['nationality']);
if(!strtotime($participant['birthday'])){
$participant['birthday'] = '01.01.1900';
}
@ -992,6 +1023,79 @@ class TravelBooking
return $this->priceTotal;
}
/**
* Set depositTotal
*
* @param float $depositTotal
*
* @return TravelBooking
*/
public function setDepositTotal($depositTotal)
{
$this->depositTotal = $depositTotal;
return $this;
}
/**
* Get depositTotal
*
* @return float
*/
public function getDepositTotal()
{
return $this->depositTotal;
}
/**
* Set finalPayment
*
* @param float $finalPayment
*
* @return TravelBooking
*/
public function setFinalPayment($finalPayment)
{
$this->finalPayment = $finalPayment;
return $this;
}
/**
* Get finalPayment
*
* @return float
*/
public function getFinalPayment()
{
return $this->finalPayment;
}
/**
* Set finalPaymentDate
*
* @param \DateTime $finalPaymentDate
*
* @return TravelBooking
*/
public function setFinalPaymentDate($finalPaymentDate)
{
$this->finalPaymentDate = $finalPaymentDate;
return $this;
}
/**
* Get finalPaymentDate
*
* @return \DateTime
*/
public function getFinalPaymentDate()
{
return $this->finalPaymentDate;
}
/**
* Set comments
*
@ -1181,6 +1285,31 @@ class TravelBooking
return $ret;
}
/**
* Set extraCategory
*
* @param string $extraCategory
*
* @return TravelBooking
*/
public function setAcceptLegalRights($acceptLegalRights)
{
$this->acceptLegalRights = $acceptLegalRights;
return $this;
}
/**
* Get extraCategory
*
* @return string
*/
public function getAcceptLegalRights()
{
return $this->acceptLegalRights;
}
/**
* Get id
*

View file

@ -67,6 +67,11 @@ class TravelBookingRepository extends \Doctrine\ORM\EntityRepository
$ret->setParticipantsTotal($bookingRequest->getTravelerCount());
$ret->setRooms($bookingPriceInfo['rooms']);
$ret->setPriceTotal($bookingPriceInfo['total']);
$ret->setDepositTotal($bookingPriceInfo['deposit_total']);
$ret->setFinalPayment($bookingPriceInfo['final_payment']);
$ret->setFinalPaymentDate(new \DateTime($bookingPriceInfo['final_payment_date']));
$ret->setComments($bookingRequest->getNotes());
if (empty($bookingPriceInfo['options']))
{
@ -86,6 +91,7 @@ class TravelBookingRepository extends \Doctrine\ORM\EntityRepository
}
$ret->setClassOptions(false);
$ret->setExtraCategory(empty($bookingPriceInfo['classOptions']) ? false : $bookingPriceInfo['classOptions']);
$ret->setAcceptLegalRights($bookingRequest->isAcceptLegalRights());
return $ret;
}

View file

@ -153,6 +153,16 @@ final class TravelDate
return $this->start;
}
public function getFinalPaymentDate()
{
$pDate = strtotime('-4 week', $this->getStart()->getTimestamp());
if($pDate <= time()){
$pDate = strtotime('+1 day', $this->getStart()->getTimestamp());
}
return date('d.m.Y',$pDate);
}
/**
* @return \DateTime
*/
@ -221,6 +231,23 @@ final class TravelDate
return $flightPrice;
}
public function getFlightCalcPrice()
{
$flightPrice = $this->getFlightPrice();
if ($this->travelProgram->getIsMediated())
{
$profitMargin = 1;
}
else
{
$profitMargin = $this->travelProgram->getProfitMargin() / 100 + 1;
}
$currencyFactor = $this->travelProgram->getNettoPricesInEuro() ? 1 : $this->currencyFactor;
return round(($flightPrice * $currencyFactor) * $profitMargin);
}
/**
* @return TravelPeriodPrice[]|\Doctrine\Common\Collections\Collection
*/

View file

@ -47,6 +47,14 @@ class TravelOrganizer
*/
private $fileName;
/**
* @var string
*
* @ORM\Column(name="file_form_page", type="string", length=255, nullable=true)
*/
private $fileFormPage;
/**
* @var integer
*
@ -186,6 +194,30 @@ class TravelOrganizer
return $this->fileName;
}
/**
* Set fileFormPage
*
* @param string $fileFormPage
*
* @return TravelOrganizer
*/
public function setFileFormPage($fileFormPage)
{
$this->fileFormPage = $fileFormPage;
return $this;
}
/**
* Get fileFormPage
*
* @return string
*/
public function getFileFormPage()
{
return $this->fileFormPage;
}
/**
* Set cmsId
*

View file

@ -771,6 +771,57 @@ class TravelProgram
return $this->htmlDescription;
}
/**
* @return string
*/
// '<h2> X Tag / Anreise ... : Programm </h2>';
public function getTravelProgramDates(\DateTime $startDate)
{
$lines = array();
$count = 0;
if($this->htmlDescription){
$text = $this->htmlDescription;
$regex = '#<h2>(.*?)</h2>#';
preg_match_all($regex, $text, $matches);
foreach ($matches[1] as $val){
if(strpos($val, ':')){
$v = explode(':', $val);
$int = (int) filter_var($v[0], FILTER_SANITIZE_NUMBER_INT);
if($int) {
$lines[$int] = array('count' => $count, 'day' => trim($v[1]), 'date' => $startDate->format('d.m.Y'));
$startDate->modify('+1 day');
$count++;
}
}
}
}
if($this->classDescription){
$text = $this->classDescription;
//standard //komfort
$regex = "'<ul class=\"standard\">(.*?)</ul>'si";
preg_match_all($regex, $text, $matches);
if(isset($matches[1][0]) && strpos($matches[1][0], '</li>')){
$text = $matches[1][0];
$regex = '#<li>(.*?)</li>#';
preg_match_all($regex, $text, $matches);
foreach ($matches[1] as $val){
if(strpos($val, ':')){
$v = explode(':', $val);
$int = (int) filter_var($v[0], FILTER_SANITIZE_NUMBER_INT);
if($int && isset($lines[$int])) {
$lines[$int]['night'] = trim($v[1]);
}
}
}
}
}
return $lines;
}
/**
* Set inSlider
*

View file

@ -14,6 +14,11 @@ class Traveler
const MALE = 1;
const FEMALE = 2;
private $NATIONALITY = [
1 => 'deutsch',
];
/**
* @Assert\NotNull
* @Assert\Choice(choices={1,2})
@ -35,6 +40,16 @@ class Traveler
*/
private $birthDate;
/**
* @Assert\NotBlank()
*/
private $nationality;
/**
* @Assert\IsTrue()
*/
private $acceptEntryRequirements = false;
/**
* @return int
*/
@ -105,5 +120,51 @@ class Traveler
$this->birthDate = $birthDate;
}
/**
* @return int
*/
public function getNationality()
{
return $this->nationality;
}
/**
* @param int $nationality
*/
public function setNationality($nationality)
{
$this->nationality = $nationality;
}
/**
* @return int
*/
public function getNationalityName()
{
if(isset($this->NATIONALITY[$this->nationality])){
return $this->NATIONALITY[$this->nationality];
}
return $this->nationality;
}
/**
* @return mixed
*/
public function isAcceptEntryRequirements()
{
return $this->acceptEntryRequirements;
}
/**
* @param mixed $acceptEntryRequirements
*/
public function setAcceptEntryRequirements($acceptEntryRequirements)
{
$this->acceptEntryRequirements = $acceptEntryRequirements;
}
}

View file

@ -12,7 +12,8 @@ use Monolog\Logger;
abstract class SternToursCrmExporter
{
const API_URL = 'http://www.cms.stern-tours.net/api';
//const API_URL = 'http://www.cms.stern-tours.net/api';
const API_URL = 'http://cms-stern-torus.local//api';
const API_KEY = 'f6077389c9ce710e554763a5de02c8ec';
const API_USER_ID = 15; // 'apiuser'
const WEBSITE_ID = 1; // 'sterntours.de'

View file

@ -151,8 +151,8 @@ class BookingRequestType extends AbstractType
->add('notes', TextareaType::class, ['required' => false])
->add('acceptTerms', CheckboxType::class, ['required' => true])
->add('acceptPrivacy', CheckboxType::class, ['required' => true])
//->add('acceptEntryRequirements', CheckboxType::class, ['required' => true])
//->add('acceptLegalRights', CheckboxType::class, ['required' => true])
->add('acceptProcessing', CheckboxType::class, ['required' => true])
->add('acceptLegalRights', CheckboxType::class, ['required' => true])
;
$builder->add('departure', EntityType::class, [

View file

@ -84,6 +84,7 @@ class ContactRequestType extends AbstractType
->add('end', StDateType::class, ['required' => false])
->add('duration')
->add('acceptPrivacy', CheckboxType::class, ['required' => true])
->add('acceptProcessing', CheckboxType::class, ['required' => true])
;
}
}

View file

@ -134,6 +134,7 @@ class FewoBookingRequestType extends AbstractType
->add('notes', TextareaType::class, ['required' => false])
->add('acceptTerms', CheckboxType::class, ['required' => true])
->add('acceptPrivacy', CheckboxType::class, ['required' => true])
->add('acceptProcessing', CheckboxType::class, ['required' => true])
;
}

View file

@ -8,6 +8,7 @@ namespace AppBundle\Form;
use AppBundle\Entity\Traveler;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
@ -23,6 +24,11 @@ class TravelerType extends AbstractType
'weiblich' => Traveler::FEMALE
];
public static $NATIONALITY_CHOICES = [
'Nationalität (Bitte wählen)' => '',
'deutsch' => 1,
];
/**
* @param OptionsResolver $resolver
*/
@ -51,6 +57,17 @@ class TravelerType extends AbstractType
->add('firstName')
->add('lastName')
->add('birthDate')
->add('nationality', ChoiceType::class, [
'choices' => self::$NATIONALITY_CHOICES,
'constraints' => [
new NotNull(),
new Choice(['choices' => self::$NATIONALITY_CHOICES])
],
'required' => true,
])
->add('acceptEntryRequirements', CheckboxType::class, ['required' => true])
;
/*
, StDateType::class, [

View file

@ -34,6 +34,46 @@ $(document).ready(function() {
})
});
var toggle_first = false;
function updateNationality(ele){
var obj = ele.parents('.nationality_select').data('toggle');
if(ele.val()){
$(obj).show('slow');
if(!toggle_first){
$(obj).find('.accordion-toggle').click();
toggle_first = true;
}
}else{
$(obj).hide();
}
}
$('.nationality_select').find('select').change(function(){
updateNationality($(this));
});
function updateAllNationality(){
$('.nationality_select').find('select').each(function(){
updateNationality($(this));
});
}
updateAllNationality();
function toggleUpdateChevron(e) {
var $i = $(e.target)
.parent('.panel-group')
.find("i.indicator");
$i.toggleClass('icon-minus icon-plus');
}
$('.acc_nationality_panel').on('hidden.bs.collapse', toggleUpdateChevron);
$('.acc_nationality_panel').on('shown.bs.collapse', toggleUpdateChevron);
function updateTravelers()
{
var travelersIndex = 1;
@ -46,7 +86,7 @@ $(document).ready(function() {
travelers$.hide();
travelerFields$.prop('required', false);
var counter = 1;
if(singleTravelerCount > 0)
{
for(var i = 1; i <= singleTravelerCount; i++)
@ -56,7 +96,8 @@ $(document).ready(function() {
var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
//$(roomIndexSelector).text(currentRoomIndex);
$(roomIndexSelector).text("Einzelzimmer");
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Einzelzimmer");
counter ++;
}
}
@ -70,7 +111,8 @@ $(document).ready(function() {
var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
//$(roomIndexSelector).text(currentRoomIndex - offset);
$(roomIndexSelector).text("Doppelzimmer");
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Doppelzimmer");
counter ++;
}
}
@ -84,7 +126,8 @@ $(document).ready(function() {
var currentRoomIndex = $(travelerSelector).attr("data-room-index");
$(travelerSelector).show().find('input,select').prop('required', true);
//$(roomIndexSelector).text(currentRoomIndex - offset);
$(roomIndexSelector).text("Dreibettzimmer");
$(roomIndexSelector).text(counter + ".) Reiseteilnehmer | Dreibettzimmer");
counter ++;
}
}

View file

@ -399,6 +399,29 @@ jQuery(document).ready(function($) {
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);
/* ==============================================
ACCORDION -->
=============================================== */
function toggleChevron2(e) {
console.log(e.target);
var $i = $(e.target)
.parent('.panel-group')
.find("i.indicator");
$i.toggleClass('icon-minus icon-plus');
if($i.hasClass('icon-minus')){
$i.parent('h3').find('span').html('Reiseablauf mit Reisetagen ausblenden');
}
if($i.hasClass('icon-plus')){
$i.parent('h3').find('span').html('Reiseablauf mit Reisetagen einblenden');
}
}
$('#accordion_program_date').on('hidden.bs.collapse', toggleChevron2);
$('#accordion_program_date').on('shown.bs.collapse', toggleChevron2);
/* ==============================================
LIGHTBOX -->