src/Elements/Bundle/DemiFrontendBundle/Resources/views/Accommodation/includes/acco-rooms.html.twig line 1

Open in your IDE?
  1. {#
  2. /**
  3.  * @var \Pimcore\Templating\PhpEngine this
  4.  * @var \Pimcore\Templating\PhpEngine view
  5.  * @var \Pimcore\Templating\GlobalVariables app
  6.  * #
  7.  * @var package bool
  8.  * @var availabilityIsChecked bool
  9.  * @var accommodation \Elements\Demi\Model\AccommodationServiceProvider
  10.  * @var housePackageMaster \Elements\Demi\Model\HousePackageMaster
  11.  * @var tvbPackage \Elements\Demi\Model\Package
  12.  * @var searchParam Elements\Demi\Accommodation\Search\Parameter
  13.  * @var productResultSet \Elements\Demi\Accommodation\Search\ResultSet\Accommodation
  14.  */ #}
  15. {% set resultSetPresent = resultSetPresent is defined ? resultSetPresent : false %}
  16. {% set devicePhone = pimcore_device().isPhone() %}
  17. <section class="mt-4 {{ devicePhone ? 'container' : '' }}"
  18.          data-track-content
  19.          data-content-name="{{ package ? 'package-' : 'accommodation-' }}availabilities">
  20.     <div
  21.         class="js-search-data__show-if-submitted {{ devicePhone ? 'mb-3' : '' }}" {{ availabilityIsChecked ? '' : 'hidden' }} >
  22.         {% if devicePhone %}
  23.             {% set classes = "h3 mb-2" %}
  24.         {% else %}
  25.             {% set classes = "mb-4 text-primary" %}
  26.         {% endif %}
  27.         {% if isAffiliate %}
  28.             {% if housePackageMaster or tvbPackage %}
  29.                 <h2 class="{{ classes }}">{{ 'demi.detail.tab.package-prices' | trans }}</h2>
  30.             {% else %}
  31.                 <h2 class="{{ classes }}">{{ demi_getRoomsTabTranslationKey(accommodation) | trans }} &
  32.                 {{ "demi.detail.tab.prices" | trans }}</h2>
  33.             {% endif %}
  34.         {% endif %}
  35.         {% if devicePhone %}
  36.             {{ include('@ElementsDemiFrontend/Accommodation/includes/acco-detail-searchInfo.html.twig', {'availabilityIsChecked' : availabilityIsChecked}) }}
  37.         {% endif %}
  38.         {% if not tvbPackage %}
  39.             {{ include('@ElementsDemiFrontend/Accommodation/includes/corridor-matrix.html.twig', {
  40.                 'styleModifier' : 'pt-3',
  41.                 'type' : 'rooms',
  42.                 'isPackage' : housePackageMaster ? true:false
  43.             }) }}
  44.         {% endif %}
  45.     </div>
  46.     {% if not isAffiliate %}
  47.         <div
  48.             class="js-search-data__hide-if-submitted {{ devicePhone ? '' : 'text-center ' }}" {{ availabilityIsChecked ? 'hidden' : '' }} >
  49.             <h2 class="{{ devicePhone ? 'h3' : 'text-primary' }}  mb-2">{{ "demi.detail.room-overview" | trans }} </h2>
  50.             {% if not devicePhone or (devicePhone and accommodation and accommodation.getAccommodations(false) | length == 0) %}
  51.                 <button type="button"
  52.                         class="btn btn-success {{ devicePhone ? 'btn-block' : '' }} btn-lg js-overlay__toggle my-3"
  53.                         data-target="#search-overlay">
  54.                     {{ "demi.detail.search-vacancies-button" | trans }}
  55.                 </button>
  56.             {% endif %}
  57.         </div>
  58.     {% endif %}
  59.     <div class="js-room-list" aria-live="polite">
  60.         <div class="js-room-list__loading" hidden>
  61.             <div class="text-center py-5 room-selection-box">
  62.                 {{ include('@ElementsDemiFrontend/Includes/elements/spinner/loading-spinner.html.twig') }}
  63.             </div>
  64.         </div>
  65.         <div class="js-room-list__content" data-list="rooms">
  66.             {% if not resultSetPresent or housePackageMaster or tvbPackage %}
  67.             {% if tvbPackage %}
  68.                 {% set accommodationProductArray = [] %}
  69.                 {% set sections = tvbPackage.getSections() %}
  70.                 {% for section in sections %}
  71.                 {% if section.getProductType() is same as "Accommodation" and section.getProducts() %}
  72.                     {% for assignedProduct in section.getProducts() %}
  73.                         {% if assignedProduct.getServiceProvider() and assignedProduct.getServiceProvider().getId() == accommodation.getId() %}
  74.                             {% set accommodationProductArray = accommodationProductArray | merge([assignedProduct.getProduct()]) %}
  75.                         {% endif %}
  76.                     {% endfor %}
  77.                 {% endif %}
  78.                 {% endfor %}
  79.             {% elseif housePackageMaster %}
  80.                 {% set accommodationProductArray = housePackageMaster.demiGetProducts(true) %}
  81.             {% else %}
  82.                 {% set accommodationProductArray = accommodation.getAccommodations(false) %}
  83.             {% endif %}
  84.             <div>
  85.                 <ul class="list-unstyled">
  86.                     {% if productResultSet is not null and productResultSet != false %}
  87.                         {% set productDataArray = demi_prepareProductArray(accommodationProductArray, searchParam, productResultSet, tvbPackage) %}
  88.                         {% if productDataArray is not empty %}
  89.                             {% for productData in productDataArray.productData %}
  90.                             {% set templatename = demi_getDeviceDependentTemplate('@ElementsDemiFrontend/Includes/teaser/', 'room-teaser', container) %}
  91.                             {{ include(templatename, {
  92.                                 'hasSingleRoomRow' : true,
  93.                                 'availabilityIsChecked' : availabilityIsChecked,
  94.                                 'productData': productData,
  95.                                 'accommodation':accommodation,
  96.                                 'settlerCode' : null
  97.                             }) }}
  98.                             {% endfor %}
  99.                         {% endif %}
  100.                         {% if productResultSet == null and not productDataArray.foundTvbProductToDisplay %}
  101.                             <div class="card-body">
  102.                                 <div class="font-medium text-muted">
  103.                                     <div class="row row--gutter-width-10">
  104.                                         <div class="col col-auto">
  105.                                 <span class="demi-icon demi-icon-warning icon-in-text"
  106.                                       aria-label="{{ 'demi.warning' | trans }}"
  107.                                       title="{{ 'demi.warning' | trans }}"></span>
  108.                                         </div>
  109.                                         <div class="col">
  110.                                             {{ "demi.detail.no-rooms" | trans }}
  111.                                         </div>
  112.                                     </div>
  113.                                 </div>
  114.                             </div>
  115.                         {% endif %}
  116.                     {% endif %}
  117.                 </ul>
  118.             </div>
  119.             {% endif %}
  120.         </div>
  121.     </div>
  122.     <div class="js-corridor__room-alternatives"></div>
  123.     <button class="selection-bar btn-no-styling js-room-selection__bar js-room-selection__submit"
  124.             type="submit">
  125.         <script data-cookieconsent="ignore">
  126.             _config.roomSelectionBar = true;
  127.         </script>
  128.         <div class="row align-items-center">
  129.             <div class="col">
  130.                 <div><span
  131.                         class="js-room-selection__units">0 {{ 'demi.units'| trans }}</span> {{ 'demi.detail.room.selected'| trans }}
  132.                 </div>
  133.                 <div><strong class="font-medium">{{ 'demi.detail.room.selected-total-price' | trans }}
  134.                         <span class="js-room-selection__total-price"><span
  135.                                 class="price">{{ demi_paymentGetCurrency() }} </span>
  136.                     </span>
  137.                     </strong></div>
  138.             </div>
  139.             <div class="col col-auto" aria-label="{{ 'demi.detail.room.booking-button' | trans }}">
  140.                 <span class="demi-icon demi-icon-cart selection-bar__cart-icon" aria-hidden="true"></span>
  141.                 <span class="demi-icon demi-icon-arrow-right selection-bar__arrow-icon" aria-hidden="true"></span>
  142.             </div>
  143.         </div>
  144.     </button>
  145. </section>