templates/pages/checkout_arrangement.html.twig line 1

Open in your IDE?
  1. <div class="component component--basket-overview is-margin-bottom-0">
  2.     <div class="basket-overview-sticky" id="basket" data-list="basket-overview" class="collapse">
  3.     </div>
  4. </div>
  5. <div class="checkout checkout--arrangement checkout_step-1">
  6.     <div data-component="VoetbalRetourCheckout" data-match-id="{{ match.id }}"
  7.          data-depart-date="{{ basket.departDate ? basket.departDate|date('Y-m-d') : (departDates|length > 0 ? (departDates|first)|date('Y-m-d') : '') }}"
  8.          data-return-date="{{ basket.returnDate ? basket.returnDate|date('Y-m-d') : (returnDates|length > 0 ? (returnDates|first)|date('Y-m-d') : '') }}">
  9.         <div class="checkout-progressbar-wrapper">
  10.             <div class="checkout-progressbar-spacer" aria-hidden="true"></div>
  11.             <div class="component component_progressbar">
  12.             <div class="row">
  13.                 <div class="col">
  14.                     <div class="d-flex mr-0 ml-0 progressbar">
  15.                         <div class="progress-part flex-fill">
  16.                             <div class="d-flex justify-content-center align-items-center">
  17.                                 <div class="step active d-flex justify-content-center align-items-center">
  18.                                     <i class="fas fa-futbol"></i>
  19.                                 </div>
  20.                             </div>
  21.                             <div class="content"><span class="content-full">1. Reis samenstellen</span><span class="content-short">1. Reis</span></div>
  22.                         </div>
  23.                         <div class="progress-part flex-fill">
  24.                             <div class="d-flex justify-content-center align-items-center">
  25.                                 <div class="step d-flex justify-content-center align-items-center">
  26.                                     <i class="fas fa-users"></i>
  27.                                 </div>
  28.                             </div>
  29.                             <div class="content"><span class="content-full">2. Reizigersgegevens</span><span class="content-short">2. Gegegevens</span></div>
  30.                         </div>
  31.                         <div class="progress-part flex-fill">
  32.                             <div class="d-flex justify-content-center align-items-center">
  33.                                 <div class="step d-flex justify-content-center align-items-center">
  34.                                     <i class="far fa-credit-card"></i>
  35.                                 </div>
  36.                             </div>
  37.                             <div class="content"><span class="content-full">3. Overzicht & betalen</span><span class="content-short">3. Overzicht</span></div>
  38.                         </div>
  39.                     </div>
  40.                 </div>
  41.             </div>
  42.         </div>
  43.         </div>
  44.         {% for label, messages in app.flashes %}
  45.             {% for message in messages %}
  46.                 {% if label != 'e_commerce_script' %}
  47.                     <div class="alert alert-{{ label }} alert-dismissible is-padding-20 is-rounded-5 is-margin-bottom-10 is-padding-left-50"
  48.                          role="alert">
  49.                         <i class="fas fa-exclamation-triangle icon-before"></i> {{ message }}
  50.                         <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  51.                             <i class="fas fa-times"></i>
  52.                         </button>
  53.                     </div>
  54.                 {% endif %}
  55.             {% endfor %}
  56.         {% endfor %}
  57.         {# match information #}
  58.         <div class="component component_matches component_matches-checkout" id="match-list">
  59.             <div class="row matchComposer">
  60.                     <div class="col match partial partial_match_list-item">
  61.                         {% if match.disableBooking %}
  62.                         <div class="card disabled">
  63.                             {% else %}
  64.                             <div class="card">
  65.                                 {% endif %}
  66.                                 <span data-scroll="journeyDetails" class="card-link"></span>
  67.                                 <div class="match-header">
  68.                                     <div class="actions">
  69.                                         <div class="options" data-component="Favorite" data-match-id="{{ match.id }}">
  70.                                             <div class="favorite">
  71.                                             <span class="d-none" data-is-favorited="true">
  72.                                                 <i class="fas fa-star" aria-hidden="true"></i>
  73.                                             </span>
  74.                                                 <span class="d-none" data-is-favorited="false">
  75.                                                 <i class="far fa-star" aria-hidden="true"></i>
  76.                                             </span>
  77.                                                 <a href="javascript:void(0)"
  78.                                                    class="favourite favorite-add favorite-match"></a>
  79.                                             </div>
  80.                                             <div class="widget widget--share dropdown show">
  81.                                                 <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink"
  82.                                                    data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  83.                                                     <i class="fa-regular fa-share-nodes"></i>
  84.                                                 </a>
  85.                                                 <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
  86.                                                     <a href="mailto:?subject=Deze voetbalreis moet je zeker eens bekijken!&body=Ik heb bij Voetbal Retour een leuke voetbalreis naar de wedstrijd gevonden. Ga je mee? https://www.voetbalretour.nl/{{ path("checkout",  {'id' : match.id}) }}">
  87.                                                         <i class="far fa-envelope icon-before"></i>E-mail
  88.                                                     </a>
  89.                                                     <a href='https://api.whatsapp.com/send?text=Ik heb bij Voetbal Retour een leuke voetbalreis naar de wedstrijd {{ match.homeClub.name }} - {{ match.awayClub.name }} gevonden. Ga je mee? https://www.voetbalretour.nl/{{ path("checkout",  {'id' : match.id}) }}'
  90.                                                        target="_blank">
  91.                                                         <i class="fab fa-whatsapp icon-before"></i>WhatsApp
  92.                                                     </a>
  93.                                                     <a href="https://telegram.me/share/url?url=https://www.voetbalretour.nl/{{ path("checkout",  {'id' : match.id}) }}&text=Ik heb bij Voetbal Retour een leuke voetbalreis naar de wedstrijd {{ match.homeClub.name }} - {{ match.awayClub.name }} gevonden. Ga je mee? https://www.voetbalretour.nl/{{ path("checkout",  {'id' : match.id}) }}"
  94.                                                        target="_blank">
  95.                                                         <i class="fab fa-telegram icon-before"></i>Telegram
  96.                                                     </a>
  97.                                                 </div>
  98.                                             </div>
  99.                                         </div>
  100.                                     </div>
  101.                                     <div class="details">
  102.                                         <div data-component="centrum-longitude"
  103.                                              class="d-none">{{ match.stadium.centrumLongitude }}</div>
  104.                                         <div data-component="centrum-latitude"
  105.                                              class="d-none">{{ match.stadium.centrumLatitude }}</div>
  106.                                         <div data-component="stadium-location"
  107.                                              class="d-none">{{ match.stadium.address }}</div>
  108.                                         <div data-component="stadium-name" class="d-none">{{ match.stadium }}</div>
  109.                                         <div class="competition"><i
  110.                                                     class="fa-solid fa-fw fa-futbol icon-before"></i>{{ match.competition.name }}
  111.                                         </div>
  112.                                         <div class="location">
  113.                                             <i class="fa-solid fa-fw fa-location-dot icon-before"></i>{{ match.stadium }}, {{ match.stadium.place }}
  114.                                         </div>
  115.                                     </div>
  116.                                     <div class="pricing">
  117.                                         <span class="text-holder">
  118.                                             {% set priceAmount = match.price.amount/100 %}
  119.                                             vanaf <span class="price text-highlighter"><span
  120.                                                         class="currency">€</span>{{ priceAmount|number_format(0, ',','.') }},-</span>
  121.                                         </span>
  122.                                         <button type="button" data-toggle="modal" data-target="#price-details"><i
  123.                                                     class="fas fa-info-circle"></i></button>
  124.                                     </div>
  125.                                 </div>
  126.                                 <div class="match-content">
  127.                                     <div class="club club-home">
  128.                                         <img src="{{ media_asset(match.homeClub.logo) }}"
  129.                                              alt="{{ match.homeClub }}" class="club-logo">
  130.                                         <div class="club-name">{{ match.homeClub }}</div>
  131.                                     </div>
  132.                                     <div class="vs mobile">-</div>
  133.                                     <div class="vs desktop">VS</div>
  134.                                     <div class="club club-away">
  135.                                         <div class="club-name">{{ match.awayClub }}</div>
  136.                                         <img src="{{ media_asset(match.awayClub.logo) }}"
  137.                                              alt="{{ match.awayClub }}" class="club-logo">
  138.                                     </div>
  139.                                 </div>
  140.                                 <div class="match-footer">
  141.                                     <div class="details">
  142.                                         <div class="date">
  143.                                             <i class="fa-solid fa-calendar-days icon-before"></i>{{ match.date|date('d-m-Y') }}
  144.                                         </div>
  145.                                         <div class="time">
  146.                                             <i class="fa-solid fa-clock icon-before"></i>{{ match.date|date('H:i') }}
  147.                                         </div>
  148.                                         {% if match.final %}
  149.                                             <div class="match-state-final label state-confirmed">
  150.                                                 <span class="text-holder"></span><i
  151.                                                         class="fas fa-fw fa-check icon-before"></i> Bevestigd
  152.                                                 <button type="button" data-toggle="modal" data-target="#match-status"><i
  153.                                                             class="fas fa-info-circle"></i></button>
  154.                                             </div>
  155.                                         {% else %}
  156.                                             <div class="match-state-final label">
  157.                                                 <span class="text-holder"><i class="fas fa-fw fa-times icon-before"></i> Nog niet bevestigd </span>
  158.                                                 <button type="button" data-toggle="modal" data-target="#match-status"><i
  159.                                                             class="fas fa-info-circle"></i></button>
  160.                                             </div>
  161.                                         {% endif %}
  162.                                     </div>
  163.                                     <div class="actions checkout-match-stel-samen-wrap">
  164.                                         {% if match.disableBooking %}
  165.                                             <button disabled class="is-btn is-btn__secondary mt-3">Uitverkocht</button>
  166.                                         {% else %}
  167.                                             <button type="button" data-scroll="journeyDetails"
  168.                                                     class="is-btn is-background-color-accent stroke-full checkout-btn-stel-samen">Stel <span
  169.                                                         class="text-highlighter">samen</span></button>
  170.                                         {% endif %}
  171.                                     </div>
  172.                                 </div>
  173.                             </div>
  174.                         </div>
  175.                         {{ include('pages/Modal/price_details.html.twig') }}
  176.                         {{ include('pages/Modal/match_status.html.twig') }}
  177.                     </div>
  178.                 </div>
  179.             </div>
  180.             {# Stap-panels: alleen het actieve paneel is zichtbaar (geen scroll) #}
  181.             <div class="checkout-step-viewport">
  182.                 {# 1. Reis #}
  183.                 {{ include('pages/partials/yourTrip.html.twig') }}
  184.                 {# 2. Tickets #}
  185.                 {{ include('pages/partials/stadium_categories.html.twig') }}
  186.                 {# 3. Hotel #}
  187.                 {{ include('pages/partials/accommodations.html.twig') }}
  188.                 {# 4. Kamers #}
  189.                 {{ include('pages/partials/rooms.html.twig') }}
  190.                 {# 5. Vlucht #}
  191.                 {{ include('pages/partials/flight.html.twig') }}
  192.             </div>
  193.             <script id="loadingTemplate" type="text/x-jsrender">
  194.                 <div class="text-center checkout-loader-bg">
  195.                 <div id="checkout-loader">
  196.                 <img src="{{ asset('assets/vr_loader2.gif') }}" alt="{{ 'Loading'|trans }}"
  197.                          class="is-max-width-200">
  198.                     <p class="pt-3 is-margin-top-20">
  199.                         We controleren nu de actuele beschikbaarheid en prijzen, dit kan tot 30 seconden
  200.                         duren.<br/>
  201.                     </p>
  202.                     <div class="d-flex footer-images justify-content-center">
  203.                         <img src="https://www.voetbalretour.nl/uploads/Thuiswinkel_checkout_liggend2.jpg">
  204.                         <img src="https://www.voetbalretour.nl/uploads/GGTO_logo_blue.png">
  205.                     </div>
  206.                 </div></div>
  207.             </script>
  208.             <div class="loading text-center checkout-loader-bg" style="display:none;">
  209.                 <div id="checkout-loader">
  210.                     <h3 class="is-margin-top-0 pb-3 strike">
  211.                         <span>Een moment geduld alsjeblieft</span>
  212.                     </h3>
  213.                     <img src="{{ asset('assets/vr_loader2.gif') }}" alt="{{ 'Loading'|trans }}"
  214.                          class="is-max-width-200">
  215.                     <p class="pt-3 is-margin-top-20">
  216.                         We controleren nu de actuele beschikbaarheid en prijzen, dit kan tot 30 seconden
  217.                         duren.<br/><br/>
  218.                     </p>
  219.                     <div class="d-flex footer-images justify-content-center">
  220.                         <img src="https://www.voetbalretour.nl/uploads/Thuiswinkel_checkout_liggend2.jpg">
  221.                         <img src="https://www.voetbalretour.nl/uploads/GGTO_logo_blue.png">
  222.                     </div>
  223.                 </div>
  224.             </div>
  225.             <div class="no-results text-center checkout-loader-bg" style="display:none;">
  226.                 <p>
  227.                     <b>Geen vluchten gevonden.</b><br/>
  228.                     <br/>
  229.                     Kies voor vertrek vanaf een andere luchthaven in Nederland, Duitsland of België of wijzig de luchthaven van aankomst naar een ander nabijgelegen vliegveld en/of pas je reisdata aan en probeer het opnieuw.<br/>
  230.                     <br/>
  231.                     Dit kan ook komen doordat de verwachte aankomsttijd van de beschikbare heenvlucht(en) te kort op het (actuele) aanvangstijdstip van de wedstrijd ligt. Om te voorkomen dat je de aftrap zou missen tonen we in ons aanbod geen vluchten waarbij je korter dan 6 uur voor de aftrap pas in de speelstad aankomt.<br/>
  232.                     <br/>
  233.                     Hulp nodig? Of telefonisch een vlucht boeken? Neem dan <a href='/contact'>contact</a> met ons op. Wij staan voor je klaar!
  234.                 </p>
  235.             </div>
  236.             <div class="modal fade" id="accommodation-detail" tabindex="-1" role="dialog" aria-hidden="true">
  237.                 <div class="modal-dialog" role="document">
  238.                     <div class="modal-content">
  239.                         <div class="modal-header">
  240.                             <h5 class="modal-title">
  241.                             </h5>
  242.                             <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  243.                                 <span aria-hidden="true">&times;</span>
  244.                             </button>
  245.                         </div>
  246.                         <div class="modal-body text-justify">
  247.                             <div class="loading text-center">
  248.                                 <img src="{{ asset('assets/contentbox/spinner.svg') }}" alt="{{ 'Loading'|trans }}">
  249.                             </div>
  250.                         </div>
  251.                         <div class="modal-footer">
  252.                             <button type="button" class="is-btn is-background-color-black stroke is-margin-bottom-15"
  253.                                     data-dismiss="modal">Sluiten
  254.                             </button>
  255.                         </div>
  256.                     </div>
  257.                 </div>
  258.             </div>
  259.             <div class="modal fade" id="loading-modal" tabindex="-1" role="dialog" aria-hidden="true">
  260.                 <div class="modal-dialog" role="document">
  261.                     <div class="modal-content">
  262.                         <div class="modal-header">
  263.                             <h5 class="modal-title">
  264.                             </h5>
  265.                             <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  266.                                 <span aria-hidden="true">&times;</span>
  267.                             </button>
  268.                         </div>
  269.                         <div class="modal-body text-justify">
  270.                             <div class="loading text-center">
  271.                                 <img src="{{ asset('assets/contentbox/spinner.svg') }}" alt="{{ 'Loading'|trans }}">
  272.                             </div>
  273.                         </div>
  274.                     </div>
  275.                 </div>
  276.             </div>
  277.         </div>
  278.     </div>
  279. </div>
  280. <script id="basketoverviewTemplate" type="text/x-jsrender">
  281.     <div class="whitebox">
  282.         <div class="basket-sticky-grid d-lg-none" role="navigation" aria-label="Checkout acties">
  283.             <a href="https://wa.me/31621436569" target="_blank" rel="noopener noreferrer" class="basket-sticky-whatsapp" title="WhatsApp"><i class="fab fa-whatsapp" aria-hidden="true"></i> Hulp nodig?</a>
  284.             <a class="basket-sticky-cart-trigger collapsed basket-collapse" data-toggle="collapse" href="#basketcollapse" role="button" aria-expanded="false" aria-controls="basketcollapse">
  285.                 <span class="cart-info">
  286.                     <p basket-sticky-match><b><%:homeclub%> - <%:awayclub%></b></p>
  287.                     <span class="basket-sticky-price">Totaal: <%:pricetotal%></span>
  288.                 </span>
  289.                 <i class="fas fa-suitcase" aria-hidden="true"></i>
  290.             </a>
  291.         </div>
  292.         <div class="d-none d-lg-flex basketcontrols align-items-center">
  293.             <a class="collapsed basket-collapse suitcase" data-toggle="collapse" href="#basketcollapse" role="button" aria-expanded="true" aria-controls="basketcollapse"><i class="fas fa-suitcase"></i></a>
  294.             <span class="basket-sticky-price flex-grow-1 text-center"><%:pricetotal%></span>
  295.             <a class="basket-collapse ml-auto" data-toggle="collapse" href="#basketcollapse" role="button" aria-expanded="false" aria-controls="basketcollapse"><i class="fas fa-minus"></i><i class="fas fa-plus"></i></a>
  296.         </div>
  297.         <div class="collapse mt-4" id="basketcollapse">
  298.             <div class="tripdetails">
  299.                 <p><b><%:homeclub%> - <%:awayclub%></b></p>
  300.                 <p><i class="far fa-calendar-alt icon-before"></i><%:matchdate%></p>
  301.                 <p><i class="far fa-clock icon-before"></i><%:matchtime%></p>
  302.                 <p><i class="fas fa-map-marker-alt icon-before"></i><%:stadium%>, <%:location%></p>
  303.             </div>
  304.             <ul class="nav basket-tabs nav-fill mt-4" id="basketTab" role="tablist">
  305.               <li class="nav-item" role="presentation">
  306.                 <a class="nav-link active" id="match-tab" data-toggle="tab" href="#match" role="tab" aria-controls="match" aria-selected="true"><i class="fas fa-futbol"></i></a>
  307.               </li>
  308.               <li class="nav-item" role="presentation">
  309.                 <a class="nav-link" id="hotel-tab" data-toggle="tab" href="#hotel" role="tab" aria-controls="hotel" aria-selected="false"><i class="fas fa-hotel"></i></a>
  310.               </li>
  311.               <%if flight%>
  312.                   <li class="nav-item" role="presentation">
  313.                     <a class="nav-link" id="flight-tab" data-toggle="tab" href="#flight" role="tab" aria-controls="flight" aria-selected="false"><i class="fas fa-plane"></i></a>
  314.                   </li>
  315.               <%/if%>
  316.             </ul>
  317.             <div class="tab-content pt-4 pb-4" id="basketContent">
  318.                 <div class="tab-pane fade show active" id="match" role="tabpanel" aria-labelledby="match-tab">
  319.                     <div id="matchdata" >
  320.                         <%if ticketcategory%>
  321.                         <div class="d-flex">
  322.                             <i class="fal fa-ticket-alt"></i>
  323.                             <p>
  324.                                 <span><strong><%:ticketcategory%></strong></span>
  325.                             </p>
  326.                         </div>
  327.                         <%/if%>
  328.                         <div class="d-flex mt-3">
  329.                             <i class="fal fa-users"></i>
  330.                             <p>
  331.                                 <span><strong><%:numberpersons%>  <%if numberpersons == 1 %> persoon <%else%> personen <%/if%></strong></span>
  332.                             </p>
  333.                         </div>
  334.                     </div>
  335.                 </div>
  336.                 <div class="tab-pane fade" id="hotel" role="tabpanel" aria-labelledby="hotel-tab">
  337.                     <div id="hoteldata">
  338.                         <div class="d-flex">
  339.                             <i class="fal fa-hotel"></i>
  340.                             <p class="mb-0 hotel-details">
  341.                                 <span class="hotel-details-name"><strong><%:hotelname%></strong></span><br>
  342.                                 <span class="text-lowercase small hotel-details-rooms"><%for chosenaccommodation%><span class="hotel-detail-room"><%:Description%></span> <%/for%></span><br><br>
  343.                                 <span class="small hotel-details-checkin">Inchecken: <%:departdate%></span><br>
  344.                                 <span class="small hotel-details-checkout">Uitchecken: <%:returntdate%></span>
  345.                             </p>
  346.                         </div>
  347.                     <div class="d-flex mt-3">
  348.                         <i class="fal fa-utensils"></i>
  349.                         <p class="hotel-details">
  350.                             <span><strong><%for chosenaccommodation%><%for Boards%><span class="hotel-details-logies"><%:Name%> </span><%/for%><%/for%></strong></span>
  351.                         </p>
  352.                     </div>
  353.                 </div>
  354.             </div>
  355.             <%if flight%>
  356.                 <div class="tab-pane fade" id="flight" role="tabpanel" aria-labelledby="flight-tab">
  357.                     <div id="flightdata">
  358.                         <div class="d-flex" style="border-bottom: 1px solid #eee;">
  359.                             <i class="fal fa-plane-departure"></i>
  360.                             <div>
  361.                                 <p>
  362.                                     <span><strong><%:flight.outbound.departdate%></strong></span><br>
  363.                                     <span><strong><%:flight.outbound.departtime%> - <%:flight.outbound.arrivetime%></strong></span><br>
  364.                                     <span class="small"><%:flight.outbound.departairport%> - <%:flight.outbound.arriveairport%></span><br>
  365.                                     <span class="small"><%:flight.outbound.carrier%></span>
  366.                                 </p>
  367.                             </div>
  368.                         </div>
  369.                         <div class="d-flex mt-3">
  370.                             <i class="fal fa-plane-departure fa-flip-horizontal text-right"></i>
  371.                             <div>
  372.                                 <p>
  373.                                     <span><strong><%:flight.inbound.departdate%></strong></span><br>
  374.                                     <span><strong><%:flight.inbound.departtime%> - <%:flight.inbound.arrivetime%></strong></span></br>
  375.                                     <span class="small"><%:flight.inbound.departairport%> - <%:flight.inbound.arriveairport%></span><br>
  376.                                     <span class="small"><%:flight.inbound.carrier%></span>
  377.                                 </p>
  378.                             </div>
  379.                         </div>
  380.                         <div class="text-right">
  381.                             <span class="removeflight small" id="removeflight" style="color: red; cursor: pointer;">Verwijder vlucht <i class="fas fa-times" style="width: 16px; color: red; cursor: pointer;"></i></span>
  382.                         </div>
  383.                     </div>
  384.                 </div>
  385.             <%/if%>
  386.         </div>
  387.         <p class="mb-4 basket-total-title">Prijsoverzicht</p>
  388.         <p><span>Reissom per persoon:</span> <%:priceperperson%></p>
  389.         <p><span>Totaal:</span> <span class="is-color-secondary text-highlighter"><%:pricetotal%></span><span class="pl-3 small" style="line-height: 21px;">(incl. BTW)</span> </p>
  390.     </div>
  391. </div>
  392. </script>