$("#wescosalesselector").css('left', sl);
$(".wescosaleswindow").each(function () {
- setInteractPanel($(this).data('ref'), true);
+ setInteractPanel($(this).data('id'), true);
});
}
if (updateOnly === undefined) {
updateOnly = false;
}
-
- var id = "wescosaleswindow-" + normalizeRef(ref);
+ var refs = getWescoReferences(ref);
+ var rid = forge_sha256(refs.join('-')).substr(0, 10);
+ var id = "wescosaleswindow-" + rid;
if ($("#" + id).length != 0) {
updateOnly = true;
}
- var r = getWescoRef(ref);
- if (r.ref === undefined) {
- return;
- }
- var rref = r.ref;
var activeCountry = $("#wescosalesselect").val();
+ var first = true;
+ var wtitle = '';
+ var wrefs = [];
+ var unique = refs.length === 1;
+ var wlines = {};
+ var suppLines = {};
+ $.each(refs, function (k, ref) {
+ var r = getWescoRef(ref);
+ if (r.ref === undefined) {
+ return;
+ }
+ if (first) {
+ first = false;
+ wtitle = r.title;
+ }
+
+ var rref = r.ref;
+ if (rref.length === 9) {
+ wrefs.push(rref.substr(0, 3) + ' ' + rref.substr(3, 3) + ' ' + rref.substr(6));
+ } else if (rref.length === 5) {
+ wrefs.push(rref.substr(0, 2) + ' ' + rref.substr(2));
+ }
+
+
+ for (var i in r.countries[activeCountry]) {
+ var d = r.countries[activeCountry][i];
+ if (d[1] === null) {
+ continue;
+ }
+ if (unique) {
+ if (d[2] === null) {
+ suppLines[d[0]] = d[1];
+ } else {
+ wlines[d[0]] = {ca: d[1], qte: d[2]};
+ }
+ } else {
+ if (wlines[d[0]] == null || wlines[d[0]] == undefined) {
+ wlines[d[0]] = {ca: 0, qte: 0};
+ }
+ wlines[d[0]].ca += parseInt(d[1].toString().replace(/,/g, ''));
+ wlines[d[0]].qte += parseInt(d[2].toString().replace(/,/g, ''));
+ }
+ }
+ });
+
var w = '';
w += '<a href="#" class="close"></a>';
- w += '<h2>' + r.title + '</h2>';
- if (rref.length == 9) {
- w += '<h3>' + rref.substr(0, 3) + ' ' + rref.substr(3, 3) + ' ' + rref.substr(6) + '</h3>';
- } else if (rref.length == 5) {
- w += '<h3>' + rref.substr(0, 2) + ' ' + rref.substr(2) + '</h3>';
- }
+ w += '<h2>' + wtitle + '</h2>';
+ w += '<h3>' + wrefs.join(', ') + '</h3>';
w += '<hr />';
if (!updateOnly) {
- $('body').append('<div id="' + id + '" class="wescosaleswindow" data-ref="' + ref + '"></div>');
+ $('body').append('<div id="' + id + '" class="wescosaleswindow" data-id="' + rid + '"></div>');
}
- var seenNotFigure = false;
-
w += '<table>';
w += '<tr><th></th><th>Qté</th><th>CA</th></tr>';
- for (var i in r.countries[activeCountry]) {
- var d = r.countries[activeCountry][i];
- if (d[1] === null) {
- continue;
- }
- if (d[2] == null) {
- var cl = '';
- if (!seenNotFigure) {
- w += '<tr class="hr"><td colspan="3"><hr /></td></tr>';
- seenNotFigure = true;
- }
- w += '<tr>';
- w += '<td class="d">' + d[0] + '</td>';
- w += '<td class="v t" colspan="2">' + d[1] + '</td>';
- } else {
+ var format = new Intl.NumberFormat('en-US');
+
+ $.each(wlines, function (date, line) {
+ var ca = unique ? line.ca : format.format(line.ca);
+ var qte = unique ? line.qte : format.format(line.qte);
+ w += '<tr>';
+ w += '<td class="d">' + date + '</td>';
+ w += '<td class="v">' + ca + '</td>';
+ w += '<td class="c">' + qte + '</td>';
+ w += '</tr>';
+ });
+ if (Object.keys(suppLines).length > 0) {
+ w += '<tr class="hr"><td colspan="3"><hr /></td></tr>';
+ $.each(suppLines, function (t, line) {
w += '<tr>';
- w += '<td class="d">' + d[0] + '</td>';
- w += '<td class="v">' + d[1] + '</td>';
- w += '<td class="c">' + d[2] + '</td>';
- }
- w + '</tr>';
+ w += '<td class="d">' + t + '</td>';
+ w += '<td class="v t" colspan="2">' + line + '</td>';
+ w += '</tr>';
+ });
}
w += '<table>';
$('#' + id).html(w);
$("#" + id).css({left: x, top: y}).data({x: x, y: y});
}
- setInteractPanel(ref, updateOnly);
+ setInteractPanel(id, updateOnly);
}
function getAllRefs() {
}
function getPossibleReferences(ref) {
- var trimmedRef = ref.toString().replace(/^0+/, "");
- var res = [trimmedRef];
+ var nospaceref = ref.toString().replace(/\s*/g, '');
+ var spaceref = nospaceref.toString().substr(0, 2) + ' ' + nospaceref.toString().substr(2, 3);
+ var trimmedRef = nospaceref.toString().replace(/^0+/, "");
+ var res = [ref, spaceref, trimmedRef, nospaceref];
var tr = trimmedRef;
for (var i = 0; i < (5 - trimmedRef.length); i++) {
tr = '0' + tr;
return res;
}
-function setInteractPanel(ref, onlyRect) {
+function getWescoReferences(ref) {
+ var range = parseRange(ref.toString().replace(/\s*/g, ''));
+ var res = [];
+ $.each(range, function (k, v) {
+ res.push(normalizeRef(v));
+ });
+ return res;
+}
+
+function setInteractPanel(id, onlyRect) {
if (onlyRect === undefined) {
onlyRect = false;
}
- var id = "wescosaleswindow-" + normalizeRef(ref);
var maxx = fluidbook.resize.ww - 20;
var maxy = fluidbook.resize.hh - 70;
q = q.replace(/\s/gm, '');
if (q.length != 5) {
- console.log('not ref (length)');
+ console.log('not ref (length)', q);
return true;
}
var all = getAllRefs();