$(document).ready(function () { $(".page-title").on("click", function () { $(".switch-onglet[data-target~=index]").click(); }); /* ==================================================================================== Changement de page ==================================================================================== */ //* var onglet = 'index'; var target = ''; var title = ''; var selectedMagasin = ''; var selectedEnseigne = ''; var selectedOutnumber = ""; var datatable_ = null; var oDicoPDVRefs = {}; var isAvailable = true; var NAV_TIME = 600; var globRefsLoaded = false; var globRefsStrateLoaded = false; var gPdv = {}; $('main > div').fadeOut(0, function () { $('#index').fadeIn('fast', function () { }); }); $('.switch-onglet').click(function (event) { if (isAvailable) { setMenuTitle(); isAvailable = false; setTimeout(function () { isAvailable = true; }, 2 * NAV_TIME); target = $(this).attr('data-target'); title = $(this).attr('data-title'); if (onglet != target) { if (target == "pdv") { // cas particulier pour pdv if (!globRefsLoaded || !globRefsStrateLoaded) { Materialize.toast("Le chargement des informations nécessaires pour le PDV est en cours, veuillez réessayer dans quelques instants.") return false; } } var picto = $(this).attr('data-picto'); //Changement de l'onglet actif $('#list-onglet .active img').toggleClass('hide'); $(this).find('img').toggleClass('hide'); $('#list-onglet > li').removeClass('active'); $(this).parent().addClass('active'); //Changement du titre $('.page-title').fadeOut(NAV_TIME, function () { $(this).find('span').html(title); $('.page-title').find('object').remove(); if (picto) $('a.page-title').prepend(''); $(this).fadeIn(NAV_TIME, function () { }); }); //Changement du contenu $('#' + onglet).fadeOut(NAV_TIME, function () { $('#' + target).fadeIn(NAV_TIME, function () { onglet = target; }); }); //initialisation de la page selectionner switch (target) { case 'index': break; case "pdv": pdv(); break; } } } }); //*/ function ajax() { //Accueil //Chargement des CSV pour Gamme et Manque a gagne Rupture $.ajax({ url: '../csv/logo.csv', type: 'GET', dataType: 'text' }).done(function (data) { logo = $.csv.toArrays(data); updateData(); }).fail(function () { console.log("error on loading logo.csv"); }); } function ajaxDiff() { $.ajax({ url: 'https://app-gms-decisionnel.ovh/PHP/PDV/csv/refsparstrate.csv', type: 'GET', dataType: 'text' }).done(function (data) { pdv_data = {}; // on réinit pour éviter les pb de cache var pdv_datatemp = $.csv.toObjects(data); var ens = "LECLERC"; var strate = localStorage.getItem("selectStrate"); //strate = reworkStrate(strate); console.log(ens, strate) $.when( $.each(pdv_datatemp, function (i, line) { if (line.ALIM_PROXI == "ALIM") { $.each(line.BannerField.split("@_"), function (iSplit, BannerField) { $.each(line.AssortmentClass.split("@_"), function (jSplit, AssortmentClass) { if (ens == BannerField && (AssortmentClass.indexOf(strate) != -1 || AssortmentClass == "*")) { pdv_data[line["CODE EAN"]] = { CMD: true, USINE: true }; } }); }); } }) ).then(function () { // $.each($("#pdv_list_refs tr:not([data-snacking=true])"), function (i, tr) { // var ean = $(tr).attr("data-ref"); // if (pdv_data[ean] === undefined) { // pdv_data[ean] = { // CMD: false, // USINE: true // }; // } else { // pdv_data[ean].USINE = true; // } // }); globRefsStrateLoaded = true; }); }).fail(function () { console.log("error on loading data from refsparstrate."); Materialize.toast("Plan de vente : Impossible de se connecter pour vérifier les disponibilités. Veuillez vérifier votre connection internet et rafraichir l'application.", 4000); globRefsStrateLoaded = true; }); $.ajax({ url: 'https://app-gms-decisionnel.ovh/PHP/PDV/csv/refs.csv', type: 'GET', dataType: 'text' }).done(function (data) { var refs = $.csv.toObjects(data); //EAN,MARQUE,LBL,FDX,1/2 Pal,PAL $.each(refs, function (i, line) { if (line.EAN == 5000112609592) console.log(line, line.EAN.padStart(13, 0)) oDicoPDVRefs[line.EAN.padStart(13, 0)] = { FDX: line.FDX, DEMIPAL: line["1/2 Pal"], PAL: line["PAL"] }; }); // $.each($("#pdv_list_refs tr:not([data-snacking=true])"), function (i, tr) { // var ean = $(tr).attr("data-ref"); // if (oDicoPDVRefs[ean] == undefined) { // oDicoPDVRefs[ean] = { // FDX: 0, // DEMIPAL: 0, // PAL: 0 // }; // } // }); globRefsLoaded = true; }).fail(function () { console.log("error on loading data from refs.") Materialize.toast("Plan de vente : Impossible de se connecter pour récupérer les PCB. Veuillez vérifier votre connection internet et rafraichir l'application.", 4000); // $.each($("#pdv_list_refs tr:not([data-snacking=true])"), function (i, tr) { // var ean = $(tr).attr("data-ref"); // if (oDicoPDVRefs[ean] == undefined) { // oDicoPDVRefs[ean] = { // FDX: 0, // DEMIPAL: 0, // PAL: 0 // }; // } // }); globRefsLoaded = true; }); } function updateData() { selectedMagasin = localStorage.getItem('selectMagasin'); selectedEnseigne = localStorage.getItem('selectEnseigne'); selectedOutnumber = localStorage.getItem('selectMagasin').split(" - ")[localStorage.getItem('selectMagasin').split(" - ").length - 1 ]; //changement du logo (ou suppression si non renseigne) console.log(selectedEnseigne) $('.logo-enseigne').empty(); for (var i = 0; i < logo.length; i++) { console.log(selectedEnseigne, logo[i][0]) if (selectedEnseigne == logo[i][0]) { if (logo[i][1] != '') { // .split(" ").join("") = equivalent du trim en + rapide $('.logo-enseigne').html('Logo de ' + logo[i][0] + ''); } else { $('.logo-enseigne').empty(); } } } console.log(selectedMagasin) $('.nom-magasin').text(selectedMagasin); setMenuTitle(); // TODO, load data from serveur $.ajax({ url: 'https://app-gms-decisionnel.ovh/PHP/DATA_IMPACT/getDataByMagasin.php', type: 'GET', cache: false, dataType: 'json', data: { id: selectedOutnumber } }).done(function (data) { console.log(data) var dataForTable = []; var colJr = []; var header = []; var nbColWithoutdataJour = Object.keys(data[0]).length - 1; var hiddendataJourCol = []; // table des jours à masqués, on garde 6 jours et on masque le reste var refsAbsorRupt = {}; //On place les données dans un tableau + on transforme dataJour en données sous forme de colonne $.each(data, function (i, line) { var tempData = {}; $.each(line, function (head, value) { if (head === "dataJour") { try { value = value.split("'").join('"'); var json = JSON.parse(value); } catch (e) { console.error(e); console.log(value) } $.each(json, function (jr, statut) { tempData[jr] = statut; colJr.push(jr); }); } else { tempData[head] = value; } }) dataForTable.push(tempData); }); $.each(dataForTable[0], function (head, value) { header.push({"data": head, "title": head}); }); for (var i = nbColWithoutdataJour; i < header.length - 6; i++) { hiddendataJourCol.push(i); } datatable_ = $('#datatable').DataTable({ data: dataForTable, columns: header, columnDefs: [ { "targets": hiddendataJourCol, visible: false } ], deferRender: true, scrollX: 800, scroller: { rowHeight: 11 }, "lengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "Tout"]], "pageLength": 20, 'rowCallback': function (row, data, index) { for (var i = nbColWithoutdataJour; i < nbColWithoutdataJour + 6; i++) { var sColor = ""; switch (data[header[i + hiddendataJourCol.length].data]) { case "Absent": sColor = "yellow"; break; case "Present": sColor = "green"; break; case "En rupture": sColor = "red"; break; default: sColor = "yellow"; break; } $(row).find('td:eq(' + i + ')').css('background-color', sColor); } } }); ajaxDiff(); }).fail(function (e) { console.error(e) }) // Remplir datatable // Virer loading $('#loading-wrapper').fadeOut(400); } /* ==================================================================================== Accueil ==================================================================================== */ //* //Variable utiliser uniquement pour l'import de data_mag //Variable generale var logo = []; //Met à jour la liste des Magasin function setMenuTitle() { setTimeout(function () { $.each($(".switch-onglet"), function (i, el) { $("#append-" + i).remove(); var color = ""; var appender = ""; if ($(el).parent().hasClass("active")) { color = "#FFFFFF"; } else { color = "#ed1c24"; } if ($(el).attr("data-title") != "Store Tools HMSM") { appender = $(el).attr("data-title"); } else { appender = "Accueil"; } if (!$(el).parent().hasClass("hide")) { $("body").append("" + appender + "") $("#append-" + i).css("display", "block").css("overflow", "show").css("position", "fixed").css("color", color).css("top", $(el).offset().top + $(el).children("img:not(.hide)").height() + 20).css("z-index", 999).css("font-size", "0.8em").css("text-align", "center").css("width", $(el).parent().width()); } }); }, 50); } /* ==================================================================================== EAN ==================================================================================== */ function createEanLink(ref) { var $ref = $(''); var isChecked = $('#ean-synthese').prop('checked'); //Cree le lien pour afficher l'EAN en full page var $a = $(''); $a.addClass('ref-ean'); $a.attr('href', '#!'); $a.text(ref); if (isChecked) $a.addClass('hide'); $ref.append($a); //Cree l'image (masquer par defaut) du code bare var $img = $(''); while (ref.length < 13) { ref = '0' + ref; } $img.addClass('resmonsive-img') .attr('src', 'images/ean/' + ref + '.jpg') .attr('alt', 'Impossible d\'afficher l\'image pour le code EAN ' + ref); if (!isChecked) $img.addClass('hide'); $ref.append($img); $ref.css('width', '45%'); return $ref; } function ean() { $('.ref-ean').parent().click(function (event) { event.preventDefault(); var ref = $(this).text(); //Si moins de 13 carractère, ajoute des 0 pour correspondre au nom du fichier while (ref.length < 13) { ref = '0' + ref; } //Modifie l'image dans le modal $('#modal-ean').find('img') .attr('src', 'images/ean/' + ref + '.jpg') .attr('alt', 'Impossible d\'afficher l\'image pour le code EAN ' + ref); //Affiche le modal(celui-ci est masque au prochain clic) $('#modal-ean').modal('open'); }); } function expandEan() { if ($('.ean-table').first().hasClass('m12')) $('.expand-ean').prop('checked', true); else $('.expand-ean').prop('checked', false); $('.expand-ean').change(function (e) { var $table = $('.ean-table'); $table.parent().toggleClass('m6 m12'); $table.each(function (index, el) { $(el).find('tbody tr td:first-child').children().toggleClass('hide'); }); }); } expandEan(); /* ==================================================================================== Export ==================================================================================== */ // // $('#modal-pdf').modal({ // dismissible: false // }); // //Appelle la fonction d'export au submit // $('#export-data').submit(function (e) { // e.preventDefault(); // //RegExp de verification de mail // var regExp = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/; // //Reccupère les donnes du formulaire // var nom = $('#nom-email').val(); // var email = $('#pdf-email').val(); // var obj = $('#obj-email').val(); // var msg = $('#msg-email').val(); // //Verification des donnees // if (nom == '') // Materialize.toast('Vous devez renseigner le nom du destinataire!', 4000, 'rounded'); // else if (!regExp.test(email)) // Materialize.toast('Email incorrect', 4000, 'rounded'); // else if (obj == '') // Materialize.toast('Vous devez renseigner un objet!', 4000, 'rounded'); // else if (msg == '') // Materialize.toast('Vous n\'avez pas renseigne de message', 4000, 'rounded'); // else { // //Envoie les donnees sur le serveur d'envoie de mail // exportPDF(exportData, nom, email, obj, msg, PDFSuccess, PDFError); // $('#modal-pdf').modal('close'); // $('#modal-loading-ajax').modal('open'); // } // // }); // function PDFSuccess() { // //Message si envoie reussie // // $('#modal-loading-ajax').modal('close'); // $head = $('

').text('Envoi termine'); // $content = $('

').text('Votre rapport à bien ete envoye, il arrivera à destination dans quelques minutes'); // $('#modal-pdf-result') // .find('.modal-content') // .empty() // .append($head, $content); // $('#modal-pdf-result').modal('open'); // } // // function PDFError() { // //Message si envoie echouer // // $('#modal-loading-ajax').modal('close'); // $head = $('

').text('Un erreur est survenue'); // $content = $('

').text('Veuillez verifier votre connexion internet'); // $('#modal-pdf-result') // .find('.modal-content') // .empty() // .append($head, $content); // $('#modal-pdf-result').modal('open'); // } // /* ==================================================================================== Reset ==================================================================================== */ //Appelle la fonction ajax APRES la definition de toutes les fonctions ajax(); /* ==================================================================================== * Plan de vente * ================================================================================= */ var pdv_data = []; var list_marque = [ 'COCACOLAZERO', 'COCACOLALIGHT', 'COCACOLA', 'COCACOLAENERGY', 'MONSTER', 'SPRITE', 'FANTA', 'APPLETISER', 'FUZETEA', 'HONEST', 'CAPRISUN', 'TROPICO', 'HAWAI', 'MINUTEMAID', 'OCEANSPRAY', 'POWERADE', 'AQUARIUS', 'SMARTWATER' ]; function pdv() { listMarque2(); var data = datatable_.data().toArray(); var lastDate = $("#datatable thead th:last-of-type").text(); console.log(data) $.each(data, function (i, ref) { if (ref[lastDate] !== "Present") { if (oDicoPDVRefs[ref["EAN"].padStart(13, 0)] == undefined) oDicoPDVRefs[ref["EAN"].padStart(13, 0)] = { PCB: ref["PCB"], NAME: ref["Nomproduit"], MARQUE: ref["Marque"], isAbsentOrRupt: true } else { oDicoPDVRefs[ref["EAN"].padStart(13, 0)]["PCB"] = ref["PCB"]; oDicoPDVRefs[ref["EAN"].padStart(13, 0)]["NAME"] = ref["Nomproduit"]; oDicoPDVRefs[ref["EAN"].padStart(13, 0)]["MARQUE"] = ref["Marque"]; oDicoPDVRefs[ref["EAN"].padStart(13, 0)]["isAbsentOrRupt"] = true; } } }); try { var dicoDispo = pdv_data; console.log(oDicoPDVRefs) $.each(oDicoPDVRefs, function (ref, info) { if (info.isAbsentOrRupt) { var $tr = $(""); // td 1: ean // td 2 : libellé // td 3 : dispo cmd // td 4 : dispo usine // td 5 : cb $tr.append($("").append(ref)); $tr.attr('data-ref', ref); $tr.attr('data-marque', info.MARQUE.split(" ").join("").split("-").join("")); $tr.append($("").append(info.NAME)); $tr.addClass(info.MARQUE.split(" ").join("").split("-").join("")); var bDispoCmd = false; var bDispoUsine = false; console.log($tr.attr("data-snacking")) if ($tr.attr("data-snacking") == "true") { bDispoUsine = true; bDispoCmd = true; } else { if (dicoDispo[ref] != undefined) { if (dicoDispo[ref].CMD == true) bDispoCmd = true; if (dicoDispo[ref].USINE == true) bDispoUsine = true; } else { oDicoPDVRefs[ref] = {}; } } $tr.append($("").append(bDispoCmd == true ? "DISPONIBLE" : "INDISPONIBLE").addClass(bDispoCmd == true ? "green-text" : "red-text").attr("data-dispo-cmd", bDispoCmd).css("text-align", "center")); $tr.append($("").append(bDispoUsine == true ? "DISPONIBLE" : "INDISPONIBLE").addClass(bDispoUsine == true ? "green-text" : "red-text").attr("data-dispo-usine", bDispoUsine).css("text-align", "center")); $tr.append($("").append(oDicoPDVRefs[ref]["FDX"] != "" ? oDicoPDVRefs[ref]["FDX"] : "").css("text-align", "center")); $tr.append($("").append(oDicoPDVRefs[ref]["FDX"] != "" ? $("").attr({'type': 'number', 'id': 'pdv_fdx_' + ref, 'style': 'background-color:inherit;text-align:center;width:50px !important'}).on("change", function () { var $this = $(this); if ($this.val() != "" && $this.val() != 0) { $this.parent().parent().children("td").eq(10).children("input").prop("checked", true); } else { $this.parent().parent().children("td").eq(10).children("input").prop("checked", false); } }) : "")); $tr.append($("").append(oDicoPDVRefs[ref]["DEMIPAL"] != "" ? oDicoPDVRefs[ref]["DEMIPAL"] : "").css("text-align", "center")); $tr.append($("").append(oDicoPDVRefs[ref]["DEMIPAL"] != "" ? $("").attr({'type': 'number', 'id': 'pdv_demipal_' + ref, 'style': 'background-color:inherit;text-align:center;width:50px !important'}).on("change", function () { var $this = $(this); if ($this.val() != "" && $this.val() != 0) { $this.parent().parent().children("td").eq(10).children("input").prop("checked", true); } else { $this.parent().parent().children("td").eq(10).children("input").prop("checked", false); } }) : "")); $tr.append($("").append(oDicoPDVRefs[ref]["PAL"] != "" ? oDicoPDVRefs[ref]["PAL"] : "").css("text-align", "center")); $tr.append($("").append(oDicoPDVRefs[ref]["PAL"] != "" ? $("").attr({'type': 'number', 'id': 'pdv_pal_' + ref, 'style': 'background-color:inherit;text-align:center;width:50px !important'}).on("change", function () { var $this = $(this); if ($this.val() != "" && $this.val() != 0) { $this.parent().parent().children("td").eq(10).children("input").prop("checked", true); } else { $this.parent().parent().children("td").eq(10).children("input").prop("checked", false); } }) : "")); $tr.append($("").append("").addClass("selectable").css("text-align", "center")); $("#pdv_list_refs").append($tr); } }); gPdv = SearchChangeFilterGamme2(gPdv); $('.select-marque2').click(function (event) { $(this).toggleClass('active-marque2'); gPdv = SearchChangeFilterGamme2(gPdv); }); $('#reset-pdv').click(function (event) { gPdv = resetFiltre2(gPdv); }); } catch (e) { Materialize.toast("L'application a rencontrée une erreur et va redémarrer dans 5 secondes. Veuillez communiquer le message d'erreur suivant à votre administrateur : " + e.message) console.error(e) setTimeout(function () { // location.reload(); }, 5000); } } $('#reset-pdv').fadeOut(400); $('#liste-marque2').parents('.row').slideUp(0); $('#show-marque2').click(function (event) { $('#pdv .show-marque').toggleClass('plus'); $('#liste-marque2').parents('.row').slideToggle(400); }); //Cree la liste des filtres function listMarque2() { $('#liste-marque2').empty(); for (var i = 0; i < list_marque.length; i++) { $('#liste-marque2').append( '

' + '' + '
' ); } } var marque2 = []; //Change les referance affiche en fonction du filtre function changeFilter2(pdv) { $('.select-marque2').each(function (index, el) { var $this = $(el); if ($this.hasClass("active-marque2")) { if ($.inArray($this.val(), marque2) === -1) { marque2.push($this.val()); } } else { if ($.inArray($this.val(), marque2) !== -1) { marque2.splice($.inArray($this.val(), marque), 1); } } }); if (marque2.length == 0) { $('#reset-pdv').fadeOut(400); } else { $('#reset-pdv').fadeIn(400); } $('#pdv tr[data-marque]').each(function (index, el) { if (marque2.length == 0 || $.inArray($(el).attr('data-marque'), marque2) != -1) { $(el).removeClass('hide'); if (pdv[$(el).attr('data-ref')] !== undefined) { //evite un bug lorsqu'on affiche plusieurs fois l'onglet gamme pdv[$(el).attr('data-ref')].filter = true; } } else { $(el).addClass('hide'); if (pdv[$(el).attr('data-ref')] !== undefined) { pdv[$(el).attr('data-ref')].filter = false; } } }); // $('#select-all-1, #select-all-2, #select-all-3').prop('checked', false); // checkEmptyTable(); return pdv; } //desactive tout les filtres function resetFiltre2(gPdv) { $('.active-marque2').removeClass('active-marque2'); $('#rech-pdv').val(''); return SearchChangeFilterGamme2(gPdv); } function SearchChangeFilterGamme2(gPdv) { console.log(gPdv) var string = $('#rech-pdv').val(); var reg = new RegExp(string, 'gi'); $('.select-marque2').each(function (index, el) { var $this = $(el); if ($this.hasClass("active-marque2")) { if ($.inArray($this.val(), marque2) === -1) { marque2.push($this.val()); } } else { if ($.inArray($this.val(), marque2) !== -1) { marque2.splice($.inArray($this.val(), marque2), 1); } } }); if (marque2.length == 0 && $('#rech-pdv').val().length == 0) { $('#reset-pdv').fadeOut(400); } else { $('#reset-pdv').fadeIn(400); } $('#pdv tr[data-marque]').each(function (index, el) { var ref = $(el).attr("data-ref"); console.log(ref) // if ($("#filtre_ref_prioritaire").prop("checked")) { // if ((marque.length == 0 || $.inArray($(el).attr('data-marque'), marque) != -1)) { // $(el).removeClass('hide'); // if (pdv[$(el).attr('data-ref')] !== undefined) { //evite un bug lorsqu'on affiche plusieurs fois l'onglet gamme // pdv[$(el).attr('data-ref')].filter = true; // } // } else { // $(el).addClass('hide'); // if (pdv[$(el).attr('data-ref')] !== undefined) { // pdv[$(el).attr('data-ref')].filter = false; // } // } // } else { if ((marque2.length == 0 || $.inArray($(el).attr('data-marque'), marque2) != -1)) { $(el).removeClass('hide'); if (gPdv[$(el).attr('data-ref')] !== undefined) { //evite un bug lorsqu'on affiche plusieurs fois l'onglet gamme gPdv[$(el).attr('data-ref')].filter = true; } } else { $(el).addClass('hide'); if (gPdv[$(el).attr('data-ref')] !== undefined) { gPdv[$(el).attr('data-ref')].filter = false; } } if ($("#filtre_dispo_commande").prop("checked") && !parseBool($(el).children("td").eq(2).attr("data-dispo-cmd"))) { $(el).addClass("hide"); } if ($("#filtre_dispo_usine").prop("checked") && !parseBool($(el).children("td").eq(3).attr("data-dispo-usine"))) { $(el).addClass("hide"); } if ($("#filtre_snacking").prop("checked") && !parseBool($(el).attr("data-snacking"))) { $(el).addClass("hide"); } if ($(el).children("td").eq(1).text().search(reg) == -1 && $('#rech-pdv').val().length != 0) { $(el).addClass("hide"); } if ($("#filtre_commande").prop("checked") && !$(el).children("td").eq(10).children("input").prop("checked")) { $(el).addClass("hide"); } }); // $('#select-all-1, #select-all-2, #select-all-3').prop('checked', false); // checkEmptyTable(); return gPdv; } $("#filtre_dispo_usine, #filtre_dispo_commande, #filtre_snacking, #filtre_commande").on("change", function () { SearchChangeFilterGamme2(gPdv); }); $('#rech-pdv').keyup(function () { gPdv = SearchChangeFilterGamme2(gPdv); }); $("#sendmail").on("click", function (e) { e.preventDefault(); if ($("#inputmailmsg").val() != "") { $.LoadingOverlay("show"); var today = moment().format("MMMM YYYY"); var data = {}; data["infos"] = { "date": today, "strate": $("[data-field=outlet]").text(), "enseigne": $('.logo-enseigne img').attr("src").replace("../img/logos/", ""), }; $.each($('#pdv_list_refs tr'), function (i, tr) { if ($(tr).children("td").eq(10).children("input").prop("checked")) { data[$(tr).children("td").eq(0).text()] = { "libelle": $(tr).children("td").eq(1).text(), "marque": $(tr).attr("data-marque"), "fdx": $(tr).children("td").eq(5).children("input").length === 0 ? "" : $(tr).children("td").eq(5).children("input").val(), "demipal": $(tr).children("td").eq(7).children("input").length === 0 ? "" : $(tr).children("td").eq(7).children("input").val(), "pal": $(tr).children("td").eq(9).children("input").length === 0 ? "" : $(tr).children("td").eq(9).children("input").val() }; } }); $.ajax({ url: 'https://app-gms-decisionnel.ovh/PHP/PDV/mail_ld.php', type: 'POST', dataType: 'text', data: { mail1: $("#inputmail1").val(), mail2: $("#inputmail2").val(), msg: $("#inputmailmsg").val(), subject: $("#inputmailsubject").val(), data: JSON.stringify(data) } }).done(function (reponse) { if (reponse == "OK") { Materialize.toast("Mail envoyé avec succès.", 3000); } else { Materialize.toast("Erreur dans l'envoie du mail.", 3000); console.log(reponse); } $.LoadingOverlay("hide"); $("#mail").modal("close"); }); ; } else { if (bSubjectErr) { $(".errormail").append("!"); } else { bSubjectErr = true; $("#mail div div:nth-of-type(2)").prepend($("Merci d'entrer un sujet")); setTimeout(function () { $(".errormail").fadeOut(4000, function () { $(".errormail").remove(); bSubjectErr = false; }); }, 2000); } } }); $("#savepdv").on("click", function (e) { e.preventDefault(); $.LoadingOverlay("show"); var today = moment().format("MMMM YYYY"); var data = {}; data["infos"] = { "date": today, "strate": $("[data-field=outlet]").text(), "enseigne": $('.logo-enseigne img').length != 0 ? $('.logo-enseigne img').attr("src").replace("../img/logos/", "") : localStorage.getItem("selectEnseigne"), }; $.each($('#pdv_list_refs tr'), function (i, tr) { if ($(tr).children("td").eq(10).children("input").prop("checked")) { data[$(tr).children("td").eq(0).text()] = { "libelle": $(tr).children("td").eq(1).text(), "marque": $(tr).attr("data-marque"), "fdx": $(tr).children("td").eq(5).children("input").length === 0 ? "" : $(tr).children("td").eq(5).children("input").val(), "demipal": $(tr).children("td").eq(7).children("input").length === 0 ? "" : $(tr).children("td").eq(7).children("input").val(), "pal": $(tr).children("td").eq(9).children("input").length === 0 ? "" : $(tr).children("td").eq(9).children("input").val() }; } }); $.ajax({ url: 'https://app-gms-decisionnel.ovh/PHP/PDV/mail_ld.php', type: 'POST', dataType: 'text', data: { data: JSON.stringify(data), test: true } }).done(function (data) { console.log(data) downloadPDF(data); $.LoadingOverlay("hide"); }).fail(function (e) { console.log(e) }); }); $("#pdv_checkall").on("click", function () { if ($("#pdv_checkall").text() == "check") { $("#pdv_checkall").text("_"); $("#pdv_list_refs tr:not(.hide) td.selectable input[type=checkbox]:not(:disabled)").prop("checked", true); } else { $("#pdv_checkall").text("check"); $("#pdv_list_refs tr:not(.hide) td.selectable input[type=checkbox]:not(:disabled)").prop("checked", false); } }); }); Number.prototype.mod = function (n) { var m = ((this % n) + n) % n; return m < 0 ? m + Math.abs(n) : m; }; Date.prototype.getYearDay = function () { //1 - 366 var year = this.getFullYear(); var month = this.getMonth(); var day = this.getDate(); var offset = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; //l'annee bissextile n'est utile qu'à partir de mars var bissextile = (month < 2) ? 0 : (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)); return parseInt(day + offset[month] + bissextile); } Date.prototype.getMonday = function () { var offset = (this.getDay() + 6) % 7; return new Date(this.getFullYear(), this.getMonth(), this.getDate() - offset); } Date.prototype.getWeek = function () { //1 - 53 var year = this.getFullYear(); var week; //dernier lundi de l'annee var lastMonday = new Date(year, 11, 31).getMonday(); //la date est dans la dernière semaine de l'annee //mais cette semaine fait partie de l'annee suivante if (this >= lastMonday && lastMonday.getDate() > 28) { week = 1; } else { //premier lundi de l'annee var firstMonday = new Date(year, 0, 1).getMonday(); //correction si necessaire (le lundi se situe l'annee precedente) if (firstMonday.getFullYear() < year) firstMonday = new Date(year, 0, 8).getMonday(); //nombre de jours ecoules depuis le premier lundi var days = this.getYearDay() - firstMonday.getYearDay(); //window.alert(days); //si le nombre de jours est negatif on va chercher //la dernière semaine de l'annee precedente (52 ou 53) if (days < 0) { week = new Date(year, this.getMonth(), this.getDate() + days).getWeek(); } else { //numero de la semaine week = 1 + parseInt(days / 7); //on ajoute une semaine si la première semaine //de l'annee ne fait pas partie de l'annee precedente week += (new Date(year - 1, 11, 31).getMonday().getDate() > 28); } } return parseInt(week); } //2 janvier 2005 : semaine 53 (ISO 8601) //window.alert( new Date(2005, 0, 2).getWeek() ); if (typeof helper == 'undefined') { var helper = {}; } helper.arr = { /** * Function to sort multidimensional array * *
@param {array} [arr] Source array * @param {array} [columns] List of columns to sort * @param {array} [order_by] List of directions (ASC, DESC) * @returns {array} */ multisort: function (arr, columns, order_by) { if (typeof columns == 'undefined') { columns = [] for (x = 0; x < arr[0].length; x++) { columns.push(x); } } if (typeof order_by == 'undefined') { order_by = [] for (x = 0; x < arr[0].length; x++) { order_by.push('ASC'); } } function multisort_recursive(a, b, columns, order_by, index) { var direction = order_by[index] == 'DESC' ? 1 : 0; var is_numeric = !isNaN(+a[columns[index]] - +b[columns[index]]); var x = is_numeric ? +a[columns[index]] : (a[columns[index]] + "").toLowerCase(); var y = is_numeric ? +b[columns[index]] : (b[columns[index]] + "").toLowerCase(); if (x < y) { return direction == 0 ? -1 : 1; } if (x == y) { return columns.length - 1 > index ? multisort_recursive(a, b, columns, order_by, index + 1) : 0; } return direction == 0 ? 1 : -1; } return arr.sort(function (a, b) { return multisort_recursive(a, b, columns, order_by, 0); }); } }; function parseBool(bool) { return bool === true || bool === "true" || bool === 1 || bool === "1"; } function downloadPDF(url) { openUrl("https://app-gms-decisionnel.ovh/PHP/PDV" + url) } function openUrl(sURL) { sURL = encodeURI(sURL); try { WL.Execute("OuvreLienNavigateurExterne", sURL); } catch (e) { window.open(sURL); return false; } }