templates/front/services/service.html.twig line 1

Open in your IDE?
  1. {% extends "front/_common/_base.html.twig" %}
  2. {% block linkcanonical %}
  3.     <link rel="canonical" href="{{ absolute_url(path('service', {'slug': service.slug})) }}">
  4. {% endblock %}
  5. {% block cssadicional %}
  6.     <link rel="stylesheet" href="{{ asset('static/js/swiper/swiper.css') }}"/>
  7.     <link rel="stylesheet" href="{{ asset('static/js/datepicker/jquery-ui.min.css') }}"/>
  8. {% endblock %}
  9. {% block classbody %}{% endblock %}
  10. {% block content %}
  11.     <section class="servicio_asistencia_bg" style="background-image: url('{{ asset(service.bannerImage|image_path) }}');">
  12.         <div class="servicios_asistencia_wrap ww_center">
  13.             <div class="servicio_asistencia_info">
  14.                 <ul>
  15.                     <li><a href="{{ path('home') }}">Inicio</a></li>
  16.                     <li><span>/</span></li>
  17.                     <li><a href="{{ path('services') }}">Servicios</a></li>
  18.                     <li><span>/</span></li>
  19.                     <li><a class="active">{{ service.title }}</a></li>
  20.                 </ul>
  21.                 {% if service.bannerTitle %}
  22.                     <h2>{{ service.bannerTitle }}</h2>
  23.                 {% endif %}
  24.                 {% if service.bannerText %}
  25.                     <p>{{ service.bannerText|nl2br }}</p>
  26.                 {% endif %}
  27.             </div>
  28.         </div>
  29.     </section>
  30.     <section class="b2service">
  31.         <div class="b2service_content ww_center" data-sticky-container="data-sticky-container">
  32.             <div class="b2service_left">
  33.                 {% if service.detailShow %}
  34.                     <div class="b2service_info">
  35.                         {% if service.detailShow %}
  36.                             {% if service.detailTitle %}
  37.                                 <h2>{{ service.detailTitle }}</h2>
  38.                             {% endif %}
  39.                             {% if service.detailText %}
  40.                                 {{ service.detailText|raw }}
  41.                             {% endif %}
  42.                         {% endif %}
  43.                         {% if service.benefitsShow %}
  44.                             {% if service.benefitsTitle %}
  45.                                 <h2>{{ service.benefitsTitle }}</h2>
  46.                             {% endif %}
  47.                             {% if service.benefitsText %}
  48.                                 {{ service.benefitsText|raw }}
  49.                             {% endif %}
  50.                             {% if service.benefitsImage|image_path %}
  51.                                 <figure>
  52.                                     <img src="{{ asset(service.benefitsImage|image_path) }}" width="635" height="270" alt="{{ service.benefitsImage|split_alt }}">
  53.                                 </figure>
  54.                             {% endif %}
  55.                         {% endif %}
  56.                         <div class="b2service_button">
  57.                             <a class="btn btn_grayline btn_icon" href="{{ path('network') }}">Ver Talleres<span class="icon-arrow_forward_ios"></span></a>
  58.                         </div>
  59.                     </div>
  60.                 {% endif %}
  61.                 <div class="b2service_contact">
  62.                     <h3 class="b2service_subtitle">Para más información:</h3>
  63.                     <div class="b2service_wrap">
  64.                         <div class="b2service_box">
  65.                             <span class="icon-phone_in_talk"></span>
  66.                             <p><a href="tel:{{ info.servicePhone|only_numbers }}">{{ info.servicePhone }}</a></p>
  67.                         </div>
  68.                         <div class="b2service_box">
  69.                             <span class="icon-mail_outline"></span>
  70.                             <p><a href="mailto:{{ info.serviceEmail }}">{{ info.serviceEmail }}</a></p>
  71.                         </div>
  72.                         <div class="b2service_box">
  73.                             <span class="icon-place-1"></span>
  74.                             <p><a href="{{ info.serviceAddress|google_maps_search }}" target="_blank">{{ info.serviceAddress }}</a></p>
  75.                         </div>
  76.                     </div>
  77.                 </div>
  78.             </div>
  79.             <div class="b2service_right sticky" data-margin-top="90" data-sticky-for="1025">
  80.                 <div class="b2service_form">
  81.                     {% if forms.serviceQuotationTitle %}
  82.                         <h2 class="b2service_form_title">{{ forms.serviceQuotationTitle }}</h2>
  83.                     {% endif %}
  84.                     <div class="b2service_fields">
  85.                         {{ form_start(form, {'attr': {'id': 'form_service'}}) }}
  86.                             {{ form_widget(form.typePerson) }}
  87.                             {{ form_widget(form.documentType) }}
  88.                             {{ form_widget(form.documentNumber) }}
  89.                             {{ form_widget(form.service) }}
  90.                             {{ form_widget(form.establishment) }}
  91.                             <input type="hidden" id="form_quotation_services_adviser_id" name="adviser_id">
  92.                             <div class="b2service_radios">
  93.                                 <div class="b2service_radio">
  94.                                     <input checked type="radio" name="b2service_group" value="Empresa" id="form_quotation_services_legal_person">
  95.                                     <label for="form_quotation_services_legal_person" class="b2service_radio_label">
  96.                                         <span class="b2service_radio_icon"></span>
  97.                                         <span class="b2service_radio_text">Soy empresa</span>
  98.                                     </label>
  99.                                 </div>
  100.                                 <div class="b2service_radio">
  101.                                     <input type="radio" name="b2service_group" value="Persona natural" id="form_quotation_services_natural_person">
  102.                                     <label for="form_quotation_services_natural_person" class="b2service_radio_label">
  103.                                         <span class="b2service_radio_icon"></span>
  104.                                         <span class="b2service_radio_text">Soy Persona Natural</span>
  105.                                     </label>
  106.                                 </div>
  107.                             </div>
  108.                             <div class="b2service_block">
  109.                                 <div class="b2service_item_column b2service_field_company" >
  110.                                     <div class="b2service_field">
  111.                                         <input type="text" id="form_quotation_services_document_number_legal_person" class="soloNumber inputEffect validate[required] form_quotation_services_document_number">
  112.                                         <label for="form_quotation_services_document_number_legal_person" class="b2service_boxlabel">RUC *</label>
  113.                                     </div>
  114.                                     <div class="b2service_field">
  115.                                         {{ form_widget(form.company, {'attr': {'class': 'validate[required] inputEffect'}}) }}
  116.                                         <label for="" class="b2service_boxlabel">Empresa</label>
  117.                                     </div>
  118.                                 </div>
  119.                                 <div class="b2service_item_column b2service_field_person" style="display:none">
  120.                                     <div class="b2service_field">
  121.                                         <select id="form_quotation_services_document_types" class="inputEffect">
  122.                                             <option value="" disabled selected></option>
  123.                                             {% for item in forms.documentTypes %}
  124.                                                 <option value="{{ item.title }}">{{ item.title }}</option>
  125.                                             {% endfor %}
  126.                                         </select>
  127.                                         <label class="b2service_boxlabel">Tipo de documento* <span class="icon-arrow_drop_down"></span></label>
  128.                                     </div>
  129.                                     <div class="b2service_field">
  130.                                         <input type="text" id="form_quotation_services_document_number_natural_person" class="inputEffect validate[required] form_quotation_services_document_number soloNumber">
  131.                                         <label for="form_quotation_services_document_number_natural_person" class="b2service_boxlabel">N° de documento</label>
  132.                                     </div>
  133.                                 </div>
  134.                                 <div class="b2service_item_column">
  135.                                     <div class="b2service_field">
  136.                                         {{ form_widget(form.name, {'attr': {'class': 'validate[required] inputEffect'}}) }}
  137.                                         <label for="" class="b2service_boxlabel">Nombres *</label>
  138.                                     </div>
  139.                                     <div class="b2service_field">
  140.                                         {{ form_widget(form.lastname, {'attr': {'class': 'validate[required] inputEffect'}}) }}
  141.                                         <label for="" class="b2service_boxlabel">Apellidos *</label>
  142.                                     </div>
  143.                                 </div>
  144.                                 <div class="b2service_item_column">
  145.                                     <div class="b2service_field">
  146.                                         {{ form_widget(form.phone, {'attr': {'class': 'validate[required, custom[phone]] soloNumber inputEffect'}}) }}
  147.                                         <label for="" class="b2service_boxlabel">Teléfono *</label>
  148.                                     </div>
  149.                                     <div class="b2service_field">
  150.                                         {{ form_widget(form.email, {'attr': {'class': 'validate[required,custom[email]] inputEffect'}}) }}
  151.                                         <label for="" class="b2service_boxlabel">Correo electrónico *</label>
  152.                                     </div>
  153.                                 </div>
  154.                                 <div class="b2service_item_column">
  155.                                     <div class="b2service_field">
  156.                                         {{ form_widget(form.date, {'attr': {'class': 'validate[required] inputEffect datepicker'}}) }}
  157.                                         <label class="b2service_boxlabel">Agendar cita <span class="icon-insert_invitation"></span></label>
  158.                                     </div>
  159.                                     <div class="b2service_field">
  160.                                         <select id="form_quotation_services_advisers" class="inputEffect">
  161.                                             <option value="" selected disabled></option>
  162.                                             <option value="0">Ninguno</option>
  163.                                             {% for item in advisers %}
  164.                                                 <option value="{{ item.id }}">{{ item.name }}</option>
  165.                                             {% endfor %}
  166.                                         </select>
  167.                                         <label for="form_quotation_services_advisers" class="b2service_boxlabel">Asesor (Opcional) <span class="icon-arrow_drop_down"></span></label>
  168.                                     </div>
  169.                                 </div>
  170.                                 <div class="b2service_item_row">
  171.                                     <div class="b2service_field">
  172.                                         <select id="form_quotation_services_establishments" class="inputEffect">
  173.                                             <option value="" selected disabled></option>
  174.                                             {% for item in establishments %}
  175.                                                 <option value="{{ item.title }} ({{ item.city.title }})">{{ item.title }} ({{ item.city.title }})</option>
  176.                                             {% endfor %}
  177.                                         </select>
  178.                                         <label for="form_quotation_services_establishments" class="b2service_boxlabel">Seleccione establecimiento <span class="icon-arrow_drop_down"></span></label>
  179.                                     </div>
  180.                                 </div>
  181.                                 <div class="b2service_item_row">
  182.                                     <div class="b2service_field">
  183.                                         {{ form_widget(form.message, {'attr': {'class': 'inputEffect'}}) }}
  184.                                         <label class="b2service_boxlabel">Mensaje</label>
  185.                                     </div>
  186.                                 </div>
  187.                             </div>
  188.                             <div class="b2service_required">
  189.                                 <p>* Campos obligatorios</p>
  190.                             </div>
  191.                             <div class="b2service_check">
  192.                                 <input type="checkbox" id="b2service_checkbox" class="validate[required]" name="">
  193.                                 <label for="b2service_checkbox" class="b2service_check_label">
  194.                                     <span class="b2service_check_icon"></span>
  195.                                     <p>He leído y acepto las <a href="{{ path('data_protection_policies') }}" target="_blank">Políticas de privacida</a></p>
  196.                                 </label>
  197.                             </div>
  198.                             <div class="b2service_button">
  199.                                 <button class="btn btn_blue btnFormService" id="btnFormService">Enviar</button>
  200.                             </div>
  201.                         {{ form_end(form) }}
  202.                     </div>
  203.                 </div>
  204.             </div>
  205.         </div>
  206.     </section>
  207. {% endblock %}
  208. {% block jsfinal %}
  209.     <script src="{{ asset('static/js/validationform/jquery.validationEngine-es.js') }}"></script>
  210.     <script src="{{ asset('static/js/validationform/staff.validationEngine.js') }}"></script>
  211.     <script src="{{ asset('static/js/datepicker/jquery-ui.min.js') }}"></script>
  212.     <script src="{{ asset('static/js/sticky.js') }}"></script>
  213.     <script>
  214.         var sticky = new Sticky('.sticky');
  215.         $(function(){
  216.             //- +++ Datepicker +++
  217.             $.datepicker.regional['es'] = {
  218.                 closeText: 'Cerrar',
  219.                 prevText: '<Ant',
  220.                 nextText: 'Sig>',
  221.                 currentText: 'Hoy',
  222.                 monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
  223.                 monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
  224.                 dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
  225.                 dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
  226.                 dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
  227.                 weekHeader: 'Sm',
  228.                 dateFormat: 'dd/mm/yy',
  229.                 firstDay: 1,
  230.                 isRTL: false,
  231.                 showMonthAfterYear: false,
  232.                 yearSuffix: ''
  233.             };
  234.             $.datepicker.setDefaults($.datepicker.regional['es']);
  235.             $('.datepicker').datepicker({
  236.                 minDate: 0,
  237.                 yearRange: "-0:+10",
  238.                 onSelect: function () {
  239.                     $(this).parent().find('.b2service_boxlabel').addClass('fijar');
  240.                     $(this).addClass('border');
  241.                 }
  242.             });
  243.             //- <<< END >>>
  244.             var b2serviceFields = $(".b2service_field input, .b2service_field textarea, .b2service_field select")
  245.             $(b2serviceFields).focusin(function () {
  246.                 $(this).addClass('border');
  247.             });
  248.             $(b2serviceFields).focusout(function () {
  249.                 if ($(this).val() === "") {
  250.                     $(this).removeClass('border');
  251.                 }
  252.             });
  253.             $(b2serviceFields).each(function () {
  254.                 if ($(this).val() != "") {
  255.                     $(this).addClass('border');
  256.                 }
  257.             });
  258.             $('.soloNumber').keypress(validateNumber);
  259.             function validateNumber(event) {
  260.                 var key = window.event ? event.keyCode : event.which;
  261.                 if (event.keyCode === 8 || event.keyCode === 46) {
  262.                     return true;
  263.                 } else if (key < 48 || key > 57) {
  264.                     return false;
  265.                 } else {
  266.                     return true;
  267.                 }
  268.             }
  269.             $('#form_quotation_services_service').val('{{ service.title }}');
  270.             $('#form_quotation_services_natural_person').on('change', function () {
  271.                 $('.b2service_field_company').hide();
  272.                 $('.b2service_field_person').show();
  273.             });
  274.             $('#form_quotation_services_legal_person').on('change', function () {
  275.                 $('.b2service_field_person').hide();
  276.                 $('.b2service_field_company').show();
  277.             });
  278.             $('#form_quotation_services_natural_person').on('change', function () {
  279.                 $('.quote_field_company').hide();
  280.                 $('.quote_field_person').show();
  281.             });
  282.             $('#form_quotation_services_legal_person').on('change', function () {
  283.                 $('.quote_field_person').hide();
  284.                 $('.quote_field_company').show();
  285.             });
  286.             $('#form_quotation_services_legal_person').on('change', function () {
  287.                 $('#form_quotation_services_typePerson').val($(this).val());
  288.                 $('#form_quotation_services_document_types').val('');
  289.                 $('#form_quotation_services_document_number_natural_person').val('');
  290.                 $('#form_quotation_services_document_number_legal_person').val('');
  291.                 $('#form_quotation_services_documentType').val('RUC');
  292.                 $('#form_quotation_services_documentNumber').val('');
  293.                 $('#form_quotation_services_company').val('');
  294.             })
  295.             $('#form_quotation_services_natural_person').on('change', function () {
  296.                 $('#form_quotation_services_typePerson').val($(this).val());
  297.                 $('#form_quotation_services_document_types').val('');
  298.                 $('#form_quotation_services_document_number_natural_person').val('');
  299.                 $('#form_quotation_services_document_number_legal_person').val('');
  300.                 $('#form_quotation_services_documentType').val('');
  301.                 $('#form_quotation_services_documentNumber').val('');
  302.             })
  303.             $('#form_quotation_services_legal_person').trigger('change');
  304.             $('.form_quotation_services_document_number').on('keyup', function () {
  305.                 $('#form_quotation_services_documentNumber').val($(this).val());
  306.             })
  307.             $('#form_quotation_services_document_types').on('change', function () {
  308.                 $('#form_quotation_services_documentType').val($(this).val());
  309.             })
  310.             $('#form_quotation_services_establishments').on('change', function () {
  311.                 $('#form_quotation_services_establishment').val($(this).val());
  312.             })
  313.             $('#form_quotation_services_advisers').on('change', function () {
  314.                 $('#form_quotation_services_adviser').val($(this).val());
  315.                 $('#form_quotation_services_adviser_id').val($(this).val());
  316.             })
  317.             const form_quotation_services = $('#form_service');
  318.             const form_quotation_services_button = $('#btnFormService');
  319.             form_quotation_services.validationEngine('attach', {
  320.                 promptPosition: "topLeft",
  321.                 autoHidePrompt: true,
  322.                 autoHideDelay: 3000,
  323.                 binded: false,
  324.                 scroll: false
  325.             });
  326.             form_quotation_services_button.on('click', function (event) {
  327.                 event.preventDefault();
  328.                 const valid = form_quotation_services.validationEngine('validate');
  329.                 $(this).attr('disabled', true);
  330.                 if (valid) {
  331.                     form_quotation_services.submit();
  332.                 } else {
  333.                     $(this).attr('disabled', false);
  334.                 }
  335.             });
  336.         });
  337.     </script>
  338. {% endblock %}