var/cache/website/dev/twig/7f/7fec6208a5477a2ce63a7077ba7d5513.php line 39

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Sandbox\SecurityNotAllowedTestError;
  13. use Twig\Source;
  14. use Twig\Template;
  15. use Twig\TemplateWrapper;
  16. /* pages/_includes/details/_other-departures-table.html.twig */
  17. class __TwigTemplate_e34b8613f19eef1ba7a4f923c056e1ac extends Template
  18. {
  19. private Source $source;
  20. /**
  21. * @var array<string, Template>
  22. */
  23. private array $macros = [];
  24. public function __construct(Environment $env)
  25. {
  26. parent::__construct($env);
  27. $this->source = $this->getSourceContext();
  28. $this->parent = false;
  29. $this->blocks = [
  30. ];
  31. }
  32. protected function doDisplay(array $context, array $blocks = []): iterable
  33. {
  34. $macros = $this->macros;
  35. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  36. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "pages/_includes/details/_other-departures-table.html.twig"));
  37. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  38. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "pages/_includes/details/_other-departures-table.html.twig"));
  39. // line 1
  40. $macros["dateMacros"] = $this->macros["dateMacros"] = $this->load("_snippets/components/macros/date.html.twig", 1)->unwrap();
  41. // line 2
  42. yield "
  43. ";
  44. // line 3
  45. $context["companiesWithFullWeb"] = $this->extensions['App\Twig\Company\CompanyExtension']->getCompaniesWithFullWeb();
  46. // line 4
  47. $context["companiesWithFullWebIds"] = Twig\Extension\CoreExtension::map($this->env, $this->env->hasExtension(\Twig\Extension\SandboxExtension::class) && $this->env->getExtension(\Twig\Extension\SandboxExtension::class)->isSandboxed($this->source), (isset($context["companiesWithFullWeb"]) || array_key_exists("companiesWithFullWeb", $context) ? $context["companiesWithFullWeb"] : (function () { throw new RuntimeError('Variable "companiesWithFullWeb" does not exist.', 4, $this->source); })()), function ($__c__) use ($context, $macros) { $context["c"] = $__c__; return CoreExtension::getAttribute($this->env, $this->source, (isset($context["c"]) || array_key_exists("c", $context) ? $context["c"] : (function () { throw new RuntimeError('Variable "c" does not exist.', 4, $this->source); })()), "id", [], "any", false, false, false, 4); });
  48. // line 5
  49. yield "
  50. <div class=\"other-departures-view other-departures-view--table is-active\" data-view-panel=\"table\">
  51. \t<div class=\"pricing-table-wrapper\">
  52. \t\t<div class=\"pricing-table-scroll\">
  53. \t\t\t<table class=\"pricing-table\">
  54. \t\t\t\t<colgroup>
  55. \t\t\t\t\t<col class=\"pricing-table-col-sticky\">
  56. \t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  57. \t\t\t\t\t";
  58. // line 13
  59. $context['_parent'] = $context;
  60. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["allDepartures"]) || array_key_exists("allDepartures", $context) ? $context["allDepartures"] : (function () { throw new RuntimeError('Variable "allDepartures" does not exist.', 13, $this->source); })()));
  61. foreach ($context['_seq'] as $context["_key"] => $context["departureCruise"]) {
  62. // line 14
  63. yield "\t\t\t\t\t\t<col class=\"pricing-table-col-date\">
  64. \t\t\t\t\t";
  65. }
  66. $_parent = $context['_parent'];
  67. unset($context['_seq'], $context['_key'], $context['departureCruise'], $context['_parent']);
  68. $context = array_intersect_key($context, $_parent);
  69. $context += $_parent;
  70. // line 16
  71. yield "\t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  72. \t\t\t\t</colgroup>
  73. \t\t\t\t<thead>
  74. \t\t\t\t\t<tr>
  75. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-corner sticky-col\">
  76. \t\t\t\t\t\t\t<span class=\"text-md-sbd color-primary-color\">";
  77. // line 21
  78. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.double_occupancy_rates"), "html", null, true);
  79. yield "</span>
  80. \t\t\t\t\t\t\t<span class=\"text-xs-rg color-grey-text\">";
  81. // line 22
  82. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.mandatory_service_fees"), "html", null, true);
  83. yield "</span>
  84. \t\t\t\t\t\t</th>
  85. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" aria-hidden=\"true\"></th>
  86. \t\t\t\t\t\t";
  87. // line 25
  88. $context['_parent'] = $context;
  89. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["allDepartures"]) || array_key_exists("allDepartures", $context) ? $context["allDepartures"] : (function () { throw new RuntimeError('Variable "allDepartures" does not exist.', 25, $this->source); })()));
  90. $context['loop'] = [
  91. 'parent' => $context['_parent'],
  92. 'index0' => 0,
  93. 'index' => 1,
  94. 'first' => true,
  95. ];
  96. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  97. $length = count($context['_seq']);
  98. $context['loop']['revindex0'] = $length - 1;
  99. $context['loop']['revindex'] = $length;
  100. $context['loop']['length'] = $length;
  101. $context['loop']['last'] = 1 === $length;
  102. }
  103. foreach ($context['_seq'] as $context["_key"] => $context["departureCruise"]) {
  104. // line 26
  105. yield "\t\t\t\t\t\t\t";
  106. $context["isSelectedDeparture"] = (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 26)) && $tmp instanceof Markup ? (string) $tmp : $tmp) && (($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["currentCruise"]) || array_key_exists("currentCruise", $context) ? $context["currentCruise"] : (function () { throw new RuntimeError('Variable "currentCruise" does not exist.', 26, $this->source); })()), "departureDate", [], "any", false, false, false, 26)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) && ($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 26), "Y-m-d") == $this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, (isset($context["currentCruise"]) || array_key_exists("currentCruise", $context) ? $context["currentCruise"] : (function () { throw new RuntimeError('Variable "currentCruise" does not exist.', 26, $this->source); })()), "departureDate", [], "any", false, false, false, 26), "Y-m-d")));
  107. // line 27
  108. yield "\t\t\t\t\t\t\t";
  109. $context["departureMonth"] = (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 27)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 27), "n")) : (0));
  110. // line 28
  111. yield "\t\t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-header";
  112. if ((($tmp = (isset($context["isSelectedDeparture"]) || array_key_exists("isSelectedDeparture", $context) ? $context["isSelectedDeparture"] : (function () { throw new RuntimeError('Variable "isSelectedDeparture" does not exist.', 28, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  113. yield " is-selected";
  114. }
  115. yield "\" data-departure-index=\"";
  116. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 28), "html", null, true);
  117. yield "\">
  118. \t\t\t\t\t\t\t\t<span class=\"date text-sm-md\">
  119. \t\t\t\t\t\t\t\t\t";
  120. // line 30
  121. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 30)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  122. // line 31
  123. yield "\t\t\t\t\t\t\t\t\t\t";
  124. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 31), "d"), "html", null, true);
  125. yield "
  126. \t\t\t\t\t\t\t\t\t\t";
  127. // line 32
  128. yield (string) $macros["dateMacros"]->getTemplateForMacro("macro_short_month_fr", $context, 32, $this->getSourceContext())->macro_short_month_fr(...[(isset($context["departureMonth"]) || array_key_exists("departureMonth", $context) ? $context["departureMonth"] : (function () { throw new RuntimeError('Variable "departureMonth" does not exist.', 32, $this->source); })())]);
  129. yield "
  130. \t\t\t\t\t\t\t\t\t\t";
  131. // line 33
  132. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 33), "Y"), "html", null, true);
  133. yield "
  134. \t\t\t\t\t\t\t\t\t";
  135. }
  136. // line 35
  137. yield "\t\t\t\t\t\t\t\t</span>
  138. \t\t\t\t\t\t\t\t";
  139. // line 36
  140. if ((($tmp = (isset($context["isSelectedDeparture"]) || array_key_exists("isSelectedDeparture", $context) ? $context["isSelectedDeparture"] : (function () { throw new RuntimeError('Variable "isSelectedDeparture" does not exist.', 36, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  141. // line 37
  142. yield "\t\t\t\t\t\t\t\t\t<span class=\"selected-label text-2xs-rg color-grey-text\">";
  143. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.selected_departure"), "html", null, true);
  144. yield "</span>
  145. \t\t\t\t\t\t\t\t";
  146. }
  147. // line 39
  148. yield "\t\t\t\t\t\t\t</th>
  149. \t\t\t\t\t\t";
  150. ++$context['loop']['index0'];
  151. ++$context['loop']['index'];
  152. $context['loop']['first'] = false;
  153. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  154. --$context['loop']['revindex0'];
  155. --$context['loop']['revindex'];
  156. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  157. }
  158. }
  159. $_parent = $context['_parent'];
  160. unset($context['_seq'], $context['_key'], $context['departureCruise'], $context['_parent'], $context['loop']);
  161. $context = array_intersect_key($context, $_parent);
  162. $context += $_parent;
  163. // line 41
  164. yield "\t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" aria-hidden=\"true\"></th>
  165. \t\t\t\t\t</tr>
  166. \t\t\t\t</thead>
  167. \t\t\t\t<tbody>
  168. \t\t\t\t\t";
  169. // line 45
  170. $context['_parent'] = $context;
  171. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["subTypes"]) || array_key_exists("subTypes", $context) ? $context["subTypes"] : (function () { throw new RuntimeError('Variable "subTypes" does not exist.', 45, $this->source); })()));
  172. $context['loop'] = [
  173. 'parent' => $context['_parent'],
  174. 'index0' => 0,
  175. 'index' => 1,
  176. 'first' => true,
  177. ];
  178. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  179. $length = count($context['_seq']);
  180. $context['loop']['revindex0'] = $length - 1;
  181. $context['loop']['revindex'] = $length;
  182. $context['loop']['length'] = $length;
  183. $context['loop']['last'] = 1 === $length;
  184. }
  185. foreach ($context['_seq'] as $context["_key"] => $context["subType"]) {
  186. // line 46
  187. yield "\t\t\t\t\t\t";
  188. $context["subtypeShortLabel"] = Twig\Extension\CoreExtension::trim(((CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "shortName", [], "any", true, true, false, 46)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "shortName", [], "any", false, false, false, 46), "")) : ("")));
  189. // line 47
  190. yield "\t\t\t\t\t\t";
  191. if (Twig\Extension\CoreExtension::testEmpty((isset($context["subtypeShortLabel"]) || array_key_exists("subtypeShortLabel", $context) ? $context["subtypeShortLabel"] : (function () { throw new RuntimeError('Variable "subtypeShortLabel" does not exist.', 47, $this->source); })()))) {
  192. // line 48
  193. yield "\t\t\t\t\t\t\t";
  194. $context["subtypeShortLabel"] = Twig\Extension\CoreExtension::trim(((CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "name", [], "any", true, true, false, 48)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "name", [], "any", false, false, false, 48), "")) : ("")));
  195. // line 49
  196. yield "\t\t\t\t\t\t";
  197. }
  198. // line 50
  199. yield "\t\t\t\t\t\t";
  200. if (Twig\Extension\CoreExtension::testEmpty((isset($context["subtypeShortLabel"]) || array_key_exists("subtypeShortLabel", $context) ? $context["subtypeShortLabel"] : (function () { throw new RuntimeError('Variable "subtypeShortLabel" does not exist.', 50, $this->source); })()))) {
  201. // line 51
  202. yield "\t\t\t\t\t\t\t";
  203. $context["subtypeShortLabel"] = Twig\Extension\CoreExtension::sprintf("%02d", CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 51));
  204. // line 52
  205. yield "\t\t\t\t\t\t";
  206. }
  207. // line 53
  208. yield "\t\t\t\t\t\t";
  209. $context["cabinTypeId"] = ((CoreExtension::getAttribute($this->env, $this->source, ($context["subtypeCabinTypeMap"] ?? null), (CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "id", [], "any", false, false, false, 53) . ""), [], "array", true, true, false, 53)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, (isset($context["subtypeCabinTypeMap"]) || array_key_exists("subtypeCabinTypeMap", $context) ? $context["subtypeCabinTypeMap"] : (function () { throw new RuntimeError('Variable "subtypeCabinTypeMap" does not exist.', 53, $this->source); })()), (CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "id", [], "any", false, false, false, 53) . ""), [], "array", false, false, false, 53), ((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "cabinType", [], "any", false, true, false, 53), "id", [], "any", true, true, false, 53)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "cabinType", [], "any", false, false, false, 53), "id", [], "any", false, false, false, 53), "")) : ("")))) : (((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "cabinType", [], "any", false, true, false, 53), "id", [], "any", true, true, false, 53)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "cabinType", [], "any", false, false, false, 53), "id", [], "any", false, false, false, 53), "")) : (""))));
  210. // line 54
  211. yield "\t\t\t\t\t\t";
  212. $context["tableModalMinPrice"] = null;
  213. // line 55
  214. yield "\t\t\t\t\t\t";
  215. $context['_parent'] = $context;
  216. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["allDepartures"]) || array_key_exists("allDepartures", $context) ? $context["allDepartures"] : (function () { throw new RuntimeError('Variable "allDepartures" does not exist.', 55, $this->source); })()));
  217. foreach ($context['_seq'] as $context["_key"] => $context["departureCruise"]) {
  218. // line 56
  219. yield "\t\t\t\t\t\t\t";
  220. $context["bestPriceObj"] = $this->extensions['App\Twig\Price\PriceExtension']->getBestPriceForCruiseCabinSubType($context["departureCruise"], $context["subType"]);
  221. // line 57
  222. yield "\t\t\t\t\t\t\t";
  223. $context["priceValue"] = (((($tmp = (isset($context["bestPriceObj"]) || array_key_exists("bestPriceObj", $context) ? $context["bestPriceObj"] : (function () { throw new RuntimeError('Variable "bestPriceObj" does not exist.', 57, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? (Twig\Extension\CoreExtension::round(((CoreExtension::getAttribute($this->env, $this->source, ($context["bestPriceObj"] ?? null), "baseCostDouble", [], "any", true, true, false, 57)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, (isset($context["bestPriceObj"]) || array_key_exists("bestPriceObj", $context) ? $context["bestPriceObj"] : (function () { throw new RuntimeError('Variable "bestPriceObj" does not exist.', 57, $this->source); })()), "baseCostDouble", [], "any", false, false, false, 57), 0)) : (0)), 0, "ceil")) : (0));
  224. // line 58
  225. yield "\t\t\t\t\t\t\t";
  226. if ((((isset($context["priceValue"]) || array_key_exists("priceValue", $context) ? $context["priceValue"] : (function () { throw new RuntimeError('Variable "priceValue" does not exist.', 58, $this->source); })()) > 0) && ((null === (isset($context["tableModalMinPrice"]) || array_key_exists("tableModalMinPrice", $context) ? $context["tableModalMinPrice"] : (function () { throw new RuntimeError('Variable "tableModalMinPrice" does not exist.', 58, $this->source); })())) || ((isset($context["priceValue"]) || array_key_exists("priceValue", $context) ? $context["priceValue"] : (function () { throw new RuntimeError('Variable "priceValue" does not exist.', 58, $this->source); })()) < (isset($context["tableModalMinPrice"]) || array_key_exists("tableModalMinPrice", $context) ? $context["tableModalMinPrice"] : (function () { throw new RuntimeError('Variable "tableModalMinPrice" does not exist.', 58, $this->source); })()))))) {
  227. // line 59
  228. yield "\t\t\t\t\t\t\t\t";
  229. $context["tableModalMinPrice"] = (isset($context["priceValue"]) || array_key_exists("priceValue", $context) ? $context["priceValue"] : (function () { throw new RuntimeError('Variable "priceValue" does not exist.', 59, $this->source); })());
  230. // line 60
  231. yield "\t\t\t\t\t\t\t";
  232. }
  233. // line 61
  234. yield "\t\t\t\t\t\t";
  235. }
  236. $_parent = $context['_parent'];
  237. unset($context['_seq'], $context['_key'], $context['departureCruise'], $context['_parent']);
  238. $context = array_intersect_key($context, $_parent);
  239. $context += $_parent;
  240. // line 62
  241. yield "
  242. \t\t\t\t\t\t<tr>
  243. \t\t\t\t\t\t\t<th scope=\"row\" class=\"pricing-table-row-label sticky-col\" data-subtype-id=\"";
  244. // line 64
  245. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "id", [], "any", false, false, false, 64), "html", null, true);
  246. yield "\">
  247. \t\t\t\t\t\t\t\t";
  248. // line 65
  249. yield from $this->load("pages/_includes/details/_other-departures-table.html.twig", 65, 1)->unwrap()->yield(CoreExtension::merge($context, ["cabinTypeId" => // line 66
  250. (isset($context["cabinTypeId"]) || array_key_exists("cabinTypeId", $context) ? $context["cabinTypeId"] : (function () { throw new RuntimeError('Variable "cabinTypeId" does not exist.', 66, $this->source); })()), "subTypeId" => CoreExtension::getAttribute($this->env, $this->source, // line 67
  251. $context["subType"], "id", [], "any", false, false, false, 67), "linkClass" => "pricing-table-row-label-link", "modalMinPrice" => // line 69
  252. (isset($context["tableModalMinPrice"]) || array_key_exists("tableModalMinPrice", $context) ? $context["tableModalMinPrice"] : (function () { throw new RuntimeError('Variable "tableModalMinPrice" does not exist.', 69, $this->source); })())]));
  253. // line 76
  254. yield "\t\t\t\t\t\t\t</th>
  255. \t\t\t\t\t\t\t";
  256. // line 78
  257. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 78)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  258. // line 79
  259. yield "\t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" rowspan=\"";
  260. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["subTypes"]) || array_key_exists("subTypes", $context) ? $context["subTypes"] : (function () { throw new RuntimeError('Variable "subTypes" does not exist.', 79, $this->source); })())), "html", null, true);
  261. yield "\">
  262. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow left-arrow br1\" aria-label=\"";
  263. // line 80
  264. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.scroll_left"), "html", null, true);
  265. yield "\">
  266. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">";
  267. // line 81
  268. yield (string) $this->env->getFunction('getLucidIcon')->getCallable()("chevron-left");
  269. yield "</div>
  270. \t\t\t\t\t\t\t\t\t</button>
  271. \t\t\t\t\t\t\t\t</td>
  272. \t\t\t\t\t\t\t";
  273. }
  274. // line 85
  275. yield "\t\t\t\t\t\t\t";
  276. $context['_parent'] = $context;
  277. $context['_seq'] = CoreExtension::ensureTraversable((isset($context["allDepartures"]) || array_key_exists("allDepartures", $context) ? $context["allDepartures"] : (function () { throw new RuntimeError('Variable "allDepartures" does not exist.', 85, $this->source); })()));
  278. $context['loop'] = [
  279. 'parent' => $context['_parent'],
  280. 'index0' => 0,
  281. 'index' => 1,
  282. 'first' => true,
  283. ];
  284. if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  285. $length = count($context['_seq']);
  286. $context['loop']['revindex0'] = $length - 1;
  287. $context['loop']['revindex'] = $length;
  288. $context['loop']['length'] = $length;
  289. $context['loop']['last'] = 1 === $length;
  290. }
  291. foreach ($context['_seq'] as $context["_key"] => $context["departureCruise"]) {
  292. // line 86
  293. yield "\t\t\t\t\t\t\t\t";
  294. $context["isSelectedDeparture"] = (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 86)) && $tmp instanceof Markup ? (string) $tmp : $tmp) && (($tmp = CoreExtension::getAttribute($this->env, $this->source, (isset($context["currentCruise"]) || array_key_exists("currentCruise", $context) ? $context["currentCruise"] : (function () { throw new RuntimeError('Variable "currentCruise" does not exist.', 86, $this->source); })()), "departureDate", [], "any", false, false, false, 86)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) && ($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 86), "Y-m-d") == $this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, (isset($context["currentCruise"]) || array_key_exists("currentCruise", $context) ? $context["currentCruise"] : (function () { throw new RuntimeError('Variable "currentCruise" does not exist.', 86, $this->source); })()), "departureDate", [], "any", false, false, false, 86), "Y-m-d")));
  295. // line 87
  296. yield "\t\t\t\t\t\t\t\t";
  297. $context["cellBestPriceObj"] = $this->extensions['App\Twig\Price\PriceExtension']->getBestPriceForCruiseCabinSubType($context["departureCruise"], $context["subType"]);
  298. // line 88
  299. yield "\t\t\t\t\t\t\t\t";
  300. $context["rawBestPrice"] = (((($tmp = (isset($context["cellBestPriceObj"]) || array_key_exists("cellBestPriceObj", $context) ? $context["cellBestPriceObj"] : (function () { throw new RuntimeError('Variable "cellBestPriceObj" does not exist.', 88, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? (Twig\Extension\CoreExtension::round(((CoreExtension::getAttribute($this->env, $this->source, ($context["cellBestPriceObj"] ?? null), "baseCostDouble", [], "any", true, true, false, 88)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, (isset($context["cellBestPriceObj"]) || array_key_exists("cellBestPriceObj", $context) ? $context["cellBestPriceObj"] : (function () { throw new RuntimeError('Variable "cellBestPriceObj" does not exist.', 88, $this->source); })()), "baseCostDouble", [], "any", false, false, false, 88), 0)) : (0)), 0, "ceil")) : (0));
  301. // line 89
  302. yield "\t\t\t\t\t\t\t\t";
  303. $context["departureCompany"] = ((CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "ship", [], "any", false, true, false, 89), "company", [], "any", true, true, false, 89)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "ship", [], "any", false, false, false, 89), "company", [], "any", false, false, false, 89), null)) : (null));
  304. // line 90
  305. yield "\t\t\t\t\t\t\t\t";
  306. $context["departureCompanyName"] = ((CoreExtension::getAttribute($this->env, $this->source, ($context["departureCompany"] ?? null), "name", [], "any", true, true, false, 90)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, (isset($context["departureCompany"]) || array_key_exists("departureCompany", $context) ? $context["departureCompany"] : (function () { throw new RuntimeError('Variable "departureCompany" does not exist.', 90, $this->source); })()), "name", [], "any", false, false, false, 90), "")) : (""));
  307. // line 91
  308. yield "\t\t\t\t\t\t\t\t";
  309. $context["hasDirectOnline"] = CoreExtension::inFilter(((CoreExtension::getAttribute($this->env, $this->source, ($context["departureCompany"] ?? null), "id", [], "any", true, true, false, 91)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, (isset($context["departureCompany"]) || array_key_exists("departureCompany", $context) ? $context["departureCompany"] : (function () { throw new RuntimeError('Variable "departureCompany" does not exist.', 91, $this->source); })()), "id", [], "any", false, false, false, 91), null)) : (null)), (isset($context["companiesWithFullWebIds"]) || array_key_exists("companiesWithFullWebIds", $context) ? $context["companiesWithFullWebIds"] : (function () { throw new RuntimeError('Variable "companiesWithFullWebIds" does not exist.', 91, $this->source); })()));
  310. // line 92
  311. yield "\t\t\t\t\t\t\t\t<td class=\"pricing-table-cell";
  312. if (((isset($context["rawBestPrice"]) || array_key_exists("rawBestPrice", $context) ? $context["rawBestPrice"] : (function () { throw new RuntimeError('Variable "rawBestPrice" does not exist.', 92, $this->source); })()) <= 0)) {
  313. yield " is-full";
  314. }
  315. if ((($tmp = (isset($context["isSelectedDeparture"]) || array_key_exists("isSelectedDeparture", $context) ? $context["isSelectedDeparture"] : (function () { throw new RuntimeError('Variable "isSelectedDeparture" does not exist.', 92, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  316. yield " is-selected";
  317. }
  318. yield " ";
  319. yield (string) ((((isset($context["rawBestPrice"]) || array_key_exists("rawBestPrice", $context) ? $context["rawBestPrice"] : (function () { throw new RuntimeError('Variable "rawBestPrice" does not exist.', 92, $this->source); })()) == (isset($context["bestUpComingPrice"]) || array_key_exists("bestUpComingPrice", $context) ? $context["bestUpComingPrice"] : (function () { throw new RuntimeError('Variable "bestUpComingPrice" does not exist.', 92, $this->source); })()))) ? ("is-best-price") : (""));
  320. yield "\" data-departure-index=\"";
  321. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, false, 92), "html", null, true);
  322. yield "\">
  323. \t\t\t\t\t\t\t\t\t";
  324. // line 93
  325. if (((isset($context["rawBestPrice"]) || array_key_exists("rawBestPrice", $context) ? $context["rawBestPrice"] : (function () { throw new RuntimeError('Variable "rawBestPrice" does not exist.', 93, $this->source); })()) > 0)) {
  326. // line 94
  327. yield "\t\t\t\t\t\t\t\t\t\t";
  328. $context["departureDateLabel"] = (((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 94)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "departureDate", [], "any", false, false, false, 94), "d/m/Y")) : (""));
  329. // line 95
  330. yield "\t\t\t\t\t\t\t\t\t\t";
  331. $context["dddUrl"] = ((((("details/reservation?croisiere=" . CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "id", [], "any", false, false, false, 95)) . "&type=") . (isset($context["cabinTypeId"]) || array_key_exists("cabinTypeId", $context) ? $context["cabinTypeId"] : (function () { throw new RuntimeError('Variable "cabinTypeId" does not exist.', 95, $this->source); })())) . "&subtype=") . CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "id", [], "any", false, false, false, 95));
  332. // line 96
  333. yield "\t\t\t\t\t\t\t\t\t\t<button
  334. \t\t\t\t\t\t\t\t\t\t\ttype=\"button\"
  335. \t\t\t\t\t\t\t\t\t\t\tclass=\"pricing-table-cell-link\"
  336. \t\t\t\t\t\t\t\t\t\t\tdata-cruise-id=\"";
  337. // line 99
  338. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["departureCruise"], "id", [], "any", false, false, false, 99), "html", null, true);
  339. yield "\"
  340. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-id=\"";
  341. // line 100
  342. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "id", [], "any", false, false, false, 100), "html", null, true);
  343. yield "\"
  344. \t\t\t\t\t\t\t\t\t\t\tdata-cabin-type-id=\"";
  345. // line 101
  346. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["cabinTypeId"]) || array_key_exists("cabinTypeId", $context) ? $context["cabinTypeId"] : (function () { throw new RuntimeError('Variable "cabinTypeId" does not exist.', 101, $this->source); })()), "html", null, true);
  347. yield "\"
  348. \t\t\t\t\t\t\t\t\t\t\tdata-price=\"";
  349. // line 102
  350. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["rawBestPrice"]) || array_key_exists("rawBestPrice", $context) ? $context["rawBestPrice"] : (function () { throw new RuntimeError('Variable "rawBestPrice" does not exist.', 102, $this->source); })()), "html", null, true);
  351. yield "\"
  352. \t\t\t\t\t\t\t\t\t\t\tdata-departure-date=\"";
  353. // line 103
  354. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["departureDateLabel"]) || array_key_exists("departureDateLabel", $context) ? $context["departureDateLabel"] : (function () { throw new RuntimeError('Variable "departureDateLabel" does not exist.', 103, $this->source); })()), "html", null, true);
  355. yield "\"
  356. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-name=\"";
  357. // line 104
  358. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "name", [], "any", false, false, false, 104), "html", null, true);
  359. yield "\"
  360. \t\t\t\t\t\t\t\t\t\t\tdata-company-name=\"";
  361. // line 105
  362. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["departureCompanyName"]) || array_key_exists("departureCompanyName", $context) ? $context["departureCompanyName"] : (function () { throw new RuntimeError('Variable "departureCompanyName" does not exist.', 105, $this->source); })()), "html", null, true);
  363. yield "\"
  364. \t\t\t\t\t\t\t\t\t\t\tdata-direct-online=\"";
  365. // line 106
  366. yield (string) (((($tmp = (isset($context["hasDirectOnline"]) || array_key_exists("hasDirectOnline", $context) ? $context["hasDirectOnline"] : (function () { throw new RuntimeError('Variable "hasDirectOnline" does not exist.', 106, $this->source); })())) && $tmp instanceof Markup ? (string) $tmp : $tmp)) ? ("1") : ("0"));
  367. yield "\"
  368. \t\t\t\t\t\t\t\t\t\t\tdata-ddd-url=\"";
  369. // line 107
  370. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["dddUrl"]) || array_key_exists("dddUrl", $context) ? $context["dddUrl"] : (function () { throw new RuntimeError('Variable "dddUrl" does not exist.', 107, $this->source); })()), "html", null, true);
  371. yield "\"
  372. \t\t\t\t\t\t\t\t\t\t\tdata-reservation-url=\"";
  373. // line 108
  374. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["dddUrl"]) || array_key_exists("dddUrl", $context) ? $context["dddUrl"] : (function () { throw new RuntimeError('Variable "dddUrl" does not exist.', 108, $this->source); })()), "html", null, true);
  375. yield "\"
  376. \t\t\t\t\t\t\t\t\t\t\taria-label=\"";
  377. // line 109
  378. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.type_of_quote.open_for", ["%cabin%" => CoreExtension::getAttribute($this->env, $this->source, $context["subType"], "name", [], "any", false, false, false, 109), "%date%" => (isset($context["departureDateLabel"]) || array_key_exists("departureDateLabel", $context) ? $context["departureDateLabel"] : (function () { throw new RuntimeError('Variable "departureDateLabel" does not exist.', 109, $this->source); })())]), "html", null, true);
  379. yield "\"
  380. \t\t\t\t\t\t\t\t\t\t>
  381. \t\t\t\t\t\t\t\t\t\t\t<span class=\"from text-sm-rg color-grey-text\">";
  382. // line 111
  383. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.from_label"), "html", null, true);
  384. yield "</span>
  385. \t\t\t\t\t\t\t\t\t\t\t<span class=\"value text-lg-sebd color-price-tags-primary\">";
  386. // line 112
  387. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber((isset($context["rawBestPrice"]) || array_key_exists("rawBestPrice", $context) ? $context["rawBestPrice"] : (function () { throw new RuntimeError('Variable "rawBestPrice" does not exist.', 112, $this->source); })()), 0, ",", " "), "html", null, true);
  388. yield " €</span>
  389. \t\t\t\t\t\t\t\t\t\t</button>
  390. \t\t\t\t\t\t\t\t\t";
  391. } else {
  392. // line 115
  393. yield "\t\t\t\t\t\t\t\t\t\t<div class=\"pricing-table-cell-link pricing-table-cell-link--static\">
  394. \t\t\t\t\t\t\t\t\t\t\t<span class=\"full text-md-bd color-grey\">";
  395. // line 116
  396. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.full"), "html", null, true);
  397. yield "</span>
  398. \t\t\t\t\t\t\t\t\t\t</div>
  399. \t\t\t\t\t\t\t\t\t";
  400. }
  401. // line 119
  402. yield "\t\t\t\t\t\t\t\t</td>
  403. \t\t\t\t\t\t\t";
  404. ++$context['loop']['index0'];
  405. ++$context['loop']['index'];
  406. $context['loop']['first'] = false;
  407. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  408. --$context['loop']['revindex0'];
  409. --$context['loop']['revindex'];
  410. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  411. }
  412. }
  413. $_parent = $context['_parent'];
  414. unset($context['_seq'], $context['_key'], $context['departureCruise'], $context['_parent'], $context['loop']);
  415. $context = array_intersect_key($context, $_parent);
  416. $context += $_parent;
  417. // line 121
  418. yield "\t\t\t\t\t\t\t";
  419. if ((($tmp = CoreExtension::getAttribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 121)) && $tmp instanceof Markup ? (string) $tmp : $tmp)) {
  420. // line 122
  421. yield "\t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" rowspan=\"";
  422. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["subTypes"]) || array_key_exists("subTypes", $context) ? $context["subTypes"] : (function () { throw new RuntimeError('Variable "subTypes" does not exist.', 122, $this->source); })())), "html", null, true);
  423. yield "\">
  424. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow right-arrow br1\" aria-label=\"";
  425. // line 123
  426. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("details.cabin_choice.pricing_table.scroll_right"), "html", null, true);
  427. yield "\">
  428. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">";
  429. // line 124
  430. yield (string) $this->env->getFunction('getLucidIcon')->getCallable()("chevron-right");
  431. yield "</div>
  432. \t\t\t\t\t\t\t\t\t</button>
  433. \t\t\t\t\t\t\t\t</td>
  434. \t\t\t\t\t\t\t";
  435. }
  436. // line 128
  437. yield "\t\t\t\t\t\t</tr>
  438. \t\t\t\t\t";
  439. ++$context['loop']['index0'];
  440. ++$context['loop']['index'];
  441. $context['loop']['first'] = false;
  442. if (isset($context['loop']['revindex0'], $context['loop']['revindex'])) {
  443. --$context['loop']['revindex0'];
  444. --$context['loop']['revindex'];
  445. $context['loop']['last'] = 0 === $context['loop']['revindex0'];
  446. }
  447. }
  448. $_parent = $context['_parent'];
  449. unset($context['_seq'], $context['_key'], $context['subType'], $context['_parent'], $context['loop']);
  450. $context = array_intersect_key($context, $_parent);
  451. $context += $_parent;
  452. // line 130
  453. yield "\t\t\t\t</tbody>
  454. \t\t\t</table>
  455. \t\t</div>
  456. \t</div>
  457. </div>
  458. ";
  459. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  460. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  461. yield from [];
  462. }
  463. /**
  464. * @codeCoverageIgnore
  465. */
  466. public function getTemplateName(): string
  467. {
  468. return "pages/_includes/details/_other-departures-table.html.twig";
  469. }
  470. /**
  471. * @codeCoverageIgnore
  472. */
  473. public function isTraitable(): bool
  474. {
  475. return false;
  476. }
  477. /**
  478. * @codeCoverageIgnore
  479. */
  480. public function getDebugInfo(): array
  481. {
  482. return array ( 463 => 130, 447 => 128, 440 => 124, 436 => 123, 431 => 122, 428 => 121, 412 => 119, 406 => 116, 403 => 115, 397 => 112, 393 => 111, 388 => 109, 384 => 108, 380 => 107, 376 => 106, 372 => 105, 368 => 104, 364 => 103, 360 => 102, 356 => 101, 352 => 100, 348 => 99, 343 => 96, 340 => 95, 337 => 94, 335 => 93, 321 => 92, 318 => 91, 315 => 90, 312 => 89, 309 => 88, 306 => 87, 303 => 86, 285 => 85, 278 => 81, 274 => 80, 269 => 79, 267 => 78, 263 => 76, 261 => 69, 260 => 67, 259 => 66, 258 => 65, 254 => 64, 250 => 62, 243 => 61, 240 => 60, 237 => 59, 234 => 58, 231 => 57, 228 => 56, 223 => 55, 220 => 54, 217 => 53, 214 => 52, 211 => 51, 208 => 50, 205 => 49, 202 => 48, 199 => 47, 196 => 46, 179 => 45, 173 => 41, 157 => 39, 151 => 37, 149 => 36, 146 => 35, 141 => 33, 137 => 32, 132 => 31, 130 => 30, 120 => 28, 117 => 27, 114 => 26, 97 => 25, 91 => 22, 87 => 21, 80 => 16, 72 => 14, 68 => 13, 58 => 5, 56 => 4, 54 => 3, 51 => 2, 49 => 1,);
  483. }
  484. public function getSourceContext(): Source
  485. {
  486. return new Source("{% import \x27_snippets/components/macros/date.html.twig\x27 as dateMacros %}
  487. {% set companiesWithFullWeb = getCompaniesWithFullWeb() %}
  488. {% set companiesWithFullWebIds = companiesWithFullWeb|map(c => c.id) %}
  489. <div class=\"other-departures-view other-departures-view--table is-active\" data-view-panel=\"table\">
  490. \t<div class=\"pricing-table-wrapper\">
  491. \t\t<div class=\"pricing-table-scroll\">
  492. \t\t\t<table class=\"pricing-table\">
  493. \t\t\t\t<colgroup>
  494. \t\t\t\t\t<col class=\"pricing-table-col-sticky\">
  495. \t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  496. \t\t\t\t\t{% for departureCruise in allDepartures %}
  497. \t\t\t\t\t\t<col class=\"pricing-table-col-date\">
  498. \t\t\t\t\t{% endfor %}
  499. \t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  500. \t\t\t\t</colgroup>
  501. \t\t\t\t<thead>
  502. \t\t\t\t\t<tr>
  503. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-corner sticky-col\">
  504. \t\t\t\t\t\t\t<span class=\"text-md-sbd color-primary-color\">{{ \x27details.cabin_choice.pricing_table.double_occupancy_rates\x27|trans }}</span>
  505. \t\t\t\t\t\t\t<span class=\"text-xs-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.mandatory_service_fees\x27|trans }}</span>
  506. \t\t\t\t\t\t</th>
  507. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" aria-hidden=\"true\"></th>
  508. \t\t\t\t\t\t{% for departureCruise in allDepartures %}
  509. \t\t\t\t\t\t\t{% set isSelectedDeparture = departureCruise.departureDate and currentCruise.departureDate and departureCruise.departureDate|date(\x27Y-m-d\x27) == currentCruise.departureDate|date(\x27Y-m-d\x27) %}
  510. \t\t\t\t\t\t\t{% set departureMonth = departureCruise.departureDate ? departureCruise.departureDate|date(\x27n\x27) : 0 %}
  511. \t\t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-header{% if isSelectedDeparture %} is-selected{% endif %}\" data-departure-index=\"{{ loop.index0 }}\">
  512. \t\t\t\t\t\t\t\t<span class=\"date text-sm-md\">
  513. \t\t\t\t\t\t\t\t\t{% if departureCruise.departureDate %}
  514. \t\t\t\t\t\t\t\t\t\t{{ departureCruise.departureDate|date(\x27d\x27) }}
  515. \t\t\t\t\t\t\t\t\t\t{{ dateMacros.short_month_fr(departureMonth) }}
  516. \t\t\t\t\t\t\t\t\t\t{{ departureCruise.departureDate|date(\x27Y\x27) }}
  517. \t\t\t\t\t\t\t\t\t{% endif %}
  518. \t\t\t\t\t\t\t\t</span>
  519. \t\t\t\t\t\t\t\t{% if isSelectedDeparture %}
  520. \t\t\t\t\t\t\t\t\t<span class=\"selected-label text-2xs-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.selected_departure\x27|trans }}</span>
  521. \t\t\t\t\t\t\t\t{% endif %}
  522. \t\t\t\t\t\t\t</th>
  523. \t\t\t\t\t\t{% endfor %}
  524. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" aria-hidden=\"true\"></th>
  525. \t\t\t\t\t</tr>
  526. \t\t\t\t</thead>
  527. \t\t\t\t<tbody>
  528. \t\t\t\t\t{% for subType in subTypes %}
  529. \t\t\t\t\t\t{% set subtypeShortLabel = subType.shortName|default(\x27\x27)|trim %}
  530. \t\t\t\t\t\t{% if subtypeShortLabel is empty %}
  531. \t\t\t\t\t\t\t{% set subtypeShortLabel = subType.name|default(\x27\x27)|trim %}
  532. \t\t\t\t\t\t{% endif %}
  533. \t\t\t\t\t\t{% if subtypeShortLabel is empty %}
  534. \t\t\t\t\t\t\t{% set subtypeShortLabel = \x27%02d\x27|format(loop.index0) %}
  535. \t\t\t\t\t\t{% endif %}
  536. \t\t\t\t\t\t{% set cabinTypeId = subtypeCabinTypeMap[subType.id ~ \x27\x27]|default(subType.cabinType.id|default(\x27\x27)) %}
  537. \t\t\t\t\t\t{% set tableModalMinPrice = null %}
  538. \t\t\t\t\t\t{% for departureCruise in allDepartures %}
  539. \t\t\t\t\t\t\t{% set bestPriceObj = getBestPriceForCruiseCabinSubType(departureCruise, subType) %}
  540. \t\t\t\t\t\t\t{% set priceValue = bestPriceObj ? bestPriceObj.baseCostDouble|default(0)|round(0, \x27ceil\x27) : 0 %}
  541. \t\t\t\t\t\t\t{% if priceValue > 0 and (tableModalMinPrice is null or priceValue < tableModalMinPrice) %}
  542. \t\t\t\t\t\t\t\t{% set tableModalMinPrice = priceValue %}
  543. \t\t\t\t\t\t\t{% endif %}
  544. \t\t\t\t\t\t{% endfor %}
  545. \t\t\t\t\t\t<tr>
  546. \t\t\t\t\t\t\t<th scope=\"row\" class=\"pricing-table-row-label sticky-col\" data-subtype-id=\"{{ subType.id }}\">
  547. \t\t\t\t\t\t\t\t{% embed \x27pages/_includes/partials/_cabin-modal-link.html.twig\x27 with {
  548. \t\t\t\t\t\t\t\t\tcabinTypeId: cabinTypeId,
  549. \t\t\t\t\t\t\t\t\tsubTypeId: subType.id,
  550. \t\t\t\t\t\t\t\t\tlinkClass: \x27pricing-table-row-label-link\x27,
  551. \t\t\t\t\t\t\t\t\tmodalMinPrice: tableModalMinPrice
  552. \t\t\t\t\t\t\t\t} %}
  553. \t\t\t\t\t\t\t\t\t{% block link_content %}
  554. \t\t\t\t\t\t\t\t\t\t<span class=\"subtype-code text-xs-bd\">{{ subtypeShortLabel }}</span>
  555. \t\t\t\t\t\t\t\t\t\t<span class=\"subtype-name text-md-sbd\">{{ getLucidIcon(\x27info\x27) }} {{ subType.name }}</span>
  556. \t\t\t\t\t\t\t\t\t{% endblock %}
  557. \t\t\t\t\t\t\t\t{% endembed %}
  558. \t\t\t\t\t\t\t</th>
  559. \t\t\t\t\t\t\t{% if loop.first %}
  560. \t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" rowspan=\"{{ subTypes|length }}\">
  561. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow left-arrow br1\" aria-label=\"{{ \x27details.cabin_choice.pricing_table.scroll_left\x27|trans }}\">
  562. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">{{ getLucidIcon(\x27chevron-left\x27) }}</div>
  563. \t\t\t\t\t\t\t\t\t</button>
  564. \t\t\t\t\t\t\t\t</td>
  565. \t\t\t\t\t\t\t{% endif %}
  566. \t\t\t\t\t\t\t{% for departureCruise in allDepartures %}
  567. \t\t\t\t\t\t\t\t{% set isSelectedDeparture = departureCruise.departureDate and currentCruise.departureDate and departureCruise.departureDate|date(\x27Y-m-d\x27) == currentCruise.departureDate|date(\x27Y-m-d\x27) %}
  568. \t\t\t\t\t\t\t\t{% set cellBestPriceObj = getBestPriceForCruiseCabinSubType(departureCruise, subType) %}
  569. \t\t\t\t\t\t\t\t{% set rawBestPrice = cellBestPriceObj ? cellBestPriceObj.baseCostDouble|default(0)|round(0, \x27ceil\x27) : 0 %}
  570. \t\t\t\t\t\t\t\t{% set departureCompany = departureCruise.ship.company|default(null) %}
  571. \t\t\t\t\t\t\t\t{% set departureCompanyName = departureCompany.name|default(\x27\x27) %}
  572. \t\t\t\t\t\t\t\t{% set hasDirectOnline = departureCompany.id|default(null) in companiesWithFullWebIds %}
  573. \t\t\t\t\t\t\t\t<td class=\"pricing-table-cell{% if rawBestPrice <= 0 %} is-full{% endif %}{% if isSelectedDeparture %} is-selected{% endif %} {{ rawBestPrice == bestUpComingPrice ? \x27is-best-price\x27 : \x27\x27 }}\" data-departure-index=\"{{ loop.index0 }}\">
  574. \t\t\t\t\t\t\t\t\t{% if rawBestPrice > 0 %}
  575. \t\t\t\t\t\t\t\t\t\t{% set departureDateLabel = departureCruise.departureDate ? departureCruise.departureDate|date(\x27d/m/Y\x27) : \x27\x27 %}
  576. \t\t\t\t\t\t\t\t\t\t{% set dddUrl = \x27details/reservation?croisiere=\x27 ~ departureCruise.id ~ \x27&type=\x27 ~ cabinTypeId ~ \x27&subtype=\x27 ~ subType.id %}
  577. \t\t\t\t\t\t\t\t\t\t<button
  578. \t\t\t\t\t\t\t\t\t\t\ttype=\"button\"
  579. \t\t\t\t\t\t\t\t\t\t\tclass=\"pricing-table-cell-link\"
  580. \t\t\t\t\t\t\t\t\t\t\tdata-cruise-id=\"{{ departureCruise.id }}\"
  581. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-id=\"{{ subType.id }}\"
  582. \t\t\t\t\t\t\t\t\t\t\tdata-cabin-type-id=\"{{ cabinTypeId }}\"
  583. \t\t\t\t\t\t\t\t\t\t\tdata-price=\"{{ rawBestPrice }}\"
  584. \t\t\t\t\t\t\t\t\t\t\tdata-departure-date=\"{{ departureDateLabel }}\"
  585. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-name=\"{{ subType.name }}\"
  586. \t\t\t\t\t\t\t\t\t\t\tdata-company-name=\"{{ departureCompanyName }}\"
  587. \t\t\t\t\t\t\t\t\t\t\tdata-direct-online=\"{{ hasDirectOnline ? \x271\x27 : \x270\x27 }}\"
  588. \t\t\t\t\t\t\t\t\t\t\tdata-ddd-url=\"{{ dddUrl }}\"
  589. \t\t\t\t\t\t\t\t\t\t\tdata-reservation-url=\"{{ dddUrl }}\"
  590. \t\t\t\t\t\t\t\t\t\t\taria-label=\"{{ \x27details.type_of_quote.open_for\x27|trans({\x27%cabin%\x27: subType.name, \x27%date%\x27: departureDateLabel}) }}\"
  591. \t\t\t\t\t\t\t\t\t\t>
  592. \t\t\t\t\t\t\t\t\t\t\t<span class=\"from text-sm-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.from_label\x27|trans }}</span>
  593. \t\t\t\t\t\t\t\t\t\t\t<span class=\"value text-lg-sebd color-price-tags-primary\">{{ rawBestPrice|number_format(0, \x27,\x27, \x27 \x27) }} €</span>
  594. \t\t\t\t\t\t\t\t\t\t</button>
  595. \t\t\t\t\t\t\t\t\t{% else %}
  596. \t\t\t\t\t\t\t\t\t\t<div class=\"pricing-table-cell-link pricing-table-cell-link--static\">
  597. \t\t\t\t\t\t\t\t\t\t\t<span class=\"full text-md-bd color-grey\">{{ \x27details.cabin_choice.pricing_table.full\x27|trans }}</span>
  598. \t\t\t\t\t\t\t\t\t\t</div>
  599. \t\t\t\t\t\t\t\t\t{% endif %}
  600. \t\t\t\t\t\t\t\t</td>
  601. \t\t\t\t\t\t\t{% endfor %}
  602. \t\t\t\t\t\t\t{% if loop.first %}
  603. \t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" rowspan=\"{{ subTypes|length }}\">
  604. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow right-arrow br1\" aria-label=\"{{ \x27details.cabin_choice.pricing_table.scroll_right\x27|trans }}\">
  605. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">{{ getLucidIcon(\x27chevron-right\x27) }}</div>
  606. \t\t\t\t\t\t\t\t\t</button>
  607. \t\t\t\t\t\t\t\t</td>
  608. \t\t\t\t\t\t\t{% endif %}
  609. \t\t\t\t\t\t</tr>
  610. \t\t\t\t\t{% endfor %}
  611. \t\t\t\t</tbody>
  612. \t\t\t</table>
  613. \t\t</div>
  614. \t</div>
  615. </div>
  616. ", "pages/_includes/details/_other-departures-table.html.twig", "/home/croisiland-pp/www/f0312421abff37637dabe6f4d57b6afd95d16263/templates/pages/_includes/details/_other-departures-table.html.twig");
  617. }
  618. }
  619. /* pages/_includes/details/_other-departures-table.html.twig */
  620. class __TwigTemplate_e34b8613f19eef1ba7a4f923c056e1ac___1 extends Template
  621. {
  622. private Source $source;
  623. /**
  624. * @var array<string, Template>
  625. */
  626. private array $macros = [];
  627. public function __construct(Environment $env)
  628. {
  629. parent::__construct($env);
  630. $this->source = $this->getSourceContext();
  631. $this->blocks = [
  632. 'link_content' => [$this, 'block_link_content'],
  633. ];
  634. }
  635. protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  636. {
  637. // line 65
  638. return "pages/_includes/partials/_cabin-modal-link.html.twig";
  639. }
  640. protected function doDisplay(array $context, array $blocks = []): iterable
  641. {
  642. $macros = $this->macros;
  643. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  644. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "pages/_includes/details/_other-departures-table.html.twig"));
  645. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  646. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "pages/_includes/details/_other-departures-table.html.twig"));
  647. $this->parent = $this->load("pages/_includes/partials/_cabin-modal-link.html.twig", 65);
  648. yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
  649. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  650. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  651. }
  652. // line 71
  653. /**
  654. * @return iterable<null|scalar|\Stringable>
  655. */
  656. public function block_link_content(array $context, array $blocks = []): iterable
  657. {
  658. $macros = $this->macros;
  659. $__internal_5a27a8ba21ca79b61932376b2fa922d2 = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  660. $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "link_content"));
  661. $__internal_6f47bbe9983af81f1e7450e9a3e3768f = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  662. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "link_content"));
  663. // line 72
  664. yield "\t\t\t\t\t\t\t\t\t\t<span class=\"subtype-code text-xs-bd\">";
  665. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["subtypeShortLabel"]) || array_key_exists("subtypeShortLabel", $context) ? $context["subtypeShortLabel"] : (function () { throw new RuntimeError('Variable "subtypeShortLabel" does not exist.', 72, $this->source); })()), "html", null, true);
  666. yield "</span>
  667. \t\t\t\t\t\t\t\t\t\t<span class=\"subtype-name text-md-sbd\">";
  668. // line 73
  669. yield (string) $this->env->getFunction('getLucidIcon')->getCallable()("info");
  670. yield " ";
  671. yield (string) $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env, $this->source, (isset($context["subType"]) || array_key_exists("subType", $context) ? $context["subType"] : (function () { throw new RuntimeError('Variable "subType" does not exist.', 73, $this->source); })()), "name", [], "any", false, false, false, 73), "html", null, true);
  672. yield "</span>
  673. \t\t\t\t\t\t\t\t\t";
  674. $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  675. $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  676. yield from [];
  677. }
  678. /**
  679. * @codeCoverageIgnore
  680. */
  681. public function getTemplateName(): string
  682. {
  683. return "pages/_includes/details/_other-departures-table.html.twig";
  684. }
  685. /**
  686. * @codeCoverageIgnore
  687. */
  688. public function isTraitable(): bool
  689. {
  690. return false;
  691. }
  692. /**
  693. * @codeCoverageIgnore
  694. */
  695. public function getDebugInfo(): array
  696. {
  697. return array ( 707 => 73, 702 => 72, 689 => 71, 666 => 65, 463 => 130, 447 => 128, 440 => 124, 436 => 123, 431 => 122, 428 => 121, 412 => 119, 406 => 116, 403 => 115, 397 => 112, 393 => 111, 388 => 109, 384 => 108, 380 => 107, 376 => 106, 372 => 105, 368 => 104, 364 => 103, 360 => 102, 356 => 101, 352 => 100, 348 => 99, 343 => 96, 340 => 95, 337 => 94, 335 => 93, 321 => 92, 318 => 91, 315 => 90, 312 => 89, 309 => 88, 306 => 87, 303 => 86, 285 => 85, 278 => 81, 274 => 80, 269 => 79, 267 => 78, 263 => 76, 261 => 69, 260 => 67, 259 => 66, 258 => 65, 254 => 64, 250 => 62, 243 => 61, 240 => 60, 237 => 59, 234 => 58, 231 => 57, 228 => 56, 223 => 55, 220 => 54, 217 => 53, 214 => 52, 211 => 51, 208 => 50, 205 => 49, 202 => 48, 199 => 47, 196 => 46, 179 => 45, 173 => 41, 157 => 39, 151 => 37, 149 => 36, 146 => 35, 141 => 33, 137 => 32, 132 => 31, 130 => 30, 120 => 28, 117 => 27, 114 => 26, 97 => 25, 91 => 22, 87 => 21, 80 => 16, 72 => 14, 68 => 13, 58 => 5, 56 => 4, 54 => 3, 51 => 2, 49 => 1,);
  698. }
  699. public function getSourceContext(): Source
  700. {
  701. return new Source("{% import \x27_snippets/components/macros/date.html.twig\x27 as dateMacros %}
  702. {% set companiesWithFullWeb = getCompaniesWithFullWeb() %}
  703. {% set companiesWithFullWebIds = companiesWithFullWeb|map(c => c.id) %}
  704. <div class=\"other-departures-view other-departures-view--table is-active\" data-view-panel=\"table\">
  705. \t<div class=\"pricing-table-wrapper\">
  706. \t\t<div class=\"pricing-table-scroll\">
  707. \t\t\t<table class=\"pricing-table\">
  708. \t\t\t\t<colgroup>
  709. \t\t\t\t\t<col class=\"pricing-table-col-sticky\">
  710. \t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  711. \t\t\t\t\t{% for departureCruise in allDepartures %}
  712. \t\t\t\t\t\t<col class=\"pricing-table-col-date\">
  713. \t\t\t\t\t{% endfor %}
  714. \t\t\t\t\t<col class=\"pricing-table-col-arrow\">
  715. \t\t\t\t</colgroup>
  716. \t\t\t\t<thead>
  717. \t\t\t\t\t<tr>
  718. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-corner sticky-col\">
  719. \t\t\t\t\t\t\t<span class=\"text-md-sbd color-primary-color\">{{ \x27details.cabin_choice.pricing_table.double_occupancy_rates\x27|trans }}</span>
  720. \t\t\t\t\t\t\t<span class=\"text-xs-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.mandatory_service_fees\x27|trans }}</span>
  721. \t\t\t\t\t\t</th>
  722. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" aria-hidden=\"true\"></th>
  723. \t\t\t\t\t\t{% for departureCruise in allDepartures %}
  724. \t\t\t\t\t\t\t{% set isSelectedDeparture = departureCruise.departureDate and currentCruise.departureDate and departureCruise.departureDate|date(\x27Y-m-d\x27) == currentCruise.departureDate|date(\x27Y-m-d\x27) %}
  725. \t\t\t\t\t\t\t{% set departureMonth = departureCruise.departureDate ? departureCruise.departureDate|date(\x27n\x27) : 0 %}
  726. \t\t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-header{% if isSelectedDeparture %} is-selected{% endif %}\" data-departure-index=\"{{ loop.index0 }}\">
  727. \t\t\t\t\t\t\t\t<span class=\"date text-sm-md\">
  728. \t\t\t\t\t\t\t\t\t{% if departureCruise.departureDate %}
  729. \t\t\t\t\t\t\t\t\t\t{{ departureCruise.departureDate|date(\x27d\x27) }}
  730. \t\t\t\t\t\t\t\t\t\t{{ dateMacros.short_month_fr(departureMonth) }}
  731. \t\t\t\t\t\t\t\t\t\t{{ departureCruise.departureDate|date(\x27Y\x27) }}
  732. \t\t\t\t\t\t\t\t\t{% endif %}
  733. \t\t\t\t\t\t\t\t</span>
  734. \t\t\t\t\t\t\t\t{% if isSelectedDeparture %}
  735. \t\t\t\t\t\t\t\t\t<span class=\"selected-label text-2xs-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.selected_departure\x27|trans }}</span>
  736. \t\t\t\t\t\t\t\t{% endif %}
  737. \t\t\t\t\t\t\t</th>
  738. \t\t\t\t\t\t{% endfor %}
  739. \t\t\t\t\t\t<th scope=\"col\" class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" aria-hidden=\"true\"></th>
  740. \t\t\t\t\t</tr>
  741. \t\t\t\t</thead>
  742. \t\t\t\t<tbody>
  743. \t\t\t\t\t{% for subType in subTypes %}
  744. \t\t\t\t\t\t{% set subtypeShortLabel = subType.shortName|default(\x27\x27)|trim %}
  745. \t\t\t\t\t\t{% if subtypeShortLabel is empty %}
  746. \t\t\t\t\t\t\t{% set subtypeShortLabel = subType.name|default(\x27\x27)|trim %}
  747. \t\t\t\t\t\t{% endif %}
  748. \t\t\t\t\t\t{% if subtypeShortLabel is empty %}
  749. \t\t\t\t\t\t\t{% set subtypeShortLabel = \x27%02d\x27|format(loop.index0) %}
  750. \t\t\t\t\t\t{% endif %}
  751. \t\t\t\t\t\t{% set cabinTypeId = subtypeCabinTypeMap[subType.id ~ \x27\x27]|default(subType.cabinType.id|default(\x27\x27)) %}
  752. \t\t\t\t\t\t{% set tableModalMinPrice = null %}
  753. \t\t\t\t\t\t{% for departureCruise in allDepartures %}
  754. \t\t\t\t\t\t\t{% set bestPriceObj = getBestPriceForCruiseCabinSubType(departureCruise, subType) %}
  755. \t\t\t\t\t\t\t{% set priceValue = bestPriceObj ? bestPriceObj.baseCostDouble|default(0)|round(0, \x27ceil\x27) : 0 %}
  756. \t\t\t\t\t\t\t{% if priceValue > 0 and (tableModalMinPrice is null or priceValue < tableModalMinPrice) %}
  757. \t\t\t\t\t\t\t\t{% set tableModalMinPrice = priceValue %}
  758. \t\t\t\t\t\t\t{% endif %}
  759. \t\t\t\t\t\t{% endfor %}
  760. \t\t\t\t\t\t<tr>
  761. \t\t\t\t\t\t\t<th scope=\"row\" class=\"pricing-table-row-label sticky-col\" data-subtype-id=\"{{ subType.id }}\">
  762. \t\t\t\t\t\t\t\t{% embed \x27pages/_includes/partials/_cabin-modal-link.html.twig\x27 with {
  763. \t\t\t\t\t\t\t\t\tcabinTypeId: cabinTypeId,
  764. \t\t\t\t\t\t\t\t\tsubTypeId: subType.id,
  765. \t\t\t\t\t\t\t\t\tlinkClass: \x27pricing-table-row-label-link\x27,
  766. \t\t\t\t\t\t\t\t\tmodalMinPrice: tableModalMinPrice
  767. \t\t\t\t\t\t\t\t} %}
  768. \t\t\t\t\t\t\t\t\t{% block link_content %}
  769. \t\t\t\t\t\t\t\t\t\t<span class=\"subtype-code text-xs-bd\">{{ subtypeShortLabel }}</span>
  770. \t\t\t\t\t\t\t\t\t\t<span class=\"subtype-name text-md-sbd\">{{ getLucidIcon(\x27info\x27) }} {{ subType.name }}</span>
  771. \t\t\t\t\t\t\t\t\t{% endblock %}
  772. \t\t\t\t\t\t\t\t{% endembed %}
  773. \t\t\t\t\t\t\t</th>
  774. \t\t\t\t\t\t\t{% if loop.first %}
  775. \t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--left sticky-arrow-col\" rowspan=\"{{ subTypes|length }}\">
  776. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow left-arrow br1\" aria-label=\"{{ \x27details.cabin_choice.pricing_table.scroll_left\x27|trans }}\">
  777. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">{{ getLucidIcon(\x27chevron-left\x27) }}</div>
  778. \t\t\t\t\t\t\t\t\t</button>
  779. \t\t\t\t\t\t\t\t</td>
  780. \t\t\t\t\t\t\t{% endif %}
  781. \t\t\t\t\t\t\t{% for departureCruise in allDepartures %}
  782. \t\t\t\t\t\t\t\t{% set isSelectedDeparture = departureCruise.departureDate and currentCruise.departureDate and departureCruise.departureDate|date(\x27Y-m-d\x27) == currentCruise.departureDate|date(\x27Y-m-d\x27) %}
  783. \t\t\t\t\t\t\t\t{% set cellBestPriceObj = getBestPriceForCruiseCabinSubType(departureCruise, subType) %}
  784. \t\t\t\t\t\t\t\t{% set rawBestPrice = cellBestPriceObj ? cellBestPriceObj.baseCostDouble|default(0)|round(0, \x27ceil\x27) : 0 %}
  785. \t\t\t\t\t\t\t\t{% set departureCompany = departureCruise.ship.company|default(null) %}
  786. \t\t\t\t\t\t\t\t{% set departureCompanyName = departureCompany.name|default(\x27\x27) %}
  787. \t\t\t\t\t\t\t\t{% set hasDirectOnline = departureCompany.id|default(null) in companiesWithFullWebIds %}
  788. \t\t\t\t\t\t\t\t<td class=\"pricing-table-cell{% if rawBestPrice <= 0 %} is-full{% endif %}{% if isSelectedDeparture %} is-selected{% endif %} {{ rawBestPrice == bestUpComingPrice ? \x27is-best-price\x27 : \x27\x27 }}\" data-departure-index=\"{{ loop.index0 }}\">
  789. \t\t\t\t\t\t\t\t\t{% if rawBestPrice > 0 %}
  790. \t\t\t\t\t\t\t\t\t\t{% set departureDateLabel = departureCruise.departureDate ? departureCruise.departureDate|date(\x27d/m/Y\x27) : \x27\x27 %}
  791. \t\t\t\t\t\t\t\t\t\t{% set dddUrl = \x27details/reservation?croisiere=\x27 ~ departureCruise.id ~ \x27&type=\x27 ~ cabinTypeId ~ \x27&subtype=\x27 ~ subType.id %}
  792. \t\t\t\t\t\t\t\t\t\t<button
  793. \t\t\t\t\t\t\t\t\t\t\ttype=\"button\"
  794. \t\t\t\t\t\t\t\t\t\t\tclass=\"pricing-table-cell-link\"
  795. \t\t\t\t\t\t\t\t\t\t\tdata-cruise-id=\"{{ departureCruise.id }}\"
  796. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-id=\"{{ subType.id }}\"
  797. \t\t\t\t\t\t\t\t\t\t\tdata-cabin-type-id=\"{{ cabinTypeId }}\"
  798. \t\t\t\t\t\t\t\t\t\t\tdata-price=\"{{ rawBestPrice }}\"
  799. \t\t\t\t\t\t\t\t\t\t\tdata-departure-date=\"{{ departureDateLabel }}\"
  800. \t\t\t\t\t\t\t\t\t\t\tdata-subtype-name=\"{{ subType.name }}\"
  801. \t\t\t\t\t\t\t\t\t\t\tdata-company-name=\"{{ departureCompanyName }}\"
  802. \t\t\t\t\t\t\t\t\t\t\tdata-direct-online=\"{{ hasDirectOnline ? \x271\x27 : \x270\x27 }}\"
  803. \t\t\t\t\t\t\t\t\t\t\tdata-ddd-url=\"{{ dddUrl }}\"
  804. \t\t\t\t\t\t\t\t\t\t\tdata-reservation-url=\"{{ dddUrl }}\"
  805. \t\t\t\t\t\t\t\t\t\t\taria-label=\"{{ \x27details.type_of_quote.open_for\x27|trans({\x27%cabin%\x27: subType.name, \x27%date%\x27: departureDateLabel}) }}\"
  806. \t\t\t\t\t\t\t\t\t\t>
  807. \t\t\t\t\t\t\t\t\t\t\t<span class=\"from text-sm-rg color-grey-text\">{{ \x27details.cabin_choice.pricing_table.from_label\x27|trans }}</span>
  808. \t\t\t\t\t\t\t\t\t\t\t<span class=\"value text-lg-sebd color-price-tags-primary\">{{ rawBestPrice|number_format(0, \x27,\x27, \x27 \x27) }} €</span>
  809. \t\t\t\t\t\t\t\t\t\t</button>
  810. \t\t\t\t\t\t\t\t\t{% else %}
  811. \t\t\t\t\t\t\t\t\t\t<div class=\"pricing-table-cell-link pricing-table-cell-link--static\">
  812. \t\t\t\t\t\t\t\t\t\t\t<span class=\"full text-md-bd color-grey\">{{ \x27details.cabin_choice.pricing_table.full\x27|trans }}</span>
  813. \t\t\t\t\t\t\t\t\t\t</div>
  814. \t\t\t\t\t\t\t\t\t{% endif %}
  815. \t\t\t\t\t\t\t\t</td>
  816. \t\t\t\t\t\t\t{% endfor %}
  817. \t\t\t\t\t\t\t{% if loop.first %}
  818. \t\t\t\t\t\t\t\t<td class=\"pricing-table-arrow-col pricing-table-arrow-col--right sticky-arrow-col-right\" rowspan=\"{{ subTypes|length }}\">
  819. \t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"arrow right-arrow br1\" aria-label=\"{{ \x27details.cabin_choice.pricing_table.scroll_right\x27|trans }}\">
  820. \t\t\t\t\t\t\t\t\t\t<div class=\"icon\">{{ getLucidIcon(\x27chevron-right\x27) }}</div>
  821. \t\t\t\t\t\t\t\t\t</button>
  822. \t\t\t\t\t\t\t\t</td>
  823. \t\t\t\t\t\t\t{% endif %}
  824. \t\t\t\t\t\t</tr>
  825. \t\t\t\t\t{% endfor %}
  826. \t\t\t\t</tbody>
  827. \t\t\t</table>
  828. \t\t</div>
  829. \t</div>
  830. </div>
  831. ", "pages/_includes/details/_other-departures-table.html.twig", "/home/croisiland-pp/www/f0312421abff37637dabe6f4d57b6afd95d16263/templates/pages/_includes/details/_other-departures-table.html.twig");
  832. }
  833. }