{% extends 'dashboard_layout.html.twig' %} {% block title %} {{ parent() }} | {{ boutique.nom }}{% endblock %} {% block real_content %} <div class="assie-card card"> <div class="assie-card-body"> <div> <span class="titreModalPaypal" hidden></span> {% for label, messages in app.flashes(['warning', 'danger', 'success']) %} {% for message in messages %} <div class="alert alert-{{ label }}"> {{ message }} </div> {% endfor %} {% endfor %} <h3>{{ 'admin.invoices' | trans }}</h3> <form id="formFilter" method="POST" action="{{ path('admin.invoices', {'slug': boutique.slug}) }}"> <div class="row"> <div class="col-md-1 position-relative"> <label for="">{{ 'admin.period' | trans }}</label> </div> <div class="col-md-3 position-relative"> <select class="form-select" id="selPeriode"> <option value="{{ 'now' | date('Y-m-d') }}@{{ 'now' | date('Y-m-d') }}">{{ 'admin.today' | trans }}</option> <option value="{{ dateDebut | date('Y-m-d') }}@{{ dateFin | date('Y-m-d') }}" selected>{{ 'admin.this_week' | trans }}</option> <option value="{{ startMonth | date('Y-m-d') }}@{{ endMonth | date('Y-m-d') }}">{{ 'admin.this_month' | trans }}</option> <option value="{{ startYear | date('Y-m-d') }}@{{ endYear | date('Y-m-d') }}">{{ 'admin.this_year' | trans }}</option> <option value="p@p">{{ 'admin.customized' | trans }}</option> </select> </div> <div class="col-md-2 blocDate"> <div class="form-group position-relative"> <input value="{{ dateDebut | date('Y-m-d') }}" class="form-control" type="date" id="dateDebut" name="dateDebut" /> </div> </div> <div class="col-md-2 blocDate"> <div class="form-group position-relative"> <input value="{{ dateFin | date('Y-m-d') }}" class="form-control" type="date" id="dateFin" name="dateFin" /> </div> </div> <div class="col-md-3 position-relative"> <button id="btnActualiserTable" class="btn btn-primary">{{ 'admin.actualiser' | trans }}</button> </div> </div> </form> <br/> {% if userBoutique.droits[3].valeurDroit.ajout == true %} <a type="button" href="{{ path('admin.new_sale', {'slug': boutique.slug, 'type':'invoice'}) }}" class=" item-menu-travail btn btn-secondary pull-right btn-icon"> {{ 'admin.new' | trans }} <i class="bi bi-plus"></i> </a> {% endif %} </div> <br/> <ul class="nav nav-tabs" role="tablist" id="myTab"> <li class="nav-item" role="presentation"> <button class="nav-link active" id="touteslesfactures-tab" data-bs-toggle="tab" data-bs-target="#touteslesfactures" type="button" role="tab" aria-controls="touteslesfactures" aria-selected="true"> Toutes les factures </button> </li> <li class="nav-item" role="presentation"> <button class="nav-link" id="pointparclient-tab" data-bs-toggle="tab" data-bs-target="#pointparclient" type="button" role="tab" aria-controls="pointparclient" aria-selected="false"> Commande par client </button> </li> </ul> <div class="tab-content"> <div class="tab-pane fade show active" id="touteslesfactures" role="tabpanel"> <div class="table-responsive"> <div id="contenuListeCommande"> {{ include('admin/invoices_table_content.html.twig') }} </div> </div> <br/> <div class="container"> <div class="row"> <div class="col-md-12"> <h4>{{ 'admin.factures.detail_document' | trans }}</h4> <div id="contenuDetailCommande"> </div> </div> </div> </div> </div> <div class="tab-pane fade" id="pointparclient" role="tabpanel"> <div class="container"> <div class="row"> <div class="col-md-1"> <label for="client">Client</label> </div> <div class="col-md-4"> <select class="form-select" id="client"> <option value="">Choisir</option> <option value="0">Tous les clients</option> {% for client in clients %} <option value="{{ client.id }}">{{ client.nom }}</option> {% endfor %} </select> </div> </div> <div class="row"> <div class="col-md-12"> <br/> <a target="_blank=" id="aBtnImprimerPointParClient" class="btn btn-secondary" href="{{ path('admin_imprimer_point_par_client', {'slug': boutique.slug}) }}">{{ 'admin.print' | trans }}</a> <div class="table-responsive"> <div id="contenuListeCommandeParClient"> </div> </div> <br/> <div id="contenuDetailCommandeParClient"> </div> </div> </div> </div> </div> {# Fin onglet #} </div> </div></div><span id="urlDetailCommande" hidden>{{ path('admin_detail_commande', {'slug': boutique.slug}) }}</span><span id="urlPointParClient" hidden>{{ path('admin_point_par_client', {'slug': boutique.slug}) }}</span><span id="urlImprimerPointParClient" hidden>{{ path('admin_imprimer_point_par_client', {'slug': boutique.slug}) }}</span>{% endblock real_content %}{% block javascripts %} {{ parent() }} <script type="text/javascript"> $(function(){ var $deleteItem = $('.delete-item'), $makePaiement = $('.make-paiement'); var $titreModalPaypal = $('.titreModalPaypal'), $client = $('#client'); var $btnActualiserTable = $('#btnActualiserTable'); var $contenuListeCommande = $('#contenuListeCommande'), $formFilter = $('#formFilter'); var $selPeriode = $('#selPeriode'); var $dateDebut = $('#dateDebut'), $dateFin = $('#dateFin'); var $elementCommande = $('.element-commande'), $contenuDetailCommande = $('#contenuDetailCommande'); var $urlDetailCommande = $('#urlDetailCommande').text(), $urlPointParClient = $('#urlPointParClient'); var $contenuListeCommandeParClient = $('#contenuListeCommandeParClient'); var $aBtnImprimerPointParClient = $('#aBtnImprimerPointParClient'), $urlImprimerPointParClient = $('#urlImprimerPointParClient'); var $contenuDetailCommandeParClient = $('#contenuDetailCommandeParClient'); var $itemGenererFne = $('.item-generer-fne'); $('.blocDate').css('display', 'none'); $elementCommande.click(function(){ var $idDeLaCommande = $(this).find('span.id-commande').text(); actualiserDetailCommande($idDeLaCommande); }); function actualiserDetailCommande(idDeLaCommande) { toggleLoading(); var $lienComande = $urlDetailCommande+'/'+idDeLaCommande; $.ajax({ url: $lienComande, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); $contenuDetailCommande.html(data); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); } function actualiserDetailCommandeParClient(idDeLaCommande) { toggleLoading(); var $lienComande = $urlDetailCommande+'/'+idDeLaCommande; $.ajax({ url: $lienComande, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); $contenuDetailCommandeParClient.html(data); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); } $selPeriode.change(function(){ var per = $(this).val().split('@'); if($(this).val() == 'p@p'){ $('.blocDate').css('display', 'inline-block'); } else{ $('.blocDate').css('display', 'none'); } $dateDebut.val(per[0]); $dateFin.val(per[1]); }); $btnActualiserTable.click(function(e){ e.preventDefault(); if($client.val() != ''){ actualiserTablePointParClient(); } toggleLoading(); $.ajax({ url: $formFilter.attr('action'), method: 'POST', data: $formFilter.serialize(), //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); $contenuListeCommande.html(data); $('.my-data-table').DataTable( { "ordering": false, "lengthMenu": [[100, 50, 25, 10], [100, 50, 25, 10]], "pageLength": 10 } ); $elementCommande = $('.element-commande'); $elementCommande.click(function(){ var $idDeLaCommande = $(this).find('span.id-commande').text(); actualiserDetailCommande($idDeLaCommande); }); var $deleteItem = $('.delete-item'); $deleteItem.click(function(e){ e.preventDefault(); var lien = $(this).attr('href'); var $theRow = $(this).parent().parent(); swal({ title: t('Voulez-vous supprimer ?'), inputAttributes: { autocapitalize: 'off' }, buttons:{ cancel: t('Annuler'), submit: { text: t('Supprimer'), value: 'submit' } } } ).then((value) =>{ switch(value){ case 'submit': toggleLoading(); $.ajax({ url: lien, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); toggleMessage("success", "Ligne supprimée"); $theRow.remove(); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); break; default: swal( { title: t("Annulé!"), timer: 500 } ); } } ); }); // Fin dialogue supprimer une facture //Début dialogue générer facture FNE // Début générer dialogue FNE var $itemGenererFne = $('.item-generer-fne'); $itemGenererFne.click(function(e){ e.preventDefault(); var lien = $(this).attr('href'); console.log(lien); var $theRow = $(this).parent().parent(); swal({ title: t('Voulez-vous générer la Facture FNE ?'), inputAttributes: { autocapitalize: 'off' }, buttons:{ cancel: t('Annuler'), submit: { text: t('Générer'), value: 'submit' } } } ).then((value) =>{ switch(value){ case 'submit': toggleLoading(); //location.href=""; window.location.href = lien; break; default: swal( { title: t("Annulé!"), timer: 500 } ); } } ); }); //Fin dialogue générer une facture FNE }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage('error', 'Erreur survenue'); } }); }); function actualiserTablePointParClient(){ let lienUrlPointParClient = $urlPointParClient.text()+'/'+$client.val()+'/invoice/'+$dateDebut.val()+'/'+$dateFin.val(); let lienImpression = $urlImprimerPointParClient.text()+'/'+$client.val()+'/invoice/'+$dateDebut.val()+'/'+$dateFin.val(); $aBtnImprimerPointParClient.attr('href', lienImpression); toggleLoading(); $.ajax({ url: lienUrlPointParClient, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); $contenuListeCommandeParClient.html(data); $('.my-data-table-special').DataTable( { "ordering": false, "lengthMenu": [[100, 50, 25, 10], [100, 50, 25, 10]], "pageLength": 10 } ); var $detailCommandeParClient = $('.detail-commande-par-client'); $detailCommandeParClient.click(function(){ var $idDeLaCommandeParClient = $(this).find('span.id-commande').text(); actualiserDetailCommandeParClient($idDeLaCommandeParClient); }); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); } $deleteItem.click(function(e){ e.preventDefault(); var lien = $(this).attr('href'); var $theRow = $(this).parent().parent(); swal({ title: t('Voulez-vous supprimer ?'), inputAttributes: { autocapitalize: 'off' }, buttons:{ cancel: t('Annuler'), submit: { text: t('Supprimer'), value: 'submit' } } } ).then((value) =>{ switch(value){ case 'submit': toggleLoading(); $.ajax({ url: lien, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); toggleMessage("success", "Ligne supprimée"); $theRow.remove(); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); break; default: swal( { title: t("Annulé!"), timer: 500 } ); } } ); }); // fin dialog delete item // Début générer dialogue FNE $itemGenererFne.click(function(e){ e.preventDefault(); var lien = $(this).attr('href'); console.log(lien); var $theRow = $(this).parent().parent(); swal({ title: t('Voulez-vous générer la Facture FNE ?'), inputAttributes: { autocapitalize: 'off' }, buttons:{ cancel: t('Annuler'), submit: { text: t('Générer'), value: 'submit' } } } ).then((value) =>{ switch(value){ case 'submit': toggleLoading(); //location.href=""; window.location.href = lien; break; default: swal( { title: t("Annulé!"), timer: 500 } ); } } ); }); //Fin dialogue génerér FNE $makePaiement.click(function(e){ e.preventDefault(); var id = $(this).attr('id'); id = id.substring(14); //14 is "paymentTrigger" length var lien = $(this).attr('href'); var $theRow = $(this).parent().parent()(); var $modalContent = $('#cadreForm'+id).html(); swal({ title: $titreModalPaypal.text(), inputAttributes: { autocapitalize: 'off' }, html: $modalContent , buttons:{ cancel: t('Annuler'), submit: { text: t('Supprimer'), value: 'submit' } } } ).then((value) =>{ switch(value){ case 'submit': $.ajax({ url: lien, method: 'GET', //processData: false, //contentType: false, success: function (data, textStatus, jqXHR) { toggleLoading(); toggleMessage("success", "Ligne supprimée"); $theRow.remove(); toggleLoading(); }, error: function(jqXHR, textStatus, errorThrown ){ toggleLoading(); toggleMessage("error", "Une erreur s'est produite"); } }); break; default: swal( { title: t("Annulé!"), timer: 500 } ); } } ); }); }); </script>{% endblock javascripts %}