$(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(""); }