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