$(document).on('change', '#select-revendeurs-comparer', comparerProduit);
$(document).on('click', '#btn-comparerPrix', comparerProduit);
$(document).on('click', '#btn-supprimer', supprimerProduit);
$(document).on('click', '#btn-supprimer-pp', supprimerProduitPeriodique);
$(document).on('click', '#btn-modifier', modifierProduit);
$(document).on('click', '#btn-activer', activerProduit)
var div = $("#comparaison_resultat");
/************************************************************* COMPARER PRODUIT*************************************************************/
function comparerProduit(e) {
var elem = e.target;
if ($(elem).attr("id") == "btn-comparerPrix") {
effacerHtml();
var cp = $(document).find("[name='code_postal']").val();
var request = $.ajax({
url: "api/Produit/ChercherCommuneParCP/"+cp,
method: "GET",
contentType: 'application/json',
dataType: "json"
});
request.done(function( data ) {
if (data.length > 1) {
var html = [];
var options = [];
options.push("");
$.each(JSON.parse(JSON.stringify(data)), function(i, obj) {
options.push("");
});
html.push("");
$("#revendeurs-resultat").html(html);
}
if (data.length == 1) {
getComparaisonProduit(data[0].code);
}
});
} else {
getComparaisonProduit(document.getElementById("select-revendeurs-comparer").value);
}
}
function getComparaisonProduit(codeCommune) {
var url = "ProduitComparer";
$('#loading').show();
$("#comparaison-resultat").load(url, {"codeCommune": codeCommune}, function() {
$('html, body').animate({
scrollTop: $("#comparaison-resultat").offset().top
});
$('#loading').fadeOut();
$(".container-comparaison").addClass("d-none");
});
}
/************************************************************* MODIFIER PRODUIT *************************************************************/
function modifierProduit(e) {
var res = confirm("Etes-vous sur de vouloir modifier le produit ?");
if ( ! res) {
return false;
}
}
/************************************************************* SUPPRIMER PRODUIT ************************************************************/
function supprimerProduit(e) {
e.preventDefault();
var res = confirm("Etes-vous sur de vouloir désactiver le produit ?");
if (res == false) {
return;
} else {
var produit_elem = $(this).closest(".accordion-item");
var idProduit = produit_elem.find("#id-produit").val();
var request = $.ajax({
url: "api/Produit/Desactiver/"+idProduit,
method: "PUT",
});
request.done(function( data ) {
location.reload();
});
request.fail(function(response) {
$("#ajax-echec").append("Impossible de désactiver le produit...").slideDown("slow").delay(2500).slideUp("slow");
setTimeout(function() {
$("#ajax-echec").text("");
}, 5000);
});
}
}
function supprimerProduitPeriodique(e) {
e.preventDefault();
var res = confirm("Etes-vous sur de vouloir supprimer ?");
if (res == false) {
return;
} else {
var produit_elem = $(this).closest(".accordion-item")
var idProduit = produit_elem.find("#id-produit").val();
var idRevendeur = produit_elem.find('#id-revendeur').val();
var idPeriode = produit_elem.find('#id-periode').val();
var request = $.ajax({
url: "api/Produit/Periodique/Supprimer/"+idProduit+"/"+idRevendeur+"/"+idPeriode,
method: "DELETE",
});
request.done(function( data ) {
$(produit_elem).remove().slideDown("slow");
$("#ajax-succes").append("Produit périodique " + data.libelle + " supprimé").slideDown("slow").delay(2500).slideUp("slow");
setTimeout(function() {
$("#ajax-succes").text("");
}, 5000);
});
request.fail(function(response) {
$("#ajax-echec").append("Impossible de supprimer le produit périodique...").slideDown("slow").delay(2500).slideUp("slow");
setTimeout(function() {
$("#ajax-echec").text("");
}, 5000);
});
}
}
/************************************************************* ACTIVER PRODUIT ************************************************************/
function activerProduit(e) {
e.preventDefault();
var res = confirm("Etes-vous sur de vouloir activer le produit ?");
if (res == false) {
return;
} else {
var produit_elem = $(this).closest(".accordion-item")
var idProduit = produit_elem.find("#id-produit").val();
var request = $.ajax({
url: "api/Produit/Activer/"+idProduit,
method: "PUT",
});
request.done(function( data ) {
location.reload();
});
request.fail(function(response) {
$("#ajax-echec").append("Impossible d'activer le produit...").slideDown("slow").delay(2500).slideUp("slow");
setTimeout(function() {
$("#ajax-echec").text("");
}, 5000);
});
}
}
/************************************************************* SORT ACCORDION **********************************************************************/
$(function(){
$("#accordion-produit-activer")
.accordion({
header: "> div > h3",
collapsible: true,
active: false,
heightStyle: "content",
})
.sortable({
items: '.s-panel',
update: function ( event, ui ) {
$(this).children().each(function(i) {
if ($(this).attr('data-position') != (i+1)) {
$(this).attr('data-position', (i+1)).addClass('updated');
}
});
saveNewPositions();
}
});
$("#accordion-produit-desactiver")
.accordion({
header: "> div > h3",
collapsible: true,
active: false,
heightStyle: "content",
})
.sortable({
items: '.s-panel'
})
});
function saveNewPositions() {
var positions = new Array();
$('.updated').each(function() {
var produit = {};
produit["id"] = $(this).attr('data-index');
produit["position"] = $(this).attr('data-position');
positions.push(produit);
$(this).removeClass('updated');
});
console.log(positions);
var jsonArray = JSON.stringify(positions);
$.ajax({
type: "POST",
url: "api/Produit/Trier",
contentType: 'application/json',
data: jsonArray,
dataType: 'json',
success: function (response) {
console.log(response);
},
error: function(err) {
console.log(err);
}
});
}
/************************************************************* HELPERS **********************************************************************/
function effacerHtml() {
$("#revendeurs-resultat").html("");
$("#comparaison-resultat").html("");
}