Files
newwalls.pl/modules/epaka/views/js/admin/epaka-admin.js
2024-12-17 13:43:22 +01:00

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 () { });