-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdrive.js
77 lines (71 loc) · 3.19 KB
/
drive.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
function endsWith(text, pattern) {
var difference = text.length - pattern.length;
return difference >= 0 && text.lastIndexOf(pattern) === difference;
};
function getPrice(text, pricePerItemFactor) {
if (text.trim() === '') {
return Number('9999.99');
}
//cas du prix par piece
if (endsWith(text, '.')) {
return Number(text.substring(0, text.length-1)) * pricePerItemFactor;
}
return Number(text);
}
function getCorrectedPrice(price, item) {
if (isPercentageDiscount(item)) {
var libelleTicketLeclerc = item.find('.divLibelleTELProduit').text();
var reduction = Number('0.' + libelleTicketLeclerc.substring(libelleTicketLeclerc.indexOf('Recevez') + 8, libelleTicketLeclerc.indexOf('en Ticket E.Leclerc') - 2 ));
return price * (1 - reduction);
}
if (isFixedAmountDiscount(item)) {
var libelleTicketLeclerc = item.find('.divLibelleTELProduit').text();
var reduction = Number(libelleTicketLeclerc.substring(libelleTicketLeclerc.indexOf('Recevez') + 8, libelleTicketLeclerc.indexOf('en Ticket E.Leclerc') - 2 ));
return price - reduction;
}
return price;
}
function isPercentageDiscount(item) {
if (item.find('.divLibelleTELProduit').text()) {
if (item.find('.divLibelleTELProduit').text().indexOf('%') > -1) {
return true;
}
}
return false;
}
function isFixedAmountDiscount(item) {
if (item.find('.divLibelleTELProduit').text()) {
if (!item.find('.divLibelleTELProduit').text().indexOf('%') > -1) {
return true;
}
}
return false;
}
function updatePriceWithPromotion(item) {
if (item.find('.divLibelleTELProduit').text()) {
var originalText = item.find('.spanPrixUniteMesure').text();
if (!endsWith(originalText, ')')) {
var originalPrice = getPrice(item.find('.spanPrixUniteMesure').text().replace(/[^0-9\.]+/g,''), 1);
var correctedPrice = getCorrectedPrice(originalPrice, item);
var correctedText = correctedPrice.toFixed(2) + originalText.substring(originalText.indexOf('/') - 2, originalText.length);
var element = '<span class="spanPrixReduitUniteMesure" style="font-size: 10px;float:right;margin-top: 11px;margin-right: 5px;line-height: 11px;">(' + correctedText.trim() + ')</span>';
if (!item.find('.spanPrixReduitUniteMesure').text()) {
$(element).insertBefore(item.find('.spanPrixUniteMesure'));
}
}
}
}
function sortItems() {
$('.ulProdListe > div').sort(function(a,b) {
var priceDifference = getCorrectedPrice(getPrice($(a).find('.spanPrixUniteMesure').text().replace(/[^0-9\.]+/g,''), 10000), $(a)) - getCorrectedPrice(getPrice($(b).find('.spanPrixUniteMesure').text().replace(/[^0-9\.]+/g,''), 10000), $(b));
if (priceDifference == 0.0 || priceDifference == 0) {
var libelleA = $(a).find('.divLibelle1').text() + $(a).find('.divLibelle2').text() + $(a).find('.divPrdContaineur').attr('idprod');
var libelleB = $(b).find('.divLibelle1').text() + $(b).find('.divLibelle2').text() + $(b).find('.divPrdContaineur').attr('idprod');
return libelleA.localeCompare(libelleB);
}
return priceDifference;
}).appendTo('.ulProdListe');
$.each($('.ulProdListe > div'),function(index,value) {
updatePriceWithPromotion($(value));
})
}