Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> getHotelByCodeAndBrandCode(HotelCode.getData(), BrandCode.getData())[0]  [in template "20115#20151#852312" at line 9, column 18]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign hotel = getHotelByCodeAndBran...  [in template "20115#20151#852312" at line 9, column 1]
----
1<#import "${fullTemplatesPath}/shared/cta-button.ftl" as cta> 
2 
3<#include "${fullTemplatesPath}/utils/dictionary.ftl"> 
4<#include "${fullTemplatesPath}/utils/constants.ftl"> 
5<#include "${fullTemplatesPath}/utils/api-hotels.ftl"> 
6<#include "${fullTemplatesPath}/utils/media-links.ftl"> 
7<#include "${fullTemplatesPath}/utils/json.ftl"> 
8 
9<#assign hotel = getHotelByCodeAndBrandCode(HotelCode.getData(), BrandCode.getData())[0] > 
10<#assign contentLarge = getHotelHeroImage(hotel.mediaLinks)> 
11<#assign contentSmall = getHotelHeroImageXS(hotel.mediaLinks)> 
12 
13 
14<section class="hotel-hero is-hidden" data-component="hotel-hero" data-scroll-component> 
15  <div class="hotel-hero-wrapper"> 
16    <div class="flex-wrapper"> 
17 
18      <div class="content-container"> 
19        <div class="title-wrapper"> 
20          <h2 class="title heading-2" data-transition-item> 
21            ${hotel.name} 
22          </h2> 
23        </div> 
24 
25        <div class="address-wrapper copy-1" data-transition-item> 
26            <div class="address"> 
27                <span class="score">${hotel.address} 
28</span> 
29            </div>        
30            <div class="phonenumber"> 
31                <span class="phones">${hotel.phones[0]}</span> 
32            </div> 
33        </div> 
34      </div> 
35      <div class="visual-container" data-transition-item> 
36        <div class="visual-wrapper"> 
37            <#if  (URLVideo?? && URLVideo.getData()?has_content)> 
38              <div class="video-wrapper"> 
39                <div class="video-main"> 
40                    <video src="${URLVideo.getData()}" class="video-player" class="video-player" data-video-player autoplay muted playsinline></video> 
41             
42                </div> 
43              </div> 
44            <#elseif contentLarge?matches(".*/.*.jpg.*") || contentSmall?matches(".*/.*.jpg.*")> 
45       
46                <picture class="main-visual" data-component="picture"> 
47                    <source media="(min-width: 768px)" srcset="${contentLarge}"> 
48                    <img class="visual" src="${contentSmall}" alt="${hotel.name}"> 
49                </picture> 
50           
51          </#if> 
52        </div> 
53      </div> 
54 
55    </div> 
56 
57    <div class="booking-wrapper" data-transition-item> 
58      <div class="booking-wrapper-container"> 
59        <div class="booking-content-wrapper"> 
60 
61          <!-- partial: component/block/hotel-booking-form/hotel-booking-form.hbs --> 
62          <div class="hotel-booking-form" data-component="hotel-booking-form" data-hotel="${jsonFactoryUtil.looseSerializeDeep(hotel)?html}"> 
63 
64            <div class="booking-form-content"> 
65              <form class="form" action="" data-booking-form> 
66              <input value="fiesta-americana" name="brand" type="hidden"> 
67                <div class="content-wrapper"> 
68                  <div class="date-picker-wrapper"> 
69 
70                    <!-- partial: component/general/date-range-picker/date-range-picker.hbs --> 
71                    <div class="date-range-picker" data-scroll-component data-component="date-range-picker" data-locale="${locale}" data-start-placeholder="${_SELECT[locale]}" data-end-placeholder="${_SELECT[locale]}" data-start-label="${_ARRIVAL_DATE[locale]}" data-end-label="${_DEPARTURE_DATE[locale]}" data-max-date-in-months-from-now="24" data-required="true" data-default-number-of-nights="2" data-minimum-nights="1"> 
72                    </div> 
73                    <!-- / component/general/date-range-picker/date-range-picker.hbs --> 
74                  </div> 
75                  <div class="totals-container"> 
76                    <div class="total-wrapper"> 
77 
78                      <!-- partial: component/form/custom-number-input/custom-number-input.hbs --> 
79                      <div class="custom-input number total-adults" data-component="custom-input-number" data-value="2" data-min="1" data-max="10"> 
80                        <div class="label-wrapper"> 
81                          <label class="label"> 
82                            ${_ADULTS[locale]} 
83                          </label> 
84                        </div> 
85                        <div class="input"> 
86                          <div class="placeholder-copy"> 
87                            <div class="button" data-minus-button> 
88 
89                              <!-- partial: component/general/icon/icon.hbs --> 
90                              <span class="icon total-adults" data-component="icon" data-icon="minus"></span> 
91                              <!-- / component/general/icon/icon.hbs --> 
92                            </div> 
93                            <input class="value" type="number" data-bind="value: String(value()).padStart(2, '0')" maxlength="2" min="1" max="10" value="2"> 
94                            <div class="button" data-plus-button> 
95 
96                              <!-- partial: component/general/icon/icon.hbs --> 
97                              <span class="icon total-adults" data-component="icon" data-icon="plus"></span> 
98                              <!-- / component/general/icon/icon.hbs --> 
99                            </div> 
100                          </div> 
101                        </div> 
102                        <input type="hidden" name="adults" min="1" max="10" value="2" data-bind="value: value"> 
103                      </div> 
104                      <!-- / component/form/custom-number-input/custom-number-input.hbs --> 
105                    </div> 
106                    <div class="total-wrapper"> 
107 
108                      <!-- partial: component/form/custom-number-input/custom-number-input.hbs --> 
109                      <div class="custom-input number total-children" data-component="custom-input-number" data-value="0" data-min="0" data-max="3"> 
110                        <div class="label-wrapper"> 
111                          <label class="label"> 
112                            ${_CHILDREN[locale]} 
113                          </label> 
114                        </div> 
115                        <div class="input"> 
116                          <div class="placeholder-copy"> 
117                            <div class="button" data-minus-button> 
118 
119                              <!-- partial: component/general/icon/icon.hbs --> 
120                              <span class="icon total-children" data-component="icon" data-icon="minus"></span> 
121                              <!-- / component/general/icon/icon.hbs --> 
122                            </div> 
123                            <input class="value" type="number" data-bind="value: String(value()).padStart(2, '0')" maxlength="2" min="0" max="3" value="0"> 
124                            <div class="button" data-plus-button> 
125 
126                              <!-- partial: component/general/icon/icon.hbs --> 
127                              <span class="icon total-children" data-component="icon" data-icon="plus"></span> 
128                              <!-- / component/general/icon/icon.hbs --> 
129                            </div> 
130                          </div> 
131                        </div> 
132                        <input type="hidden" name="children" min="0" max="3" value="0" data-bind="value: value"> 
133                      </div> 
134                      <!-- / component/form/custom-number-input/custom-number-input.hbs --> 
135                    </div> 
136                  </div> 
137                  <div class="price-submit-container"> 
138                    <div class="from-price-wrapper"> 
139 
140                      <!-- partial: component/general/from-price/from-price.hbs --> 
141                      <div class="from-price price-size-" data-component="from-price"> 
142                        <span class="from-copy detail-type">${_STARTING_FROM[locale]}</span> 
143                        <div class="price-wrapper"> 
144                          <span class="price-copy">${hotel.startingFromHotel}</span> 
145                          <span class="currency-copy detail-type">${_CURRENCY[locale]}</span> 
146                        </div> 
147                      </div> 
148                      <!-- / component/general/from-price/from-price.hbs --> 
149                    </div> 
150                    <div class="cta-wrapper"> 
151 
152                      <!-- partial: component/general/cta-button/cta-button.hbs --> 
153                      <@cta.button text="${_BOOK_HERE[locale]}" url="#" class="primary"/> 
154                      <!-- / component/general/cta-button/cta-button.hbs --> 
155                      <input type="submit" style="display: none"> 
156                    </div> 
157                  </div> 
158                </div> 
159              </form> 
160            </div> 
161 
162          </div> 
163          <!-- / component/block/hotel-booking-form/hotel-booking-form.hbs --> 
164        </div> 
165      </div> 
166    </div> 
167  </div> 
168</section> 
169<script type="text/javascript"> 
170	dataLayer.push({ 
171                'event': 'detailProduct',              
172                'name': '${hotel.name}',                             
173                'id': '${hotel.hotelCode}', 
174                'brand': 'Fiesta Americana' 
175	}); 
176</script> 

ERROR!

ERROR!

Otros hoteles

  1. Grand Fiesta Americana Chapultepec
  2. Grand Fiesta Americana Querétaro
  3. Grand Fiesta Americana Veracruz
  4. Grand Fiesta Americana Monterrey Valle
  5. Grand Fiesta Americana Guadalajara Country Club
  6. Grand Fiesta Americana Coral Beach Cancún
  7. Ú by Grand Fiesta Americana
  8. Grand Fiesta Americana Oaxaca
  9. Grand Fiesta Americana Los Cabos All Inclusive Golf & Spa
  10. Grand Fiesta Americana Puebla Angelópolis
  11. Grand Fiesta Americana Puerto Vallarta All Inclusive Adults Only