templates/admin/proposals.html.twig line 1

Open in your IDE?
  1. {% extends 'dashboard_layout.html.twig' %}
  2.     
  3.     {% block title %} {{ parent() }} | {{ boutique.nom }}{% endblock %}
  4.     
  5. {% block real_content  %}
  6. <div class="main-card mb-3 card">
  7.     <div class="card-body">
  8.     <div>
  9.         
  10.         <h3>{{ 'admin.proposals' | trans }}</h3>
  11.         <form id="formFilter" method="POST" action="{{ path('admin.proposals', {'slug': boutique.slug}) }}">
  12.                 <div class="row">
  13.                     <div class="col-md-1 position-relative">
  14.                         <label for="">{{ 'admin.period' | trans }}</label>
  15.                     </div>
  16.                     <div class="col-md-3 position-relative">
  17.                         <select class="form-control" id="selPeriode">
  18.                             <option value="{{ 'now' | date('Y-m-d') }}@{{ 'now' | date('Y-m-d') }}">{{ 'admin.today' | trans }}</option>
  19.                             <option value="{{ dateDebut | date('Y-m-d') }}@{{ dateFin | date('Y-m-d') }}" selected>{{ 'admin.this_week' | trans }}</option>
  20.                             <option value="{{ startMonth | date('Y-m-d') }}@{{ endMonth | date('Y-m-d') }}">{{ 'admin.this_month' | trans }}</option>
  21.                             <option value="{{ startYear | date('Y-m-d') }}@{{ endYear | date('Y-m-d') }}">{{ 'admin.this_year' | trans }}</option>
  22.                             <option value="p@p">{{ 'admin.customized' | trans }}</option>
  23.                         </select>
  24.                     </div>
  25.                     <div class="col-md-2 blocDate">
  26.                         <div class="form-group position-relative">
  27.                             <input value="{{ dateDebut | date('Y-m-d') }}" class="form-control" type="date" id="dateDebut" name="dateDebut" />
  28.                         </div>
  29.                     </div>
  30.                     <div class="col-md-2 blocDate">
  31.                         <div class="form-group position-relative">
  32.                             <input value="{{ dateFin | date('Y-m-d') }}" class="form-control" type="date" id="dateFin" name="dateFin" />
  33.                         </div>
  34.                     </div>
  35.                     <div class="col-md-3 position-relative">
  36.                         <button id="btnActualiserTable" class="btn btn-primary">{{ 'admin.search' | trans }}</button>
  37.                     </div>
  38.                 </div>
  39.             </form>
  40.         <br/>
  41.         <a type="button" href="{{ path('admin.new_sale', {'slug': boutique.slug, 'type':'proposal'}) }}" class=" item-menu-travail btn btn-secondary pull-right btn-icon">
  42.             {{ 'admin.new' | trans }} <i class="bi bi-plus"></i>
  43.         </a>
  44.     </div><br/>
  45.         <div class="table-responsive">
  46.       <table class="table table-hover" id="tableDevis">
  47.         <thead class="thead-dark">
  48.           <tr>
  49.             <th>{{ 'admin.number' | trans }}</th>
  50.             <th>{{ 'admin.date' | trans }}</th>
  51.             <th>{{ 'admin.valable_jusqu_au' | trans }}</th>
  52.             <th>{{ 'admin.customer' | trans }}</th>
  53.             <th>{{ 'admin.totalHT' | trans }}</th>
  54.             <th>{{ 'admin.totalTVA' | trans }}</th>
  55.             <th>{{ 'admin.totalTTC' | trans }}</th>
  56.             <th class="text-center">{{ 'admin.actions' | trans }}</th>
  57.           </tr>
  58.         </thead>
  59.         <tbody id="contenuListeCommande">
  60.             {{ include('admin/proposals_table_content.html.twig') }}
  61.         </tbody>
  62.       </table>
  63.     </div>
  64.     <div class="container">
  65.             <div class="row">
  66.                 <div class="col-md-12">
  67.                     <h4>{{ 'admin.factures.detail_document' | trans }}</h4>
  68.                     <div id="contenuDetailCommande">
  69.                     </div>
  70.                 </div>
  71.             </div>
  72.         </div>
  73.         
  74.     </div>
  75. </div>
  76. <span id="urlDetailCommande" hidden>{{ path('admin_detail_commande', {'slug': boutique.slug}) }}</span>
  77. {% endblock real_content  %}
  78. {% block javascripts  %}
  79.     {{ parent() }}
  80.     <script type="text/javascript">
  81.         $(function(){
  82.             var $deleteItem = $('.delete-item');
  83.             var $btnActualiserTable = $('#btnActualiserTable');
  84.             var $contenuListeCommande = $('#contenuListeCommande'), $formFilter = $('#formFilter');
  85.             var $selPeriode = $('#selPeriode');
  86.             var $dateDebut = $('#dateDebut'), $dateFin = $('#dateFin');
  87.             var $elementCommande = $('.element-commande'), $contenuDetailCommande = $('#contenuDetailCommande');
  88.             var $urlDetailCommande = $('#urlDetailCommande').text();
  89.             $elementCommande.click(function(){
  90.                 var $idDeLaCommande = $(this).find('td.id-commande').text();
  91.                 actualiserDetailCommande($idDeLaCommande);
  92.              });
  93.             $('.blocDate').css('display', 'none');
  94.             function actualiserDetailCommande(idDeLaCommande)
  95.              {
  96.                 toggleLoading();
  97.                 var $lienComande = $urlDetailCommande+'/'+idDeLaCommande;
  98.                 $.ajax({
  99.                     url: $lienComande,
  100.                     method: 'GET',
  101.                     //processData: false,
  102.                     //contentType: false,
  103.                     success: function (data, textStatus, jqXHR) {
  104.                         toggleLoading();
  105.                         $contenuDetailCommande.html(data);
  106.                         
  107.                     },
  108.                     error: function(jqXHR, textStatus, errorThrown ){
  109.                         toggleLoading();
  110.                         toggleMessage("error", "Une erreur s'est produite");
  111.                     }
  112.                 });
  113.              }
  114.             
  115.             $selPeriode.change(function(){
  116.                 var per = $(this).val().split('@');
  117.                 if($(this).val() == 'p@p'){
  118.                     $('.blocDate').css('display', 'inline-block');
  119.                 } else{
  120.                     $('.blocDate').css('display', 'none');
  121.                 }
  122.                 
  123.                 $dateDebut.val(per[0]);
  124.                 $dateFin.val(per[1]);
  125.                 
  126.             });
  127.             
  128.             
  129.             $btnActualiserTable.click(function(e){
  130.                 e.preventDefault();
  131.                  toggleLoading();
  132.                   $.ajax({
  133.                     url: $formFilter.attr('action'),
  134.                     method: 'POST',
  135.                     data: $formFilter.serialize(),
  136.                     //processData: false,
  137.                     //contentType: false,
  138.                     success: function (data, textStatus, jqXHR) {
  139.                         toggleLoading();
  140.                         $contenuListeCommande.html(data);
  141.                         
  142.                         var $deleteItem = $('.delete-item');
  143.                         $deleteItem.click(function(e){
  144.                             e.preventDefault();                    
  145.                             var lien = $(this).attr('href');
  146.                             var $theRow = $(this).parent().parent();
  147.                             swal({
  148.                                   title: t('Voulez-vous supprimer ?'),
  149.                                   inputAttributes: {
  150.                                     autocapitalize: 'off'
  151.                                   },
  152.                                   buttons:{
  153.                                         cancel: t('Annuler'),
  154.                                         submit: {
  155.                                             text: t('Supprimer'),
  156.                                             value: 'submit'
  157.                                         }
  158.                                     }
  159.                                 
  160.                                 }
  161.                                  ).then((value) =>{
  162.                                     switch(value){
  163.                                         case 'submit':
  164.                                             toggleLoading();
  165.                                             $.ajax({
  166.                                                 url: lien,
  167.                                                 method: 'GET',
  168.                                                 //processData: false,
  169.                                                 //contentType: false,
  170.                                                 success: function (data, textStatus, jqXHR) {
  171.                                                     toggleLoading();
  172.                                                     toggleMessage("success", "Ligne supprimée");
  173.                                                     $theRow.remove();
  174.                                                 },
  175.                                                 error: function(jqXHR, textStatus, errorThrown ){
  176.                                                     toggleLoading();
  177.                                                     toggleMessage("error", "Une erreur s'est produite");
  178.                                                 }
  179.                                             });
  180.                                             
  181.                                             break;
  182.                                             
  183.                                             default:
  184.                                               swal(
  185.                                                 {
  186.                                                     title: t("Annulé!"),
  187.                                                     timer: 500
  188.                                                  }
  189.                                               );
  190.                                     }
  191.                                  }
  192.                                     
  193.                                  );
  194.                                     });
  195.                         
  196.                     },
  197.                     error: function(jqXHR, textStatus, errorThrown ){
  198.                         toggleLoading();
  199.                         toggleMessage('error', 'Erreur survenue');
  200.                     }
  201.                 });
  202.             });
  203.             
  204.             $deleteItem.click(function(e){
  205.                 e.preventDefault();                    
  206.                 var lien = $(this).attr('href');
  207.                 var $theRow = $(this).parent().parent();
  208.                 swal({
  209.                       title: t('Voulez-vous supprimer ?'),
  210.                       inputAttributes: {
  211.                         autocapitalize: 'off'
  212.                       },
  213.                       buttons:{
  214.                             cancel: t('Annuler'),
  215.                             submit: {
  216.                                 text: t('Supprimer'),
  217.                                 value: 'submit'
  218.                             }
  219.                         }
  220.                     
  221.                     }
  222.                      ).then((value) =>{
  223.                         switch(value){
  224.                             case 'submit':
  225.                                 toggleLoading();
  226.                                 $.ajax({
  227.                                     url: lien,
  228.                                     method: 'GET',
  229.                                     //processData: false,
  230.                                     //contentType: false,
  231.                                     success: function (data, textStatus, jqXHR) {
  232.                                         toggleLoading();
  233.                                         toggleMessage("success", "Ligne supprimée");
  234.                                         $theRow.remove();
  235.                                     },
  236.                                     error: function(jqXHR, textStatus, errorThrown ){
  237.                                         toggleLoading();
  238.                                         toggleMessage("error", "Une erreur s'est produite");
  239.                                     }
  240.                                 });
  241.                                 break;
  242.                                 
  243.                                 default:
  244.                                   swal(
  245.                                     {
  246.                                         title: t("Annulé!"),
  247.                                         timer: 500
  248.                                      }
  249.                                   );
  250.                         }
  251.                      }
  252.                         
  253.                      );
  254.                 
  255.             });    
  256.             
  257.             $('#tableDevis').DataTable(); 
  258.         });
  259.     </script>
  260. {% endblock javascripts  %}