|
|
|
@@ -8,12 +8,15 @@ let fp; |
|
|
|
const inputSameDayDelivery = $("#shippingMethod67f8c7d3ecdb4ad7802bf8eb55c9b13b"); |
|
|
|
const inputShopPickup = $("#shippingMethod0f44c72f7560450caf061922daeb1602"); |
|
|
|
const inputDPD = $("#shippingMethod8c6d913e29c14c3cb3c6429724efaab8"); |
|
|
|
const inputVorkasse = $("#paymentMethod31bc923a38bc435a80d49d4d40368081"); |
|
|
|
|
|
|
|
$(document).ready(function() { |
|
|
|
let dpInput = $(".confirm-delivery-date #dtgs-datepicker-inputfield"); |
|
|
|
if (dpInput.length) { |
|
|
|
fp = document.querySelector("#dtgs-datepicker-inputfield")._flatpickr; |
|
|
|
dpInput.prop('disabled', true); |
|
|
|
dpInput.wrap('<div class="spwn-date-wrapper"></div>'); |
|
|
|
$("<span id='spwn-remove-date' title='Zurücksetzen'></span>").insertAfter(dpInput); |
|
|
|
$("<div id='spwn-delivery'><p></p><div class='spwn-delivery--time'></div></div>").insertAfter(".confirm-delivery-date"); |
|
|
|
fp.config.onChange.push(function() { |
|
|
|
manipulateDateInputValue(); |
|
|
|
@@ -44,8 +47,37 @@ $(document).ready(function() { |
|
|
|
tagBar(sticky, parentContainer, stickyTop); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
$("body").on("click", "#spwn-remove-date", function() { |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); |
|
|
|
spawnDateInputValue = ""; |
|
|
|
}); |
|
|
|
|
|
|
|
// Add smooth scrolling to all links |
|
|
|
$("a").on('click', function(event) { |
|
|
|
// Make sure this.hash has a value before overriding default behavior |
|
|
|
if (this.hash !== "") { |
|
|
|
// Prevent default anchor click behavior |
|
|
|
event.preventDefault(); |
|
|
|
// Store hash |
|
|
|
var hash = this.hash; |
|
|
|
|
|
|
|
var sTop = parseInt($(hash).offset().top - $(".header-inner").outerHeight() - 12); |
|
|
|
scrollTo(sTop, 800); |
|
|
|
window.location.hash = hash; |
|
|
|
} // End if |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
// c = element or pixel position |
|
|
|
// e = duration |
|
|
|
// d = (optative) ease function. Default easeOutCuaic |
|
|
|
function scrollTo(c,e,d){d||(d=easeOutCuaic);var a=document.documentElement;if(0===a.scrollTop){var b=a.scrollTop;++a.scrollTop;a=b+1===a.scrollTop--?a:document.body}b=a.scrollTop;0>=e||("object"===typeof b&&(b=b.offsetTop),"object"===typeof c&&(c=c.offsetTop),function(a,b,c,f,d,e,h){function g(){0>f||1<f||0>=d?a.scrollTop=c:(a.scrollTop=b-(b-c)*h(f),f+=d*e,setTimeout(g,e))}g()}(a,b,c,0,1/e,20,d))}; |
|
|
|
function easeOutCuaic(t){ |
|
|
|
t--; |
|
|
|
return t*t*t+1; |
|
|
|
} |
|
|
|
|
|
|
|
function manipulateDateInputValue() { |
|
|
|
spawnDateInputValue = $(".confirm-delivery-date #dtgs-datepicker-inputfield").val(); |
|
|
|
if (inputSameDayDelivery.is(':checked')) { |
|
|
|
@@ -61,6 +93,11 @@ function changeDelivery(fp) { |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(spawnDateInputValue + " " + $(this).text()); |
|
|
|
}); |
|
|
|
|
|
|
|
let daysToAdd = 0; |
|
|
|
// if Vorkasse add 4 days |
|
|
|
if (inputVorkasse.is(':checked')) { |
|
|
|
daysToAdd = 4; |
|
|
|
} |
|
|
|
if ($(".confirm-address-shipping").data("iso") !== "AT") { |
|
|
|
if (inputShopPickup.is(':checked')) { |
|
|
|
// Abholung im Ladengeschäft |
|
|
|
@@ -72,8 +109,11 @@ function changeDelivery(fp) { |
|
|
|
// Abendzustellung |
|
|
|
console.log("Abendzustellung"); |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(''); |
|
|
|
spwnIncludedDays = [1,2,3,4,5]; |
|
|
|
setIncludedDays("evening", fp, 0); |
|
|
|
spwnIncludedDays = [1, 2, 3, 4, 5]; |
|
|
|
if (daysToAdd === 0) { |
|
|
|
daysToAdd = 0; |
|
|
|
} |
|
|
|
setIncludedDays("evening", fp, daysToAdd); |
|
|
|
$("#spwn-delivery p").text("Abendzustellung gewählt. Bitte wählen Sie nun eine Wunsch-Zeit:"); |
|
|
|
$("#spwn-delivery .spwn-delivery--time").append("<span class='active'>18 - 21 Uhr</span><span>20 - 23 Uhr</span>"); |
|
|
|
// If not date from DPD days |
|
|
|
@@ -84,19 +124,42 @@ function changeDelivery(fp) { |
|
|
|
// If DPD date is not in Abendzustellung range |
|
|
|
} else { |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); |
|
|
|
spawnDateInputValue = ""; |
|
|
|
} |
|
|
|
} else { |
|
|
|
// DPD |
|
|
|
console.log("DPD"); |
|
|
|
spwnIncludedDays = [2,3,4,5,6]; |
|
|
|
setIncludedDays("dpd", fp, 1); |
|
|
|
if ($(".confirm-address-shipping").data("iso") === "DE") { |
|
|
|
spwnIncludedDays = [2, 3, 4, 5, 6]; |
|
|
|
} else { |
|
|
|
// All other countries without saturday |
|
|
|
spwnIncludedDays = [2, 3, 4, 5]; |
|
|
|
} |
|
|
|
if (daysToAdd === 0) { |
|
|
|
daysToAdd = 1; |
|
|
|
} |
|
|
|
setIncludedDays("dpd", fp, daysToAdd); |
|
|
|
$("#spwn-delivery p").text("DPD gewählt. Die Zustellung erfolgt zwischen 7 und 13 Uhr."); |
|
|
|
if (!$(".flatpickr-day").hasClass("selected")) { |
|
|
|
// If Abendzustellung date is not in DPD range |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); |
|
|
|
spawnDateInputValue = ""; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
console.log("DPD AT"); |
|
|
|
spwnIncludedDays = [3,4]; |
|
|
|
setIncludedDays("dpd", fp, 2); |
|
|
|
// only wednesday and thursday |
|
|
|
spwnIncludedDays = [3, 4]; |
|
|
|
if (daysToAdd === 0) { |
|
|
|
daysToAdd = 2; |
|
|
|
} |
|
|
|
setIncludedDays("dpd", fp, daysToAdd); |
|
|
|
$("#spwn-delivery p").text("DPD gewählt. Die Zustellung erfolgt zwischen 7 und 18 Uhr."); |
|
|
|
if (!$(".flatpickr-day").hasClass("selected")) { |
|
|
|
// If Abendzustellung or DPD DE date is not in DPD AT range |
|
|
|
$(".confirm-delivery-date #dtgs-datepicker-inputfield").val(""); |
|
|
|
spawnDateInputValue = ""; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@@ -105,12 +168,9 @@ function setIncludedDays(delivery, fp, addDays) { |
|
|
|
let spwnDateTemp = new Date(); |
|
|
|
spwnDateTemp.setDate(spwnDateTemp.getDate() + addDays); |
|
|
|
|
|
|
|
let spwnTime = parseInt(spwnDateTemp.getHours() + "" + spwnDateTemp.getMinutes()); |
|
|
|
// If after 1pm add one extra day |
|
|
|
if (delivery === "evening" && spwnTime > 1300) { |
|
|
|
spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); |
|
|
|
// If after 2pm add one extra day |
|
|
|
} else if (delivery === "dpd" && spwnTime > 1400) { |
|
|
|
let spwnTime = parseInt((spwnDateTemp.getHours() < 10 ? '0' : '') + spwnDateTemp.getHours() + "" + (spwnDateTemp.getMinutes() < 10 ? '0' : '') + spwnDateTemp.getMinutes()); |
|
|
|
// If "evening" after 11am add one extra day or if "dpd" after 2pm add one extra day |
|
|
|
if ((delivery === "evening" && spwnTime > 1100) || (delivery === "dpd" && spwnTime > 1400)) { |
|
|
|
spwnDateTemp.setDate(spwnDateTemp.getDate() + 1); |
|
|
|
} |
|
|
|
let spwnDate = fp.formatDate(spwnDateTemp, "d.m.Y"); |
|
|
|
@@ -130,7 +190,7 @@ function setIncludedDays(delivery, fp, addDays) { |
|
|
|
if($.inArray(formattedDate, dtgsDeliveryDateExcludedDates) > -1) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
// Datum auf Bereich Montag = 0, Sonntag = 7 bringen |
|
|
|
// Datum auf Bereich Montag = 1, Sonntag = 7 bringen |
|
|
|
return spwnIncludedDays.indexOf(((date.getDay() + 6) % 7) + 1) !== -1; |
|
|
|
} |
|
|
|
]); |
|
|
|
|