{% extends 'dashboard_layout.html.twig' %}
{% block title %} {{ parent() }} | {{ boutique.nom }}{% endblock %}
{% block real_content %}
<div class="main-card mb-3 card">
<div class="card-body">
<div>
<h3>{{ 'admin.proposals' | trans }}</h3>
<form id="formFilter" method="POST" action="{{ path('admin.proposals', {'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-control" 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.search' | trans }}</button>
</div>
</div>
</form>
<br/>
<a type="button" href="{{ path('admin.new_sale', {'slug': boutique.slug, 'type':'proposal'}) }}" class=" item-menu-travail btn btn-secondary pull-right btn-icon">
{{ 'admin.new' | trans }} <i class="bi bi-plus"></i>
</a>
</div><br/>
<div class="table-responsive">
<table class="table table-hover" id="tableDevis">
<thead class="thead-dark">
<tr>
<th>{{ 'admin.number' | trans }}</th>
<th>{{ 'admin.date' | trans }}</th>
<th>{{ 'admin.valable_jusqu_au' | trans }}</th>
<th>{{ 'admin.customer' | trans }}</th>
<th>{{ 'admin.totalHT' | trans }}</th>
<th>{{ 'admin.totalTVA' | trans }}</th>
<th>{{ 'admin.totalTTC' | trans }}</th>
<th class="text-center">{{ 'admin.actions' | trans }}</th>
</tr>
</thead>
<tbody id="contenuListeCommande">
{{ include('admin/proposals_table_content.html.twig') }}
</tbody>
</table>
</div>
<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>
<span id="urlDetailCommande" hidden>{{ path('admin_detail_commande', {'slug': boutique.slug}) }}</span>
{% endblock real_content %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
$(function(){
var $deleteItem = $('.delete-item');
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();
$elementCommande.click(function(){
var $idDeLaCommande = $(this).find('td.id-commande').text();
actualiserDetailCommande($idDeLaCommande);
});
$('.blocDate').css('display', 'none');
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");
}
});
}
$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();
toggleLoading();
$.ajax({
url: $formFilter.attr('action'),
method: 'POST',
data: $formFilter.serialize(),
//processData: false,
//contentType: false,
success: function (data, textStatus, jqXHR) {
toggleLoading();
$contenuListeCommande.html(data);
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
}
);
}
}
);
});
},
error: function(jqXHR, textStatus, errorThrown ){
toggleLoading();
toggleMessage('error', 'Erreur survenue');
}
});
});
$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
}
);
}
}
);
});
$('#tableDevis').DataTable();
});
</script>
{% endblock javascripts %}