{#
page: search test
#}
{% extends "layouts/base.html.twig" %}
{% if getResidenceMode() %}
{% set jsPageId = 'residence-search' %}
{% set pageClass = 'ResidencePage ResidenceSearch' %}
{% else %}
{% set jsPageId = 'search' %}
{% set pageClass = 'Search' %}
{% endif %}
{% block content %}
{# Exemple sans résultats
{% set results = {
cures:[],
rooms:[]
} %}
#}
{# Search Results Cure #}
{% set product_results = [] %}
{% set room_results = [] %}
{% if search_result['type_result'] is defined and search_result['type_result'] == 'produit' %}
{% for result in search_result['results'] %}
{# get min price cure #}
{% set price_display = result.price %}
{% if search_result['type_bar'] is defined and (search_result['type_bar'] == 'Thalasso avec hébergement' or search_result['type_bar'] =='Treatments with accomodation' ) %}
{% set price_cure = getCalendarThalasso(result.id_produit,true,true) %}
{% set price_display = price_cure.price ~ "€" %}
{% endif %}
{% set button_display = "search.reserve.libelle"|trans %}
{% set button_link = result.link.to %}
{% if search_result['type_bar'] == "Idées cadeaux" %}
{% set button_display = "Offrir" %}
{% set button_link = result.link.togift %}
{% endif %}
{% set product_results = product_results|merge([
{
image:result.image,
title:result.title,
titleAnnex:'',
duration:result.duration,
list:result.accroche,
description:result.description,
details:(result.id_cat != 2 and result.id_cat != 1 ) ? null : {
title:'result.avecHeb.detailDesSoins'|trans,
list:result.description_2,
description:result.description,
button:{
text: 'result.avecHeb.lesSoins'|trans,
to: '#',
}
},
priceFrom:"product.apartirde"|trans,
price:price_display,
priceDetails:'TTC/Pers.',
link: {
text: button_display,
bookingLink: button_link,
aquao: null ,
category:search_result['type_bar'] == "Idées cadeaux" ?'offer':'reservation'
},
}
]) %}
{% endfor %}
{# Search Results Room #}
{% elseif search_result['type_result'] is defined and search_result['type_result'] == 'chambre' %}
{% set search_params = app.session.get("search_params") %}
{% set roomsdb = getRooms(search_params.adults, search_params.children, search_params.date_start, search_params.date_end) %}
{% set valboardHidden = false %}
{% if getResidenceMode() %}
{% set valboardHidden = true %}
{% endif %}
{% for result in search_result['results'] %}
{# set room persons #}
{% set room_persons =[] %}
{% set selected_room_persons =[] %}
{% set room_combinaisons = getCapaciteRoom(result.id) %}
{% for combinaison in room_combinaisons %}
{% set labelpers = '' %}
{% set valpers = combinaison.nbr_adultes ~ ',' ~ combinaison.nbr_enfants %}
{% if combinaison.nbr_adultes > 1 %}
{% set labelpers = labelpers ~ combinaison.nbr_adultes ~ " " ~ "result.hotelSeul.adultes"|trans %}
{% endif %}
{% if combinaison.nbr_adultes == 1 %}
{% set labelpers = labelpers ~ combinaison.nbr_adultes ~ " " ~ "result.hotelSeul.adulte"|trans %}
{% endif %}
{% if combinaison.nbr_enfants > 1 %}
{% set labelpers = labelpers ~ ", " ~ combinaison.nbr_enfants ~ " " ~ "result.hotelSeul.enfants"|trans %}
{% endif %}
{% if combinaison.nbr_enfants == 1 %}
{% set labelpers = labelpers ~ ", " ~ combinaison.nbr_enfants ~ " " ~ "result.hotelSeul.enfant"|trans %}
{% endif %}
{# set selected persons first #}
{% if combinaison.nbr_enfants == result.nbr_enfants and combinaison.nbr_adultes == result.nbr_adultes %}
{% set selected_room_persons = selected_room_persons|merge([
{label:labelpers, value:valpers}
])%}
{% else %}
{% set room_persons = room_persons|merge([
{label:labelpers, value:valpers}
])%}
{% endif %}
{% endfor %}
{% set room_persons = selected_room_persons|merge(room_persons)%}
{% set room_prices =[] %}
{% for room in roomsdb %}
{% if result.id == room.id %}
{# set room pensions #}
{% if room.regime_data != null %}
{% set regimedet = room.regime_data|split(',') %}
{% for regime in regimedet %}
{% set room_pensions =[] %}
{% set regimeval = regime|split('|') %}
{% for room_person in room_persons %}
{% set pers_ads = room_person.value|split(',') %}
{% if getResidenceMode() %}
{% set room_pensions = room_pensions|merge([
{
value: room_person.value ,
price: (room.price|replace({'€': ''}) * 1) ~ "€" ,
priceday: "result.hotelSeul.soit"|trans ~ (room.price|replace({'€': ''}) * 1 / (search_params.duration * 1)) ~ "result.hotelSeul.parJour"|trans ,
}
])%}
{% else %}
{% set room_pensions = room_pensions|merge([
{
value: room_person.value ,
price: (room.price|replace({'€': ''}) * 1 + ( regimeval[2] * pers_ads[0] * search_params.duration * 1 )) ~ "€" ,
priceDay: "result.hotelSeul.soit"|trans ~ (( room.price|replace({'€': ''}) * 1 + ( regimeval[2] * pers_ads[0] * search_params.duration * 1 ) ) / (search_params.duration * 1)) ~ "result.hotelSeul.parJour"|trans ,
}
])%}
{% endif %}
{% endfor %}
{% set room_prices = room_prices|merge([
{
pensionId:(regimeval[0] * 1),
persons: room_pensions
}
])%}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
{% set max_room = 3 %}
{% if result.form.numoptions.chambres.max < max_room %}
{% set max_room = result.form.numoptions.chambres.max %}
{% endif %}
{% set room_results = room_results|merge([{
image:result.image,
title:result.title,
titleAnnex:'',
person: "nbr.person"|trans({'%nbr_person%': result.person}, "messages"),
description: result.description,
price:result.price,
prices:room_prices,
realPrice:"room.realprice"|trans({'%realprice%': result.realPrice|number_format(2, '.', '')}, "messages"),
maxRoomsBooking:max_room,
priceFrom:"product.tarif.libelle"|trans,
id: result.id,
room_id: result.id,
form:{
action:result.form.action,
numoptions:[
{
label: "result.hotelSeul.chambres"|trans,
id:"rooms",
name: "chambres[]",
min:result.form.numoptions.chambres.min,
max:max_room,
result:result.form.numoptions.chambres.result,
hidden:false
}],
persons:room_persons,
boardHidden:valboardHidden,
board:result.form.board
},
link: {
text: "search.reserve.libelle"|trans,
to: result.link.to,
},
aquao: null,
}]) %}
{% endfor %}
{% endif %}
{# Exemple avec des résultats #}
{% set results = {
cures: product_results,
rooms: room_results
} %}
{% set total = results.cures|length + results.rooms|length %}
{% set hasResults = total > 0 %}
{% set searchResultsLabel = null %}
{% if hasResults %}
{% set searchResultsLabel = "result.hotelSeul.nbrResults1"|trans ~ total ~ " " ~ "result.hotelSeul.nbrResults2"|trans %}
{% endif %}
{# Header #}
{% include "component/header.html.twig" with {
props: {
account:{
link: path("app_signin", { '_locale': app.request.getLocale() }),
text: "myaccount.title"|trans
}
}
} %}
{# Hero tunnel #}
{% include "component/hero_tunnel.html.twig" with {
props: {
heading: {
title: 'pages.search.resultatDe'|trans,
titleAnnex: 'pages.search.recherche'|trans
},
breadcrumb: [frontservice.getHome(app.request.getLocale()),
{
text: 'pages.search.resultatRecherches'|trans
}],
background : {
src: asset('img/14 002.jpg')
}
}
} only %}
{% set searchItemLabel = "Hotel seul" %}
{% if search_result['type_bar'] is defined %}
{% if getResidenceMode() %}
{% set searchItemLabel = "filtre_bar.titre"|trans %}
{% else %}
{% set searchItemLabel = search_result['type_bar'] %}
{% endif %}
{% endif %}
{# Renseigner le bon id de la type_bar #}
{% if search_result['id_type_bar'] matches '/^\\d+$/' %}
{% set searchItemId = search_result['id_type_bar'] * 1 %}
{% else %}
{% set searchItemId = search_result['id_type_bar'] %}
{% endif %}
{% if getResidenceMode() %}
{# Filter Bar #}
{% include "component/header/filter_bar.html.twig" with {
props:{
bookingtitle:"booking.title"|trans,
research: {
searchItem: searchItemLabel,
searchItemId: searchItemId,
searchResults: searchResultsLabel
}
}
} only %}
{% else %}
{# Filter Bar #}
{% include "component/header/filter_bar.html.twig" with {
props:{
bookingtitle:"booking.title"|trans,
research: {
searchItem: searchItemLabel,
searchItemId: searchItemId,
searchResults: searchResultsLabel
}
}
} only %}
{% endif %}
{% if hasResults %}
{# Search Results Cure #}
{% include "component/search_results_cure.html.twig" with {
props: {
results:results.cures
}
} %}
{# Search Results Room #}
{% include "component/search_results_room.html.twig" with {
props: {
results:results.rooms
}
} %}
{% else %}
<div class="Search-noresults">{{"reser.no.result"|trans({}, "messages") }}</div>
{% endif %}
{# Footer #}
{% include "component/footer.html.twig" %}
{% endblock %}