{#
/**
* @var \Pimcore\Templating\PhpEngine this
* @var \Pimcore\Templating\PhpEngine view
* @var \Pimcore\Templating\GlobalVariables app
* #
* @var \Elements\Demi\Model\AccommodationProduct accommodationProduct
* @var \Elements\Demi\Accommodation\Search\ResultSet\Product product
* @var \Elements\Demi\Model\MealType[] mealArray ,
* @var \Elements\Demi\Model\MealType liveMealObj
* @var bool showSelection
* @var string promotionText
* @var bool availabilityIsChecked
* @var \Elements\Demi\Model\Package tvbPackage
*/
#}
{% if showSelection and (product.getBookableOnRequest() or product.getBookable()) %}
<div class="js-room-selection__detail collapse">
<div class="row align-items-center">
<label for="{{ product.getProductId() }}-count"
class="col {{ pimcore_device().isPhone() ? "" : "sr-only" }}">
{{ 'demi.detail.room.select-amount' | trans }}
</label>
<div class="col col-auto">
{{ include('@ElementsDemiFrontend/Includes/elements/form-elements/number-spinner.html.twig', {
'id' : product.getProductId() ~ '-count',
'name' : product.getProductId() ~ '--count',
'styleModifier' : 'js-room-selection__room-count',
'roomId' : product.getProductId(),
'max' : 7,
'min' : 0
}) }}
</div>
</div>
{% if pimcore_device().isPhone() %}
{% if mealArray | length > 1 %}
<label class="form-box form-box--gray my-3">
<span class="form-box__label">{{ 'demi.detail.room.meals' | trans }}</span>
<select id="meal-selector-{{ product.getProductId() }}"
name="meal-selector-{{ product.getProductId() }}"
class="form-box__content form-control js-room-selection__meal">
{% for mealObj in mealArray %}
<option value="{{ mealObj.getId() }}" {{ liveMealObj.getText() == mealObj.getText() ? "selected" : "" }}>{{ mealObj.getText() }}</option>
{% endfor %}
</select>
{% if mealArray | length is not same as 1 %}
<span class="demi-icon demi-icon-chevron-down form-box__select-icon" aria-hidden="true"></span>
{% endif %}
</label>
{% elseif mealArray | length is same as 1 %}
{% set mealObj = mealArray | first %}
<input id="meal-selector-{{ product.getProductId() }}" type="hidden"
name="meal-selector-{{ product.getProductId() }}" value="{{ mealObj.getId() }}"
class="js-room-selection__meal">
{% endif %}
{% endif %}
{% set bookableOnRequest = (product.getBookableOnRequest() and not product.getBookable()) %}
{% if pimcore_device().isPhone() %}
{% set spanClass = "mr-2" %}
{% set btnClasses = "btn-block" %}
{% else %}
{% set btnClasses = "room-row__book-now-btn" %}
{% set spanClass = "mr-1" %}
{% endif %}
{% if product.getBookable() %}
<button type="submit" class="btn btn-success {{ btnClasses }} js-room-selection__submit mt-3"
data-book-type="bookable">
<span class="btn__icon demi-icon demi-icon-cart {{ spanClass }}" aria-hidden="true"></span>
{{ 'demi.detail.room.booking-button' | trans }}
</button>
{% elseif bookableOnRequest %}
<button type="submit" class="btn btn-success {{ btnClasses }} js-room-selection__submit"
data-book-type="onrequest">
<span class="btn__icon demi-icon demi-icon-cart {{ spanClass }}" aria-hidden="true"></span>
{{ 'demi.detail.room.booking-on-request-button' | trans }}
</button>
{% endif %}
<div class="mt-2 text-success small text-center">
{% if isAffiliate %}
{{ 'demi.detail.promote-booking-speed-affiliate' | trans }}
{% elseif tvbPackage is not null %}
{% for section in tvbPackage.getSections() %}
{% if section.getProductType() is not same as "Accommodation" %}
{% if section.getSelectionRulesType() is not same as "Mandatory" %}
{{ 'demi.detail.room.destinationpackage-additional-services' | trans }}
{% else %}
{{ 'demi.detail.room.destinationpackage-additional-services-mandatory' | trans }}
{% endif %}
break
{% endif %}
{% endfor %}
{% else %}
{{ promotionText ? promotionText : 'demi.detail.promote-booking-speed' | trans }}
{% endif %}
</div>
</div>
{% if not pimcore_device().isPhone() %}
{% set btnClasses = "room-row__select-room" %}
{% else %}
{% set btnClasses = "" %}
{% endif %}
<div class="js-room-selection__detail js-room-selection__detail--show-if-empty collapse show">
<button type="button" class="btn btn-success btn-block btn-breakable {{ btnClasses }} js-room-selection__add">
<span class="btn__icon demi-icon demi-icon-cart {{ spanClass }}" aria-hidden="true"></span>
{% if tvbPackage is not null or (accommodationProduct and accommodationProduct.getProductType() == constant('\\Elements\\Demi\\Accommodation\\Search\\Parameter::PRODUCT_TYPE_PACKAGE')) %}
{{ 'demi.detail.room.select-button-package' | trans }}
{% else %}
{{ (accommodationProduct ? 'demi.detail.room.select-button-' ~ accommodationProduct.getAccommodationType() | lower: 'demi.detail.room.select-button-hotelroom') | trans }}
{% endif %}
</button>
<div class="mt-2 {{ pimcore_device().isPhone() ? 'text-center' : '' }} text-success small">
{% if isAffiliate %}
{{ 'demi.detail.promote-booking-speed-affiliate' | trans }}
{% elseif tvbPackage is not null %}
{% set break = false %}
{% for section in tvbPackage.getSections() | filter(section.getProductType() is not same as "Accommodation") %}
{% if section.getSelectionRulesType() is not same as "Mandatory" %}
{{ 'demi.detail.room.destinationpackage-additional-services' | trans }}
{% else %}
{{ 'demi.detail.room.destinationpackage-additional-services-mandatory' | trans }}
{% endif %}
{% set break = true %}
{% endfor %}
{% else %}
{{ promotionText ? promotionText : 'demi.detail.promote-booking-speed' | trans }}
{% endif %}
</div>
</div>
{% elseif availabilityIsChecked %}
{% if pimcore_device().isPhone() %}
{% set divClass = "my-3" %}
{% set btnClasses = "btn-block" %}
<hr class="m-0">
{% else %}
{% set btnClasses = "room-row__book-now-btn" %}
{% endif %}
<div class="{{ divClass }}">
<div class="font-medium text-muted">
<div class="row row--gutter-width-10">
<div class="col col-auto">
<span class="demi-icon demi-icon-warning icon-in-text"
aria-label="{{ 'demi.warning' | trans }}"
title="{{ 'demi.warning' | trans }}"></span>
</div>
<div class="col {{ pimcore_device().isPhone() ? "" : "mb-2" }}">
{{ 'demi.detail.product-not-bookable' | trans }}
</div>
</div>
</div>
</div>
{% if not isAffiliate %}
{{ include("@ElementsDemiFrontend/Accommodation/includes/enquiry-button.html.twig", {
"text" : (accommodationProduct ? 'demi.detail.room.enquiry-button-' ~ accommodationProduct.getAccommodationType() | lower : 'demi.detail.room.enquiry-button-hotelroom') | trans,
"buttonClass" : btnClasses,
"trackingCategory" : "Product",
"trackingAction" : "click enquiry",
"singleProductEnquiry" : true
}) }}
{% endif %}
{% endif %}