templates/Front/vignette.html.twig line 25

Open in your IDE?
  1. {% extends '@templates/Front/Shop/layout.html.twig' %}
  2. {% block head %}
  3.     <head>
  4.         {% block title %} <title>{{ 'app.ui.calculator_vignette_price'|trans }} | Roviniete.ro</title> {% endblock %}
  5.         {% block metatags %}
  6.             <meta name="description" content="{% if vignetteDescriptionForSeo|length > 0 %}{{ vignetteDescriptionForSeo.content }}{% endif %}"/>
  7.         {% endblock %}
  8.         <meta charset="utf-8">
  9.         <meta http-equiv="X-UA-Compatible" content="IE=edge">
  10.         <meta http-equiv="Content-Language" content="ro">
  11.         <meta name="google-site-verification" content="BEtIqk-choaMawpOxG98NtbWKAZK5MuTxV_2-pSHGFQ">
  12.         <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  13.         <meta name="keywords" content="{% if vignetteKeywordsForSeo|length > 0 %}{{ vignetteKeywordsForSeo.content }}{% endif %}"/>
  14.         {% block stylesheets %}
  15.             <link rel="stylesheet" href="{{ asset('/assets/shop/css/homepage.css') }}">
  16.             <link rel="stylesheet" href="{{ asset('/assets/shop/css/bootstrap.min.css') }}">
  17.             {{ encore_entry_link_tags('bootstrap-fix', null, 'bootstrapTheme') }}
  18.             <link rel="stylesheet" href="{{ asset('/assets/shop/css/vignette_shop.v1.css') }}">
  19.             <link rel="stylesheet" href="{{ asset('/assets/shop/css/bs-stepper.css') }}">
  20.         {% endblock %}
  21.         {{ sonata_block_render_event('sylius.shop.layout.head') }}
  22.         {% block javascripts %}
  23.             <script src="{{ asset('assets/shop/js/sentry-bundle.min.js') }}"></script>
  24.             <script>
  25.                  if (typeof Sentry !== 'undefined') {
  26.                     Sentry.init({
  27.                         dsn: "{{ sentry_dsn }}",
  28.                         integrations: [new Sentry.Integrations.TryCatch({
  29.                             eventTarget: false,
  30.                         })]
  31.                     });
  32.                 }
  33.                 MESSAGE_INVALID_REGISTRATION_PLATE = '{{ 'app.ui.invalid_registration_plate'|trans }}';
  34.                 MESSAGE_INVALID_VIN = '{{ 'app.ui.invalid_vin'|trans }}'
  35.                 let roadAssistanceValidFrom = null;
  36.             </script>
  37.             <script src="{{ asset('assets/shop/js/jquery.min.js') }}"></script>
  38.             <script src="{{ asset('/assets/shop/js/bs-stepper.js') }}"></script>
  39.             <script src="{{ asset('assets/shop/js/jquery-ui.min.js') }}"></script>
  40.             <script src="{{ asset('assets/shop/js/popper.min.js') }}"></script>
  41.             <script src="{{ asset('assets/shop/js/bootstrap.min.js') }}"></script>
  42.             <script src="{{ asset('assets/shop/js/moment.min.js') }}"></script>
  43.             <script src="{{ asset('assets/shop/js/jquery.validate.min.js') }}"></script>
  44.             {{ encore_entry_script_tags('vignette') }}
  45.             <script src="{{ asset('assets/shop/js/leftmenu.js') }}"></script>
  46.             <script src="{{ asset('/bundles/fosjsrouting/js/router.js') }}"></script>
  47.             <script src="{{ asset('/assets/shop/js/_bootstrap_select.min.js') }}"></script>
  48.             <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
  49.             <script>
  50.                 dataLayer = [];
  51.             </script>
  52.             <!-- Google Tag Manager -->
  53.             <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  54.                         new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  55.                     j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  56.                     'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  57.                 })(window,document,'script','dataLayer','{{ gtm_code }}');</script>
  58.             <!-- End Google Tag Manager -->
  59.         {% endblock %}
  60.     </head>
  61. {% endblock %}
  62. {% block header %}
  63.     <!-- Google Tag Manager (noscript) -->
  64.     <noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ gtm_code }}"
  65.                       height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  66.     <!-- End Google Tag Manager (noscript) -->
  67.     {% include '@templates/AdminCustom/Layout/loading.html.twig' with {showLoading: true} %}
  68.     <div class="custom-container">
  69.         <div style="max-width: 100%">
  70.             <div class="bg-white">
  71.                 <header>
  72.                     {% include '@templates/Front/Shop/v2/_header.html.twig' %}
  73.                     {{ sonata_block_render_event('sylius.shop.layout.after_header') }}
  74.                 </header>
  75.             </div>
  76.         </div>
  77.     </div>
  78. {% endblock %}
  79. {% block content %}
  80.     <div id="loadingDiv" class="loading d-none">
  81.         <div class="card w-50">
  82.             <div class="card-body bg-loading-card">
  83.                 <img src="{{ asset('assets/shop/images/spinner.gif') }}"
  84.                      style="width: 50px; pointer-events: none"/>
  85.                 <h5>Se verifica datele</h5>
  86.             </div>
  87.         </div>
  88.     </div>
  89.     <div class="d-inline-flex mx-3">
  90.         <a href="{{ path('sylius_shop_homepage') }}" class="section text-primary" style="font-size: 0.8em;">{{ 'sylius.ui.home'|trans }}</a>
  91.         <div class="divider"> /</div>
  92.         <small class="section active">{{ 'app.ui.vignettes'|trans }}</small>
  93.     </div>
  94.     {% if lastProductStatus.vignetteStatus %}
  95.         <h2 class="mx-3">{{ 'app.ui.calculator_vignette_price'|trans}}</h2>
  96.         {% set smsPrice = sms_price_ron.calculateSmsPrice %}
  97.         <script type="text/javascript">
  98.             var one_day = '{{ 'app.ui.1_day'|trans|lower }}';
  99.             var seven_days = '{{ 'app.ui.7_days'|trans|lower }}';
  100.             var ten_days = '{{ 'app.ui.10_days'|trans|lower }}';
  101.             var thirty_days = '{{ 'app.ui.30_days'|trans|lower }}';
  102.             var sixty_days = '{{ 'app.ui.60_days'|trans|lower }}';
  103.             var ninety_days = '{{ 'app.ui.90_days'|trans|lower }}';
  104.             var twelve_months = '{{ 'app.ui.12_months'|trans|lower }}';
  105.             var locale = '{{ app.request.getLocale() }}';
  106.         </script>
  107.         {% set oldValues = app.request.request %}
  108.         <div id="specialErrors" class="alert alert-warning alert-dismissible fade show d-none" role="alert">
  109.             <div class="header text-center">
  110.                 <h2>{{ 'sylius.ui.warning'|trans }}</h2>
  111.             </div>
  112.             <p>
  113.             <h5 class="text-center text-primary vignette-already-bought d-none">
  114.                 {{ 'app.ui.vignette_available_for_choosen_date'|trans }}
  115.             </h5>
  116.             <h5 class="special-error">
  117.             </h5>
  118.             <a class="text-center">
  119.             </a>
  120.             </p>
  121.             <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  122.                 <span aria-hidden="true">&times;</span>
  123.             </button>
  124.         </div>
  125.         <div id="categoryError" class="alert alert-warning fade show d-none" role="alert">
  126.             <div class="header text-center">
  127.                 <h2>{{ 'app.ui.error'|trans }}</h2>
  128.             </div>
  129.             <p>
  130.             <h5 class="text-center text-primary">
  131.                 {{ 'app.ui.vignette_category_error'|trans }}
  132.             </h5>
  133.             <h5 class="special-error">
  134.             </h5>
  135.             <a class="text-center">
  136.             </a>
  137.             </p>
  138.         </div>
  139.         <div id="divNoSpecialCharacters" class="alert alert-warning d-none" role="alert">
  140.             {{ 'app.ui.no_special_characters_allowed'|trans }}
  141.         </div>
  142.         <div style="margin-bottom: 100px;">
  143.             <div id="stepperForm" class="bs-stepper linear">
  144.                 <div class="row" style="padding: 0 20px 20px;">
  145.                     <div class="col-12 col-sm-12 col-md-12 col-lg-10 col-xl-10">
  146.                         <div id="vignetteStep1Summary" class="card d-none my-3" onclick="stepper.previous()">
  147.                             <div class="card-body d-flex justify-content-between align-items-center">
  148.                                 <div class="d-inline-flex justify-content-center align-items-center">
  149.                                     <img src="{{ asset('assets/shop/images/icons/ic_check_small_dark.png') }}" style="width: 30px"/>
  150.                                     <h3>
  151.                                         <a class="font-weight-bolder text-primary">{{ 'app.ui.vignette_details'|trans }}:</a>
  152.                                         <a class="font-weight-bolder text-dark">{{ 'app.ui.category'|trans }} - </a>
  153.                                         <a id="categoryTitleText">-</a>;
  154.                                         <a class="font-weight-bolder text-dark">{{ 'app.ui.valid_from'|trans }} - </a>
  155.                                         <a id="availabilityTitleText">-</a>
  156.                                     </h3>
  157.                                 </div>
  158.                                 <div id="editVignetteStep1">
  159.                                     <img src="{{ asset('assets/shop/images/icons/ic_edit_grey.png') }}" style="width: 30px"/>
  160.                                 </div>
  161.                             </div>
  162.                         </div>
  163.                     </div>
  164.                 </div>
  165.                 <div class="bs-stepper-header d-none" role="tablist">
  166.                     <div id="divStepVignetteDetails" class="step active" data-target="#vignetteDetails" onclick="stepper.previous()" style="pointer-events: none">
  167.                         <button type="button" class="step-trigger" role="tab" id="stepVignetteDetails" aria-controls="vignetteDetails" aria-selected="true">
  168.                             <span class="bs-stepper-circle"><a>1</a></span>
  169.                             <small style="font-size: 0.8em; letter-spacing: 1px;" class="bs-stepper-label text-primary font-weight-bolder">{{'app.ui.vignette_details'|trans|upper}}</small>
  170.                         </button>
  171.                     </div>
  172.                     <div class="bs-stepper-line"></div>
  173.                     <div id="divStepVehicleDetails" class="step" data-target="#vehicleDetails" onclick="stepper.next()" style="pointer-events: none">
  174.                         <button type="button" class="step-trigger" role="tab" id="stepVehicleDetails" aria-controls="vehicleDetails" aria-selected="false" disabled>
  175.                             <span class="inactive-step bs-stepper-circle"><a>2</a></span>
  176.                             <small style="font-size: 0.8em; letter-spacing: 1px;" class="bs-stepper-label text-black-50 font-weight-bolder">{{'app.ui.car_data'|trans|upper}} </small>
  177.                         </button>
  178.                     </div>
  179.                     <div class="bs-stepper-line"></div>
  180.                 </div>
  181.                 <div class="bs-stepper-content">
  182.                     <form id="vignetteForm" method="POST">
  183.                         <input type="hidden" name="ignoreAlreadyActive" id="ignoreAlreadyActive" value="false">
  184.                         <input type="hidden" name="ignoreWrongCategory" id="ignoreWrongCategory" value="false">
  185.                         <input type="hidden" name="productStatusExtraOptions" id="productStatusExtraOptions" value="{{ lastProductStatus.extraOptionsStatus }}">
  186.                         <div id="vignetteDetails" role="tabpanel" class="bs-stepper-pane fade active dstepper-block" aria-labelledby="stepperFormTrigger1">
  187.                             <div class="row my-3">
  188.                                 <div class="col-12 col-sm-12 col-md-12 col-lg-10 col-xl-10">
  189.                                     <div class="card vignette-card shadow">
  190.                                         <div class="card-body">
  191.                                             <div class="row">
  192.                                                 <div class="col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6">
  193.                                                     <h3 id="selectedCategoryText" class="mb-2 font-weight-bolder">{{'app.ui.select_car_type'|trans}}</h3>
  194.                                                     {% for category in vignetteCategories %}
  195.                                                         {% if loop.index % 2 != 0 %}
  196.                                                             <div class="d-flex justify-content-center my-2">
  197.                                                         {% endif %}
  198.                                                         <label type="button" for="{{ category.code|first|lower }}" class="btn btn-vignette-unselected w-100 mx-3 webkit-none" data-value="front">
  199.                                                             <input type="radio" name="category" data-error-message="{{'app.errors.no_category_selected'|trans }}" id="{{ category.code|first|lower }}" value="{{ category.id }}" data-category="
  200.                                                             {% if category.id == category_rovignette_a_id%}
  201.                                                                 {{ 'app.ui.category_rovignette_a_name'|trans }}
  202.                                                             {% elseif category.id == category_rovignette_b_id %}
  203.                                                                 {{ 'app.ui.category_rovignette_b_name'|trans }}
  204.                                                             {% elseif category.id == category_rovignette_c_id %}
  205.                                                                 {{ 'app.ui.category_rovignette_c_name'|trans|raw }}
  206.                                                             {% elseif category.id == category_rovignette_d_id %}
  207.                                                                 {{ 'app.ui.category_rovignette_d_name'|trans }}
  208.                                                             {% elseif category.id == category_rovignette_e_id %}
  209.                                                                 {{ 'app.ui.category_rovignette_e_name'|trans|raw }}
  210.                                                             {% elseif category.id == category_rovignette_f_id %}
  211.                                                                 {{ 'app.ui.category_rovignette_f_name'|trans|raw }}
  212.                                                             {% elseif category.id == category_rovignette_g_id %}
  213.                                                                 {{ 'app.ui.category_rovignette_g_name'|trans }}
  214.                                                             {% elseif category.id == category_rovignette_h_id %}
  215.                                                                 {{ 'app.ui.category_rovignette_h_name'|trans }}
  216.                                                             {% endif %}
  217.                                                                " {% if vehicle is not null and vehicle.roVignetteCategory is not null and vehicle.roVignetteCategory.id is defined  and vehicle.roVignetteCategory.id == category.id %} checked
  218.                                                                 {% elseif oldValues.get('category') == category.id %} checked {% endif %} hidden>
  219.                                                             <img src="{{ (asset('assets/shop/images/icons/ic_rovinieta_categ_' ~ category.code|first|lower) ~ '.png')}}" style="width: 46px"/> <br/>
  220.                                                             <a class="text-dark" id="vehicleType-{{category.code|first|lower}}">
  221.                                                                 {% if category.id == category_rovignette_a_id%}
  222.                                                                     {{ 'app.ui.category_rovignette_a_short_code'|trans }}
  223.                                                                 {% elseif category.id == category_rovignette_b_id %}
  224.                                                                     {{ 'app.ui.category_rovignette_b_short_code'|trans }}
  225.                                                                 {% elseif category.id == category_rovignette_c_id %}
  226.                                                                     {{ 'app.ui.category_rovignette_c_short_code'|trans|raw }}
  227.                                                                 {% elseif category.id == category_rovignette_d_id %}
  228.                                                                     {{ 'app.ui.category_rovignette_d_short_code'|trans }}
  229.                                                                 {% elseif category.id == category_rovignette_e_id %}
  230.                                                                     {{ 'app.ui.category_rovignette_e_short_code'|trans|raw }}
  231.                                                                 {% elseif category.id == category_rovignette_f_id %}
  232.                                                                     {{ 'app.ui.category_rovignette_f_short_code'|trans|raw }}
  233.                                                                 {% elseif category.id == category_rovignette_g_id %}
  234.                                                                     {{ 'app.ui.category_rovignette_g_short_code'|trans }}
  235.                                                                 {% elseif category.id == category_rovignette_h_id %}
  236.                                                                     {{ 'app.ui.category_rovignette_h_short_code'|trans }}
  237.                                                                 {% endif %}
  238.                                                             </a>
  239.                                                         </label>
  240.                                                         {% if loop.index % 2 == 0 %}
  241.                                                             </div>
  242.                                                         {% endif %}
  243.                                                     {% endfor %}
  244.                                                 </div>
  245.                                                 <div class="col-12 col-sm-12 col-md-12 col-lg-6 col-xl-6 text-center">
  246.                                                     <h3 class="font-weight-bolder mb-2">{{ 'app.ui.select_start_date'|trans}}</h3>
  247.                                                     <div class="d-flex justify-content-center align-items-center">
  248.                                                         <input type="hidden" id="validFrom" name="validFrom" {% if oldValues.get('validFrom') %} data-value="{{ oldValues.get('validFrom')}}"
  249.                                                             {% elseif oldValidFrom is not null %} data-value="{{ oldValidFrom|date("m/d/Y") }}"
  250.                                                             {% endif %}>
  251.                                                         <div data-error-message = '{{'app.errors.no_date_selected'|trans }}' id="datepicker"></div>
  252.                                                     </div>
  253.                                                     <div class="d-flex justify-content-center mt-3">
  254.                                                         <div class="d-flex">
  255.                                                             <div class="current-date-circle" style="width: 18px; height: 18px"></div>
  256.                                                             <div>
  257.                                                                 <a class="ml-2 text-dark">{{'app.ui.current_date'|trans}}:</a> <br/>
  258.                                                                 <h5 class="ml-2 text-dark">{{ "now"|date("d/m/Y") }}</h5>
  259.                                                             </div>
  260.                                                         </div>
  261.                                                         <div id="divStartDatePicker">
  262.                                                             <div class="d-flex ml-4">
  263.                                                                 <div class="picked-date-circle" style="width: 18px; height: 18px"></div>
  264.                                                                 <div>
  265.                                                                     <a class="ml-2 text-dark">{{'app.ui.start_date'|trans}}:</a> <br/>
  266.                                                                     <h5 class="ml-2 text-muted" id="startDatePicker">DD/MM/YYYY</h5>
  267.                                                                 </div>
  268.                                                             </div>
  269.                                                         </div>
  270.                                                     </div>
  271.                                                 </div>
  272.                                                 <div id="divPaymentNotAvailable" class="alert alert-warning d-none mt-2" role="alert">
  273.                                                     {{ 'app.ui.info_payment_not_available'|trans|raw }}
  274.                                                 </div>
  275.                                             </div>
  276.                                         </div>
  277.                                     </div>
  278.                                 </div>
  279.                                 <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 d-flex align-items-center justify-content-center my-4">
  280.                                     <div class="btn-wrapper">
  281.                                         <div class="first-step error-messages">
  282.                                         </div>
  283.                                         <button id="btnSubmitStep1" type="button" class="btn btn-primary-inactive w-100" style="height: 40px" disabled>
  284.                                             <a>{{'app.ui.next_step'|trans}}</a>
  285.                                         </button>
  286.                                     </div>
  287.                                 </div>
  288.                             </div>
  289.                         </div>
  290.                         <div id="vehicleDetails" role="tabpanel" class="bs-stepper-pane fade dstepper-none" aria-labelledby="stepperFormTrigger2">
  291.                             <div class="row my-3">
  292.                                 <div class="col-12 col-sm-12 col-md-12 col-lg-10 col-xl-10">
  293.                                     <div class="card vignette-card shadow">
  294.                                         <div class="card-body">
  295.                                             <div class="row">
  296.                                                 <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 availability-wrapper" data-error-message="{{'app.errors.no_availability_selected'|trans }}">
  297.                                                     <h3 class="mb-3 font-weight-bolder">{{'app.ui.choose_validity'|trans}}</h3>
  298.                                                     <div class="d-flex justify-content-between">
  299.                                                         <label type="button" id="lblAv1Day" for="av_1" class="btn btn-vignette-unselected w-100 mt-2 webkit-none" style="display: none" data-value="{{ 'app.ui.1_day'|trans }}" data-title="front">
  300.                                                             <div class="mx-2 my-2">
  301.                                                                 <input type="radio" name="availability" id="av_1" value="1" {% if oldValues.get('availability') == 1 %} checked {% endif %} hidden>
  302.                                                                 <h2 id="txtAv1Day" class="text-primary txtAvailability">{{ 'app.ui.1_day'|trans }}</h2>
  303.                                                                 <a id="txtAv1DayPrice" class="txtAvailabilityPrice text-dark">17.60 LEI</a>
  304.                                                             </div>
  305.                                                         </label>
  306.                                                     </div>
  307.                                                     <div class="d-flex justify-content-between mt-3 mb-3">
  308.                                                         <label type="button" id="lblAv7Day" for="av_7" class="btn btn-vignette-unselected w-100 mr-4 webkit-none" style="display: none" data-value="{{ 'app.ui.7_days'|trans }}" data-title="front">
  309.                                                             <div class="mx-2 my-2">
  310.                                                                 <input type="radio" name="availability" id="av_7" value="2" {% if oldValues.get('availability') == 2 %} checked {% endif %} hidden required>
  311.                                                                 <h2 id="txtAv7Days" class="text-primary txtAvailability">{{ 'app.ui.7_days'|trans }}</h2>
  312.                                                                 <a id="txtAv7DaysPrice" class="txtAvailabilityPrice text-dark">17.60 LEI</a>
  313.                                                             </div>
  314.                                                         </label>
  315.                                                         <label type="button" id="lblAv10Day" for="av_10" class="btn btn-vignette-unselected w-100 mr-4 webkit-none" style="display: none" data-value="{{ 'app.ui.10_days'|trans }}" data-title="front">
  316.                                                             <div class="mx-2 my-2">
  317.                                                                 <input type="radio" name="availability" id="av_10" value="6" {% if oldValues.get('availability') == 6 %} checked {% endif %} hidden required>
  318.                                                                 <h2 id="txtAv10Days" class="text-primary txtAvailability">{{ 'app.ui.10_days'|trans }}</h2>
  319.                                                                 <a id="txtAv10DaysPrice" class="txtAvailabilityPrice text-dark">17.60 LEI</a>
  320.                                                             </div>
  321.                                                         </label>
  322.                                                         <label type="button" for="av_30" class="btn btn-vignette-unselected w-100 webkit-none" data-value="{{ 'app.ui.30_days'|trans }}" data-title="front">
  323.                                                             <div class="mx-2 my-2">
  324.                                                                 <input type="radio" name="availability" id="av_30" value="3" {% if oldValues.get('availability') == 3 %} checked {% endif %} hidden>
  325.                                                                 <h2 id="txtAv30Days" class="text-primary txtAvailability">{{ 'app.ui.30_days'|trans }}</h2>
  326.                                                                 <a id="txtAv30DaysPrice" class="txtAvailabilityPrice text-dark">33.60 LEI</a>
  327.                                                             </div>
  328.                                                         </label>
  329.                                                     </div>
  330.                                                     <div class="d-flex justify-content-between">
  331.                                                         <label type="button" id="lblAv90Day" for="av_90" class="btn btn-vignette-unselected w-100 mr-4 webkit-none" style="display: none" data-value="{{ 'app.ui.90_days'|trans }}" data-title="front">
  332.                                                             <div class="mx-2 my-2">
  333.                                                                 <input type="radio" name="availability" id="av_90" value="4" {% if oldValues.get('availability') == 4 %} checked {% endif %} hidden>
  334.                                                                 <h2 id="txtAv90Days" class="text-primary txtAvailability">{{ 'app.ui.90_days'|trans }}</h2>
  335.                                                                 <a id="txtAv90DaysPrice" class="txtAvailabilityPrice text-dark">117.60 LEI</a>
  336.                                                             </div>
  337.                                                         </label>
  338.                                                         <label type="button" id="lblAv60Day" for="av_60" class="btn btn-vignette-unselected w-100 mr-4 webkit-none" style="display: none" data-value="{{ 'app.ui.60_days'|trans }}" data-title="front">
  339.                                                             <div class="mx-2 my-2">
  340.                                                                 <input type="radio" name="availability" id="av_60" value="7" {% if oldValues.get('availability') == 7 %} checked {% endif %} hidden>
  341.                                                                 <h2 id="txtAv60Days" class="text-primary txtAvailability">{{ 'app.ui.60_days'|trans }}</h2>
  342.                                                                 <a id="txtAv60DaysPrice" class="txtAvailabilityPrice text-dark">117.60 LEI</a>
  343.                                                             </div>
  344.                                                         </label>
  345.                                                         <label type="button" for="av_12" class="btn btn-vignette-unselected w-100 webkit-none" data-value="{{ 'app.ui.12_months'|trans }}" data-title="front">
  346.                                                             <div class="mx-2 my-2">
  347.                                                                 <input type="radio" name="availability" id="av_12" value="5" {% if oldValues.get('availability') == 5 %} checked {% endif %} hidden>
  348.                                                                 <h2 id="txtAv1Year" class="text-primary txtAvailability">{{ 'app.ui.12_months'|trans }}</h2>
  349.                                                                 <a id="txtAv1YearPrice" class="txtAvailabilityPrice text-dark">333.60 LEI</a>
  350.                                                             </div>
  351.                                                         </label>
  352.                                                     </div>
  353.                                                 </div>
  354.                                                 <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6" style="padding-left: 50px; padding-right: 50px">
  355.                                                     <h3 class="mb-3 font-weight-bolder">{{'app.ui.select_car_data'|trans}}</h3>
  356.                                                     <div class="row mt-3 d-flex align-items-end">
  357.                                                         <div class="col-5 col-sm-5 col-md-6 col-lg-5 col-xl-5">
  358.                                                             <label for="carCountry" class="text-dark lbl-custom lbl-custom-grey d-none">{{ 'app.ui.country_code'|trans}}</label>
  359.                                                             <select id="carCountry" name="carCountry" class="form-control input-custom input-custom-grey" required>
  360.                                                                 <option value="">{{ 'app.ui.country'|trans}}</option>
  361.                                                                 {% for country in countries|sort((a, b) => a.name > b.name) %}
  362.                                                                     <option id="{{ country.code }}" value="{{ country.code }}" {% if oldValues.get('carCountry') == country.code %} selected {% endif %}>{{ country.name }}</option>
  363.                                                                 {% endfor %}
  364.                                                             </select>
  365.                                                         </div>
  366.                                                         <div class="col-7 col-sm-7 col-md-6 col-lg-7 col-xl-7">
  367.                                                             <label for="registrationPlate" class="text-dark lbl-custom lbl-custom-grey d-none">{{'app.ui.registration_plate'|trans}}</label>
  368.                                                             <input id="registrationPlate" data-warning-message="{{ 'app.warning.characters_not_allowed'|trans }}" data-error-message="{{'app.errors.no_plate'|trans }}" name="registrationPlate"
  369.                                                                    maxlength="10" type="text" class="form-control input-custom input-custom-grey
  370.                                                             " placeholder="{{'app.ui.registration_plate'|trans}}" oninvalid="this.setCustomValidity('{{ 'app.ui.please_fill_this_field'|trans }}')"
  371.                                                                    oninput="setCustomValidity('')"
  372.                                                                     {% if vehicle is not null and vehicle.registrationPlate is not null and vehicle.registrationPlate is defined %}
  373.                                                                         value="{{ vehicle.registrationPlate }}"
  374.                                                                     {% elseif oldValues.get('registrationPlate') %}
  375.                                                                         value="{{ oldValues.get('registrationPlate') }}"
  376.                                                                     {% endif %} required>
  377.                                                             <div data-error-message = '{{ 'app.ui.invalid_registration_plate'|trans }}' id="registrationPlateError"></div>
  378.                                                         </div>
  379.                                                     </div>
  380.                                                     <div class="row mt-2">
  381.                                                         <div class="col-12">
  382.                                                             <div id="vinBlock" class="d-none">
  383.                                                                 <label for="vin" class="text-dark lbl-custom lbl-custom-grey d-none" style="width: 98.5% !important;">{{'app.ui.vin'|trans}} ({{ 'app.ui.chassis_number'|trans }})</label>
  384.                                                                 <input id="vin" name="vin" type="text" style="width: 98.5% !important;"
  385.                                                                        class="form-control input-custom input-custom-grey" placeholder="{{'app.ui.vin'|trans}} ({{ 'app.ui.chassis_number'|trans }})">
  386.                                                             </div>
  387.                                                         </div>
  388.                                                     </div>
  389.                                                     {% if app.request.locale == 'ro' and lastProductStatus.vignetteSmsStatus %}
  390.                                                         <div class="row mt-2">
  391.                                                             <div class="col-12">
  392.                                                                 <div id="divAlertSms" class="vignette-alert-container px-2 py-3">
  393.                                                                     <div class="d-flex justify-content-between align-items-center-center">
  394.                                                                         <div class="custom-control custom-checkbox">
  395.                                                                             <input type="checkbox" name="vignetteAlert" id="vignetteAlert" class="custom-control-input" data-price="{{ smsPrice }}">
  396.                                                                             <label for="vignetteAlert" class="custom-control-label">
  397.                                                                                 <h4 class="text-dark" style="letter-spacing: 0.01em;">{{'app.ui.sms_alert'|trans}}</h4>
  398.                                                                             </label>
  399.                                                                         </div>
  400.                                                                         <div>
  401.                                                                             <h4>{{ smsPrice }} Lei ({{ sms_price_eur }} Eur)</h4>
  402.                                                                         </div>
  403.                                                                     </div>
  404.                                                                     <div>
  405.                                                                         <a>{{'app.ui.alert_description'|trans}}</a>
  406.                                                                     </div>
  407.                                                                 </div>
  408.                                                             </div>
  409.                                                         </div>
  410.                                                     {% endif %}
  411.                                                     <div id="app">
  412.                                                         {% if lastProductStatus.roadAssistanceStatus and lastProductStatus.vignetteRoadAssistanceStatus %}
  413.                                                             <road-assistance
  414.                                                                     :price="{{ road_assistance_service.retrieveDefaultPrice }}"
  415.                                                                     :terms-and-conditions-route="'{{ path('bitbag_sylius_cms_plugin_shop_page_show', {'slug' : 'terms-and-conditions-road-assistance'}) }}'"
  416.                                                                     v-bind:is-mobile="false"></road-assistance>
  417.                                                         {% endif %}
  418.                                                     </div>
  419.                                                         <div class="row mt-2">
  420.                                                             <div class="col-12">
  421.                                                                 <div id="divCnairAlert" class="vignette-alert-container px-2 py-3 bg-white d-none">
  422.                                                                     <div class="d-flex justify-content-between align-items-center-center">
  423.                                                                         <div class="custom-control custom-checkbox">
  424.                                                                             <input type="checkbox" name="email_allowed" id="email_allowed" class="custom-control-input">
  425.                                                                             <label for="email_allowed" class="custom-control-label">
  426.                                                                                 <h5 class="text-dark" style="letter-spacing: 0.01em;">{{'app.ui.cnair_alert'|trans}}</h5>
  427.                                                                             </label>
  428.                                                                         </div>
  429.                                                                     </div>
  430.                                                                     <div id="divEmail" class="d-none">
  431.                                                                         <input id="email" name="email" type="text" class="form-control input-custom input-custom-grey required" >
  432.                                                                     </div>
  433.                                                                 </div>
  434.                                                             </div>
  435.                                                         </div>
  436.                                                 </div>
  437.                                             </div>
  438.                                         </div>
  439.                                     </div>
  440.                                 </div>
  441.                                 <div class="col-12 col-sm-12 col-md-12 col-lg-2 col-xl-2 d-flex align-items-center justify-content-center my-4">
  442.                                     <div>
  443.                                         <div class="second-step error-messages">
  444.                                         </div>
  445.                                         <div class="btn-wrapper">
  446.                                             <button id="btnSubmitVignette" type="submit" class="btn btn-primary-inactive btn-submit w-100" style="height: 40px"><a>{{'app.ui.buy_now'|trans}}</a></button>
  447.                                         </div>
  448.                                     </div>
  449.                                 </div>
  450.                             </div>
  451.                         </div>
  452.                     </form>
  453.                 </div>
  454.                 <div class="bs-stepper-content">
  455.                     <div class="row my-3">
  456.                         {% if accordionBlocksAboutVignette|length > 0 %}
  457.                             {% for key, block in accordionBlocksAboutVignette %}
  458.                                 <div class="col-12 col-sm-6 col-md-6 col-lg-3 col-xl-3 my-3">
  459.                                     <button class="accordion" type="button" data-toggle="collapse" data-target="#collapse{{ key }}" aria-expanded="false" aria-controls="collapse{{ key }}">{{ block.name }}</button>
  460.                                     <div class="collapse" id="collapse{{ key }}">
  461.                                         <div class="card card-body border">{{ block.content|raw }}</div>
  462.                                     </div>
  463.                                 </div>
  464.                             {% endfor %}
  465.                         {% endif %}
  466.                     </div>
  467.                 </div>
  468.             </div>
  469.         </div>
  470.         <script>
  471.             $(document).ready(function () {
  472.                 let locale = getLocale();
  473.                 function getLocale() {
  474.                     let url = Routing.generate('app_shop_get_locale');
  475.                     $.ajax({
  476.                         url: url,
  477.                         type: 'GET',
  478.                         async: false,
  479.                         dataType: 'json',
  480.                         success: function (locale) {
  481.                             if (locale == 'ro_RO' || locale == 'ro') {
  482.                                 $('[name="carCountry"] option').filter(function() {
  483.                                     return ($(this).val() == 'RO');
  484.                                 }).prop('selected', true).change();
  485.                             }
  486.                         },
  487.                         error: function (data) {
  488.                         }
  489.                     });
  490.                 }
  491.             })
  492.             var stepper = new Stepper($('.bs-stepper')[0]);
  493.         </script>
  494.         <script>
  495.             const route = "{{ path('sylius_shop_homepage')|escape('js') }}";
  496.             const roadAssistanceTranslations = '{{ roadAssistanceTranslations|json_encode|raw }}';
  497.         </script>
  498.         {{ encore_entry_script_tags('vue') }}
  499.         <style>
  500.             .text-primary {
  501.                 color: #E95A31;
  502.             }
  503.             .webkit-none {
  504.                 -webkit-appearance: none !important;
  505.             }
  506.             .ui-state-highlight, .ui-widget-content .ui-state-highlight {
  507.                 background: none !important;
  508.                 color: #454545 !important;
  509.                 border: none !important;
  510.             }
  511.             .modal-backdrop {
  512.                 opacity: 50% !important;
  513.             }
  514.             .btn-primary:not(:disabled):not(.disabled).active, .btn-primary:not(:disabled):not(.disabled):active, .show>.btn-primary.dropdown-toggle {
  515.                 background-color: #e95a31 !important;
  516.             }
  517.             .b-calendar-grid-body {
  518.                 margin-left: .5rem!important;
  519.                 margin-right: .5rem!important;
  520.             }
  521.             .b-calendar-grid-weekdays {
  522.                 border: none !important;
  523.             }
  524.             .loading {
  525.                 display: flex;
  526.                 flex-direction: column;
  527.                 justify-content: center;
  528.                 align-items: center;
  529.                 text-align: center;
  530.                 min-height: 100vh;
  531.                 z-index: 999;
  532.                 position: fixed;
  533.                 background-color: rgba(0,0,0,0.7);
  534.                 opacity: 100%;
  535.                 width: 100%;
  536.                 height: 100%;
  537.             }
  538.         </style>
  539.     {% else %}
  540.         <div class="card text-center my-3">
  541.             <div class="card-header">
  542.                 <h2>{{ 'app.ui.disabled_temporary'|trans }}</h2>
  543.             </div>
  544.             <div class="card-body">
  545.                 <a href="{{ path('sylius_shop_homepage') }}">{{ 'sylius.ui.back_to_store'|trans }}</a>
  546.             </div>
  547.         </div>
  548.     {% endif %}
  549. {% endblock %}