var/cache/dev/twig/ea/ead50fe0274e29384fa0b0bee972161f5550a2fe439f0554ffdcf7ea6c883c78.php line 42

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\Source;
  13. use Twig\Template;
  14. /* front/command/basket.html.twig */
  15. class __TwigTemplate_cb2116a5dc245b04e2ae0d9b28f576dab564f5b36c997d13b998b80447a2ebf8 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->blocks = [
  24.             'meta' => [$this'block_meta'],
  25.             'style' => [$this'block_style'],
  26.             'body' => [$this'block_body'],
  27.             'javascript' => [$this'block_javascript'],
  28.         ];
  29.     }
  30.     protected function doGetParent(array $context)
  31.     {
  32.         // line 1
  33.         return "base_front.html.twig";
  34.     }
  35.     protected function doDisplay(array $context, array $blocks = [])
  36.     {
  37.         $macros $this->macros;
  38.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  39.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""front/command/basket.html.twig"));
  40.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  41.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""front/command/basket.html.twig"));
  42.         $this->parent $this->loadTemplate("base_front.html.twig""front/command/basket.html.twig"1);
  43.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  44.         
  45.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  46.         
  47.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  48.     }
  49.     // line 3
  50.     public function block_meta($context, array $blocks = [])
  51.     {
  52.         $macros $this->macros;
  53.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta"));
  55.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""meta"));
  57.         // line 4
  58.         yield "\t<title>Mon panier</title>
  59. \t<meta name=\"description\" content=\"";
  60.         // line 5
  61.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'5$this->source); })())), "html"nulltrue);
  62.         yield " produits pour le moment\">
  63. ";
  64.         
  65.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  66.         
  67.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  68.         return; yield '';
  69.     }
  70.     // line 8
  71.     public function block_style($context, array $blocks = [])
  72.     {
  73.         $macros $this->macros;
  74.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  75.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""style"));
  76.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  77.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""style"));
  78.         // line 9
  79.         yield "\t<style>
  80. \t\t.indicationSupp:hover {
  81. \t\t\t
  82. \t\t}
  83. \t\t.inputQtyOpt {
  84. \t\t\twidth: 63px;
  85. \t\t\theight: 39px;
  86. \t\t\tpadding: 0 5px;
  87. \t\t\ttext-align: center;
  88. \t\t\tbackground-color: transparent;
  89. \t\t\tborder: 1px solid #efefef;
  90. \t\t}
  91. \t\t.imgOptModal {
  92. \t\t\theight:50px;
  93. \t\t\tborder-radius:2px
  94. \t\t}
  95. \t\t.modifProdSess {
  96. \t\t\tcolor: white !important;
  97. \t\t\tdisplay: flex;
  98. \t\t\talign-items: center;
  99. \t\t}
  100. \t\t\t\t#MyLoading {
  101. \t\t\tvisibility: hidden;
  102. \t\t}
  103. \t\t#MyLoading.MyShow {
  104. \t\t\tvisibility: visible;
  105. \t\t}
  106. \t\t@media screen and (max-width: 576px) {
  107. \t\t\t.modifProdSess {
  108. \t\t\t\tpadding: 8px 7px;
  109. \t\t\t\tfont-size: 7px;
  110. \t\t\t}
  111. \t\t\t.indicationSupp {
  112. \t\t\t\tpadding: 10px 15px;
  113. \t\t\t}
  114. \t\t}
  115. \t\t\t\t@media screen and (min-width: 800px) {\t
  116. \t\t\t.myWidth {
  117. \t\t\t\tmax-width: 800px;
  118. \t\t\t}
  119. \t\t}
  120. \t\t\t\t.labold {
  121. \t\t\tfont-weight: 500;
  122. \t\t\tfont-size: 18px;
  123. \t\t}
  124. \t\t.mt9 {
  125. \t\t\tmargin-top: 9px;
  126. \t\t}
  127. \t\t.myPadding {
  128. \t\t\tpadding: 8px 0px;
  129. \t\t}
  130. \t</style>
  131. ";
  132.         
  133.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  134.         
  135.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  136.         return; yield '';
  137.     }
  138.     // line 66
  139.     public function block_body($context, array $blocks = [])
  140.     {
  141.         $macros $this->macros;
  142.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  143.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  144.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  145.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""body"));
  146.         // line 67
  147.         yield "\t<!-- Modal -->
  148. \t";
  149.         // line 70
  150.         yield "
  151. \t<div class=\"modal fade\" id=\"modalOptionGP\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  152. \t\t<div class=\"modal-dialog myWidth\" role=\"document\">
  153. \t\t\t<div class=\"modal-content\">
  154. \t\t\t\t";
  155.         // line 75
  156.         yield "\t\t\t\t\t<div class=\"modal-header\">
  157. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"\">Modifier les groupes d'options</h5>
  158. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  159. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  160. \t\t\t\t\t\t</button>
  161. \t\t\t\t\t</div>
  162. \t\t\t\t\t<div class=\"modal-body\">
  163. \t\t\t\t\t\t<div class=\"row\" id=\"valeurgropOption\">
  164. \t\t\t\t\t\t\t";
  165.         // line 87
  166.         yield "\t\t\t\t\t\t\t\t";
  167.         // line 89
  168.         yield "\t\t\t\t\t\t\t
  169. \t\t\t\t\t\t\t";
  170.         // line 91
  171.         yield "\t\t\t\t\t\t\t    ";
  172.         // line 142
  173.         yield "\t\t\t\t\t\t\t";
  174.         // line 143
  175.         yield "
  176. \t\t\t\t\t\t</div>
  177. \t\t\t\t\t</div>
  178. \t\t\t\t\t";
  179.         // line 148
  180.         yield "\t\t\t\t\t<div class=\"modal-footer\">
  181. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  182. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\" id=\"\" onclick=\"validechoiModalGroupoption()\">Ok</button>
  183. \t\t\t\t\t</div>
  184. \t\t\t\t";
  185.         // line 153
  186.         yield "\t\t\t</div>
  187. \t\t</div>
  188. \t</div>
  189. \t";
  190.         // line 158
  191.         yield "
  192. \t";
  193.         // line 160
  194.         yield "
  195. \t<div class=\"modal fade\" id=\"modifAchatFairePart\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  196. \t";
  197.         // line 162
  198.         $context["idSessOpt"] = CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'162$this->source); })()), "session", [], "any"falsefalsefalse162), "get", ["idProduit"], "method"falsefalsefalse162);
  199.         // line 163
  200.         yield "\t
  201. \t\t<div class=\"modal-dialog\" role=\"document\" style=\"max-width: 700px\">
  202. \t\t\t<div class=\"modal-content\">
  203. \t\t\t\t<form action=\"";
  204.         // line 166
  205.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("update_option");
  206.         yield "\" method=\"POST\">
  207. \t\t\t\t\t<div class=\"modal-header\">
  208. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"exampleModalLongTitle\">Modifier les options</h5>
  209. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  210. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  211. \t\t\t\t\t\t</button>
  212. \t\t\t\t\t</div>
  213. \t\t\t\t\t<div class=\"modal-body\">
  214. \t\t\t\t\t\t";
  215.         // line 175
  216.         yield "\t\t\t\t\t\t<div class=\"containerOptionFP pl-3 row\">
  217. \t\t\t\t\t\t\t\t
  218. \t\t\t\t\t\t\t<div class=\"col-lg-5 col-12\">
  219. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"id_produit\">
  220. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"price_produit\">
  221. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"qte_produit\">
  222. \t\t\t\t\t\t\t\t<div id=\"tousOptions\"></div>
  223. \t\t\t\t\t\t\t</div>
  224. \t\t\t\t\t\t\t<div class=\"col-lg-7 col-12\">
  225. \t\t\t\t\t\t\t   <div class=\"m-info\">Si vous souhaitez ajouter une option différente de celle d'avant, cochez votre choix et modifiez-le si nécessaire</div>
  226. \t\t\t\t\t\t\t   <div class=\"forme_options\" style=\"display: none !important\">
  227. \t\t\t\t\t\t\t\t<form action=\"\">
  228. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"id_optionFP\">
  229. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"name_optionFP\">
  230. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"image_optionFP\">
  231. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_color\">
  232. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_color\">Couleur</label>
  233. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_color\" class=\"wide form-control\">
  234. \t\t\t\t\t\t\t\t\t\t</select>
  235. \t\t\t\t\t\t\t\t\t</div>
  236. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_format\">
  237. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_format\">Format</label>
  238. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_format\" class=\"wide form-control\">
  239. \t\t\t\t\t\t\t\t\t\t</select>
  240. \t\t\t\t\t\t\t\t\t</div>
  241. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_finition\">
  242. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_finition\">Finition</label>
  243. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_finition\" class=\"wide form-control\">\t
  244. \t\t\t\t\t\t\t\t\t\t</select>
  245. \t\t\t\t\t\t\t\t\t</div>
  246. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_papier\">
  247. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_papier\">Papier</label>
  248. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_papier\" class=\"wide form-control\">
  249. \t\t\t\t\t\t\t\t\t\t</select>
  250. \t\t\t\t\t\t\t\t\t</div>
  251. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_etiquette\">
  252. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_etiquette\">Etiquette</label>
  253. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_etiquette\" class=\"wide form-control\">
  254. \t\t\t\t\t\t\t\t\t\t</select>
  255. \t\t\t\t\t\t\t\t\t</div>
  256. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_ruban\">
  257. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_ruban\">Ruban</label>
  258. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_ruban\" class=\"wide form-control\">
  259. \t\t\t\t\t\t\t\t\t\t</select>
  260. \t\t\t\t\t\t\t\t\t</div>
  261. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_quantite\">
  262. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_quantite\">Quantite</label>
  263. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_quantite\" class=\"wide form-control\">
  264. \t\t\t\t\t\t\t\t\t\t</select>
  265. \t\t\t\t\t\t\t\t\t</div>
  266. \t\t\t\t\t\t\t\t\t<div class=\"validerModifFP mt-3\">
  267. \t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-secondary\" type=\"button\" onclick=\"Anulleroption()\">Annuler</button>
  268. \t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-primary\" type=\"button\" onclick=\"validechoioption()\">Valider</button>
  269. \t\t\t\t\t\t\t\t\t</div>
  270. \t\t\t\t\t\t\t\t</form>
  271. \t\t\t\t\t\t\t</div>
  272. \t\t\t\t\t\t\t</div>
  273. \t\t\t\t\t\t</div>
  274. \t\t\t\t\t\t";
  275.         // line 235
  276.         yield "\t\t\t\t\t<!-- form modifsession prod -->
  277. \t\t\t\t\t</div>
  278. \t\t\t\t\t<div class=\"modal-footer\">
  279. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  280. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\" onclick=\"validechoiModaloption()\">Modifier</button>
  281. \t\t\t\t\t</div>
  282. \t\t\t\t</form>
  283. \t\t\t</div>
  284. \t\t</div>
  285. \t</div>
  286. \t";
  287.         // line 246
  288.         yield "\t
  289. \t<div class=\"modal fade\" id=\"modifAchatProd\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  290. \t";
  291.         // line 249
  292.         $context["idSessOpt"] = CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'249$this->source); })()), "session", [], "any"falsefalsefalse249), "get", ["idProduit"], "method"falsefalsefalse249);
  293.         // line 250
  294.         yield "\t
  295. \t\t<div class=\"modal-dialog\" role=\"document\">
  296. \t\t\t<div class=\"modal-content\">
  297. \t\t\t\t<form action=\"";
  298.         // line 253
  299.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("update_option");
  300.         yield "\" method=\"POST\">
  301. \t\t\t\t\t<div class=\"modal-header\">
  302. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"exampleModalLongTitle\">Modifier les options</h5>
  303. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  304. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  305. \t\t\t\t\t\t</button>
  306. \t\t\t\t\t</div>
  307. \t\t\t\t\t<div class=\"modal-body\">
  308. \t\t\t\t\t<!-- form modifsession prod -->
  309. \t\t\t\t\t\t";
  310.         // line 270
  311.         yield "\t\t\t\t\t\t<span class=\"font-weight-bold\">Options disponibles :</span><span id=\"MyLoading\"> Chargement en cours...</span>
  312. \t\t\t\t\t\t<div class=\"containerOption pl-3 row\">
  313. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  314. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  315. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  316. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  317. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  318. \t\t\t\t\t\t\t\t\t\t</div>
  319. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  320. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  321. \t\t\t\t\t\t\t\t\t\t</div>
  322. \t\t\t\t\t\t\t\t\t</div>
  323. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  324. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo\">
  325. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo\">
  326. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  327. \t\t\t\t\t\t\t\t\t\t\t<span>-
  328. \t\t\t\t\t\t\t\t\t\t\tName option</span>
  329. \t\t\t\t\t\t\t\t\t\t\t</label>
  330. \t\t\t\t\t\t\t\t\t</div>
  331. \t\t\t\t\t\t\t\t</div>
  332. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  333. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  334. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  335. \t\t\t\t\t\t\t\t</div>
  336. \t\t\t\t\t\t\t</div>
  337. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  338. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  339. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  340. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  341. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  342. \t\t\t\t\t\t\t\t\t\t</div>
  343. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  344. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  345. \t\t\t\t\t\t\t\t\t\t</div>
  346. \t\t\t\t\t\t\t\t\t</div>
  347. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  348. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo1\">
  349. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo1\">
  350. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  351. \t\t\t\t\t\t\t\t\t\t\t-
  352. \t\t\t\t\t\t\t\t\t\t\tName option</label>
  353. \t\t\t\t\t\t\t\t\t</div>
  354. \t\t\t\t\t\t\t\t</div>
  355. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  356. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  357. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  358. \t\t\t\t\t\t\t\t</div>
  359. \t\t\t\t\t\t\t</div>
  360. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  361. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  362. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  363. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  364. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  365. \t\t\t\t\t\t\t\t\t\t</div>
  366. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  367. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  368. \t\t\t\t\t\t\t\t\t\t</div>
  369. \t\t\t\t\t\t\t\t\t</div>
  370. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  371. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo2\">
  372. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo2\">
  373. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  374. \t\t\t\t\t\t\t\t\t\t\t-
  375. \t\t\t\t\t\t\t\t\t\t\tName option</label>
  376. \t\t\t\t\t\t\t\t\t</div>
  377. \t\t\t\t\t\t\t\t</div>
  378. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  379. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  380. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  381. \t\t\t\t\t\t\t\t</div>
  382. \t\t\t\t\t\t\t</div>
  383. \t\t\t\t\t\t</div>
  384. \t\t\t\t\t\t";
  385.         // line 345
  386.         yield "\t\t\t\t\t<!-- form modifsession prod -->
  387. \t\t\t\t\t</div>
  388. \t\t\t\t\t<div class=\"modal-footer\">
  389. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  390. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\">Modifier</button>
  391. \t\t\t\t\t</div>
  392. \t\t\t\t";
  393.         // line 353
  394.         yield "\t\t\t\t</form>
  395. \t\t\t</div>
  396. \t\t</div>
  397. \t</div>
  398. \t
  399. \t<!-- Modal -->
  400. \t<div class=\"content mt-5 mb-5\" style=\"margin-bottom:100px!important\">
  401. \t\t<div class=\"container\">
  402. \t\t\t<div class=\"row mb-5\">
  403. \t\t\t\t<div class=\"tab-pane fade active show\" id=\"allguest\" role=\"tabpanel\" aria-labelledby=\"allguest-tab\" style=\"width:100%\">
  404. \t\t\t\t\t<div class=\"card-body row justify-content-between\">
  405. \t\t\t\t\t\t<h3>Mon panier (";
  406.         // line 365
  407.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'365$this->source); })())), "html"nulltrue);
  408.         yield "
  409. \t\t\t\t\t\t\tproduit
  410. \t\t\t\t\t\t\t";
  411.         // line 367
  412.         if ((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'367$this->source); })())) > 1)) {
  413.             yield "s
  414. \t\t\t\t\t\t\t";
  415.         }
  416.         // line 368
  417.         yield ")</h3>
  418. \t\t\t\t\t\t<a href=\"";
  419.         // line 369
  420.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("pdf_generate");
  421.         yield " \" class=\"btn btn-primary float-right\">Télécharger mon devis</a>
  422. \t\t\t\t\t</div>
  423. \t\t\t\t\t<div class=\"table-responsive\" style=\"width:100%\">
  424. \t\t\t\t\t\t<table class=\"table mt-4\">
  425. \t\t\t\t\t\t\t<thead>
  426. \t\t\t\t\t\t\t\t<tr>
  427. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-event\">Designation</th>
  428. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-estimate\">Aperçu</th>
  429. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-estimate\">Prix à l'unité</th>
  430. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-actual\">Quantité</th>
  431. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-paid\">Total produit</th>
  432. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-paid\"></th>
  433. \t\t\t\t\t\t\t\t</tr>
  434. \t\t\t\t\t\t\t</thead>
  435. \t\t\t\t\t\t\t<tbody>
  436. \t\t\t\t\t\t\t\t";
  437.         // line 384
  438.         if ((isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'384$this->source); })())) {
  439.             // line 385
  440.             yield "\t\t\t\t\t\t\t\t\t<tr>
  441. \t\t\t\t\t\t\t\t\t\t<td>";
  442.             // line 386
  443.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'386$this->source); })()), "name", [], "any"falsefalsefalse386), "html"nulltrue);
  444.             yield "</td>
  445. \t\t\t\t\t\t\t\t\t\t<td><img src=\"";
  446.             // line 387
  447.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(Twig\Extension\CoreExtension::constant("App\\Services\\File::IMAGE_PRODUCT_DIR")) . CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'387$this->source); })()), "image", [], "any"falsefalsefalse387)), "html"nulltrue);
  448.             yield "\" style=\"height:50px;border-radius:2px\"></td>
  449. \t\t\t\t\t\t\t\t\t\t<td>
  450. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">";
  451.             // line 389
  452.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber(CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'389$this->source); })()), "price", [], "any"falsefalsefalse389), 2"."), "html"nulltrue);
  453.             yield "€</span>
  454. \t\t\t\t\t\t\t\t\t\t</td>
  455. \t\t\t\t\t\t\t\t\t\t<td>1</td>
  456. \t\t\t\t\t\t\t\t\t\t<td>
  457. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">";
  458.             // line 393
  459.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber(CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'393$this->source); })()), "price", [], "any"falsefalsefalse393), 2"."), "html"nulltrue);
  460.             yield "€</span>
  461. \t\t\t\t\t\t\t\t\t\t</td>
  462. \t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  463. \t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  464.             // line 396
  465.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_my_basket_remove_pack", ["id" => CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'396$this->source); })()), "id", [], "any"falsefalsefalse396)]), "html"nulltrue);
  466.             yield "\" class=\"btn btn-rounded btn-default\">Supprimer du panier</a>
  467. \t\t\t\t\t\t\t\t\t\t</td>
  468. \t\t\t\t\t\t\t\t\t</tr>
  469. \t\t\t\t\t\t\t\t";
  470.         }
  471.         // line 400
  472.         yield "\t\t\t\t\t\t\t\t";
  473.         $context["TotalPriceProduct"] = 0;
  474.         // line 401
  475.         yield "\t\t\t\t\t\t\t\t";
  476.         $context["totOpt"] = 0;
  477.         // line 402
  478.         yield "\t\t\t\t\t\t\t\t";
  479.         $context["totGpOpt"] = 0;
  480.         // line 403
  481.         yield "\t\t\t\t\t\t\t\t";
  482.         $context['_parent'] = $context;
  483.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'403$this->source); })()));
  484.         foreach ($context['_seq'] as $context["_key"] => $context["product"]) {
  485.             // line 404
  486.             yield "\t\t\t\t\t\t\t\t\t";
  487.             $context["optionObjectByProd"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["filter_service"]) || array_key_exists("filter_service"$context) ? $context["filter_service"] : (function () { throw new RuntimeError('Variable "filter_service" does not exist.'404$this->source); })()), "getProductOptionByProduit", [CoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse404)], "method"falsefalsefalse404);
  488.             // line 405
  489.             yield "\t\t\t\t\t\t\t\t\t
  490. \t\t\t\t\t\t\t\t\t";
  491.             // line 407
  492.             yield "\t\t\t\t\t\t\t\t\t\t<tr class=\"border-bottom\" style=\"border-top: 1px solid #dee2e6 !important;\"> 
  493. \t\t\t\t\t\t\t\t\t\t<td>";
  494.             // line 408
  495.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse408), "name", [], "any"falsefalsefalse408), "html"nulltrue);
  496.             yield "
  497. \t\t\t\t\t\t\t\t\t\t\t";
  498.             // line 409
  499.             $context["isClothing"] = null;
  500.             // line 410
  501.             yield "\t\t\t\t\t\t\t\t\t\t\t";
  502.             $context['_parent'] = $context;
  503.             $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse410), "subCategories", [], "any"falsefalsefalse410));
  504.             foreach ($context['_seq'] as $context["_key"] => $context["subcategory"]) {
  505.                 // line 411
  506.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  507.                 if (CoreExtension::getAttribute($this->env$this->source$context["subcategory"], "isClothing", [], "any"falsefalsefalse411)) {
  508.                     // line 412
  509.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  510.                     $context["isClothing"] = true;
  511.                     // line 413
  512.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  513.                 }
  514.                 // line 414
  515.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  516.             }
  517.             $_parent $context['_parent'];
  518.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['subcategory'], $context['_parent'], $context['loop']);
  519.             $context array_intersect_key($context$_parent) + $_parent;
  520.             // line 415
  521.             yield "\t\t\t\t\t\t\t\t\t\t\t";
  522.             if ((isset($context["isClothing"]) || array_key_exists("isClothing"$context) ? $context["isClothing"] : (function () { throw new RuntimeError('Variable "isClothing" does not exist.'415$this->source); })())) {
  523.                 // line 416
  524.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Taille :
  525. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  526.                 // line 417
  527.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["product"], "size", [], "any"falsefalsefalse417), "html"nulltrue);
  528.                 yield "</strong>
  529. \t\t\t\t\t\t\t\t\t\t\t";
  530.             }
  531.             // line 419
  532.             yield "
  533. \t\t\t\t\t\t\t\t\t\t\t";
  534.             // line 420
  535.             $context["isColor"] = null;
  536.             // line 421
  537.             yield "\t\t\t\t\t\t\t\t\t\t\t";
  538.             $context['_parent'] = $context;
  539.             $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse421), "subCategories", [], "any"falsefalsefalse421));
  540.             foreach ($context['_seq'] as $context["_key"] => $context["subcategory"]) {
  541.                 // line 422
  542.                 yield "\t\t\t\t\t\t\t\t\t\t\t
  543. \t\t\t\t\t\t\t\t\t\t\t\t";
  544.                 // line 423
  545.                 if (CoreExtension::getAttribute($this->env$this->source$context["subcategory"], "isColor", [], "any"falsefalsefalse423)) {
  546.                     // line 424
  547.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  548.                     $context["isColor"] = true;
  549.                     // line 425
  550.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  551.                 }
  552.                 // line 426
  553.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  554.             }
  555.             $_parent $context['_parent'];
  556.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['subcategory'], $context['_parent'], $context['loop']);
  557.             $context array_intersect_key($context$_parent) + $_parent;
  558.             // line 427
  559.             yield "\t\t\t\t\t\t\t\t\t\t\t";
  560.             if ((isset($context["isColor"]) || array_key_exists("isColor"$context) ? $context["isColor"] : (function () { throw new RuntimeError('Variable "isColor" does not exist.'427$this->source); })())) {
  561.                 // line 428
  562.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Couleur :
  563. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  564.                 // line 429
  565.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["product"], "color", [], "any"falsefalsefalse429), "html"nulltrue);
  566.                 yield "</strong>
  567. \t\t\t\t\t\t\t\t\t\t\t";
  568.             }
  569.             // line 431
  570.             yield "\t\t\t\t\t\t\t\t\t\t</td>
  571. \t\t\t\t\t\t\t\t\t\t<td>
  572. \t\t\t\t\t\t\t\t\t\t\t";
  573.             // line 433
  574.             if ((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse433), "photos", [], "any"falsefalsefalse433), "first", [], "any"falsefalsefalse433) != false)) {
  575.                 // line 434
  576.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"";
  577.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(Twig\Extension\CoreExtension::constant("App\\Services\\File::IMAGE_PRODUCT_DIR")) . CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse434), "photos", [], "any"falsefalsefalse434), "first", [], "any"falsefalsefalse434), "url", [], "any"falsefalsefalse434)), "html"nulltrue);
  578.                 yield "\" style=\"height:50px;border-radius:2px\">
  579. \t\t\t\t\t\t\t\t\t\t\t";
  580.             } else {
  581.                 // line 436
  582.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"";
  583.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("images/vecteezy_vector-gear-logo-design-with-multi-colors-range_6172776.jpg"), "html"nulltrue);
  584.                 yield "\" style=\"height:50px;border-radius:2px\">
  585. \t\t\t\t\t\t\t\t\t\t\t";
  586.             }
  587.             // line 438
  588.             yield "\t\t\t\t\t\t\t\t\t\t</td>
  589. \t\t\t\t\t\t\t\t\t\t";
  590.             // line 439
  591.             if (CoreExtension::getAttribute($this->env$this->source$context["product"], "promo", [], "any"falsefalsefalse439)) {
  592.                 // line 440
  593.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  594.                 $context["ProductPrice"] = (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse440), "price", [], "any"falsefalsefalse440) - CoreExtension::getAttribute($this->env$this->source$context["product"], "promo", [], "any"falsefalsefalse440));
  595.                 // line 441
  596.                 yield "\t\t\t\t\t\t\t\t\t\t";
  597.             } else {
  598.                 // line 442
  599.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  600.                 $context["ProductPrice"] = CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse442), "price", [], "any"falsefalsefalse442);
  601.                 // line 443
  602.                 yield "\t\t\t\t\t\t\t\t\t\t";
  603.             }
  604.             // line 444
  605.             yield "\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  606. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">
  607. \t\t\t\t\t\t\t\t\t\t\t\t";
  608.             // line 446
  609.             if (CoreExtension::getAttribute($this->env$this->source$context["product"], "promo", [], "any"falsefalsefalse446)) {
  610.                 // line 447
  611.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t\t<small>
  612. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<del>";
  613.                 // line 448
  614.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse448), "price", [], "any"falsefalsefalse448), 2"."), "html"nulltrue);
  615.                 yield "€</del>
  616. \t\t\t\t\t\t\t\t\t\t\t\t\t</small>
  617. \t\t\t\t\t\t\t\t\t\t\t\t\t<strong>";
  618.                 // line 450
  619.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber((isset($context["ProductPrice"]) || array_key_exists("ProductPrice"$context) ? $context["ProductPrice"] : (function () { throw new RuntimeError('Variable "ProductPrice" does not exist.'450$this->source); })()), 2"."), "html"nulltrue);
  620.                 yield "€</strong>
  621. \t\t\t\t\t\t\t\t\t\t\t\t";
  622.             } else {
  623.                 // line 452
  624.                 yield "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  625.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber((isset($context["ProductPrice"]) || array_key_exists("ProductPrice"$context) ? $context["ProductPrice"] : (function () { throw new RuntimeError('Variable "ProductPrice" does not exist.'452$this->source); })()), 2"."), "html"nulltrue);
  626.                 yield "€
  627. \t\t\t\t\t\t\t\t\t\t\t\t";
  628.             }
  629.             // line 454
  630.             yield "\t\t\t\t\t\t\t\t\t\t\t</span><br>
  631. \t\t\t\t\t\t\t\t\t\t\t";
  632.             // line 455
  633.             if (CoreExtension::getAttribute($this->env$this->source$context["product"], "promo", [], "any"falsefalsefalse455)) {
  634.                 yield "(code promo -";
  635.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["product"], "promo", [], "any"falsefalsefalse455), "html"nulltrue);
  636.                 yield "€)
  637. \t\t\t\t\t\t\t\t\t\t\t";
  638.             }
  639.             // line 457
  640.             yield "\t\t\t\t\t\t\t\t\t\t</td>
  641. \t\t\t\t\t\t\t\t\t\t";
  642.             // line 459
  643.             yield "\t\t\t\t\t\t\t\t\t\t<td class=\"actual-total\">";
  644.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["product"], "quantity", [], "any"falsefalsefalse459), "html"nulltrue);
  645.             yield "</td>
  646. \t\t\t\t\t\t\t\t\t\t";
  647.             // line 460
  648.             $context["TotalWithQuantity"] = (CoreExtension::getAttribute($this->env$this->source$context["product"], "quantity", [], "any"falsefalsefalse460) * (isset($context["ProductPrice"]) || array_key_exists("ProductPrice"$context) ? $context["ProductPrice"] : (function () { throw new RuntimeError('Variable "ProductPrice" does not exist.'460$this->source); })()));
  649.             // line 461
  650.             yield "\t\t\t\t\t\t\t\t\t\t";
  651.             $context["TotalPriceProduct"] = ((isset($context["TotalPriceProduct"]) || array_key_exists("TotalPriceProduct"$context) ? $context["TotalPriceProduct"] : (function () { throw new RuntimeError('Variable "TotalPriceProduct" does not exist.'461$this->source); })()) + (isset($context["TotalWithQuantity"]) || array_key_exists("TotalWithQuantity"$context) ? $context["TotalWithQuantity"] : (function () { throw new RuntimeError('Variable "TotalWithQuantity" does not exist.'461$this->source); })()));
  652.             // line 462
  653.             yield "\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  654. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">";
  655.             // line 463
  656.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber((isset($context["TotalWithQuantity"]) || array_key_exists("TotalWithQuantity"$context) ? $context["TotalWithQuantity"] : (function () { throw new RuntimeError('Variable "TotalWithQuantity" does not exist.'463$this->source); })()), 2"."), "html"nulltrue);
  657.             yield "€</span>
  658. \t\t\t\t\t\t\t\t\t\t</td>
  659. \t\t\t\t\t\t\t\t\t\t<td class=\"paid-total d-flex justify-content-around\" style=\"column-gap: 5px;\">
  660. \t\t\t\t\t\t\t\t\t\t\t<a href=\"";
  661.             // line 466
  662.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_my_basket_remove_product", ["id" => CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse466), "id", [], "any"falsefalsefalse466)]), "html"nulltrue);
  663.             yield "\" class=\"btn btn-rounded btn-danger indicationSupp\" title=\"Supprimer du panier\" style=\"font-size: 17px;display: flex;align-items: center;\"><i class=\"fa fa-trash\" aria-hidden=\"true\"></i></a>
  664. \t\t\t\t\t\t\t\t\t\t\t";
  665.             // line 468
  666.             yield "\t\t\t\t\t\t\t\t\t\t\t";
  667.             // line 469
  668.             yield "\t\t\t\t\t\t\t\t\t\t\t<!-- Button trigger modal -->
  669. \t\t\t\t\t\t\t\t\t\t";
  670.             // line 470
  671.             $context['_parent'] = $context;
  672.             $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse470), "subCategories", [], "any"falsefalsefalse470));
  673.             foreach ($context['_seq'] as $context["_key"] => $context["subcategory"]) {
  674.                 // line 471
  675.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  676.                 if ((CoreExtension::getAttribute($this->env$this->source$context["subcategory"], "subCategorySlug", [], "any"falsefalsefalse471) != "faire-part")) {
  677.                     // line 472
  678.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t<a onclick=\"getGroupOption(";
  679.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse472), "id", [], "any"falsefalsefalse472), "html"nulltrue);
  680.                     yield ")\" data-id=\"";
  681.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse472), "id", [], "any"falsefalsefalse472), "html"nulltrue);
  682.                     yield "\" class=\"btn btn-rounded btn-default modifProdSess\" data-toggle=\"modal\" data-target=\"#modalOptionGP\">
  683. \t\t\t\t\t\t\t\t\t\t\t\t\tAjouter des options
  684. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  685. \t\t\t\t\t\t\t\t\t\t\t";
  686.                 } else {
  687.                     // line 476
  688.                     yield "\t\t\t\t\t\t\t\t\t\t\t\t<a onclick=\"ajouterOptions('";
  689.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse476), "id", [], "any"falsefalsefalse476), "html"nulltrue);
  690.                     yield "','";
  691.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["product"], "quantity", [], "any"falsefalsefalse476), "html"nulltrue);
  692.                     yield "','";
  693.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["ProductPrice"]) || array_key_exists("ProductPrice"$context) ? $context["ProductPrice"] : (function () { throw new RuntimeError('Variable "ProductPrice" does not exist.'476$this->source); })()), "html"nulltrue);
  694.                     yield "','";
  695.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'476$this->source); })()), "request", [], "any"falsefalsefalse476), "getSchemeAndHttpHost", [], "method"falsefalsefalse476), "html"nulltrue);
  696.                     yield "');\" id=\"ajoutOption\" class=\"btn btn-rounded btn-default modifProdSess\" data-toggle=\"modal\">
  697. \t\t\t\t\t\t\t\t\t\t\t\t\tAjouter des options
  698. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  699. \t\t\t\t\t\t\t\t\t\t\t\t";
  700.                     // line 480
  701.                     yield "\t\t\t\t\t\t\t\t\t\t\t";
  702.                 }
  703.                 // line 481
  704.                 yield "\t\t\t\t\t\t\t\t\t\t";
  705.             }
  706.             $_parent $context['_parent'];
  707.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['subcategory'], $context['_parent'], $context['loop']);
  708.             $context array_intersect_key($context$_parent) + $_parent;
  709.             // line 482
  710.             yield "
  711. \t\t\t\t\t\t\t\t\t\t</td>
  712. \t\t\t\t\t\t\t\t\t</tr>
  713. \t\t\t\t\t\t\t\t\t";
  714.             // line 486
  715.             yield "
  716. \t\t\t\t\t\t\t\t\t";
  717.             // line 488
  718.             yield "
  719. \t\t\t\t\t\t\t\t\t";
  720.             // line 489
  721.             $context['_parent'] = $context;
  722.             $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["product"], "product", [], "any"falsefalsefalse489), "subCategories", [], "any"falsefalsefalse489), "snapshot", [], "any"falsefalsefalse489));
  723.             foreach ($context['_seq'] as $context["_key"] => $context["subCategories"]) {
  724.                 // line 490
  725.                 yield "\t\t\t\t\t\t\t\t\t\t";
  726.                 if ((CoreExtension::getAttribute($this->env$this->source$context["subCategories"], "subCategorySlug", [], "any"falsefalsefalse490) != "faire-part")) {
  727.                     // line 491
  728.                     yield "\t\t\t\t\t\t\t\t\t\t
  729. \t\t\t\t\t\t\t\t\t\t\t";
  730.                     // line 492
  731.                     $context['_parent'] = $context;
  732.                     $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->source$context["product"], "options", [], "any"falsefalsefalse492));
  733.                     foreach ($context['_seq'] as $context["key"] => $context["option"]) {
  734.                         // line 493
  735.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  736.                         $context["optionObject"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["filter_service"]) || array_key_exists("filter_service"$context) ? $context["filter_service"] : (function () { throw new RuntimeError('Variable "filter_service" does not exist.'493$this->source); })()), "getProductOption", [$context["key"]], "method"falsefalsefalse493);
  737.                         // line 494
  738.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  739.                         // line 495
  740.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"\" style=\"background:#fff\">
  741. \t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-4\">
  742. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>Option :</strong>
  743. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  744.                         // line 498
  745.                         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["optionObject"]) || array_key_exists("optionObject"$context) ? $context["optionObject"] : (function () { throw new RuntimeError('Variable "optionObject" does not exist.'498$this->source); })()), "name", [], "any"falsefalsefalse498), "html"nulltrue);
  746.                         yield "</td>
  747. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  748.                         // line 503
  749.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  750. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  751.                         // line 507
  752.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  753. \t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  754. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  755.                         // line 510
  756.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\"></span>
  757. \t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  758. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  759.                         // line 513
  760.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t<td></td>
  761. \t\t\t\t\t\t\t\t\t\t\t\t\t";
  762.                         // line 525
  763.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  764.                         // line 526
  765.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\"></td>
  766. \t\t\t\t\t\t\t\t\t\t\t\t</tr>
  767. \t\t\t\t\t\t\t\t\t\t\t\t
  768. \t\t\t\t\t\t\t\t\t\t\t\t";
  769.                         // line 529
  770.                         $context['_parent'] = $context;
  771.                         $context['_seq'] = CoreExtension::ensureTraversable($context["option"]);
  772.                         foreach ($context['_seq'] as $context["_key"] => $context["valOption"]) {
  773.                             // line 530
  774.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  775. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-5\">";
  776.                             // line 531
  777.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["valOption"], "valeur", [], "array"falsefalsefalse531), "html"nulltrue);
  778.                             yield "</td>
  779. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td></td>
  780. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\"><span class=\"total-amount\">";
  781.                             // line 533
  782.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["valOption"], "prix", [], "array"falsefalsefalse533), "html"nulltrue);
  783.                             yield " €</span></td>
  784. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>";
  785.                             // line 534
  786.                             ((CoreExtension::getAttribute($this->env$this->source$context["valOption"], "qte", [], "array"falsefalsefalse534)) ? (yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["valOption"], "qte", [], "array"falsefalsefalse534), "html"nulltrue)) : (yield 1));
  787.                             yield "</td>
  788. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  789.                             // line 538
  790.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  791.                             $context["totval"] = (CoreExtension::getAttribute($this->env$this->source$context["valOption"], "prix", [], "array"falsefalsefalse538) * ((CoreExtension::getAttribute($this->env$this->source$context["valOption"], "qte", [], "array"falsefalsefalse538)) ? (CoreExtension::getAttribute($this->env$this->source$context["valOption"], "qte", [], "array"falsefalsefalse538)) : (1)));
  792.                             // line 539
  793.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\"><span class=\"total-amount\">";
  794.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape((isset($context["totval"]) || array_key_exists("totval"$context) ? $context["totval"] : (function () { throw new RuntimeError('Variable "totval" does not exist.'539$this->source); })()), "html"nulltrue);
  795.                             yield " €</spna></td>
  796. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  797.                             // line 540
  798.                             $context["totGpOpt"] = ((isset($context["totGpOpt"]) || array_key_exists("totGpOpt"$context) ? $context["totGpOpt"] : (function () { throw new RuntimeError('Variable "totGpOpt" does not exist.'540$this->source); })()) + (isset($context["totval"]) || array_key_exists("totval"$context) ? $context["totval"] : (function () { throw new RuntimeError('Variable "totval" does not exist.'540$this->source); })()));
  799.                             // line 541
  800.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  801. \t\t\t\t\t\t\t\t\t\t\t\t";
  802.                         }
  803.                         $_parent $context['_parent'];
  804.                         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['valOption'], $context['_parent'], $context['loop']);
  805.                         $context array_intersect_key($context$_parent) + $_parent;
  806.                         // line 543
  807.                         yield "\t\t\t\t\t\t\t\t\t\t\t";
  808.                     }
  809.                     $_parent $context['_parent'];
  810.                     unset($context['_seq'], $context['_iterated'], $context['key'], $context['option'], $context['_parent'], $context['loop']);
  811.                     $context array_intersect_key($context$_parent) + $_parent;
  812.                     // line 544
  813.                     yield "\t\t\t\t\t\t\t\t\t\t";
  814.                 } else {
  815.                     // line 545
  816.                     yield "\t\t\t\t\t\t\t\t\t\t\t";
  817.                     if (CoreExtension::getAttribute($this->env$this->source$context["product"], "options_farep", [], "any"truetruefalse545)) {
  818.                         // line 546
  819.                         yield "\t\t\t\t\t\t\t\t\t\t\t\t";
  820.                         $context['_parent'] = $context;
  821.                         $context['_seq'] = CoreExtension::ensureTraversable(CoreExtension::getAttribute($this->env$this->source$context["product"], "options_farep", [], "any"falsefalsefalse546));
  822.                         foreach ($context['_seq'] as $context["_key"] => $context["option"]) {
  823.                             // line 547
  824.                             yield "\t\t\t\t\t\t\t\t\t\t\t
  825. \t\t\t\t\t\t\t\t\t\t\t\t\t<tr style=\"background:#fff\">
  826. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-4\">
  827. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>Option :</strong>
  828. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  829.                             // line 551
  830.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["option"], "nomoption", [], "any"falsefalsefalse551), "html"nulltrue);
  831.                             yield "
  832. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  833. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  834.                             // line 561
  835.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</strong></td>
  836. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  837. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  838. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  839.                             // line 564
  840.                             if (CoreExtension::getAttribute($this->env$this->source$context["option"], "imageoption", [], "any"falsefalsefalse564)) {
  841.                                 // line 565
  842.                                 yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"";
  843.                                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl(Twig\Extension\CoreExtension::constant("App\\Services\\File::IMAGE_PRODUCT_DIR")) . CoreExtension::getAttribute($this->env$this->source$context["option"], "imageoption", [], "any"falsefalsefalse565)), "html"nulltrue);
  844.                                 yield "\" style=\"height:50px;border-radius:2px\">
  845. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  846.                             }
  847.                             // line 567
  848.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  849. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  850. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">";
  851.                             // line 569
  852.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber(CoreExtension::getAttribute($this->env$this->source$context["option"], "price", [], "any"falsefalsefalse569), 2"."), "html"nulltrue);
  853.                             yield "€</span>
  854. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</td> 
  855. \t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  856.                             // line 572
  857.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  858.                             // line 573
  859.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  860. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"actual-total\">";
  861.                             // line 574
  862.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["option"], "quantite", [], "any"falsefalsefalse574), "html"nulltrue);
  863.                             yield "</td>
  864. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  865.                             // line 575
  866.                             $context["totqtyOpt"] = (CoreExtension::getAttribute($this->env$this->source$context["option"], "price", [], "any"falsefalsefalse575) * CoreExtension::getAttribute($this->env$this->source$context["option"], "quantite", [], "any"falsefalsefalse575));
  867.                             // line 576
  868.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  869. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">";
  870.                             // line 577
  871.                             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber((isset($context["totqtyOpt"]) || array_key_exists("totqtyOpt"$context) ? $context["totqtyOpt"] : (function () { throw new RuntimeError('Variable "totqtyOpt" does not exist.'577$this->source); })()), 2"."), "html"nulltrue);
  872.                             yield "€</span>
  873. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  874. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  875.                             // line 579
  876.                             $context["totOpt"] = ((isset($context["totOpt"]) || array_key_exists("totOpt"$context) ? $context["totOpt"] : (function () { throw new RuntimeError('Variable "totOpt" does not exist.'579$this->source); })()) + (isset($context["totqtyOpt"]) || array_key_exists("totqtyOpt"$context) ? $context["totqtyOpt"] : (function () { throw new RuntimeError('Variable "totqtyOpt" does not exist.'579$this->source); })()));
  877.                             // line 580
  878.                             yield "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  879. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\"></td>
  880. \t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  881. \t\t\t\t\t\t\t\t\t\t\t\t";
  882.                         }
  883.                         $_parent $context['_parent'];
  884.                         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['option'], $context['_parent'], $context['loop']);
  885.                         $context array_intersect_key($context$_parent) + $_parent;
  886.                         // line 584
  887.                         yield "\t\t\t\t\t\t\t\t\t\t\t";
  888.                     }
  889.                     // line 585
  890.                     yield "\t\t\t\t\t\t\t\t\t\t\t
  891. \t\t\t\t\t\t\t\t\t\t";
  892.                 }
  893.                 // line 586
  894.                 yield "\t 
  895. \t\t\t\t\t\t\t\t\t";
  896.             }
  897.             $_parent $context['_parent'];
  898.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['subCategories'], $context['_parent'], $context['loop']);
  899.             $context array_intersect_key($context$_parent) + $_parent;
  900.             // line 588
  901.             yield "\t\t\t\t\t\t\t\t\t";
  902.             // line 589
  903.             yield "\t\t\t\t\t\t\t\t";
  904.         }
  905.         $_parent $context['_parent'];
  906.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['product'], $context['_parent'], $context['loop']);
  907.         $context array_intersect_key($context$_parent) + $_parent;
  908.         // line 590
  909.         yield "
  910. \t\t\t\t\t\t\t\t";
  911.         // line 591
  912.         if (((isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'591$this->source); })()) ||  !Twig\Extension\CoreExtension::testEmpty((isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'591$this->source); })())))) {
  913.             // line 592
  914.             yield "\t\t\t\t\t\t\t\t\t<tr>
  915. \t\t\t\t\t\t\t\t\t\t<td>TOTAL :</td>
  916. \t\t\t\t\t\t\t\t\t\t<td></td>
  917. \t\t\t\t\t\t\t\t\t\t<td></td>
  918. \t\t\t\t\t\t\t\t\t\t<td></td>
  919. \t\t\t\t\t\t\t\t\t\t";
  920.             // line 597
  921.             if ((isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'597$this->source); })())) {
  922.                 // line 598
  923.                 yield "\t\t\t\t\t\t\t\t\t\t\t";
  924.                 $context["TotalPriceProduct"] = ((isset($context["TotalPriceProduct"]) || array_key_exists("TotalPriceProduct"$context) ? $context["TotalPriceProduct"] : (function () { throw new RuntimeError('Variable "TotalPriceProduct" does not exist.'598$this->source); })()) + CoreExtension::getAttribute($this->env$this->source, (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'598$this->source); })()), "price", [], "any"falsefalsefalse598));
  925.                 // line 599
  926.                 yield "\t\t\t\t\t\t\t\t\t\t";
  927.             }
  928.             // line 600
  929.             yield "\t\t\t\t\t\t\t\t\t\t";
  930.             $context["totOptions"] = ((isset($context["totOpt"]) || array_key_exists("totOpt"$context) ? $context["totOpt"] : (function () { throw new RuntimeError('Variable "totOpt" does not exist.'600$this->source); })()) + (isset($context["totGpOpt"]) || array_key_exists("totGpOpt"$context) ? $context["totGpOpt"] : (function () { throw new RuntimeError('Variable "totGpOpt" does not exist.'600$this->source); })()));
  931.             // line 601
  932.             yield "\t\t\t\t\t\t\t\t\t\t<td>";
  933.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatNumber(((isset($context["TotalPriceProduct"]) || array_key_exists("TotalPriceProduct"$context) ? $context["TotalPriceProduct"] : (function () { throw new RuntimeError('Variable "TotalPriceProduct" does not exist.'601$this->source); })()) + (isset($context["totOptions"]) || array_key_exists("totOptions"$context) ? $context["totOptions"] : (function () { throw new RuntimeError('Variable "totOptions" does not exist.'601$this->source); })())), 2"."), "html"nulltrue);
  934.             yield "€</td>
  935. \t\t\t\t\t\t\t\t\t</tr>
  936. \t\t\t\t\t\t\t\t";
  937.         }
  938.         // line 604
  939.         yield "\t\t\t\t\t\t\t\t";
  940.         if (( !(isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'604$this->source); })()) && Twig\Extension\CoreExtension::testEmpty((isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'604$this->source); })())))) {
  941.             // line 605
  942.             yield "\t\t\t\t\t\t\t\t\t<tr>
  943. \t\t\t\t\t\t\t\t\t\t<td>Aucun produit ajouté au panier</td>
  944. \t\t\t\t\t\t\t\t\t</tr>
  945. \t\t\t\t\t\t\t\t";
  946.         }
  947.         // line 609
  948.         yield "\t\t\t\t\t\t\t</tbody>
  949. \t\t\t\t\t\t</table>
  950. \t\t\t\t\t</div>
  951. \t\t\t\t\t<div class=\"card-footer\" style=\"height:70px\">
  952. \t\t\t\t\t\t";
  953.         // line 613
  954.         if (((Twig\Extension\CoreExtension::length($this->env->getCharset(), (isset($context["products"]) || array_key_exists("products"$context) ? $context["products"] : (function () { throw new RuntimeError('Variable "products" does not exist.'613$this->source); })())) > 0) ||  !(null === (isset($context["pack"]) || array_key_exists("pack"$context) ? $context["pack"] : (function () { throw new RuntimeError('Variable "pack" does not exist.'613$this->source); })())))) {
  955.             // line 614
  956.             yield "\t\t\t\t\t\t\t";
  957.             if (($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_ENTERPRISE") == false)) {
  958.                 // line 615
  959.                 yield "\t\t\t\t\t\t\t\t<div class=\"float-left\">
  960. \t\t\t\t\t\t\t\t\t";
  961.                 // line 616
  962.                 yield                 $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'616$this->source); })()), 'form_start', ["attr" => ["class" => "form-inline"]]);
  963.                 yield "
  964. \t\t\t\t\t\t\t\t\t<div class=\"form-group\">
  965. \t\t\t\t\t\t\t\t\t\t";
  966.                 // line 618
  967.                 yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'618$this->source); })()), "codePromo", [], "any"falsefalsefalse618), 'widget');
  968.                 yield "
  969. \t\t\t\t\t\t\t\t\t</div>
  970. \t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-default ml-3\">Valider</button>
  971. \t\t\t\t\t\t\t\t\t";
  972.                 // line 621
  973.                 yield                 $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->renderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'621$this->source); })()), 'form_end');
  974.                 yield "
  975. \t\t\t\t\t\t\t\t\t";
  976.                 // line 622
  977.                 if ((array_key_exists("isMessagePromo"$context) && (isset($context["isMessagePromo"]) || array_key_exists("isMessagePromo"$context) ? $context["isMessagePromo"] : (function () { throw new RuntimeError('Variable "isMessagePromo" does not exist.'622$this->source); })()))) {
  978.                     // line 623
  979.                     yield "\t\t\t\t\t\t\t\t\t\t<span style=\"color:green\">Code promo valide !</span>
  980. \t\t\t\t\t\t\t\t\t";
  981.                 }
  982.                 // line 625
  983.                 yield "\t\t\t\t\t\t\t\t</div>
  984. \t\t\t\t\t\t\t\t<div class=\"float-right\">
  985. \t\t\t\t\t\t\t\t\t<a href=\"";
  986.                 // line 627
  987.                 yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("front_command_livraison");
  988.                 yield "\" class=\"btn btn-primary\">Commander</a>
  989. \t\t\t\t\t\t\t\t</div>
  990. \t\t\t\t\t\t\t";
  991.             }
  992.             // line 630
  993.             yield "\t\t\t\t\t\t";
  994.         }
  995.         // line 631
  996.         yield "\t\t\t\t\t</div>
  997. \t\t\t\t</div>
  998. \t\t\t</div>
  999. \t\t</div>
  1000. \t</div>
  1001. ";
  1002.         
  1003.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1004.         
  1005.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1006.         return; yield '';
  1007.     }
  1008.     // line 638
  1009.     public function block_javascript($context, array $blocks = [])
  1010.     {
  1011.         $macros $this->macros;
  1012.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  1013.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  1014.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  1015.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  1016.         // line 639
  1017.         yield "\t<script>
  1018. \t\tfunction wcqib_refresh_quantity_increments() {
  1019. \t\t\tjQuery(\"div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)\").each(function (a, b) {
  1020. \t\t\t\tvar c = jQuery(b);
  1021. \t\t\t\tc.addClass(\"buttons_added\"),
  1022. \t\t\t\t\tc.children().first().before('<input type=\"button\" value=\"-\" class=\"minus\" />'),
  1023. \t\t\t\t\tc.children().last().after('<input type=\"button\" value=\"+\" class=\"plus\" />')
  1024. \t\t\t})
  1025. \t\t}
  1026. \t\tString.prototype.getDecimals || (String.prototype.getDecimals = function () {
  1027. \t\t\tvar a = this,
  1028. \t\t\t\tb = (\"\" + a).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?\$/);
  1029. \t\t\treturn b ? Math.max(0, (b[1] ? b[1].length : 0) - (b[2] ? + b[2] : 0)) : 0
  1030. \t\t}),
  1031. \t\t\tjQuery(document).ready(function () {
  1032. \t\t\t\twcqib_refresh_quantity_increments()
  1033. \t\t\t}),
  1034. \t\t\tjQuery(document).on(\"updated_wc_div\", function () {
  1035. \t\t\t\twcqib_refresh_quantity_increments()
  1036. \t\t\t}),
  1037. \t\t\tjQuery(document).on(\"click\", \".plus, .minus\", function () {
  1038. \t\t\t\tvar a = jQuery(this).closest(\".quantity\").find(\".qty\"),
  1039. \t\t\t\t\tb = parseFloat(a.val()),
  1040. \t\t\t\t\tc = parseFloat(a.attr(\"max\")),
  1041. \t\t\t\t\td = parseFloat(a.attr(\"min\")),
  1042. \t\t\t\t\te = a.attr(\"step\");
  1043. \t\t\t\tb && \"\" !== b && \"NaN\" !== b || (b = 0),
  1044. \t\t\t\t\t\"\" !== c && \"NaN\" !== c || (c = \"\"),
  1045. \t\t\t\t\t\"\" !== d && \"NaN\" !== d || (d = 0),
  1046. \t\t\t\t\t\"any\" !== e && \"\" !== e && void 0 !== e && \"NaN\" !== parseFloat(e) || (e = 1),
  1047. \t\t\t\t\tjQuery(this).is(\".plus\") ? c && b >= c ? a.val(c) : a.val((b + parseFloat(e)).toFixed(e.getDecimals())) : d && b <= d ? a.val(d) : b > 0 && a.val((b - parseFloat(e)).toFixed(e.getDecimals())),
  1048. \t\t\t\t\ta.trigger(\"change\")
  1049. \t\t\t});
  1050. \t</script>
  1051. \t<script>
  1052. \t\t\t\tconst loader = document.querySelector('#MyLoading');
  1053. \t\tfunction afficheLoading() {
  1054. \t\t\tloader.classList.add('MyShow');
  1055. \t\t}
  1056. \t\tfunction cacherLoading() {
  1057. \t\t\tloader.classList.remove('MyShow');
  1058. \t\t}
  1059. \t\t
  1060. \t\tconst containerOpt = document.querySelector('.containerOption');
  1061. \t\t
  1062. \t\t
  1063. \t\tfunction getOptionByIdProd(idProd) {
  1064. \t\t\tafficheLoading();
  1065. \t\t\t
  1066. \t\t\tconst data = {
  1067. \t\t\t\tidProd: idProd
  1068. \t\t\t};
  1069. \t\t\tlet datas = new FormData();
  1070. \t\t\tdatas.append(\"data\", JSON.stringify(data));
  1071. \t\t\tif (containerOpt.children) {
  1072. \t\t\t\tvar first = containerOpt.firstElementChild;
  1073. \t\t\t\twhile (first) {
  1074. \t\t\t\t\tfirst.remove();
  1075. \t\t\t\t\tfirst = containerOpt.firstElementChild;
  1076. \t\t\t\t}
  1077. \t\t\t}
  1078. \t\t\tfetch(`/get-option/\${idProd}`)
  1079. \t\t\t.then(response => response.json())
  1080. \t\t\t.then(data => {
  1081. \t\t\t\tcacherLoading();
  1082. \t\t\t\tconsole.log(data);
  1083. \t\t\t\tdata[0].map((item)=>{
  1084. \t\t\t\t\t//console.log(\"idOpt vao miditra\",item.id);
  1085. \t\t\t\t\tlet objQty = data[1].qty;
  1086. \t\t\t\t\tlet idProd = document.createElement('input');
  1087. \t\t\t\t\tidProd.type = \"hidden\";
  1088. \t\t\t\t\tidProd.value = data[2];
  1089. \t\t\t\t\tidProd.setAttribute('name','idProd');
  1090. \t\t\t\t\tlet oneOpt = document.createElement('div');
  1091. \t\t\t\t\toneOpt.classList.add('col-12');
  1092. \t\t\t\t\toneOpt.classList.add('row');
  1093. \t\t\t\t\tlet col8 = document.createElement('div');
  1094. \t\t\t\t\tcol8.classList.add('col-8');
  1095. \t\t\t\t\tlet row = document.createElement('div');
  1096. \t\t\t\t\trow.classList.add('row');
  1097. \t\t\t\t\tlet col4a = document.createElement('div');
  1098. \t\t\t\t\tcol4a.classList.add('col-4');
  1099. \t\t\t\t\tlet col4b = document.createElement('div');
  1100. \t\t\t\t\tcol4b.classList.add('col-4');
  1101. \t\t\t\t\tlet img1 = document.createElement('img');
  1102. \t\t\t\t\timg1.classList.add('imgOptModal');
  1103. \t\t\t\t\t// image
  1104. \t\t\t\t\tif (item.image1 == null){
  1105. \t\t\t\t\t\timg1.style.display = \"none\";
  1106. \t\t\t\t\t} else {
  1107. \t\t\t\t\t\timg1.src = `/upload/produits/\${item.image1}`;
  1108. \t\t\t\t\t}
  1109. \t\t\t\t\tlet img2 = document.createElement('img');
  1110. \t\t\t\t\timg2.classList.add('imgOptModal');
  1111. \t\t\t\t\tif (item.image2 == null){
  1112. \t\t\t\t\t\timg2.style.display = \"none\";
  1113. \t\t\t\t\t} else {
  1114. \t\t\t\t\t\timg2.src = `/upload/produits/\${item.image2}`;
  1115. \t\t\t\t\t}
  1116. \t\t\t\t\tlet customCheckBox = document.createElement('div');
  1117. \t\t\t\t\tcustomCheckBox.classList.add('custom-checkbox');
  1118. \t\t\t\t\tcustomCheckBox.style.position = \"relative\";
  1119. \t\t\t\t\tlet inputCheckBox = document.createElement('input');
  1120. \t\t\t\t\tinputCheckBox.type = \"checkbox\";
  1121. \t\t\t\t\tinputCheckBox.classList.add('custom-control-input');
  1122. \t\t\t\t\tinputCheckBox.classList.add('option-checkbox');
  1123. \t\t\t\t\tinputCheckBox.setAttribute('id',`idCheck\${item.id}`);
  1124. \t\t\t\t\tinputCheckBox.setAttribute('name',`options[\${item.id}]`);
  1125. \t\t\t\t\tinputCheckBox.setAttribute('value',`\${item.price}`);
  1126. \t\t\t\t\t// checked if already in session
  1127. \t\t\t\t\tfor (const idOpt in objQty) {
  1128. \t\t\t\t\t\tif(item.id == idOpt){
  1129. \t\t\t\t\t\t\tinputCheckBox.checked = true;
  1130. \t\t\t\t\t\t}
  1131. \t\t\t\t\t}
  1132. \t\t\t\t\tlet customControlLabel = document.createElement('label');
  1133. \t\t\t\t\tcustomControlLabel.classList.add('custom-control-label');
  1134. \t\t\t\t\tcustomControlLabel.setAttribute('for',`idCheck\${item.id}`);
  1135. \t\t\t\t\t
  1136. \t\t\t\t\tlet nameStrong = document.createElement('strong');
  1137. \t\t\t\t\tnameStrong.innerHTML = `\${item.price} €`;
  1138. \t\t\t\t\tnameStrong.style.marginLeft = \"31px\";
  1139. \t\t\t\t\tlet nameSpan = document.createElement('span');
  1140. \t\t\t\t\tnameSpan.innerHTML = `- \${item.name}`;
  1141. \t\t\t\t\tlet nameSpan2 = document.createElement('span');
  1142. \t\t\t\t\tnameSpan2.innerHTML = `<button type=\"button\">modif</button>`;
  1143. \t\t\t\t\tlet col4 = document.createElement('div');
  1144. \t\t\t\t\tcol4.classList.add('col-4');
  1145. \t\t\t\t\tlet myheight = document.createElement('div');
  1146. \t\t\t\t\tmyheight.style.height = \"36px\";
  1147. \t\t\t\t\tlet inputQty = document.createElement('input');
  1148. \t\t\t\t\tinputQty.type = \"number\";
  1149. \t\t\t\t\tinputQty.classList.add('inputQtyOpt');
  1150. \t\t\t\t\tinputQty.setAttribute('min','1');
  1151. \t\t\t\t\tinputQty.setAttribute('id',`QtyidCheck\${item.id}`);
  1152. \t\t\t\t\tinputQty.setAttribute('name',`QtyOption[\${item.id}]`);
  1153. \t\t\t\t\tinputQty.setAttribute('value','1');
  1154. \t\t\t\t\t// get value qty in session
  1155. \t\t\t\t\tfor (const idOpt in objQty) {
  1156. \t\t\t\t\t\tif(item.id == idOpt) {
  1157. \t\t\t\t\t\t\tinputQty.setAttribute('value',`\${objQty[idOpt]}`);
  1158. \t\t\t\t\t\t} 
  1159. \t\t\t\t\t}
  1160. \t\t\t\t\tcol4.appendChild(myheight);
  1161. \t\t\t\t\tcol4.appendChild(inputQty);
  1162. \t\t\t\t\tcol4a.appendChild(img1);
  1163. \t\t\t\t\tcol4b.appendChild(img2);
  1164. \t\t\t\t\trow.appendChild(col4a);
  1165. \t\t\t\t\trow.appendChild(col4b);
  1166. \t\t\t\t\tcustomControlLabel.appendChild(nameStrong);
  1167. \t\t\t\t\tcustomControlLabel.appendChild(nameSpan);
  1168. \t\t\t\t\tcustomCheckBox.appendChild(inputCheckBox);
  1169. \t\t\t\t\tcustomCheckBox.appendChild(customControlLabel);
  1170. \t\t\t\t\tcol8.appendChild(row);
  1171. \t\t\t\t\tcol8.appendChild(customCheckBox);
  1172. \t\t\t\t\toneOpt.appendChild(idProd);
  1173. \t\t\t\t\toneOpt.appendChild(col8);
  1174. \t\t\t\t\toneOpt.appendChild(col4);
  1175. \t\t\t\t\tcontainerOpt.appendChild(oneOpt);
  1176. \t\t\t\t});
  1177. \t\t\t\t
  1178. \t\t\t\t/*let idp = document.createElement(\"p\");
  1179. \t\t\t\tidp.textContent = data;
  1180. \t\t\t\tcontainerOpt.appendChild(idp);*/
  1181. \t\t\t\t/*fetch('/get-option')
  1182. \t\t\t\t.then(obj => obj.json())
  1183. \t\t\t\t.then(objjs => console.log(objjs));*/
  1184. \t\t\t\tif(data) {
  1185. \t\t\t\t\tconst optionCheckbox = document.querySelectorAll('.option-checkbox');
  1186. \t\t\t\t\t
  1187. \t\t\t\t\tfor (var i = 0; i < optionCheckbox.length; i++) {
  1188. \t\t\t\t\t\tlet qtyOpt = document.getElementById(`Qty\${optionCheckbox[i].id}`);
  1189. \t\t\t\t\t\t// disable unchecked checkbox
  1190. \t\t\t\t\t\tif(!optionCheckbox[i].checked) {
  1191. \t\t\t\t\t\t\tqtyOpt.disabled = true;
  1192. \t\t\t\t\t\t\tqtyOpt.style.display = \"none\";
  1193. \t\t\t\t\t\t}
  1194. \t\t\t\t\t\toptionCheckbox[i].addEventListener('change', (optMod) => {
  1195. \t\t\t\t\t\t\tif (optMod.target.checked) {
  1196. \t\t\t\t\t\t\t\tqtyOpt.disabled = false;
  1197. \t\t\t\t\t\t\t\tqtyOpt.style.display = \"block\";
  1198. \t\t\t\t\t\t\t} else {
  1199. \t\t\t\t\t\t\t\tqtyOpt.disabled = true;
  1200. \t\t\t\t\t\t\t\tqtyOpt.style.display = \"none\";
  1201. \t\t\t\t\t\t\t}
  1202. \t\t\t\t\t\t})
  1203. \t\t\t\t\t}
  1204. \t\t\t\t}
  1205. \t\t\t});
  1206. \t\t}
  1207. \t</script>
  1208. \t<script>
  1209. \tfunction getGroupOption(id_prod) {
  1210. \t\t// console.log('kokokoko',url);
  1211. \t\tconsole.log('isID',id_prod);
  1212. \t\t// var id_product=314;
  1213. \t\t\$(\"#valeurgropOption\").html(\"\");
  1214. \t\tfetch(`/tous-options-groups/\${id_prod}`)
  1215. \t\t.then(response=> response.json())
  1216. \t\t.then(data=>{
  1217. \t\t\tconsole.log('tous option', data);
  1218. \t\t\t\$(\"#valeurgropOption\").append(data);
  1219. \t\t});
  1220. \t\t
  1221. \t}
  1222. \tfunction validechoiModalGroupoption() {
  1223. \t\t// \$(\"#modalOptionGP\").modal(\"hide\");
  1224. \t\t
  1225. \t\tvar url = window.location.href.split('/');
  1226. \t\tvar param_url = url[0]+'//'+url[2];
  1227.         const formData = new FormData();
  1228. \t\tvar idProduit = \$('#id_produit').val();
  1229. \t\tconsole.log(\"id_porduit\",idProduit);
  1230. \t\t
  1231. \t\tvar goption= document.getElementsByClassName('goption');
  1232. \t\tvar labels =new Array();
  1233. \t\tfor (let i = 0; i < goption.length; i++) {
  1234. \t\t\tvar id_goption = goption[i].id.split(\"_\");
  1235. \t\t\tvar label= document.getElementsByClassName('label_'+id_goption[1]);
  1236. \t\t\tvar hidden= document.getElementsByClassName('hidden_'+id_goption[1]);
  1237. \t\t\tvar qte= document.getElementsByClassName('qte_'+id_goption[1]);
  1238. \t\t\t
  1239. \t\t\t// console.log('labeb',label);
  1240. \t\t\tvar compter=0;
  1241. \t\t\t
  1242. \t\t\tvar lab =new Array();
  1243. \t\t\tvar qt =new Array();
  1244. \t\t\tfor (let l = 0; l < label.length; l++) {
  1245. \t\t\tconsole.log('type', label[l].type);
  1246. \t\t\t\tif (label[l].type==\"checkbox\" && label[l].checked) {
  1247. \t\t\t\t\t
  1248. \t\t\t\t\tlab[compter] = hidden[l].value;
  1249. \t\t\t\t\tqt[compter] = qte[l].value;
  1250. \t\t\t\t\tcompter++
  1251. \t\t\t\t}
  1252. \t\t\t\tif (label[l].type==\"select-one\" && label[l].value != \"\") {    
  1253. \t\t\t\t\tlab[compter] = label[l].value;
  1254. \t\t\t\t\tqt[compter] = qte[l].value;
  1255. \t\t\t\t\tcompter++
  1256. \t\t\t\t}
  1257. \t\t\t}
  1258. \t\t\tlabels[i] = {idoption: id_goption[1], labelo: lab, qte: qt};
  1259. \t\t}
  1260. \t\t\tconsole.log('valin label',labels);
  1261. \t\t\t
  1262. \t\t\t// localStorage.setItem('produit_groups', JSON.stringify(labels));
  1263.             
  1264. \t\t\tformData.append(\"modifGroupOption\", JSON.stringify(labels));
  1265. \t\t\tfetch(`\${param_url}/updateOptionGroups/\${idProduit}`, {
  1266.             method: \"POST\",
  1267.             body: formData
  1268. \t\t\t\t})
  1269. \t\t\t\t.then(response=> response.json())
  1270. \t\t\t\t.then(data=>{
  1271. \t\t\t\tconsole.log('data_io',data);
  1272. \t\t\t\tif (data.message == \"ok\") {
  1273. \t\t\t\t\twindow.location.reload();
  1274. \t\t\t\t}
  1275. \t\t\t\t\$(\"#modalOptionGP\").modal(\"hide\");
  1276. \t\t\t});
  1277. \t}
  1278. \t</script>
  1279. \t<script>
  1280. \tfunction ajouterOptions(idproduit,qte,prix,url) { 
  1281. \t\t
  1282. \t\tfetch(`\${url}/tousoption/\${idproduit}`)
  1283. \t\t.then(response=> response.json())
  1284. \t\t.then(data=>{
  1285. \t\t\tvar templ=\"\";
  1286. \t\t\tvar tousId=[];
  1287. \t\t\tconsole.log(\"cocher\",data.opt_pre);
  1288. \t\t\tfor (let i = 0; i < data.options.length; i++) {
  1289. \t\t\t\ttousId.push(data.options[i].id);
  1290. \t\t\t\ttempl+=`<div class=\"oneOptionFP\">
  1291. \t\t\t\t\t\t\t<div class=\"row\">
  1292. \t\t\t\t
  1293. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  1294. \t\t\t\t\t\t\t\t\t<img id=\"optionbtn1img\" src=\"/upload/produits/\${data.options[i].image1}\" style=\"height:50px;border-radius:2px\">
  1295. \t\t\t\t\t\t\t\t</div>
  1296. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  1297. \t\t\t\t\t\t\t\t\t<img id=\"optionbtn1img\" src=\"/upload/produits/\${data.options[i].image2}\" style=\"height:50px;border-radius:2px\">
  1298. \t\t\t\t\t\t\t\t</div>
  1299. \t\t\t\t\t\t\t</div>
  1300. \t\t\t\t\t\t\t<div class=\"custom-checkbox my-1\" style=\"position: relative\">
  1301. \t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\${data.options[i].price}\" data-id=\"\${data.options[i].id}\" name=\"\" value=\"\" class=\"custom-control-input checkboxFP\" id=\"checkboFP_\${[i]}\">
  1302. \t\t\t\t\t\t\t\t<label class=\"custom-control-label position-relative\" for=\"checkboFP_\${[i]}\">
  1303. \t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">\${data.options[i].price}</strong>
  1304. \t\t\t\t\t\t\t\t\t<span>-
  1305. \t\t\t\t\t\t\t\t\t\${data.options[i].name}</span>
  1306. \t\t\t\t\t\t\t\t\t</label>
  1307. \t\t\t\t\t\t\t\t<button class=\"btn\" id=\"boutonModif_\${[i]}\" onclick=\"modifOption('\${data.options[i].id}');\" type=\"button\" style=\"display: none\">Modifier</button>
  1308. \t\t\t\t\t\t\t</div>
  1309. \t\t\t\t\t\t</div>`;\t\t\t
  1310. \t\t\t}
  1311. \t\t
  1312. \t\t\t\$('#id_produit').val(idproduit);
  1313. \t\t\t\$('#price_produit').val(prix);
  1314. \t\t\t\$('#qte_produit').val(qte);
  1315. \t\t\t\$('#modifAchatFairePart').modal(\"show\");
  1316. \t\t\t\$('#tousOptions').html(templ);
  1317. \t\t\tfor (let k = 0; k < tousId.length; k++) {
  1318. \t\t\t   console.log('atooo',tousId,tousId.length);
  1319. \t\t\t\tconsole.log('dataio',data.opt_pre);
  1320. \t\t\t\t// for (let a = 0; a < data.opt_pre.length; a++) {
  1321. \t\t\t\t\t// console.log('avvvvvi',data.opt_pre.length);
  1322. \t\t\t\t\tfor(var i in data.opt_pre) {
  1323. \t\t\t\t\t\tif(tousId[k]== data.opt_pre[i].idoption){
  1324. \t\t\t\t\t\t\tconsole.log(\"tonga aty ihany\");
  1325. \t\t\t\t\t\t\t\$('#checkboFP_'+[k]).prop('checked', true);\t
  1326. \t\t\t\t\t\t}
  1327. \t\t\t\t\t}
  1328. \t\t\t\t// }
  1329. \t\t\t\tfor (const key in \$('#checkboFP_'+[k])) {
  1330. \t\t\t\t\tif (\$('#checkboFP_'+[k])[key].checked) {\t
  1331. \t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: block !important\");
  1332. \t\t\t\t\t}
  1333. \t\t\t\t\telse{
  1334. \t\t\t\t\t\tvar evt = document.getElementById('checkboFP_'+[k]);
  1335. \t\t\t\t\t\tevt.addEventListener('change',(event) => {
  1336. \t\t\t\t\t\t\tif (event.target.checked) {
  1337. \t\t\t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: block !important\");
  1338. \t\t\t\t\t\t\t}else{
  1339. \t\t\t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: none !important\");
  1340. \t\t\t\t\t\t\t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  1341. \t\t\t\t\t\t\t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  1342. \t\t\t\t\t\t\t}
  1343. \t\t\t\t\t\t});
  1344. \t\t\t\t\t}
  1345. \t\t\t\t}
  1346. \t\t\t}
  1347. \t\t});
  1348. \t}
  1349. \tfunction modifOption(idopt) {
  1350. \t\t
  1351. \t\tvar url = window.location.href.split('/');
  1352. \t\tvar param_url = url[0]+'//'+url[2];
  1353. \t\tfetch(`\${param_url}/option/\${idopt}`)
  1354. \t\t.then(response=> response.json())
  1355. \t\t.then(data=>{
  1356. \t\t
  1357. \t\t\t\$(\".m-info\").attr(\"style\", \"display: none !important\")
  1358. \t\t\t\$(\".forme_options\").attr(\"style\", \"display: block !important\")
  1359. \t\t\t\$(\".nice-select\").attr(\"style\", \"display: none !important\");
  1360. \t\t\t\$(\"#id_optionFP\").val(idopt);
  1361. \t\t\t\$(\"#name_optionFP\").val(data.options.name);
  1362. \t\t\t\$(\"#image_optionFP\").val(data.options.image1);
  1363. \t
  1364. \t\t\tif ( typeof data.options.colorsOption != \"undefined\" && data.options.colorsOption != null && data.options.colorsOption.length != null && data.options.colorsOption.length > 0) {
  1365. \t\t\t\tvar colorso =\"\";
  1366. \t\t\t\tfor (let i = 0; i < data.options.colorsOption.length; i++) {
  1367. \t\t\t\t\tcolorso +='<option>'+ data.options.colorsOption[i]+'</option>'
  1368. \t\t\t\t}
  1369. \t\t\t\t\$(\"#optionFP_color\").html(colorso);
  1370. \t\t\t\t\$(\".optionFP_color\").attr(\"style\", \"display: block !important\");
  1371. \t\t\t\t\$(\"#optionFP_color\").attr(\"style\", \"display: block !important\");
  1372. \t\t\t}
  1373. \t\t\telse{
  1374. \t\t\t\t\$(\".optionFP_color\").attr(\"style\", \"display: none !important\");
  1375. \t\t\t}
  1376. \t\t\tif (typeof data.options.format != \"undefined\" && data.options.format != null && data.options.format.length != null && data.options.format.length > 0) {
  1377. \t\t\t\tvar formatopt =\"\";
  1378. \t\t\t\tfor (let i = 0; i < data.options.format.length; i++) {
  1379. \t\t\t\t\tformatopt +='<option>'+data.options.format[i]+'</option>'
  1380. \t\t\t\t}
  1381. \t\t\t\t\$(\"#optionFP_format\").html(formatopt);
  1382. \t\t\t\t\$(\".optionFP_format\").attr(\"style\", \"display: block !important\");
  1383. \t\t\t\t\$(\"#optionFP_format\").attr(\"style\", \"display: block !important\");
  1384. \t\t\t}
  1385. \t\t\telse{
  1386. \t\t\t\t\$(\".optionFP_format\").attr(\"style\", \"display: none !important\");
  1387. \t\t\t}
  1388. \t\t\tif (typeof data.options.finition != \"undefined\" && data.options.finition != null && data.options.finition.length != null && data.options.finition.length > 0) {
  1389. \t\t\t\tvar finitions =\"\";
  1390. \t\t\t\tfor (let i = 0; i < data.options.finition.length; i++) {
  1391. \t\t\t\t\tfinitions +='<option>'+data.options.finition[i]+'</option>'
  1392. \t\t\t\t}
  1393. \t\t\t\t\$(\"#optionFP_finition\").html(finitions);
  1394. \t\t\t\t\$(\".optionFP_finition\").attr(\"style\", \"display: block !important\");
  1395. \t\t\t\t\$(\"#optionFP_finition\").attr(\"style\", \"display: block !important\");
  1396. \t\t\t}
  1397. \t\t\telse{
  1398. \t\t\t\t\$(\".optionFP_finition\").attr(\"style\", \"display: none !important\");
  1399. \t\t\t}
  1400. \t\t\tif (typeof data.options.papier != \"undefined\" && data.options.papier != null && data.options.papier.length != null && data.options.papier.length > 0) {
  1401. \t\t\t\tvar papiers =\"\";
  1402. \t\t\t\tfor (let i = 0; i < data.options.papier.length; i++) {
  1403. \t\t\t\t\tpapiers +='<option>'+data.options.papier[i]+'</option>'
  1404. \t\t\t\t}
  1405. \t\t\t\t\$(\"#optionFP_papier\").html(papiers);
  1406. \t\t\t\t\$(\".optionFP_papier\").attr(\"style\", \"display: block !important\");
  1407. \t\t\t\t\$(\"#optionFP_papier\").attr(\"style\", \"display: block !important\");
  1408. \t\t\t}
  1409. \t\t\telse{
  1410. \t\t\t\t\$(\".optionFP_papier\").attr(\"style\", \"display: none !important\");
  1411. \t\t\t}
  1412. \t\t\tif (typeof data.options.quantite != \"undefined\" && data.options.quantite != null && data.options.quantite.length != null && data.options.quantite.length > 0) {
  1413. \t\t\t\tvar quantites =\"\";
  1414. \t\t\t\tfor (let i = 0; i < data.options.quantite.length; i++) {
  1415. \t\t\t\t\tquantites +='<option>'+data.options.quantite[i]+'</option>'
  1416. \t\t\t\t}
  1417. \t\t\t\t\$(\"#optionFP_quantite\").html(quantites);
  1418. \t\t\t\t\$(\".optionFP_quantite\").attr(\"style\", \"display: block !important\");
  1419. \t\t\t\t\$(\"#optionFP_quantite\").attr(\"style\", \"display: block !important\");
  1420. \t\t\t}
  1421. \t\t\telse{
  1422. \t\t\t\t\$(\".optionFP_quantite\").attr(\"style\", \"display: none !important\");
  1423. \t\t\t}
  1424. \t\t\tif (typeof data.options.etiquette != \"undefined\" && data.options.etiquette != null && data.options.etiquette.length != null && data.options.etiquette.length > 0) {
  1425. \t\t\t\tvar etiquettes =\"\";
  1426. \t\t\t\tfor (let i = 0; i < data.options.etiquette.length; i++) {
  1427. \t\t\t\t\tetiquettes +='<option>'+data.options.etiquette[i]+'</option>'
  1428. \t\t\t\t}
  1429. \t\t\t\t\$(\"#optionFP_etiquette\").html(etiquettes);
  1430. \t\t\t\t\$(\".optionFP_etiquette\").attr(\"style\", \"display: block !important\");
  1431. \t\t\t\t\$(\"#optionFP_etiquette\").attr(\"style\", \"display: block !important\");
  1432. \t\t\t}
  1433. \t\t\telse{
  1434. \t\t\t\t\$(\".optionFP_etiquette\").attr(\"style\", \"display: none !important\");
  1435. \t\t\t}
  1436. \t\t\tif (typeof data.options.ruban != \"undefined\" && data.options.ruban != null && data.options.ruban.length != null && data.options.ruban.length > 0) {
  1437. \t\t\t\tvar rubans =\"\";
  1438. \t\t\t\tfor (let i = 0; i < data.options.ruban.length; i++) {
  1439. \t\t\t\t\trubans +='<option>'+data.options.ruban[i]+'</option>'
  1440. \t\t\t\t}
  1441. \t\t\t\t\$(\"#optionFP_ruban\").html(rubans);
  1442. \t\t\t\t\$(\".optionFP_ruban\").attr(\"style\", \"display: block !important\");
  1443. \t\t\t\t\$(\"#optionFP_ruban\").attr(\"style\", \"display: block !important\");
  1444. \t\t\t}
  1445. \t\t\telse{
  1446. \t\t\t\t\$(\".optionFP_ruban\").attr(\"style\", \"display: none !important\");
  1447. \t\t\t}
  1448. \t\t});\t
  1449. \t}
  1450. \tfunction Anulleroption() {
  1451. \t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  1452. \t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  1453. \t}
  1454. \tfunction validechoioption() {
  1455. \t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  1456. \t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  1457. \t\tconst data = {
  1458. \t\t\t\tidoption: \$(\"#id_optionFP\").val(),
  1459. \t\t\t\tnomoption: \$(\"#name_optionFP\").val(),
  1460. \t\t\t\timageoption: \$(\"#image_optionFP\").val(),
  1461. \t\t\t\tcolor: \$(\"#optionFP_color\").val(),
  1462. \t\t\t\tform: \$(\"#optionFP_format\").val(),
  1463. \t\t\t\tfinition: \$(\"#optionFP_finition\").val(),
  1464. \t\t\t\tpapier: \$(\"#optionFP_papier\").val(),
  1465. \t\t\t\tquantite: \$(\"#optionFP_quantite\").val(),
  1466. \t\t\t\tetiquette: \$(\"#optionFP_etiquette\").val(),
  1467. \t\t\t\truban: \$(\"#optionFP_ruban\").val(),
  1468. \t\t\t};
  1469. \t\tlocalStorage.setItem(\$(\"#id_optionFP\").val(), JSON.stringify(data));
  1470. \t\t\t
  1471. \t}
  1472. \tfunction validechoiModaloption() {
  1473. \t\tvar url = window.location.href.split('/');
  1474. \t\tvar param_url = url[0]+'//'+url[2];
  1475.         const formData = new FormData();
  1476. \t\tvar idProduit = \$('#id_produit').val();
  1477. \t\tformData.append(\"quantity\",\$('#qte_produit').val());
  1478. \t\tformData.append(\"price\",\$('#price_produit').val());
  1479.        if (Object.keys(localStorage).length != 0) {
  1480. \t\tvar values = [],
  1481. \t\tkeys = Object.keys(localStorage),
  1482. \t\ti = keys.length;
  1483.      
  1484. \t\twhile ( i-- ) {
  1485. \t\t\tvalues.push( localStorage.getItem(keys[i]) );
  1486. \t\t\tlocalStorage.removeItem(keys[i]);
  1487. \t\t}
  1488. \t\t
  1489. \t\tformData.append(\"tail\",values.length);
  1490. \t\tconsole.log(\"zzzzz\",values);
  1491. \t\tfor (let j = 0; j < values.length; j++) {\t
  1492. \t\t   formData.append(\"OpId_\"+j, values[j]);
  1493. \t\t}
  1494. \t   }
  1495. \t   
  1496. \t\tvar checkOpt = document.querySelectorAll('.checkboxFP');
  1497. \t\tconsole.log(\"fff\", checkOpt);
  1498. \t\tconsole.log(\"eee\", checkOpt.length);
  1499. \t\tvar valeur=[];
  1500. \t\tfor (var p = 0; p < checkOpt.length; p++) {
  1501. \t\t\t
  1502. \t\t\tif (checkOpt[p].checked) {
  1503. \t\t\t\tvar idOpt = checkOpt[p].getAttribute('data-id');
  1504. \t\t\t\tvaleur.push(idOpt);
  1505. \t\t\t}
  1506. \t\t}
  1507. \t\t\tformData.append(\"idoptions\",valeur);
  1508. \t   
  1509. \t\tfetch(`\${param_url}/updateOptionFairepart/\${idProduit}`, {
  1510.             method: \"POST\",
  1511.             body: formData
  1512.         })
  1513. \t\t.then(response=> response.json())
  1514. \t\t.then(data=>{
  1515.           console.log('data_io',data);
  1516. \t\t  if (data.message == \"ok\") {
  1517. \t\t\twindow.location.reload();
  1518. \t\t  }
  1519. \t   \$(\"#modifAchatFairePart\").modal(\"hide\");
  1520. \t\t});
  1521. \t}
  1522. \t</script>
  1523. ";
  1524.         
  1525.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1526.         
  1527.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1528.         return; yield '';
  1529.     }
  1530.     /**
  1531.      * @codeCoverageIgnore
  1532.      */
  1533.     public function getTemplateName()
  1534.     {
  1535.         return "front/command/basket.html.twig";
  1536.     }
  1537.     /**
  1538.      * @codeCoverageIgnore
  1539.      */
  1540.     public function isTraitable()
  1541.     {
  1542.         return false;
  1543.     }
  1544.     /**
  1545.      * @codeCoverageIgnore
  1546.      */
  1547.     public function getDebugInfo()
  1548.     {
  1549.         return array (  1053 => 639,  1043 => 638,  1027 => 631,  1024 => 630,  1018 => 627,  1014 => 625,  1010 => 623,  1008 => 622,  1004 => 621,  998 => 618,  993 => 616,  990 => 615,  987 => 614,  985 => 613,  979 => 609,  973 => 605,  970 => 604,  963 => 601,  960 => 600,  957 => 599,  954 => 598,  952 => 597,  945 => 592,  943 => 591,  940 => 590,  934 => 589,  932 => 588,  925 => 586,  921 => 585,  918 => 584,  909 => 580,  907 => 579,  902 => 577,  899 => 576,  897 => 575,  893 => 574,  890 => 573,  888 => 572,  883 => 569,  879 => 567,  873 => 565,  871 => 564,  866 => 561,  861 => 551,  855 => 547,  850 => 546,  847 => 545,  844 => 544,  838 => 543,  831 => 541,  829 => 540,  824 => 539,  821 => 538,  817 => 534,  813 => 533,  808 => 531,  805 => 530,  801 => 529,  796 => 526,  794 => 525,  791 => 513,  787 => 510,  783 => 507,  780 => 503,  776 => 498,  771 => 495,  769 => 494,  766 => 493,  762 => 492,  759 => 491,  756 => 490,  752 => 489,  749 => 488,  746 => 486,  741 => 482,  735 => 481,  732 => 480,  719 => 476,  709 => 472,  706 => 471,  702 => 470,  699 => 469,  697 => 468,  693 => 466,  687 => 463,  684 => 462,  681 => 461,  679 => 460,  674 => 459,  671 => 457,  664 => 455,  661 => 454,  655 => 452,  650 => 450,  645 => 448,  642 => 447,  640 => 446,  636 => 444,  633 => 443,  630 => 442,  627 => 441,  624 => 440,  622 => 439,  619 => 438,  613 => 436,  607 => 434,  605 => 433,  601 => 431,  596 => 429,  593 => 428,  590 => 427,  584 => 426,  581 => 425,  578 => 424,  576 => 423,  573 => 422,  568 => 421,  566 => 420,  563 => 419,  558 => 417,  555 => 416,  552 => 415,  546 => 414,  543 => 413,  540 => 412,  537 => 411,  532 => 410,  530 => 409,  526 => 408,  523 => 407,  520 => 405,  517 => 404,  512 => 403,  509 => 402,  506 => 401,  503 => 400,  496 => 396,  490 => 393,  483 => 389,  478 => 387,  474 => 386,  471 => 385,  469 => 384,  451 => 369,  448 => 368,  443 => 367,  438 => 365,  424 => 353,  416 => 345,  340 => 270,  328 => 253,  323 => 250,  321 => 249,  316 => 246,  303 => 235,  242 => 175,  231 => 166,  226 => 163,  224 => 162,  220 => 160,  217 => 158,  211 => 153,  205 => 148,  200 => 143,  198 => 142,  196 => 91,  193 => 89,  191 => 87,  181 => 75,  175 => 70,  171 => 67,  161 => 66,  98 => 9,  88 => 8,  75 => 5,  72 => 4,  62 => 3,  39 => 1,);
  1550.     }
  1551.     public function getSourceContext()
  1552.     {
  1553.         return new Source("{% extends 'base_front.html.twig' %}
  1554. {% block meta %}
  1555. \t<title>Mon panier</title>
  1556. \t<meta name=\"description\" content=\"{{ products|length }} produits pour le moment\">
  1557. {% endblock %}
  1558. {% block style %}
  1559. \t<style>
  1560. \t\t.indicationSupp:hover {
  1561. \t\t\t
  1562. \t\t}
  1563. \t\t.inputQtyOpt {
  1564. \t\t\twidth: 63px;
  1565. \t\t\theight: 39px;
  1566. \t\t\tpadding: 0 5px;
  1567. \t\t\ttext-align: center;
  1568. \t\t\tbackground-color: transparent;
  1569. \t\t\tborder: 1px solid #efefef;
  1570. \t\t}
  1571. \t\t.imgOptModal {
  1572. \t\t\theight:50px;
  1573. \t\t\tborder-radius:2px
  1574. \t\t}
  1575. \t\t.modifProdSess {
  1576. \t\t\tcolor: white !important;
  1577. \t\t\tdisplay: flex;
  1578. \t\t\talign-items: center;
  1579. \t\t}
  1580. \t\t{# css loading... #}
  1581. \t\t#MyLoading {
  1582. \t\t\tvisibility: hidden;
  1583. \t\t}
  1584. \t\t#MyLoading.MyShow {
  1585. \t\t\tvisibility: visible;
  1586. \t\t}
  1587. \t\t@media screen and (max-width: 576px) {
  1588. \t\t\t.modifProdSess {
  1589. \t\t\t\tpadding: 8px 7px;
  1590. \t\t\t\tfont-size: 7px;
  1591. \t\t\t}
  1592. \t\t\t.indicationSupp {
  1593. \t\t\t\tpadding: 10px 15px;
  1594. \t\t\t}
  1595. \t\t}
  1596. \t\t{# modadl option #}
  1597. \t\t@media screen and (min-width: 800px) {\t
  1598. \t\t\t.myWidth {
  1599. \t\t\t\tmax-width: 800px;
  1600. \t\t\t}
  1601. \t\t}
  1602. \t\t{# choice option #}
  1603. \t\t.labold {
  1604. \t\t\tfont-weight: 500;
  1605. \t\t\tfont-size: 18px;
  1606. \t\t}
  1607. \t\t.mt9 {
  1608. \t\t\tmargin-top: 9px;
  1609. \t\t}
  1610. \t\t.myPadding {
  1611. \t\t\tpadding: 8px 0px;
  1612. \t\t}
  1613. \t</style>
  1614. {% endblock %}
  1615. {% block body %}
  1616. \t<!-- Modal -->
  1617. \t{# Modal modif groupe d'option #}
  1618. \t<div class=\"modal fade\" id=\"modalOptionGP\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  1619. \t\t<div class=\"modal-dialog myWidth\" role=\"document\">
  1620. \t\t\t<div class=\"modal-content\">
  1621. \t\t\t\t{# <form action=\"\"> #}
  1622. \t\t\t\t\t<div class=\"modal-header\">
  1623. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"\">Modifier les groupes d'options</h5>
  1624. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  1625. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  1626. \t\t\t\t\t\t</button>
  1627. \t\t\t\t\t</div>
  1628. \t\t\t\t\t<div class=\"modal-body\">
  1629. \t\t\t\t\t\t<div class=\"row\" id=\"valeurgropOption\">
  1630. \t\t\t\t\t\t\t{# <input type=\"hidden\" id=\"id_optionmodal\">
  1631. \t\t\t\t\t\t\t<div class=\"col-lg-6 col-12\" >
  1632. \t\t\t\t\t\t\t\t<div id=\"optionsimage\">
  1633. \t\t\t\t\t\t\t\t\t{# <img src=\"{{ asset(constant('App\\\\Services\\\\File::IMAGE_PRODUCT_DIR') ~ product.photos.toArray()[0].url) }}\" alt=\"\"> #}
  1634. \t\t\t\t\t\t\t\t{# </div>
  1635. \t\t\t\t\t\t\t</div>  #}
  1636. \t\t\t\t\t\t\t
  1637. \t\t\t\t\t\t\t{# <div class=\"col-lg-6 col-12\"  style=\"display: block\"> #}
  1638. \t\t\t\t\t\t\t    {# <div class=\"row\">
  1639. \t\t\t\t\t\t\t\t\t<div class=\"col-8\">
  1640. \t\t\t\t\t\t\t\t\t\t<label for=\"\" class=\"labold\">Couleur</label>
  1641. \t\t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox myPadding\" style=\"position: relative\">
  1642. \t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"\" id=\"vert\" class=\"custom-control-input\">
  1643. \t\t\t\t\t\t\t\t\t\t\t<label for=\"vert\" class=\"custom-control-label\" style=\"margin-left: 25px;\">Vert (3€)</label>
  1644. \t\t\t\t\t\t\t\t\t\t</div>
  1645. \t\t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox myPadding\" style=\"position: relative\">
  1646. \t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"\" id=\"rouge\" class=\"custom-control-input\">
  1647. \t\t\t\t\t\t\t\t\t\t\t<label for=\"rouge\" class=\"custom-control-label\" style=\"margin-left: 25px;\">Rouge (4€)</label>
  1648. \t\t\t\t\t\t\t\t\t\t</div>
  1649. \t\t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox myPadding\" style=\"position: relative\">
  1650. \t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"\" id=\"bleu\" class=\"custom-control-input\">
  1651. \t\t\t\t\t\t\t\t\t\t\t<label for=\"bleu\" class=\"custom-control-label\" style=\"margin-left: 25px;\">Bleu (6€)</label>
  1652. \t\t\t\t\t\t\t\t\t\t</div>
  1653. \t\t\t\t\t\t\t\t\t</div>
  1654. \t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1655. \t\t\t\t\t\t\t\t\t\t<label for=\"qt1\" class=\"mt9\">Quantité</label>
  1656. \t\t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" min=\"0\" id=\"\" class=\"form-control\">
  1657. \t\t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" min=\"0\" id=\"\" class=\"form-control\">
  1658. \t\t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" min=\"0\" id=\"\" class=\"form-control\">
  1659. \t\t\t\t\t\t\t\t\t</div>
  1660. \t\t\t\t\t\t\t\t</div><br>
  1661. \t\t\t\t\t\t\t\t<div class=\"row\">
  1662. \t\t\t\t\t\t\t\t\t<div class=\"col-8\">
  1663. \t\t\t\t\t\t\t\t\t\t<label class=\"labold\" for=\"\">Taille</label>
  1664. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"\" class=\"form-control wide\" style=\"display: block !important;\">\t
  1665. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">M (6€)</option>
  1666. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">L (8€)</option>
  1667. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">XL (10€)</option>
  1668. \t\t\t\t\t\t\t\t\t\t</select>\t
  1669. \t\t\t\t\t\t\t\t\t</div>
  1670. \t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1671. \t\t\t\t\t\t\t\t\t\t<label for=\"qt1\" class=\"mt9\">Quantité</label>
  1672. \t\t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" min=\"0\" id=\"\" class=\"form-control\">
  1673. \t\t\t\t\t\t\t\t\t</div>
  1674. \t\t\t\t\t\t\t\t</div><br>
  1675. \t\t\t\t\t\t\t\t<div class=\"row\">
  1676. \t\t\t\t\t\t\t\t\t<div class=\"col-8\">
  1677. \t\t\t\t\t\t\t\t\t\t<label class=\"labold\" for=\"\">Type tissu</label>
  1678. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"\" class=\"form-control wide\" style=\"display: block !important;\">
  1679. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">Semi-cotton (2€)</option>
  1680. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">Cotton (4€)</option>
  1681. \t\t\t\t\t\t\t\t\t\t\t<option value=\"\">t-shirt rétréci (5€)</option>
  1682. \t\t\t\t\t\t\t\t\t\t</select>
  1683. \t\t\t\t\t\t\t\t\t</div>
  1684. \t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1685. \t\t\t\t\t\t\t\t\t\t<label for=\"qt1\" class=\"mt9\">Quantité</label>
  1686. \t\t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" min=\"0\" id=\"\" class=\"form-control\">
  1687. \t\t\t\t\t\t\t\t\t</div>
  1688. \t\t\t\t\t\t\t\t</div><br> #}
  1689. \t\t\t\t\t\t\t{# </div> #}
  1690. \t\t\t\t\t\t</div>
  1691. \t\t\t\t\t</div>
  1692. \t\t\t\t\t{# {% endfor %}
  1693. \t\t\t\t\t{% endif %} #}
  1694. \t\t\t\t\t<div class=\"modal-footer\">
  1695. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  1696. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\" id=\"\" onclick=\"validechoiModalGroupoption()\">Ok</button>
  1697. \t\t\t\t\t</div>
  1698. \t\t\t\t{# </form> #}
  1699. \t\t\t</div>
  1700. \t\t</div>
  1701. \t</div>
  1702. \t{# Fin Modal modif groupe d'option #}
  1703. \t{# Modal faire part #}
  1704. \t<div class=\"modal fade\" id=\"modifAchatFairePart\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  1705. \t{% set idSessOpt = app.session.get('idProduit') %}
  1706. \t
  1707. \t\t<div class=\"modal-dialog\" role=\"document\" style=\"max-width: 700px\">
  1708. \t\t\t<div class=\"modal-content\">
  1709. \t\t\t\t<form action=\"{{path('update_option')}}\" method=\"POST\">
  1710. \t\t\t\t\t<div class=\"modal-header\">
  1711. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"exampleModalLongTitle\">Modifier les options</h5>
  1712. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  1713. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  1714. \t\t\t\t\t\t</button>
  1715. \t\t\t\t\t</div>
  1716. \t\t\t\t\t<div class=\"modal-body\">
  1717. \t\t\t\t\t\t{# <span class=\"font-weight-bold\">Options disponibles :</span><span id=\"MyLoadingFP\"> Chargement en cours...</span> #}
  1718. \t\t\t\t\t\t<div class=\"containerOptionFP pl-3 row\">
  1719. \t\t\t\t\t\t\t\t
  1720. \t\t\t\t\t\t\t<div class=\"col-lg-5 col-12\">
  1721. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"id_produit\">
  1722. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"price_produit\">
  1723. \t\t\t\t\t\t\t\t<input type=\"hidden\" id=\"qte_produit\">
  1724. \t\t\t\t\t\t\t\t<div id=\"tousOptions\"></div>
  1725. \t\t\t\t\t\t\t</div>
  1726. \t\t\t\t\t\t\t<div class=\"col-lg-7 col-12\">
  1727. \t\t\t\t\t\t\t   <div class=\"m-info\">Si vous souhaitez ajouter une option différente de celle d'avant, cochez votre choix et modifiez-le si nécessaire</div>
  1728. \t\t\t\t\t\t\t   <div class=\"forme_options\" style=\"display: none !important\">
  1729. \t\t\t\t\t\t\t\t<form action=\"\">
  1730. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"id_optionFP\">
  1731. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"name_optionFP\">
  1732. \t\t\t\t\t\t\t\t    <input type=\"hidden\" id=\"image_optionFP\">
  1733. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_color\">
  1734. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_color\">Couleur</label>
  1735. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_color\" class=\"wide form-control\">
  1736. \t\t\t\t\t\t\t\t\t\t</select>
  1737. \t\t\t\t\t\t\t\t\t</div>
  1738. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_format\">
  1739. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_format\">Format</label>
  1740. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_format\" class=\"wide form-control\">
  1741. \t\t\t\t\t\t\t\t\t\t</select>
  1742. \t\t\t\t\t\t\t\t\t</div>
  1743. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_finition\">
  1744. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_finition\">Finition</label>
  1745. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_finition\" class=\"wide form-control\">\t
  1746. \t\t\t\t\t\t\t\t\t\t</select>
  1747. \t\t\t\t\t\t\t\t\t</div>
  1748. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_papier\">
  1749. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_papier\">Papier</label>
  1750. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_papier\" class=\"wide form-control\">
  1751. \t\t\t\t\t\t\t\t\t\t</select>
  1752. \t\t\t\t\t\t\t\t\t</div>
  1753. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_etiquette\">
  1754. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_etiquette\">Etiquette</label>
  1755. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_etiquette\" class=\"wide form-control\">
  1756. \t\t\t\t\t\t\t\t\t\t</select>
  1757. \t\t\t\t\t\t\t\t\t</div>
  1758. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_ruban\">
  1759. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_ruban\">Ruban</label>
  1760. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_ruban\" class=\"wide form-control\">
  1761. \t\t\t\t\t\t\t\t\t\t</select>
  1762. \t\t\t\t\t\t\t\t\t</div>
  1763. \t\t\t\t\t\t\t\t\t<div class=\"optionFP_quantite\">
  1764. \t\t\t\t\t\t\t\t\t\t<label for=\"optionFP_quantite\">Quantite</label>
  1765. \t\t\t\t\t\t\t\t\t\t<select name=\"\" id=\"optionFP_quantite\" class=\"wide form-control\">
  1766. \t\t\t\t\t\t\t\t\t\t</select>
  1767. \t\t\t\t\t\t\t\t\t</div>
  1768. \t\t\t\t\t\t\t\t\t<div class=\"validerModifFP mt-3\">
  1769. \t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-secondary\" type=\"button\" onclick=\"Anulleroption()\">Annuler</button>
  1770. \t\t\t\t\t\t\t\t\t\t<button class=\"btn btn-primary\" type=\"button\" onclick=\"validechoioption()\">Valider</button>
  1771. \t\t\t\t\t\t\t\t\t</div>
  1772. \t\t\t\t\t\t\t\t</form>
  1773. \t\t\t\t\t\t\t</div>
  1774. \t\t\t\t\t\t\t</div>
  1775. \t\t\t\t\t\t</div>
  1776. \t\t\t\t\t\t{# {% endset %} #}
  1777. \t\t\t\t\t<!-- form modifsession prod -->
  1778. \t\t\t\t\t</div>
  1779. \t\t\t\t\t<div class=\"modal-footer\">
  1780. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  1781. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\" onclick=\"validechoiModaloption()\">Modifier</button>
  1782. \t\t\t\t\t</div>
  1783. \t\t\t\t</form>
  1784. \t\t\t</div>
  1785. \t\t</div>
  1786. \t</div>
  1787. \t{# Fin modal faire Part #}\t
  1788. \t<div class=\"modal fade\" id=\"modifAchatProd\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLongTitle\" aria-hidden=\"true\">
  1789. \t{% set idSessOpt = app.session.get('idProduit') %}
  1790. \t
  1791. \t\t<div class=\"modal-dialog\" role=\"document\">
  1792. \t\t\t<div class=\"modal-content\">
  1793. \t\t\t\t<form action=\"{{path('update_option')}}\" method=\"POST\">
  1794. \t\t\t\t\t<div class=\"modal-header\">
  1795. \t\t\t\t\t\t<h5 class=\"modal-title\" id=\"exampleModalLongTitle\">Modifier les options</h5>
  1796. \t\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">
  1797. \t\t\t\t\t\t\t<span aria-hidden=\"true\">&times;</span>
  1798. \t\t\t\t\t\t</button>
  1799. \t\t\t\t\t</div>
  1800. \t\t\t\t\t<div class=\"modal-body\">
  1801. \t\t\t\t\t<!-- form modifsession prod -->
  1802. \t\t\t\t\t\t{# <div class=\"form-group\">
  1803. \t\t\t\t\t\t\t<label for=\"quantity_product\">Quantité</label><br>
  1804. \t\t\t\t\t\t\t<div class=\"quantity buttons_added\">
  1805. \t\t\t\t\t\t\t\t<input type=\"button\" value=\"-\" class=\"minus\">
  1806. \t\t\t\t\t\t\t\t<input id=\"quantity_product\" type=\"number\" step=\"1\" min=\"1\" max=\"\" name=\"quantity\" value=\"1\" title=\"Qty\" class=\"input-text qty text\" size=\"4\" pattern=\"\" inputmode=\"\">
  1807. \t\t\t\t\t\t\t\t<input type=\"button\" value=\"+\" class=\"plus\">
  1808. \t\t\t\t\t\t\t</div>
  1809. \t\t\t\t\t\t</div> #}
  1810. \t\t\t\t\t\t<span class=\"font-weight-bold\">Options disponibles :</span><span id=\"MyLoading\"> Chargement en cours...</span>
  1811. \t\t\t\t\t\t<div class=\"containerOption pl-3 row\">
  1812. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  1813. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  1814. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  1815. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1816. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1817. \t\t\t\t\t\t\t\t\t\t</div>
  1818. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1819. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1820. \t\t\t\t\t\t\t\t\t\t</div>
  1821. \t\t\t\t\t\t\t\t\t</div>
  1822. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  1823. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo\">
  1824. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo\">
  1825. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  1826. \t\t\t\t\t\t\t\t\t\t\t<span>-
  1827. \t\t\t\t\t\t\t\t\t\t\tName option</span>
  1828. \t\t\t\t\t\t\t\t\t\t\t</label>
  1829. \t\t\t\t\t\t\t\t\t</div>
  1830. \t\t\t\t\t\t\t\t</div>
  1831. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  1832. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  1833. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  1834. \t\t\t\t\t\t\t\t</div>
  1835. \t\t\t\t\t\t\t</div>
  1836. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  1837. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  1838. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  1839. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1840. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1841. \t\t\t\t\t\t\t\t\t\t</div>
  1842. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1843. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1844. \t\t\t\t\t\t\t\t\t\t</div>
  1845. \t\t\t\t\t\t\t\t\t</div>
  1846. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  1847. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo1\">
  1848. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo1\">
  1849. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  1850. \t\t\t\t\t\t\t\t\t\t\t-
  1851. \t\t\t\t\t\t\t\t\t\t\tName option</label>
  1852. \t\t\t\t\t\t\t\t\t</div>
  1853. \t\t\t\t\t\t\t\t</div>
  1854. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  1855. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  1856. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  1857. \t\t\t\t\t\t\t\t</div>
  1858. \t\t\t\t\t\t\t</div>
  1859. \t\t\t\t\t\t\t<div class=\"oneOption col-12 row\">
  1860. \t\t\t\t\t\t\t\t<div class=\"col-8\">
  1861. \t\t\t\t\t\t\t\t\t<div class=\"row\">
  1862. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1863. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1864. \t\t\t\t\t\t\t\t\t\t</div>
  1865. \t\t\t\t\t\t\t\t\t\t<div class=\"col-4\">
  1866. \t\t\t\t\t\t\t\t\t\t\t<img src=\"/upload/produits/vernis-a-ongles-laques-fuchsia-fiesta-1-62a2e00ab1b53.jpeg\" style=\"height:50px;border-radius:2px\">
  1867. \t\t\t\t\t\t\t\t\t\t</div>
  1868. \t\t\t\t\t\t\t\t\t</div>
  1869. \t\t\t\t\t\t\t\t\t<div class=\"custom-checkbox\" style=\"position: relative\">
  1870. \t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\" name=\"\" value=\"\" class=\"custom-control-input\" id=\"checkbo2\">
  1871. \t\t\t\t\t\t\t\t\t\t<label class=\"custom-control-label\" for=\"checkbo2\">
  1872. \t\t\t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">10 €</strong>
  1873. \t\t\t\t\t\t\t\t\t\t\t-
  1874. \t\t\t\t\t\t\t\t\t\t\tName option</label>
  1875. \t\t\t\t\t\t\t\t\t</div>
  1876. \t\t\t\t\t\t\t\t</div>
  1877. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  1878. \t\t\t\t\t\t\t\t\t<div style=\"height:36px\"></div>
  1879. \t\t\t\t\t\t\t\t\t<input type=\"number\" name=\"\" id=\"\" class=\"inputQtyOpt\" min=\"1\" value=\"1\"/>
  1880. \t\t\t\t\t\t\t\t</div>
  1881. \t\t\t\t\t\t\t</div>
  1882. \t\t\t\t\t\t</div>
  1883. \t\t\t\t\t\t{# {% endset %} #}
  1884. \t\t\t\t\t<!-- form modifsession prod -->
  1885. \t\t\t\t\t</div>
  1886. \t\t\t\t\t<div class=\"modal-footer\">
  1887. \t\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">Fermer</button>
  1888. \t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-primary\">Modifier</button>
  1889. \t\t\t\t\t</div>
  1890. \t\t\t\t{# {% endfor %}
  1891. \t\t\t{% endif %} #}
  1892. \t\t\t\t</form>
  1893. \t\t\t</div>
  1894. \t\t</div>
  1895. \t</div>
  1896. \t
  1897. \t<!-- Modal -->
  1898. \t<div class=\"content mt-5 mb-5\" style=\"margin-bottom:100px!important\">
  1899. \t\t<div class=\"container\">
  1900. \t\t\t<div class=\"row mb-5\">
  1901. \t\t\t\t<div class=\"tab-pane fade active show\" id=\"allguest\" role=\"tabpanel\" aria-labelledby=\"allguest-tab\" style=\"width:100%\">
  1902. \t\t\t\t\t<div class=\"card-body row justify-content-between\">
  1903. \t\t\t\t\t\t<h3>Mon panier ({{ products|length }}
  1904. \t\t\t\t\t\t\tproduit
  1905. \t\t\t\t\t\t\t{% if products|length > 1 %}s
  1906. \t\t\t\t\t\t\t{% endif %})</h3>
  1907. \t\t\t\t\t\t<a href=\"{{path('pdf_generate')}} \" class=\"btn btn-primary float-right\">Télécharger mon devis</a>
  1908. \t\t\t\t\t</div>
  1909. \t\t\t\t\t<div class=\"table-responsive\" style=\"width:100%\">
  1910. \t\t\t\t\t\t<table class=\"table mt-4\">
  1911. \t\t\t\t\t\t\t<thead>
  1912. \t\t\t\t\t\t\t\t<tr>
  1913. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-event\">Designation</th>
  1914. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-estimate\">Aperçu</th>
  1915. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-estimate\">Prix à l'unité</th>
  1916. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-actual\">Quantité</th>
  1917. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-paid\">Total produit</th>
  1918. \t\t\t\t\t\t\t\t\t<th class=\"wedding-budget-paid\"></th>
  1919. \t\t\t\t\t\t\t\t</tr>
  1920. \t\t\t\t\t\t\t</thead>
  1921. \t\t\t\t\t\t\t<tbody>
  1922. \t\t\t\t\t\t\t\t{% if pack %}
  1923. \t\t\t\t\t\t\t\t\t<tr>
  1924. \t\t\t\t\t\t\t\t\t\t<td>{{ pack.name }}</td>
  1925. \t\t\t\t\t\t\t\t\t\t<td><img src=\"{{ asset(constant('App\\\\Services\\\\File::IMAGE_PRODUCT_DIR')) ~ pack.image }}\" style=\"height:50px;border-radius:2px\"></td>
  1926. \t\t\t\t\t\t\t\t\t\t<td>
  1927. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ pack.price|number_format(2, '.') }}€</span>
  1928. \t\t\t\t\t\t\t\t\t\t</td>
  1929. \t\t\t\t\t\t\t\t\t\t<td>1</td>
  1930. \t\t\t\t\t\t\t\t\t\t<td>
  1931. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ pack.price|number_format(2, '.') }}€</span>
  1932. \t\t\t\t\t\t\t\t\t\t</td>
  1933. \t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  1934. \t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ path('front_my_basket_remove_pack', {'id': pack.id}) }}\" class=\"btn btn-rounded btn-default\">Supprimer du panier</a>
  1935. \t\t\t\t\t\t\t\t\t\t</td>
  1936. \t\t\t\t\t\t\t\t\t</tr>
  1937. \t\t\t\t\t\t\t\t{% endif %}
  1938. \t\t\t\t\t\t\t\t{% set TotalPriceProduct = 0 %}
  1939. \t\t\t\t\t\t\t\t{% set totOpt = 0 %}
  1940. \t\t\t\t\t\t\t\t{% set totGpOpt = 0 %}
  1941. \t\t\t\t\t\t\t\t{% for product in products %}
  1942. \t\t\t\t\t\t\t\t\t{% set optionObjectByProd = filter_service.getProductOptionByProduit(product.product) %}
  1943. \t\t\t\t\t\t\t\t\t
  1944. \t\t\t\t\t\t\t\t\t{# Product added #}
  1945. \t\t\t\t\t\t\t\t\t\t<tr class=\"border-bottom\" style=\"border-top: 1px solid #dee2e6 !important;\"> 
  1946. \t\t\t\t\t\t\t\t\t\t<td>{{ product.product.name }}
  1947. \t\t\t\t\t\t\t\t\t\t\t{% set isClothing = null %}
  1948. \t\t\t\t\t\t\t\t\t\t\t{% for subcategory in product.product.subCategories %}
  1949. \t\t\t\t\t\t\t\t\t\t\t\t{% if subcategory.isClothing %}
  1950. \t\t\t\t\t\t\t\t\t\t\t\t\t{% set isClothing = true %}
  1951. \t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1952. \t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  1953. \t\t\t\t\t\t\t\t\t\t\t{% if isClothing %}
  1954. \t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Taille :
  1955. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ product.size }}</strong>
  1956. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1957. \t\t\t\t\t\t\t\t\t\t\t{% set isColor = null %}
  1958. \t\t\t\t\t\t\t\t\t\t\t{% for subcategory in product.product.subCategories %}
  1959. \t\t\t\t\t\t\t\t\t\t\t
  1960. \t\t\t\t\t\t\t\t\t\t\t\t{% if subcategory.isColor %}
  1961. \t\t\t\t\t\t\t\t\t\t\t\t\t{% set isColor = true %}
  1962. \t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1963. \t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  1964. \t\t\t\t\t\t\t\t\t\t\t{% if isColor %}
  1965. \t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Couleur :
  1966. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ product.color }}</strong>
  1967. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1968. \t\t\t\t\t\t\t\t\t\t</td>
  1969. \t\t\t\t\t\t\t\t\t\t<td>
  1970. \t\t\t\t\t\t\t\t\t\t\t{% if product.product.photos.first != false %}
  1971. \t\t\t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset(constant('App\\\\Services\\\\File::IMAGE_PRODUCT_DIR')) ~ product.product.photos.first.url }}\" style=\"height:50px;border-radius:2px\">
  1972. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  1973. \t\t\t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset('images/vecteezy_vector-gear-logo-design-with-multi-colors-range_6172776.jpg') }}\" style=\"height:50px;border-radius:2px\">
  1974. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1975. \t\t\t\t\t\t\t\t\t\t</td>
  1976. \t\t\t\t\t\t\t\t\t\t{% if product.promo %}
  1977. \t\t\t\t\t\t\t\t\t\t\t{% set ProductPrice = product.product.price - product.promo %}
  1978. \t\t\t\t\t\t\t\t\t\t{% else %}
  1979. \t\t\t\t\t\t\t\t\t\t\t{% set ProductPrice = product.product.price %}
  1980. \t\t\t\t\t\t\t\t\t\t{% endif %}
  1981. \t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  1982. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">
  1983. \t\t\t\t\t\t\t\t\t\t\t\t{% if product.promo %}
  1984. \t\t\t\t\t\t\t\t\t\t\t\t\t<small>
  1985. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<del>{{ product.product.price|number_format(2, '.') }}€</del>
  1986. \t\t\t\t\t\t\t\t\t\t\t\t\t</small>
  1987. \t\t\t\t\t\t\t\t\t\t\t\t\t<strong>{{ ProductPrice|number_format(2, '.') }}€</strong>
  1988. \t\t\t\t\t\t\t\t\t\t\t\t{% else %}
  1989. \t\t\t\t\t\t\t\t\t\t\t\t\t{{ ProductPrice|number_format(2, '.') }}€
  1990. \t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1991. \t\t\t\t\t\t\t\t\t\t\t</span><br>
  1992. \t\t\t\t\t\t\t\t\t\t\t{% if product.promo %}(code promo -{{ product.promo }}€)
  1993. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  1994. \t\t\t\t\t\t\t\t\t\t</td>
  1995. \t\t\t\t\t\t\t\t\t\t{# Quantity product #}
  1996. \t\t\t\t\t\t\t\t\t\t<td class=\"actual-total\">{{ product.quantity }}</td>
  1997. \t\t\t\t\t\t\t\t\t\t{% set TotalWithQuantity = product.quantity * ProductPrice %}
  1998. \t\t\t\t\t\t\t\t\t\t{% set TotalPriceProduct = TotalPriceProduct + TotalWithQuantity %}
  1999. \t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  2000. \t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ TotalWithQuantity|number_format(2, '.') }}€</span>
  2001. \t\t\t\t\t\t\t\t\t\t</td>
  2002. \t\t\t\t\t\t\t\t\t\t<td class=\"paid-total d-flex justify-content-around\" style=\"column-gap: 5px;\">
  2003. \t\t\t\t\t\t\t\t\t\t\t<a href=\"{{ path('front_my_basket_remove_product', {'id': product.product.id}) }}\" class=\"btn btn-rounded btn-danger indicationSupp\" title=\"Supprimer du panier\" style=\"font-size: 17px;display: flex;align-items: center;\"><i class=\"fa fa-trash\" aria-hidden=\"true\"></i></a>
  2004. \t\t\t\t\t\t\t\t\t\t\t{# Supprimer du panier #}
  2005. \t\t\t\t\t\t\t\t\t\t\t{# onclick=\"getOptionByIdProd({{product.product.id}})\" data-id=\"{{product.product.id}}\" #}
  2006. \t\t\t\t\t\t\t\t\t\t\t<!-- Button trigger modal -->
  2007. \t\t\t\t\t\t\t\t\t\t{% for subcategory in product.product.subCategories %}
  2008. \t\t\t\t\t\t\t\t\t\t\t{% if subcategory.subCategorySlug != \"faire-part\" %}
  2009. \t\t\t\t\t\t\t\t\t\t\t\t<a onclick=\"getGroupOption({{product.product.id}})\" data-id=\"{{product.product.id}}\" class=\"btn btn-rounded btn-default modifProdSess\" data-toggle=\"modal\" data-target=\"#modalOptionGP\">
  2010. \t\t\t\t\t\t\t\t\t\t\t\t\tAjouter des options
  2011. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  2012. \t\t\t\t\t\t\t\t\t\t\t{% else %}
  2013. \t\t\t\t\t\t\t\t\t\t\t\t<a onclick=\"ajouterOptions('{{product.product.id}}','{{product.quantity}}','{{ProductPrice}}','{{ app.request.getSchemeAndHttpHost() }}');\" id=\"ajoutOption\" class=\"btn btn-rounded btn-default modifProdSess\" data-toggle=\"modal\">
  2014. \t\t\t\t\t\t\t\t\t\t\t\t\tAjouter des options
  2015. \t\t\t\t\t\t\t\t\t\t\t\t</a>
  2016. \t\t\t\t\t\t\t\t\t\t\t\t{# data-target=\"#modifAchatFairePart\" #}
  2017. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  2018. \t\t\t\t\t\t\t\t\t\t{% endfor %}
  2019. \t\t\t\t\t\t\t\t\t\t</td>
  2020. \t\t\t\t\t\t\t\t\t</tr>
  2021. \t\t\t\t\t\t\t\t\t{# Fin Product added #}
  2022. \t\t\t\t\t\t\t\t\t{# Option #}
  2023. \t\t\t\t\t\t\t\t\t{% for subCategories in product.product.subCategories.snapshot %}
  2024. \t\t\t\t\t\t\t\t\t\t{% if subCategories.subCategorySlug != \"faire-part\" %}
  2025. \t\t\t\t\t\t\t\t\t\t
  2026. \t\t\t\t\t\t\t\t\t\t\t{% for key,option in product.options %}
  2027. \t\t\t\t\t\t\t\t\t\t\t\t{% set optionObject = filter_service.getProductOption(key) %}
  2028. \t\t\t\t\t\t\t\t\t\t\t\t{# {% set TotalPriceProduct = TotalPriceProduct + optionObject.price %} #}
  2029. \t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"\" style=\"background:#fff\">
  2030. \t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-4\">
  2031. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>Option :</strong>
  2032. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ optionObject.name }}</td>
  2033. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# {% if isClothing %}
  2034. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Taille :
  2035. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ product.size }}</strong>
  2036. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %} #}
  2037. \t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  2038. \t\t\t\t\t\t\t\t\t\t\t\t\t{# {% if optionObject.image1 %}
  2039. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset(constant('App\\\\Services\\\\File::IMAGE_PRODUCT_DIR')) ~ optionObject.image1 }}\" style=\"height:50px;border-radius:2px\">
  2040. \t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %} #}
  2041. \t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  2042. \t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  2043. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# <span class=\"total-amount\">{{ optionObject.price|number_format(2, '.') }}€</span> #}
  2044. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\"></span>
  2045. \t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  2046. \t\t\t\t\t\t\t\t\t\t\t\t\t{# qty option #}
  2047. \t\t\t\t\t\t\t\t\t\t\t\t\t<td></td>
  2048. \t\t\t\t\t\t\t\t\t\t\t\t\t{# {% set totalOpt = null %}
  2049. \t\t\t\t\t\t\t\t\t\t\t\t\t{% for key,qty in product.qtyOption %}
  2050. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if optionObject.id == key %}
  2051. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"actual-total\">{{qty}}</td>
  2052. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totqtyOpt = optionObject.price * qty %}
  2053. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  2054. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ totqtyOpt|number_format(2, '.') }}€</span>
  2055. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  2056. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totOpt = totOpt + totqtyOpt %}
  2057. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %} 
  2058. \t\t\t\t\t\t\t\t\t\t\t\t\t{% endfor %} #}
  2059. \t\t\t\t\t\t\t\t\t\t\t\t\t{# qty option #}
  2060. \t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\"></td>
  2061. \t\t\t\t\t\t\t\t\t\t\t\t</tr>
  2062. \t\t\t\t\t\t\t\t\t\t\t\t
  2063. \t\t\t\t\t\t\t\t\t\t\t\t{% for valOption in option %}
  2064. \t\t\t\t\t\t\t\t\t\t\t\t\t<tr>
  2065. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-5\">{{ valOption[\"valeur\"] }}</td>
  2066. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td></td>
  2067. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\"><span class=\"total-amount\">{{ valOption[\"prix\"] }} €</span></td>
  2068. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>{{ valOption[\"qte\"] ? valOption[\"qte\"] : 1 }}</td>
  2069. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# <pre>
  2070. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ dump(valOption[\"qte\"]) }}
  2071. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</pre> #}
  2072. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totval = valOption[\"prix\"] * (valOption[\"qte\"] ? valOption[\"qte\"] : 1)  %}
  2073. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\"><span class=\"total-amount\">{{ totval }} €</spna></td>
  2074. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totGpOpt = totGpOpt + totval %}
  2075. \t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  2076. \t\t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  2077. \t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  2078. \t\t\t\t\t\t\t\t\t\t{% else %}
  2079. \t\t\t\t\t\t\t\t\t\t\t{% if product.options_farep is defined %}
  2080. \t\t\t\t\t\t\t\t\t\t\t\t{% for option in product.options_farep %}
  2081. \t\t\t\t\t\t\t\t\t\t\t
  2082. \t\t\t\t\t\t\t\t\t\t\t\t\t<tr style=\"background:#fff\">
  2083. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"pl-4\">
  2084. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<strong>Option :</strong>
  2085. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ option.nomoption }}
  2086. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  2087. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{# <br><strong>Format :
  2088. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ option.form }}</strong>
  2089. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Finition :
  2090. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ option.finition }}</strong>
  2091. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Papier :
  2092. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ option.papier}}</strong>
  2093. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br><strong>Etiquette :
  2094. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{ option.etiquette}} #}
  2095. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</strong></td>
  2096. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  2097. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td>
  2098. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% if option.imageoption %}
  2099. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img src=\"{{ asset(constant('App\\\\Services\\\\File::IMAGE_PRODUCT_DIR')) ~ option.imageoption }}\" style=\"height:50px;border-radius:2px\">
  2100. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{% endif %}
  2101. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  2102. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"estimate-total\">
  2103. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ option.price|number_format(2, '.') }}€</span>
  2104. \t\t\t\t\t\t\t\t\t\t\t\t\t\t</td> 
  2105. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# qty option #}
  2106. \t\t\t\t\t\t\t\t\t\t\t\t\t\t{# {% set totalOpt = null %}#}
  2107. \t\t\t\t\t\t\t\t\t\t\t\t\t\t
  2108. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"actual-total\">{{option.quantite}}</td>
  2109. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totqtyOpt = option.price * option.quantite %}
  2110. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\">
  2111. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"total-amount\">{{ totqtyOpt|number_format(2, '.') }}€</span>
  2112. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</td>
  2113. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{% set totOpt = totOpt + totqtyOpt %}
  2114. \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
  2115. \t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"paid-total\"></td>
  2116. \t\t\t\t\t\t\t\t\t\t\t\t\t</tr>
  2117. \t\t\t\t\t\t\t\t\t\t\t\t{% endfor %}
  2118. \t\t\t\t\t\t\t\t\t\t\t{% endif %}
  2119. \t\t\t\t\t\t\t\t\t\t\t
  2120. \t\t\t\t\t\t\t\t\t\t{% endif %}\t 
  2121. \t\t\t\t\t\t\t\t\t{% endfor %}
  2122. \t\t\t\t\t\t\t\t\t{# Fin Option #}
  2123. \t\t\t\t\t\t\t\t{% endfor %}
  2124. \t\t\t\t\t\t\t\t{% if pack or products is not empty %}
  2125. \t\t\t\t\t\t\t\t\t<tr>
  2126. \t\t\t\t\t\t\t\t\t\t<td>TOTAL :</td>
  2127. \t\t\t\t\t\t\t\t\t\t<td></td>
  2128. \t\t\t\t\t\t\t\t\t\t<td></td>
  2129. \t\t\t\t\t\t\t\t\t\t<td></td>
  2130. \t\t\t\t\t\t\t\t\t\t{% if pack %}
  2131. \t\t\t\t\t\t\t\t\t\t\t{% set TotalPriceProduct = TotalPriceProduct + pack.price  %}
  2132. \t\t\t\t\t\t\t\t\t\t{% endif %}
  2133. \t\t\t\t\t\t\t\t\t\t{% set totOptions = totOpt + totGpOpt %}
  2134. \t\t\t\t\t\t\t\t\t\t<td>{{ (TotalPriceProduct + totOptions)|number_format(2, '.') }}€</td>
  2135. \t\t\t\t\t\t\t\t\t</tr>
  2136. \t\t\t\t\t\t\t\t{% endif %}
  2137. \t\t\t\t\t\t\t\t{% if not pack and products is empty %}
  2138. \t\t\t\t\t\t\t\t\t<tr>
  2139. \t\t\t\t\t\t\t\t\t\t<td>Aucun produit ajouté au panier</td>
  2140. \t\t\t\t\t\t\t\t\t</tr>
  2141. \t\t\t\t\t\t\t\t{% endif %}
  2142. \t\t\t\t\t\t\t</tbody>
  2143. \t\t\t\t\t\t</table>
  2144. \t\t\t\t\t</div>
  2145. \t\t\t\t\t<div class=\"card-footer\" style=\"height:70px\">
  2146. \t\t\t\t\t\t{% if products|length > 0 or pack is not null %}
  2147. \t\t\t\t\t\t\t{% if is_granted('ROLE_ENTERPRISE') == false %}
  2148. \t\t\t\t\t\t\t\t<div class=\"float-left\">
  2149. \t\t\t\t\t\t\t\t\t{{ form_start(form, {'attr': {'class': 'form-inline'}}) }}
  2150. \t\t\t\t\t\t\t\t\t<div class=\"form-group\">
  2151. \t\t\t\t\t\t\t\t\t\t{{ form_widget(form.codePromo) }}
  2152. \t\t\t\t\t\t\t\t\t</div>
  2153. \t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn btn-default ml-3\">Valider</button>
  2154. \t\t\t\t\t\t\t\t\t{{ form_end(form) }}
  2155. \t\t\t\t\t\t\t\t\t{% if isMessagePromo is defined and isMessagePromo %}
  2156. \t\t\t\t\t\t\t\t\t\t<span style=\"color:green\">Code promo valide !</span>
  2157. \t\t\t\t\t\t\t\t\t{% endif %}
  2158. \t\t\t\t\t\t\t\t</div>
  2159. \t\t\t\t\t\t\t\t<div class=\"float-right\">
  2160. \t\t\t\t\t\t\t\t\t<a href=\"{{ path('front_command_livraison') }}\" class=\"btn btn-primary\">Commander</a>
  2161. \t\t\t\t\t\t\t\t</div>
  2162. \t\t\t\t\t\t\t{% endif %}
  2163. \t\t\t\t\t\t{% endif %}
  2164. \t\t\t\t\t</div>
  2165. \t\t\t\t</div>
  2166. \t\t\t</div>
  2167. \t\t</div>
  2168. \t</div>
  2169. {% endblock %}
  2170. {% block javascript %}
  2171. \t<script>
  2172. \t\tfunction wcqib_refresh_quantity_increments() {
  2173. \t\t\tjQuery(\"div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)\").each(function (a, b) {
  2174. \t\t\t\tvar c = jQuery(b);
  2175. \t\t\t\tc.addClass(\"buttons_added\"),
  2176. \t\t\t\t\tc.children().first().before('<input type=\"button\" value=\"-\" class=\"minus\" />'),
  2177. \t\t\t\t\tc.children().last().after('<input type=\"button\" value=\"+\" class=\"plus\" />')
  2178. \t\t\t})
  2179. \t\t}
  2180. \t\tString.prototype.getDecimals || (String.prototype.getDecimals = function () {
  2181. \t\t\tvar a = this,
  2182. \t\t\t\tb = (\"\" + a).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?\$/);
  2183. \t\t\treturn b ? Math.max(0, (b[1] ? b[1].length : 0) - (b[2] ? + b[2] : 0)) : 0
  2184. \t\t}),
  2185. \t\t\tjQuery(document).ready(function () {
  2186. \t\t\t\twcqib_refresh_quantity_increments()
  2187. \t\t\t}),
  2188. \t\t\tjQuery(document).on(\"updated_wc_div\", function () {
  2189. \t\t\t\twcqib_refresh_quantity_increments()
  2190. \t\t\t}),
  2191. \t\t\tjQuery(document).on(\"click\", \".plus, .minus\", function () {
  2192. \t\t\t\tvar a = jQuery(this).closest(\".quantity\").find(\".qty\"),
  2193. \t\t\t\t\tb = parseFloat(a.val()),
  2194. \t\t\t\t\tc = parseFloat(a.attr(\"max\")),
  2195. \t\t\t\t\td = parseFloat(a.attr(\"min\")),
  2196. \t\t\t\t\te = a.attr(\"step\");
  2197. \t\t\t\tb && \"\" !== b && \"NaN\" !== b || (b = 0),
  2198. \t\t\t\t\t\"\" !== c && \"NaN\" !== c || (c = \"\"),
  2199. \t\t\t\t\t\"\" !== d && \"NaN\" !== d || (d = 0),
  2200. \t\t\t\t\t\"any\" !== e && \"\" !== e && void 0 !== e && \"NaN\" !== parseFloat(e) || (e = 1),
  2201. \t\t\t\t\tjQuery(this).is(\".plus\") ? c && b >= c ? a.val(c) : a.val((b + parseFloat(e)).toFixed(e.getDecimals())) : d && b <= d ? a.val(d) : b > 0 && a.val((b - parseFloat(e)).toFixed(e.getDecimals())),
  2202. \t\t\t\t\ta.trigger(\"change\")
  2203. \t\t\t});
  2204. \t</script>
  2205. \t<script>
  2206. \t\t{# Lading script... #}
  2207. \t\tconst loader = document.querySelector('#MyLoading');
  2208. \t\tfunction afficheLoading() {
  2209. \t\t\tloader.classList.add('MyShow');
  2210. \t\t}
  2211. \t\tfunction cacherLoading() {
  2212. \t\t\tloader.classList.remove('MyShow');
  2213. \t\t}
  2214. \t\t{# Fin Lading script... #}
  2215. \t\tconst containerOpt = document.querySelector('.containerOption');
  2216. \t\t
  2217. \t\t
  2218. \t\tfunction getOptionByIdProd(idProd) {
  2219. \t\t\tafficheLoading();
  2220. \t\t\t
  2221. \t\t\tconst data = {
  2222. \t\t\t\tidProd: idProd
  2223. \t\t\t};
  2224. \t\t\tlet datas = new FormData();
  2225. \t\t\tdatas.append(\"data\", JSON.stringify(data));
  2226. \t\t\tif (containerOpt.children) {
  2227. \t\t\t\tvar first = containerOpt.firstElementChild;
  2228. \t\t\t\twhile (first) {
  2229. \t\t\t\t\tfirst.remove();
  2230. \t\t\t\t\tfirst = containerOpt.firstElementChild;
  2231. \t\t\t\t}
  2232. \t\t\t}
  2233. \t\t\tfetch(`/get-option/\${idProd}`)
  2234. \t\t\t.then(response => response.json())
  2235. \t\t\t.then(data => {
  2236. \t\t\t\tcacherLoading();
  2237. \t\t\t\tconsole.log(data);
  2238. \t\t\t\tdata[0].map((item)=>{
  2239. \t\t\t\t\t//console.log(\"idOpt vao miditra\",item.id);
  2240. \t\t\t\t\tlet objQty = data[1].qty;
  2241. \t\t\t\t\tlet idProd = document.createElement('input');
  2242. \t\t\t\t\tidProd.type = \"hidden\";
  2243. \t\t\t\t\tidProd.value = data[2];
  2244. \t\t\t\t\tidProd.setAttribute('name','idProd');
  2245. \t\t\t\t\tlet oneOpt = document.createElement('div');
  2246. \t\t\t\t\toneOpt.classList.add('col-12');
  2247. \t\t\t\t\toneOpt.classList.add('row');
  2248. \t\t\t\t\tlet col8 = document.createElement('div');
  2249. \t\t\t\t\tcol8.classList.add('col-8');
  2250. \t\t\t\t\tlet row = document.createElement('div');
  2251. \t\t\t\t\trow.classList.add('row');
  2252. \t\t\t\t\tlet col4a = document.createElement('div');
  2253. \t\t\t\t\tcol4a.classList.add('col-4');
  2254. \t\t\t\t\tlet col4b = document.createElement('div');
  2255. \t\t\t\t\tcol4b.classList.add('col-4');
  2256. \t\t\t\t\tlet img1 = document.createElement('img');
  2257. \t\t\t\t\timg1.classList.add('imgOptModal');
  2258. \t\t\t\t\t// image
  2259. \t\t\t\t\tif (item.image1 == null){
  2260. \t\t\t\t\t\timg1.style.display = \"none\";
  2261. \t\t\t\t\t} else {
  2262. \t\t\t\t\t\timg1.src = `/upload/produits/\${item.image1}`;
  2263. \t\t\t\t\t}
  2264. \t\t\t\t\tlet img2 = document.createElement('img');
  2265. \t\t\t\t\timg2.classList.add('imgOptModal');
  2266. \t\t\t\t\tif (item.image2 == null){
  2267. \t\t\t\t\t\timg2.style.display = \"none\";
  2268. \t\t\t\t\t} else {
  2269. \t\t\t\t\t\timg2.src = `/upload/produits/\${item.image2}`;
  2270. \t\t\t\t\t}
  2271. \t\t\t\t\tlet customCheckBox = document.createElement('div');
  2272. \t\t\t\t\tcustomCheckBox.classList.add('custom-checkbox');
  2273. \t\t\t\t\tcustomCheckBox.style.position = \"relative\";
  2274. \t\t\t\t\tlet inputCheckBox = document.createElement('input');
  2275. \t\t\t\t\tinputCheckBox.type = \"checkbox\";
  2276. \t\t\t\t\tinputCheckBox.classList.add('custom-control-input');
  2277. \t\t\t\t\tinputCheckBox.classList.add('option-checkbox');
  2278. \t\t\t\t\tinputCheckBox.setAttribute('id',`idCheck\${item.id}`);
  2279. \t\t\t\t\tinputCheckBox.setAttribute('name',`options[\${item.id}]`);
  2280. \t\t\t\t\tinputCheckBox.setAttribute('value',`\${item.price}`);
  2281. \t\t\t\t\t// checked if already in session
  2282. \t\t\t\t\tfor (const idOpt in objQty) {
  2283. \t\t\t\t\t\tif(item.id == idOpt){
  2284. \t\t\t\t\t\t\tinputCheckBox.checked = true;
  2285. \t\t\t\t\t\t}
  2286. \t\t\t\t\t}
  2287. \t\t\t\t\tlet customControlLabel = document.createElement('label');
  2288. \t\t\t\t\tcustomControlLabel.classList.add('custom-control-label');
  2289. \t\t\t\t\tcustomControlLabel.setAttribute('for',`idCheck\${item.id}`);
  2290. \t\t\t\t\t
  2291. \t\t\t\t\tlet nameStrong = document.createElement('strong');
  2292. \t\t\t\t\tnameStrong.innerHTML = `\${item.price} €`;
  2293. \t\t\t\t\tnameStrong.style.marginLeft = \"31px\";
  2294. \t\t\t\t\tlet nameSpan = document.createElement('span');
  2295. \t\t\t\t\tnameSpan.innerHTML = `- \${item.name}`;
  2296. \t\t\t\t\tlet nameSpan2 = document.createElement('span');
  2297. \t\t\t\t\tnameSpan2.innerHTML = `<button type=\"button\">modif</button>`;
  2298. \t\t\t\t\tlet col4 = document.createElement('div');
  2299. \t\t\t\t\tcol4.classList.add('col-4');
  2300. \t\t\t\t\tlet myheight = document.createElement('div');
  2301. \t\t\t\t\tmyheight.style.height = \"36px\";
  2302. \t\t\t\t\tlet inputQty = document.createElement('input');
  2303. \t\t\t\t\tinputQty.type = \"number\";
  2304. \t\t\t\t\tinputQty.classList.add('inputQtyOpt');
  2305. \t\t\t\t\tinputQty.setAttribute('min','1');
  2306. \t\t\t\t\tinputQty.setAttribute('id',`QtyidCheck\${item.id}`);
  2307. \t\t\t\t\tinputQty.setAttribute('name',`QtyOption[\${item.id}]`);
  2308. \t\t\t\t\tinputQty.setAttribute('value','1');
  2309. \t\t\t\t\t// get value qty in session
  2310. \t\t\t\t\tfor (const idOpt in objQty) {
  2311. \t\t\t\t\t\tif(item.id == idOpt) {
  2312. \t\t\t\t\t\t\tinputQty.setAttribute('value',`\${objQty[idOpt]}`);
  2313. \t\t\t\t\t\t} 
  2314. \t\t\t\t\t}
  2315. \t\t\t\t\tcol4.appendChild(myheight);
  2316. \t\t\t\t\tcol4.appendChild(inputQty);
  2317. \t\t\t\t\tcol4a.appendChild(img1);
  2318. \t\t\t\t\tcol4b.appendChild(img2);
  2319. \t\t\t\t\trow.appendChild(col4a);
  2320. \t\t\t\t\trow.appendChild(col4b);
  2321. \t\t\t\t\tcustomControlLabel.appendChild(nameStrong);
  2322. \t\t\t\t\tcustomControlLabel.appendChild(nameSpan);
  2323. \t\t\t\t\tcustomCheckBox.appendChild(inputCheckBox);
  2324. \t\t\t\t\tcustomCheckBox.appendChild(customControlLabel);
  2325. \t\t\t\t\tcol8.appendChild(row);
  2326. \t\t\t\t\tcol8.appendChild(customCheckBox);
  2327. \t\t\t\t\toneOpt.appendChild(idProd);
  2328. \t\t\t\t\toneOpt.appendChild(col8);
  2329. \t\t\t\t\toneOpt.appendChild(col4);
  2330. \t\t\t\t\tcontainerOpt.appendChild(oneOpt);
  2331. \t\t\t\t});
  2332. \t\t\t\t
  2333. \t\t\t\t/*let idp = document.createElement(\"p\");
  2334. \t\t\t\tidp.textContent = data;
  2335. \t\t\t\tcontainerOpt.appendChild(idp);*/
  2336. \t\t\t\t/*fetch('/get-option')
  2337. \t\t\t\t.then(obj => obj.json())
  2338. \t\t\t\t.then(objjs => console.log(objjs));*/
  2339. \t\t\t\tif(data) {
  2340. \t\t\t\t\tconst optionCheckbox = document.querySelectorAll('.option-checkbox');
  2341. \t\t\t\t\t
  2342. \t\t\t\t\tfor (var i = 0; i < optionCheckbox.length; i++) {
  2343. \t\t\t\t\t\tlet qtyOpt = document.getElementById(`Qty\${optionCheckbox[i].id}`);
  2344. \t\t\t\t\t\t// disable unchecked checkbox
  2345. \t\t\t\t\t\tif(!optionCheckbox[i].checked) {
  2346. \t\t\t\t\t\t\tqtyOpt.disabled = true;
  2347. \t\t\t\t\t\t\tqtyOpt.style.display = \"none\";
  2348. \t\t\t\t\t\t}
  2349. \t\t\t\t\t\toptionCheckbox[i].addEventListener('change', (optMod) => {
  2350. \t\t\t\t\t\t\tif (optMod.target.checked) {
  2351. \t\t\t\t\t\t\t\tqtyOpt.disabled = false;
  2352. \t\t\t\t\t\t\t\tqtyOpt.style.display = \"block\";
  2353. \t\t\t\t\t\t\t} else {
  2354. \t\t\t\t\t\t\t\tqtyOpt.disabled = true;
  2355. \t\t\t\t\t\t\t\tqtyOpt.style.display = \"none\";
  2356. \t\t\t\t\t\t\t}
  2357. \t\t\t\t\t\t})
  2358. \t\t\t\t\t}
  2359. \t\t\t\t}
  2360. \t\t\t});
  2361. \t\t}
  2362. \t</script>
  2363. \t<script>
  2364. \tfunction getGroupOption(id_prod) {
  2365. \t\t// console.log('kokokoko',url);
  2366. \t\tconsole.log('isID',id_prod);
  2367. \t\t// var id_product=314;
  2368. \t\t\$(\"#valeurgropOption\").html(\"\");
  2369. \t\tfetch(`/tous-options-groups/\${id_prod}`)
  2370. \t\t.then(response=> response.json())
  2371. \t\t.then(data=>{
  2372. \t\t\tconsole.log('tous option', data);
  2373. \t\t\t\$(\"#valeurgropOption\").append(data);
  2374. \t\t});
  2375. \t\t
  2376. \t}
  2377. \tfunction validechoiModalGroupoption() {
  2378. \t\t// \$(\"#modalOptionGP\").modal(\"hide\");
  2379. \t\t
  2380. \t\tvar url = window.location.href.split('/');
  2381. \t\tvar param_url = url[0]+'//'+url[2];
  2382.         const formData = new FormData();
  2383. \t\tvar idProduit = \$('#id_produit').val();
  2384. \t\tconsole.log(\"id_porduit\",idProduit);
  2385. \t\t
  2386. \t\tvar goption= document.getElementsByClassName('goption');
  2387. \t\tvar labels =new Array();
  2388. \t\tfor (let i = 0; i < goption.length; i++) {
  2389. \t\t\tvar id_goption = goption[i].id.split(\"_\");
  2390. \t\t\tvar label= document.getElementsByClassName('label_'+id_goption[1]);
  2391. \t\t\tvar hidden= document.getElementsByClassName('hidden_'+id_goption[1]);
  2392. \t\t\tvar qte= document.getElementsByClassName('qte_'+id_goption[1]);
  2393. \t\t\t
  2394. \t\t\t// console.log('labeb',label);
  2395. \t\t\tvar compter=0;
  2396. \t\t\t
  2397. \t\t\tvar lab =new Array();
  2398. \t\t\tvar qt =new Array();
  2399. \t\t\tfor (let l = 0; l < label.length; l++) {
  2400. \t\t\tconsole.log('type', label[l].type);
  2401. \t\t\t\tif (label[l].type==\"checkbox\" && label[l].checked) {
  2402. \t\t\t\t\t
  2403. \t\t\t\t\tlab[compter] = hidden[l].value;
  2404. \t\t\t\t\tqt[compter] = qte[l].value;
  2405. \t\t\t\t\tcompter++
  2406. \t\t\t\t}
  2407. \t\t\t\tif (label[l].type==\"select-one\" && label[l].value != \"\") {    
  2408. \t\t\t\t\tlab[compter] = label[l].value;
  2409. \t\t\t\t\tqt[compter] = qte[l].value;
  2410. \t\t\t\t\tcompter++
  2411. \t\t\t\t}
  2412. \t\t\t}
  2413. \t\t\tlabels[i] = {idoption: id_goption[1], labelo: lab, qte: qt};
  2414. \t\t}
  2415. \t\t\tconsole.log('valin label',labels);
  2416. \t\t\t
  2417. \t\t\t// localStorage.setItem('produit_groups', JSON.stringify(labels));
  2418.             
  2419. \t\t\tformData.append(\"modifGroupOption\", JSON.stringify(labels));
  2420. \t\t\tfetch(`\${param_url}/updateOptionGroups/\${idProduit}`, {
  2421.             method: \"POST\",
  2422.             body: formData
  2423. \t\t\t\t})
  2424. \t\t\t\t.then(response=> response.json())
  2425. \t\t\t\t.then(data=>{
  2426. \t\t\t\tconsole.log('data_io',data);
  2427. \t\t\t\tif (data.message == \"ok\") {
  2428. \t\t\t\t\twindow.location.reload();
  2429. \t\t\t\t}
  2430. \t\t\t\t\$(\"#modalOptionGP\").modal(\"hide\");
  2431. \t\t\t});
  2432. \t}
  2433. \t</script>
  2434. \t<script>
  2435. \tfunction ajouterOptions(idproduit,qte,prix,url) { 
  2436. \t\t
  2437. \t\tfetch(`\${url}/tousoption/\${idproduit}`)
  2438. \t\t.then(response=> response.json())
  2439. \t\t.then(data=>{
  2440. \t\t\tvar templ=\"\";
  2441. \t\t\tvar tousId=[];
  2442. \t\t\tconsole.log(\"cocher\",data.opt_pre);
  2443. \t\t\tfor (let i = 0; i < data.options.length; i++) {
  2444. \t\t\t\ttousId.push(data.options[i].id);
  2445. \t\t\t\ttempl+=`<div class=\"oneOptionFP\">
  2446. \t\t\t\t\t\t\t<div class=\"row\">
  2447. \t\t\t\t
  2448. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  2449. \t\t\t\t\t\t\t\t\t<img id=\"optionbtn1img\" src=\"/upload/produits/\${data.options[i].image1}\" style=\"height:50px;border-radius:2px\">
  2450. \t\t\t\t\t\t\t\t</div>
  2451. \t\t\t\t\t\t\t\t<div class=\"col-4\">
  2452. \t\t\t\t\t\t\t\t\t<img id=\"optionbtn1img\" src=\"/upload/produits/\${data.options[i].image2}\" style=\"height:50px;border-radius:2px\">
  2453. \t\t\t\t\t\t\t\t</div>
  2454. \t\t\t\t\t\t\t</div>
  2455. \t\t\t\t\t\t\t<div class=\"custom-checkbox my-1\" style=\"position: relative\">
  2456. \t\t\t\t\t\t\t\t<input type=\"checkbox\" data-price=\"\${data.options[i].price}\" data-id=\"\${data.options[i].id}\" name=\"\" value=\"\" class=\"custom-control-input checkboxFP\" id=\"checkboFP_\${[i]}\">
  2457. \t\t\t\t\t\t\t\t<label class=\"custom-control-label position-relative\" for=\"checkboFP_\${[i]}\">
  2458. \t\t\t\t\t\t\t\t\t<strong style=\"margin-left: 31px;\">\${data.options[i].price}</strong>
  2459. \t\t\t\t\t\t\t\t\t<span>-
  2460. \t\t\t\t\t\t\t\t\t\${data.options[i].name}</span>
  2461. \t\t\t\t\t\t\t\t\t</label>
  2462. \t\t\t\t\t\t\t\t<button class=\"btn\" id=\"boutonModif_\${[i]}\" onclick=\"modifOption('\${data.options[i].id}');\" type=\"button\" style=\"display: none\">Modifier</button>
  2463. \t\t\t\t\t\t\t</div>
  2464. \t\t\t\t\t\t</div>`;\t\t\t
  2465. \t\t\t}
  2466. \t\t
  2467. \t\t\t\$('#id_produit').val(idproduit);
  2468. \t\t\t\$('#price_produit').val(prix);
  2469. \t\t\t\$('#qte_produit').val(qte);
  2470. \t\t\t\$('#modifAchatFairePart').modal(\"show\");
  2471. \t\t\t\$('#tousOptions').html(templ);
  2472. \t\t\tfor (let k = 0; k < tousId.length; k++) {
  2473. \t\t\t   console.log('atooo',tousId,tousId.length);
  2474. \t\t\t\tconsole.log('dataio',data.opt_pre);
  2475. \t\t\t\t// for (let a = 0; a < data.opt_pre.length; a++) {
  2476. \t\t\t\t\t// console.log('avvvvvi',data.opt_pre.length);
  2477. \t\t\t\t\tfor(var i in data.opt_pre) {
  2478. \t\t\t\t\t\tif(tousId[k]== data.opt_pre[i].idoption){
  2479. \t\t\t\t\t\t\tconsole.log(\"tonga aty ihany\");
  2480. \t\t\t\t\t\t\t\$('#checkboFP_'+[k]).prop('checked', true);\t
  2481. \t\t\t\t\t\t}
  2482. \t\t\t\t\t}
  2483. \t\t\t\t// }
  2484. \t\t\t\tfor (const key in \$('#checkboFP_'+[k])) {
  2485. \t\t\t\t\tif (\$('#checkboFP_'+[k])[key].checked) {\t
  2486. \t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: block !important\");
  2487. \t\t\t\t\t}
  2488. \t\t\t\t\telse{
  2489. \t\t\t\t\t\tvar evt = document.getElementById('checkboFP_'+[k]);
  2490. \t\t\t\t\t\tevt.addEventListener('change',(event) => {
  2491. \t\t\t\t\t\t\tif (event.target.checked) {
  2492. \t\t\t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: block !important\");
  2493. \t\t\t\t\t\t\t}else{
  2494. \t\t\t\t\t\t\t\t\$('#boutonModif_'+[k]).attr(\"style\", \"display: none !important\");
  2495. \t\t\t\t\t\t\t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  2496. \t\t\t\t\t\t\t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  2497. \t\t\t\t\t\t\t}
  2498. \t\t\t\t\t\t});
  2499. \t\t\t\t\t}
  2500. \t\t\t\t}
  2501. \t\t\t}
  2502. \t\t});
  2503. \t}
  2504. \tfunction modifOption(idopt) {
  2505. \t\t
  2506. \t\tvar url = window.location.href.split('/');
  2507. \t\tvar param_url = url[0]+'//'+url[2];
  2508. \t\tfetch(`\${param_url}/option/\${idopt}`)
  2509. \t\t.then(response=> response.json())
  2510. \t\t.then(data=>{
  2511. \t\t
  2512. \t\t\t\$(\".m-info\").attr(\"style\", \"display: none !important\")
  2513. \t\t\t\$(\".forme_options\").attr(\"style\", \"display: block !important\")
  2514. \t\t\t\$(\".nice-select\").attr(\"style\", \"display: none !important\");
  2515. \t\t\t\$(\"#id_optionFP\").val(idopt);
  2516. \t\t\t\$(\"#name_optionFP\").val(data.options.name);
  2517. \t\t\t\$(\"#image_optionFP\").val(data.options.image1);
  2518. \t
  2519. \t\t\tif ( typeof data.options.colorsOption != \"undefined\" && data.options.colorsOption != null && data.options.colorsOption.length != null && data.options.colorsOption.length > 0) {
  2520. \t\t\t\tvar colorso =\"\";
  2521. \t\t\t\tfor (let i = 0; i < data.options.colorsOption.length; i++) {
  2522. \t\t\t\t\tcolorso +='<option>'+ data.options.colorsOption[i]+'</option>'
  2523. \t\t\t\t}
  2524. \t\t\t\t\$(\"#optionFP_color\").html(colorso);
  2525. \t\t\t\t\$(\".optionFP_color\").attr(\"style\", \"display: block !important\");
  2526. \t\t\t\t\$(\"#optionFP_color\").attr(\"style\", \"display: block !important\");
  2527. \t\t\t}
  2528. \t\t\telse{
  2529. \t\t\t\t\$(\".optionFP_color\").attr(\"style\", \"display: none !important\");
  2530. \t\t\t}
  2531. \t\t\tif (typeof data.options.format != \"undefined\" && data.options.format != null && data.options.format.length != null && data.options.format.length > 0) {
  2532. \t\t\t\tvar formatopt =\"\";
  2533. \t\t\t\tfor (let i = 0; i < data.options.format.length; i++) {
  2534. \t\t\t\t\tformatopt +='<option>'+data.options.format[i]+'</option>'
  2535. \t\t\t\t}
  2536. \t\t\t\t\$(\"#optionFP_format\").html(formatopt);
  2537. \t\t\t\t\$(\".optionFP_format\").attr(\"style\", \"display: block !important\");
  2538. \t\t\t\t\$(\"#optionFP_format\").attr(\"style\", \"display: block !important\");
  2539. \t\t\t}
  2540. \t\t\telse{
  2541. \t\t\t\t\$(\".optionFP_format\").attr(\"style\", \"display: none !important\");
  2542. \t\t\t}
  2543. \t\t\tif (typeof data.options.finition != \"undefined\" && data.options.finition != null && data.options.finition.length != null && data.options.finition.length > 0) {
  2544. \t\t\t\tvar finitions =\"\";
  2545. \t\t\t\tfor (let i = 0; i < data.options.finition.length; i++) {
  2546. \t\t\t\t\tfinitions +='<option>'+data.options.finition[i]+'</option>'
  2547. \t\t\t\t}
  2548. \t\t\t\t\$(\"#optionFP_finition\").html(finitions);
  2549. \t\t\t\t\$(\".optionFP_finition\").attr(\"style\", \"display: block !important\");
  2550. \t\t\t\t\$(\"#optionFP_finition\").attr(\"style\", \"display: block !important\");
  2551. \t\t\t}
  2552. \t\t\telse{
  2553. \t\t\t\t\$(\".optionFP_finition\").attr(\"style\", \"display: none !important\");
  2554. \t\t\t}
  2555. \t\t\tif (typeof data.options.papier != \"undefined\" && data.options.papier != null && data.options.papier.length != null && data.options.papier.length > 0) {
  2556. \t\t\t\tvar papiers =\"\";
  2557. \t\t\t\tfor (let i = 0; i < data.options.papier.length; i++) {
  2558. \t\t\t\t\tpapiers +='<option>'+data.options.papier[i]+'</option>'
  2559. \t\t\t\t}
  2560. \t\t\t\t\$(\"#optionFP_papier\").html(papiers);
  2561. \t\t\t\t\$(\".optionFP_papier\").attr(\"style\", \"display: block !important\");
  2562. \t\t\t\t\$(\"#optionFP_papier\").attr(\"style\", \"display: block !important\");
  2563. \t\t\t}
  2564. \t\t\telse{
  2565. \t\t\t\t\$(\".optionFP_papier\").attr(\"style\", \"display: none !important\");
  2566. \t\t\t}
  2567. \t\t\tif (typeof data.options.quantite != \"undefined\" && data.options.quantite != null && data.options.quantite.length != null && data.options.quantite.length > 0) {
  2568. \t\t\t\tvar quantites =\"\";
  2569. \t\t\t\tfor (let i = 0; i < data.options.quantite.length; i++) {
  2570. \t\t\t\t\tquantites +='<option>'+data.options.quantite[i]+'</option>'
  2571. \t\t\t\t}
  2572. \t\t\t\t\$(\"#optionFP_quantite\").html(quantites);
  2573. \t\t\t\t\$(\".optionFP_quantite\").attr(\"style\", \"display: block !important\");
  2574. \t\t\t\t\$(\"#optionFP_quantite\").attr(\"style\", \"display: block !important\");
  2575. \t\t\t}
  2576. \t\t\telse{
  2577. \t\t\t\t\$(\".optionFP_quantite\").attr(\"style\", \"display: none !important\");
  2578. \t\t\t}
  2579. \t\t\tif (typeof data.options.etiquette != \"undefined\" && data.options.etiquette != null && data.options.etiquette.length != null && data.options.etiquette.length > 0) {
  2580. \t\t\t\tvar etiquettes =\"\";
  2581. \t\t\t\tfor (let i = 0; i < data.options.etiquette.length; i++) {
  2582. \t\t\t\t\tetiquettes +='<option>'+data.options.etiquette[i]+'</option>'
  2583. \t\t\t\t}
  2584. \t\t\t\t\$(\"#optionFP_etiquette\").html(etiquettes);
  2585. \t\t\t\t\$(\".optionFP_etiquette\").attr(\"style\", \"display: block !important\");
  2586. \t\t\t\t\$(\"#optionFP_etiquette\").attr(\"style\", \"display: block !important\");
  2587. \t\t\t}
  2588. \t\t\telse{
  2589. \t\t\t\t\$(\".optionFP_etiquette\").attr(\"style\", \"display: none !important\");
  2590. \t\t\t}
  2591. \t\t\tif (typeof data.options.ruban != \"undefined\" && data.options.ruban != null && data.options.ruban.length != null && data.options.ruban.length > 0) {
  2592. \t\t\t\tvar rubans =\"\";
  2593. \t\t\t\tfor (let i = 0; i < data.options.ruban.length; i++) {
  2594. \t\t\t\t\trubans +='<option>'+data.options.ruban[i]+'</option>'
  2595. \t\t\t\t}
  2596. \t\t\t\t\$(\"#optionFP_ruban\").html(rubans);
  2597. \t\t\t\t\$(\".optionFP_ruban\").attr(\"style\", \"display: block !important\");
  2598. \t\t\t\t\$(\"#optionFP_ruban\").attr(\"style\", \"display: block !important\");
  2599. \t\t\t}
  2600. \t\t\telse{
  2601. \t\t\t\t\$(\".optionFP_ruban\").attr(\"style\", \"display: none !important\");
  2602. \t\t\t}
  2603. \t\t});\t
  2604. \t}
  2605. \tfunction Anulleroption() {
  2606. \t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  2607. \t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  2608. \t}
  2609. \tfunction validechoioption() {
  2610. \t\t\$(\".forme_options\").attr(\"style\", \"display: none !important\")
  2611. \t\t\$(\".m-info\").attr(\"style\", \"display: block !important\")
  2612. \t\tconst data = {
  2613. \t\t\t\tidoption: \$(\"#id_optionFP\").val(),
  2614. \t\t\t\tnomoption: \$(\"#name_optionFP\").val(),
  2615. \t\t\t\timageoption: \$(\"#image_optionFP\").val(),
  2616. \t\t\t\tcolor: \$(\"#optionFP_color\").val(),
  2617. \t\t\t\tform: \$(\"#optionFP_format\").val(),
  2618. \t\t\t\tfinition: \$(\"#optionFP_finition\").val(),
  2619. \t\t\t\tpapier: \$(\"#optionFP_papier\").val(),
  2620. \t\t\t\tquantite: \$(\"#optionFP_quantite\").val(),
  2621. \t\t\t\tetiquette: \$(\"#optionFP_etiquette\").val(),
  2622. \t\t\t\truban: \$(\"#optionFP_ruban\").val(),
  2623. \t\t\t};
  2624. \t\tlocalStorage.setItem(\$(\"#id_optionFP\").val(), JSON.stringify(data));
  2625. \t\t\t
  2626. \t}
  2627. \tfunction validechoiModaloption() {
  2628. \t\tvar url = window.location.href.split('/');
  2629. \t\tvar param_url = url[0]+'//'+url[2];
  2630.         const formData = new FormData();
  2631. \t\tvar idProduit = \$('#id_produit').val();
  2632. \t\tformData.append(\"quantity\",\$('#qte_produit').val());
  2633. \t\tformData.append(\"price\",\$('#price_produit').val());
  2634.        if (Object.keys(localStorage).length != 0) {
  2635. \t\tvar values = [],
  2636. \t\tkeys = Object.keys(localStorage),
  2637. \t\ti = keys.length;
  2638.      
  2639. \t\twhile ( i-- ) {
  2640. \t\t\tvalues.push( localStorage.getItem(keys[i]) );
  2641. \t\t\tlocalStorage.removeItem(keys[i]);
  2642. \t\t}
  2643. \t\t
  2644. \t\tformData.append(\"tail\",values.length);
  2645. \t\tconsole.log(\"zzzzz\",values);
  2646. \t\tfor (let j = 0; j < values.length; j++) {\t
  2647. \t\t   formData.append(\"OpId_\"+j, values[j]);
  2648. \t\t}
  2649. \t   }
  2650. \t   
  2651. \t\tvar checkOpt = document.querySelectorAll('.checkboxFP');
  2652. \t\tconsole.log(\"fff\", checkOpt);
  2653. \t\tconsole.log(\"eee\", checkOpt.length);
  2654. \t\tvar valeur=[];
  2655. \t\tfor (var p = 0; p < checkOpt.length; p++) {
  2656. \t\t\t
  2657. \t\t\tif (checkOpt[p].checked) {
  2658. \t\t\t\tvar idOpt = checkOpt[p].getAttribute('data-id');
  2659. \t\t\t\tvaleur.push(idOpt);
  2660. \t\t\t}
  2661. \t\t}
  2662. \t\t\tformData.append(\"idoptions\",valeur);
  2663. \t   
  2664. \t\tfetch(`\${param_url}/updateOptionFairepart/\${idProduit}`, {
  2665.             method: \"POST\",
  2666.             body: formData
  2667.         })
  2668. \t\t.then(response=> response.json())
  2669. \t\t.then(data=>{
  2670.           console.log('data_io',data);
  2671. \t\t  if (data.message == \"ok\") {
  2672. \t\t\twindow.location.reload();
  2673. \t\t  }
  2674. \t   \$(\"#modifAchatFairePart\").modal(\"hide\");
  2675. \t\t});
  2676. \t}
  2677. \t</script>
  2678. {% endblock %}""front/command/basket.html.twig""/var/www/vhosts/hobbiinn.com/httpdocs/providdersvacance/templates/front/command/basket.html.twig");
  2679.     }
  2680. }