templates/devis/devis.form.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block stylesheets %}
  3.     {{parent()}}
  4.     <link rel="stylesheet" href="{{ asset('assets/css/devis.min.css') }}" />
  5. {% endblock %}
  6. {% block javascript %}
  7.     {{parent()}}
  8.     <script src="{{ asset('assets/js/devis/devis.js') }}"></script>
  9. {% endblock %}
  10. {% block _app_data %}
  11.     app_data.path.devisUpdate = "{{ path('devis_update')|base64_encode }}";
  12.     app_data.path.devisFileRemove = "{{ path('devis_remove_file')|base64_encode }}";
  13. {% endblock %}
  14. {# {% block title %}
  15.     {% for content in contents %}
  16.         {{ content.meta_title|raw }}
  17.     {% endfor %}
  18. {% endblock %} #}
  19. {# {% block description %}
  20.     {% for content in contents %}
  21.         {{ content.meta_description|raw }}
  22.     {% endfor %}
  23. {% endblock %} #}
  24. {% block content %}
  25.     <h1>Formulaire de devis</h1>
  26.     
  27.     {{ form_start(formData, { 'attr': {'novalidate': true, 'class': 'full-height', 'autocomplete': 'off' }}) }}
  28.     {{ form_row(formData._token) }}
  29.     {% if products %}
  30.         <div class="row mb-2">
  31.             <div class="col-9">
  32.                 <div class="row mb-3">
  33.                     <div class="col-12 col-lg-4">
  34.                         {{ form_label(formData.societe) }}
  35.                         {{ form_widget(formData.societe, (data.error.societe ? {'attr': {'class': 'invalid is-invalid'}} : {'attr': {'class': ''}})) }}
  36.                         <div class="invalid-feedback">
  37.                             La société n'est pas complété
  38.                         </div>
  39.                     </div>
  40.                     <div class="col-12 col-lg-4">
  41.                         {{ form_label(formData.email) }}
  42.                         {{ form_widget(formData.email, (data.error.email ? {'attr': {'class': 'invalid is-invalid'}} : {'attr': {'class': ''}})) }}
  43.                         <div class="invalid-feedback">
  44.                             L'email n'est pas complété
  45.                         </div>
  46.                     </div>
  47.                     <div class="col-12 col-lg-4">
  48.                         {{ form_label(formData.pays) }}
  49.                         {{ form_widget(formData.pays) }}
  50.                     </div>
  51.                 </div>
  52.                 <div class="row mb-3">
  53.                     <div class="col-12 col-lg-4">
  54.                         {{ form_label(formData.nom) }}
  55.                         {{ form_widget(formData.nom, (data.error.nom ? {'attr': {'class': 'invalid is-invalid'}} : {'attr': {'class': ''}})) }}
  56.                         <div class="invalid-feedback">
  57.                             Le nom n'est pas complété
  58.                         </div>
  59.                     </div>
  60.                     <div class="col-12 col-lg-4">
  61.                         {{ form_label(formData.telephone) }}
  62.                         {{ form_widget(formData.telephone) }}
  63.                     </div>
  64.                     <div class="col-12 col-lg-4 form-group">
  65.                         {{ form_label(formData.langue) }}
  66.                         {{ form_widget(formData.langue, (data.error.langue ? {'attr': {'class': 'form-control invalid is-invalid'}} : {'attr': {'class': 'form-control'}})) }}
  67.                         <div class="invalid-feedback">
  68.                             La langue n'est pas complété
  69.                         </div>
  70.                     </div>
  71.                 </div>
  72.                 <div class="row mb-3">
  73.                     <div class="col-12 col-lg-4">
  74.                         {{ form_label(formData.prenom) }}
  75.                         {{ form_widget(formData.prenom) }}
  76.                     </div>
  77.                     <div class="col-12 col-lg-4">
  78.                         {{ form_label(formData.siteInternet) }}
  79.                         {{ form_widget(formData.siteInternet) }}
  80.                     </div>
  81.                 </div>
  82.                 <div class="row">
  83.                     <div class="col-12 col-lg-4">
  84.                         {{ form_label(formData.fonction) }}
  85.                         {{ form_widget(formData.fonction) }}
  86.                     </div>
  87.                 </div>
  88.                 <div class="row">
  89.                     <div class="col-12 cards-wrapper">
  90.                         <div class="visa-wrapper">
  91.                             <img src="/ps/img/visa.gif" alt="">
  92.                         </div>
  93.                         <div class="mastercard-wrapper">
  94.                             <img src="/ps/img/mastercard.png" alt="">
  95.                         </div>
  96.                     </div>
  97.                 </div>
  98.                 <div class="col-12">
  99.                     <h4>Articles ajoutés à votre devis</h4>
  100.                     <table id="articleDevis" class="table">
  101.                         <tbody>
  102.                             {% for product in products %}
  103.                             <tr data-id="{{product.id_devis}}">
  104.                                 <td>
  105.                                     <a class="cart-images" href="{{product.lien_produit}}" 
  106.                                     title="{{ product.titre }}">
  107.                                         <img src="{{product.img}}" alt="{{ product.titre }}">
  108.                                     </a>
  109.                                     <br>
  110.                                 </td>
  111.                                 <td>
  112.                                     <a class="quotation_block_product_name" href="{{product.lien_produit}}" 
  113.                                     title="{{ product.titre }}">
  114.                                         {{ product.titre }}
  115.                                     </a>
  116.                                     <br>
  117.                                     <span class="quotation_desc">{{ product.description }}</span>
  118.                                     <span class="quotation_ref" style="display: none;">{{ product.reference}}</span> 
  119.                                     <br>
  120.                                     <div style="line-height: 46px;">
  121.                                         {% if product.files is defined %}
  122.                                         {% for file in product.files %}
  123.                                         <div>
  124.                                             <div class="ImageFile" style='background-image: url("{{ app.request.schemeAndHttpHost }}/upload/{{ file.filename }}")'></div>
  125.                                             <a href="{{ app.request.schemeAndHttpHost }}/upload/{{ file.filename }}" target="_blank">moins1mo.jpg</a> 
  126.                                             <i class="fa fa-times-circle suppr" id="{{ file.id }}" data-id="{{ file.id }}"  title="Supprimer le fichier"></i> 
  127.                                             <br>
  128.                                         </div>
  129.                                         {% endfor %}
  130.                                             <div class="files" data-files="{{ product.ref }}"></div>
  131.                                         {% endif %}
  132.                                     </div>
  133.                                 </td>
  134.                                 <td>
  135.                                     <input class="ChangeQuantity" id="Qty1" data-theshop="1" data-id-quot="{{ product.id_devis }}" data-idproduct="{{product.id_product}}" data-idcombination="{{ product.id_product_attribute}}" type="text" min="1" style="width:40px; margin-right: 5px;" autocomplete="nope" value="{{ product.qty}}">
  136.                                 </td>
  137.                                 <td>
  138.                                     <a class="ajax_quotation_block_remove_link_lines" rel="nofollow" data-id-quot="{{ product.id_devis }}" title="Supprimer l'article">-</a>
  139.                                 </td>
  140.                             </tr>
  141.                             {% endfor %}
  142.                         </tbody>
  143.                     </table>
  144.                 </div>
  145.             </div>
  146.             <div class="col-3 text-center">
  147.                 <i class="fa fa-calculator" id="Calculator"></i>
  148.             </div>
  149.         </div>
  150.         <div class="row">
  151.             <div class="col-12 text-center">
  152.                 <button id="sendQuotationByEmail" type="submit" class="btn btn-lg btn-primary text-white rounded">Envoyer le devis</button>
  153.             </div>
  154.         </div>
  155.         {{ form_end(formData, { 'render_rest': false }) }}
  156.     {% else %}
  157.         <div class="alert alert-danger" role="alert"> <i class="fas fa-exclamation-circle"></i> <span class="sr-only">Erreur : </span> Vous devez ajouter au moins un produit à votre devis</div>
  158.     {% endif %}
  159.     
  160. {% endblock %}