421 lines
18 KiB
JavaScript
421 lines
18 KiB
JavaScript
var url_html = null;
|
|
var url_iframe = null;
|
|
var url_submit = null;
|
|
var url_change_order_state = null;
|
|
var url_label = null;
|
|
var url_cancel_order = null;
|
|
|
|
var button_blocker = false;
|
|
|
|
var wooOrderData = {
|
|
dimensions: {},
|
|
address_delivery: {},
|
|
order_data: {}
|
|
};
|
|
|
|
$(document).ready(function () {
|
|
console.log("| epaka-admin.js is loaded!");
|
|
|
|
// pobieranie linkow
|
|
url_html = $('input[name="url_html"]').val();
|
|
url_iframe = $('input[name="url_iframe"]').val();
|
|
url_submit = $('input[name="url_sender"]').val();
|
|
url_change_order_state = $('input[name="url_change_order_state"]').val();
|
|
url_label = $('input[name="url_label"]').val();
|
|
url_protocol = $('input[name="url_protocol"]').val();
|
|
url_cancel_order = $('input[name="url_cancel_order"]').val();
|
|
|
|
// ukrywanie zrodel w wysylce zamowienia w adminie
|
|
$('#order-sources-list').parentsUntil('.product-row').hide();
|
|
|
|
// pobieranie formularza
|
|
$(document).off('click', '#epaka-order-get-iframe');
|
|
$(document).on('click', '#epaka-order-get-iframe', function (e) {
|
|
console.log('| get Epaka iframe order START...');
|
|
console.log(url_iframe);
|
|
console.log(url_html);
|
|
// debugger;
|
|
|
|
$('#iframe-loader-gif').fadeIn();
|
|
|
|
e.preventDefault();
|
|
$.post(url_iframe, { url_html: url_html },
|
|
function (response) {
|
|
console.log('| get Epaka iframe order STOP.');
|
|
console.log(response);
|
|
// debugger;
|
|
|
|
if (typeof response.status !== "undefined" && response.status == 'ERROR') {
|
|
alert(response.message)
|
|
} else {
|
|
$('#epaka-iframe-order-body').html(response).show();
|
|
}
|
|
},
|
|
"html");
|
|
});
|
|
|
|
// pobieranie etykiety
|
|
$(document).off('click', '.epaka-order-get-label');
|
|
$(document).on('click', '.epaka-order-get-label', function (e) {
|
|
console.log('| get Epaka Order Label START...');
|
|
|
|
var that = $(this);
|
|
|
|
if ( ! blocker()) {
|
|
blocker('block', that);
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
var zebra = $(this).attr('data-zebra');
|
|
|
|
that.children("span").hide();
|
|
that.children("img").show();
|
|
|
|
e.preventDefault();
|
|
$.post(url_label, { zebra: zebra },
|
|
function (response) {
|
|
console.log('| get Epaka Order Label STOP.');
|
|
console.log(response);
|
|
|
|
blocker('unblock', that);
|
|
|
|
that.children("img").hide();
|
|
that.children("span").show();
|
|
|
|
if (response.status == 'ERROR') {
|
|
alert(response.message);
|
|
} else {
|
|
var byteCharacters = atob(response.label);
|
|
var byteNumbers = new Array(byteCharacters.length);
|
|
for (var i = 0; i < byteCharacters.length; i++) {
|
|
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
}
|
|
var byteArray = new Uint8Array(byteNumbers);
|
|
var file = new Blob([byteArray], { type: 'application/pdf;base64' });
|
|
var fileURL = URL.createObjectURL(file);
|
|
window.open(fileURL);
|
|
}
|
|
},
|
|
"json");
|
|
});
|
|
|
|
|
|
// pobieranie protokulu
|
|
$(document).off('click', '.epaka-order-get-protocol');
|
|
$(document).on('click', '.epaka-order-get-protocol', function (e) {
|
|
console.log('| get Epaka Order Protocol START...');
|
|
|
|
var that = $(this);
|
|
|
|
if ( ! blocker()) {
|
|
blocker('block', that);
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
that.children("span").hide();
|
|
that.children("img").show();
|
|
|
|
e.preventDefault();
|
|
$.post(url_protocol, { },
|
|
function (response) {
|
|
console.log('| get Epaka Order Protocol STOP.');
|
|
console.log(response);
|
|
|
|
blocker('unblock', that);
|
|
|
|
that.children("img").hide();
|
|
that.children("span").show();
|
|
|
|
if (response.status == 'ERROR') {
|
|
alert(response.message);
|
|
} else {
|
|
var byteCharacters = atob(response.protocol);
|
|
var byteNumbers = new Array(byteCharacters.length);
|
|
for (var i = 0; i < byteCharacters.length; i++) {
|
|
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
}
|
|
var byteArray = new Uint8Array(byteNumbers);
|
|
var file = new Blob([byteArray], { type: 'application/pdf;base64' });
|
|
var fileURL = URL.createObjectURL(file);
|
|
window.open(fileURL);
|
|
}
|
|
},
|
|
"json");
|
|
});
|
|
|
|
// anulowanie zamowienia na Epaka.pl
|
|
$(document).off('click', '#epaka-order-cancel');
|
|
$(document).on('click', '#epaka-order-cancel', function (e) {
|
|
console.log('| Epaka Cancel Order START...');
|
|
|
|
var that = $(this);
|
|
|
|
if ( ! blocker()) {
|
|
blocker('block', that);
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
that.children("span").hide();
|
|
that.children("img").show();
|
|
|
|
e.preventDefault();
|
|
$.post(url_cancel_order, { },
|
|
function (response) {
|
|
console.log('| Epaka Cancel Order STOP.');
|
|
// var response = JSON.parse(response);
|
|
console.log(response);
|
|
|
|
if (response.status == 'ERROR') {
|
|
alert(response.message);
|
|
window.location.reload();
|
|
} else {
|
|
console.log('| change Order status START...');
|
|
$.post(url_change_order_state, { id_status: 6 },
|
|
function (response2) {
|
|
console.log('| change Order status STOP.');
|
|
console.log(response2);
|
|
|
|
// blocker('unblock', that);
|
|
|
|
that.children("img").hide();
|
|
that.children("span").show();
|
|
|
|
if (response2.status == "OK") {
|
|
alert(response.cashbackTypeDesc);
|
|
} else {
|
|
alert(response.message);
|
|
}
|
|
window.location.reload();
|
|
},
|
|
"json");
|
|
}
|
|
},
|
|
"json");
|
|
});
|
|
|
|
// zapobiega kliknieciu w nieoskryptowane elementy jesli bloker aktywny
|
|
$(document).off('click', '.blocker');
|
|
$(document).on('click', '.blocker', function (e) {
|
|
if ( blocker()) {
|
|
e.preventDefault();
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
});
|
|
|
|
// automatyczne klikniecie w guzik pokazania formularza epaki
|
|
// if ($('#epaka-order-get-iframe').length) {
|
|
// $('#epaka-order-get-iframe').click();
|
|
// }
|
|
});
|
|
|
|
// funkcja blokujaca klikniecie w cos jesli juz bylo klikniete w cos innego (class="blocker")
|
|
function blocker(operation = null, clicked_element = null) {
|
|
if (operation != null && clicked_element != null) {
|
|
switch (operation) {
|
|
case "block":
|
|
button_blocker = true;
|
|
$('.blocker').animate({ opacity: 0.5 }, 100);
|
|
break;
|
|
case "unblock":
|
|
button_blocker = false;
|
|
$('.blocker').animate({ opacity: 1 }, 100);
|
|
break;
|
|
default:
|
|
button_blocker = false;
|
|
$('.blocker').animate({ opacity: 1 }, 100);
|
|
break;
|
|
}
|
|
} else {
|
|
return button_blocker;
|
|
}
|
|
}
|
|
|
|
// window.setWooOrder = function setWooOrder() {
|
|
function setWooOrder() {
|
|
$("#epakaFormIframe")[0].contentWindow.iframeSession = $('input[name="api_session"]').val();
|
|
|
|
if ($('input[name="dimensions_width"]').length) {
|
|
wooOrderData.dimensions.width = parseFloat($('input[name="dimensions_width"]').val());
|
|
wooOrderData.dimensions.height = parseFloat($('input[name="dimensions_height"]').val());
|
|
wooOrderData.dimensions.length = parseFloat($('input[name="dimensions_depth"]').val());
|
|
wooOrderData.dimensions.weight = parseFloat($('input[name="dimensions_weight"]').val());
|
|
}
|
|
|
|
wooOrderData.address_delivery.first_name = $('input[name="address_delivery_firstname"]').val();
|
|
wooOrderData.address_delivery.last_name = $('input[name="address_delivery_lastname"]').val();
|
|
wooOrderData.address_delivery.company = $('input[name="address_delivery_company"]').val();
|
|
wooOrderData.address_delivery.country = $('input[name="address_delivery_country"]').val();
|
|
wooOrderData.address_delivery.city = $('input[name="address_delivery_city"]').val();
|
|
wooOrderData.address_delivery.postcode = $('input[name="address_delivery_postcode"]').val();
|
|
wooOrderData.address_delivery.street = $('input[name="address_delivery_street"]').val();
|
|
wooOrderData.address_delivery.house_number = $('input[name="address_delivery_house_number"]').val();
|
|
wooOrderData.address_delivery.flat_number = $('input[name="address_delivery_flat_number"]').val();
|
|
wooOrderData.address_delivery.phone = $('input[name="address_delivery_phone"]').val();
|
|
wooOrderData.address_delivery.email = $('input[name="address_delivery_email"]').val();
|
|
|
|
wooOrderData.order_data.carrier_epaka_id = $('input[name="carrier_epaka_id"]').val();
|
|
wooOrderData.order_data.carrier_epaka_point_code = $('input[name="carrier_epaka_point_code"]').val();
|
|
wooOrderData.order_data.carrier_epaka_point_name = $('input[name="carrier_epaka_point_name"]').val();
|
|
|
|
wooOrderData.order_data.content = $('input[name="order_data_content"]').val();
|
|
// console.log(wooOrderData);
|
|
}
|
|
|
|
function setFormData() {
|
|
if (wooOrderData == null) return;
|
|
|
|
// wymiary
|
|
if (wooOrderData.dimensions != null) {
|
|
if (wooOrderData.dimensions.width != 0) {
|
|
$("#epakaFormIframe").contents().find("#ZamowieniePaczka0Szerokosc").val(wooOrderData.dimensions.width);
|
|
}
|
|
if (wooOrderData.dimensions.height != 0) {
|
|
$("#epakaFormIframe").contents().find("#ZamowieniePaczka0Wysokosc").val(wooOrderData.dimensions.height);
|
|
}
|
|
if (wooOrderData.dimensions.length != 0) {
|
|
$("#epakaFormIframe").contents().find("#ZamowieniePaczka0Dlugosc").val(wooOrderData.dimensions.length);
|
|
}
|
|
if (wooOrderData.dimensions.weight != 0) {
|
|
$("#epakaFormIframe").contents().find("#ZamowieniePaczka0Waga").val(wooOrderData.dimensions.weight);
|
|
}
|
|
}
|
|
|
|
// dane odbiorcy
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaImie").val(wooOrderData.address_delivery.first_name);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaNazwisko").val(wooOrderData.address_delivery.last_name);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaKod").val(wooOrderData.address_delivery.postcode);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaMiasto").val(wooOrderData.address_delivery.city);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaUlica").val(wooOrderData.address_delivery.street);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaNrdomu").val(wooOrderData.address_delivery.house_number);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaNrlokalu").val(wooOrderData.address_delivery.flat_number);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaTelefon").val(wooOrderData.address_delivery.phone);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaEmail").val(wooOrderData.address_delivery.email);
|
|
|
|
// zawartosc
|
|
$("#epakaFormIframe").contents().find("#ZamowienieZawartosc").val(wooOrderData.order_data.content);
|
|
|
|
// obsluga zagranicznych
|
|
// debugger;
|
|
if (wooOrderData.address_delivery.country != "Poland" && wooOrderData.address_delivery.country != "Polska") {
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaKraj")[0].selectize.setValue(wooOrderData.address_delivery.country).change();
|
|
$("#epakaFormIframe").contents().find("#wysylamzagranice").click();
|
|
}
|
|
|
|
// jesli sa wymiary
|
|
if (Object.keys(wooOrderData.dimensions).length !== 0 && wooOrderData.dimensions.height != 0 && wooOrderData.dimensions.length != 0 && wooOrderData.dimensions.width != 0 && wooOrderData.dimensions.weight != 0) {
|
|
$("#epakaFormIframe").contents().find("#ZamowienieKurierId" + wooOrderData.order_data.carrier_epaka_id).click();
|
|
|
|
$("#epakaFormIframe")[0].contentWindow.countPrices(function () {
|
|
$("#epakaFormIframe")[0].contentWindow.preference_flag = 1;
|
|
$("#epakaFormIframe")[0].contentWindow.inputsHoudini($("#epakaFormIframe")[0].contentWindow.selected_courier, false);
|
|
|
|
if (wooOrderData.order_data.carrier_epaka_point_code != "" && wooOrderData.order_data.carrier_epaka_point_name != "") {
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaPaczkomat").val(wooOrderData.order_data.carrier_epaka_point_code);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaPaczkomatOpis").val(wooOrderData.order_data.carrier_epaka_point_name);
|
|
}
|
|
|
|
setTimeout(function () {
|
|
$("#epakaFormIframe")[0].contentWindow.preference_flag = 0;
|
|
}, 1000);
|
|
|
|
$("#epakaFormIframe")[0].contentWindow.getDatesAndServices($("#epakaFormIframe")[0].contentWindow.selected_courier, undefined, $("#epakaFormIframe")[0].contentWindow.extras);
|
|
});
|
|
}
|
|
// jesli nie ma wymiarow
|
|
else {
|
|
var timeoutChecker = setInterval(function () {
|
|
console.log($("#epakaFormIframe")[0].contentWindow.calcRes);
|
|
if (typeof $("#epakaFormIframe")[0].contentWindow.calcRes != "undefined") {
|
|
$("#epakaFormIframe").contents().find("#ZamowienieKurierId" + wooOrderData.order_data.carrier_epaka_id).trigger('click');
|
|
|
|
$("#epakaFormIframe")[0].contentWindow.countPrices(function () {
|
|
$("#epakaFormIframe")[0].contentWindow.preference_flag = 1;
|
|
$("#epakaFormIframe")[0].contentWindow.inputsHoudini($("#epakaFormIframe")[0].contentWindow.selected_courier, false);
|
|
if (wooOrderData.order_data.carrier_epaka_point_code != "" && wooOrderData.order_data.carrier_epaka_point_name != "") {
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaPaczkomat").val(wooOrderData.order_data.carrier_epaka_point_code);
|
|
$("#epakaFormIframe").contents().find("#ZamowienieOdbiorcaPaczkomatOpis").val(wooOrderData.order_data.carrier_epaka_point_name);
|
|
}
|
|
setTimeout(function () {
|
|
$("#epakaFormIframe")[0].contentWindow.preference_flag = 0;
|
|
}, 1000);
|
|
$("#epakaFormIframe")[0].contentWindow.getDatesAndServices($("#epakaFormIframe")[0].contentWindow.selected_courier, undefined, $("#epakaFormIframe")[0].contentWindow.extras);
|
|
});
|
|
|
|
clearInterval(timeoutChecker);
|
|
}
|
|
}, 1000);
|
|
}
|
|
|
|
// submit
|
|
$("#epakaFormIframe")[0].contentWindow.document.getElementById("ZamowienieZlozForm").onsubmit = function (e) {
|
|
e.preventDefault();
|
|
console.log('| send Order START...');
|
|
|
|
var order_data = $("#epakaFormIframe").contents().find("#ZamowienieZlozForm").serializeArray();
|
|
|
|
// to API Epaka
|
|
$.post(url_submit, order_data,
|
|
function (response) {
|
|
console.log('| send Order STOP.');
|
|
console.log(response);
|
|
|
|
if (response.status == "OK") {
|
|
$('#epakaAdminOrder').fadeOut();
|
|
|
|
console.log('| change Order status START...');
|
|
$.post(url_change_order_state, { id_status: 4 },
|
|
function (response2) {
|
|
console.log('| change Order status STOP.');
|
|
console.log(response2);
|
|
|
|
if (response2.status == "OK") {
|
|
$('#epakaAdminOrder').fadeOut();
|
|
alert(response.message);
|
|
window.location.reload();
|
|
} else {
|
|
alert("Coś poszło nie tak ze zmianą statusu zamówienia po stronie PrestaShop");
|
|
}
|
|
},
|
|
"json");
|
|
} else {
|
|
alert(response.message);
|
|
}
|
|
},
|
|
"json");
|
|
};
|
|
|
|
// przewiniecie do popupu wysylania
|
|
$("#epakaFormIframe")[0].contentWindow.document.getElementById("submit-button").onclick = function () {
|
|
var observer = setInterval(function () {
|
|
if ($("#epakaFormIframe")[0].contentWindow.submitPopup) {
|
|
clearTimeout(observer);
|
|
|
|
var offset = $("#epaka-iframe-order-header").offset();
|
|
$("html, body").animate({ scrollTop: offset.top-100 }, 250);
|
|
}
|
|
}, 250);
|
|
};
|
|
}
|
|
|
|
// akcje startujace automatycznie po wczytaniu iframe'a
|
|
$(document).on('iframeformjsready', function () {
|
|
console.log('| iframe is ready!');
|
|
console.log('| set form data START...');
|
|
|
|
$('#epaka-order-get-iframe').hide();
|
|
$('.trigger-epaka-order').hide();
|
|
$('#epaka-iframe-order-body').fadeIn();
|
|
|
|
setWooOrder();
|
|
setFormData();
|
|
|
|
console.log('| set form data STOP.');
|
|
});
|
|
$(document).on('iframebeforeready', function () { });
|
|
$(document).on('iframeready', function () { });
|