aktualizacja modułu dpd

This commit is contained in:
2026-02-02 10:46:49 +01:00
parent dfc86a1895
commit 764d54f8d5
722 changed files with 70854 additions and 1051 deletions

View File

@@ -0,0 +1,309 @@
/*
* Copyright 2024 DPD Polska Sp. z o.o.
*
* NOTICE OF LICENSE
*
* Licensed under the EUPL-1.2 or later.
* You may not use this work except in compliance with the Licence.
*
* You may obtain a copy of the Licence at:
* https://joinup.ec.europa.eu/software/page/eupl
* It is also bundled with this package in the file LICENSE.txt
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Licence is distributed on an AS IS basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions
* and limitations under the Licence.
*
* @author DPD Polska Sp. z o.o.
* @copyright 2024 DPD Polska Sp. z o.o.
* @license https://joinup.ec.europa.eu/software/page/eupl
*/
$(document).ready(function () {
$('#form_dpdshipping_pickup_courier_sender_address').on('change', function (event) {
event.preventDefault();
$('.errorMessagePickupCourier').hide();
const pickupOrderSettingsId = $(this).val();
$('#senderAddressContainer').hide();
$.ajax({
url: dpdshipping_pickup_courier_ajax_url, method: 'GET', data: {
pickupOrderSettingsId: pickupOrderSettingsId,
token: dpdshipping_token
}, success: function (response, status, xhr) {
if (response.success === true && response.data !== null) {
$('#form_customer_company').val(response.data.customerFullName);
$('#form_customer_name').val(response.data.customerName);
$('#form_customer_phone').val(response.data.customerPhone);
$('#senderFullName').text(response.data.senderFullName);
$('#senderName').text(response.data.senderName);
$('#senderAddress').text(response.data.senderAddress);
$('#senderPostalCode').text(response.data.senderPostalCode);
$('#senderCity').text(response.data.senderCity);
$('#senderCountryCode').text(response.data.senderCountryCode);
$('#senderPhone').text(response.data.senderPhone);
$('#payerNumber').text(response.data.payerNumber);
$('#senderAddressContainer').show();
} else if (response.success === false && response.errors && response.errors.length > 0) {
$('.errorMessagePickupCourier').text(response.errors[0]);
$('.errorMessagePickupCourier').show();
} else {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
}, error: function () {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
});
});
$('#button_get_pickup_time_frames').on('click', function (event) {
$('.errorMessagePickupCourier').hide();
const pickupOrderSettingsId = $('#form_dpdshipping_pickup_courier_sender_address').val()
const countryCode = $('#senderCountryCode').text()
const postalCode = $('#senderPostalCode').text()
$('#pickupTimeContainer').hide();
$.ajax({
url: dpdshipping_pickup_courier_get_pickup_time_frames_ajax_url, method: 'GET', data: {
pickupOrderSettingsId: pickupOrderSettingsId,
countryCode: countryCode,
postalCode: postalCode,
token: dpdshipping_token
}, success: function (response, status, xhr) {
if (response.success === true && response.data !== null) {
const select = $('#form_pickup_time');
select.empty();
const currentTime = new Date();
$.each(response.data, function (index, item) {
function getEndTime() {
const [startTime, endTime] = item.range.split('-');
const [endHour, endMinute] = endTime.split(':');
const endDate = new Date();
endDate.setHours(parseInt(endHour));
endDate.setMinutes(parseInt(endMinute));
endDate.setSeconds(0);
return endDate;
}
const pickedDate = new Date($('#form_pickup_date').val());
const isToday = pickedDate.toDateString() === currentTime.toDateString();
const isAfterCurrentTime = getEndTime() > currentTime;
if ((isToday && isAfterCurrentTime) || !isToday) {
const option = $('<option></option>')
.attr('value', item.range)
.text(item.range);
select.append(option);
}
});
const jsonString = JSON.stringify(response.data);
select.attr('data-timeframes', jsonString);
select.val(response.data.length > 0 ? response.data[0].range : '').change();
$('#pickupTimeContainer').show();
} else if (response.success === false && response.errors && response.errors.length > 0) {
$('.errorMessagePickupCourier').text(response.errors[0]);
$('.errorMessagePickupCourier').show();
} else {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
}, error: function () {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
});
});
$('#pickup-courier-add-save-button').on('click', function (event) {
event.preventDefault();
$('.errorMessagePickupCourier').hide();
const form = document.getElementById('dpdshipping_pickup_courier_form');
if (!form.checkValidity()) {
form.reportValidity();
return;
}
if (!validateAddPickupCourier())
return;
const pickupOrderSettingsId = $('#form_dpdshipping_pickup_courier_sender_address').val()
$.ajax({
url: dpdshipping_pickup_courier_pickup_courier_ajax_url, method: 'POST', data: {
pickupOrderSettingsId: pickupOrderSettingsId,
customerFullName: $('#form_customer_company').val(),
customerName: $('#form_customer_name').val(),
customerPhone: $('#form_customer_phone').val(),
senderFullName: $('#senderFullName').text(),
senderName: $('#senderName').text(),
senderAddress: $('#senderAddress').text(),
senderPostalCode: $('#senderPostalCode').text(),
senderCity: $('#senderCity').text(),
senderCountryCode: $('#senderCountryCode').text(),
senderPhone: $('#senderPhone').text(),
payerNumber: $('#payerNumber').text(),
payerName: "DPD_API",
pickupDate: $('#form_pickup_date').val(),
pickupTime: $('#form_pickup_time').val(),
letters: $('#form_letters').is(':checked'),
lettersCount: $('#form_letters_count').val(),
packages: $('#form_packages').is(':checked'),
packagesCount: $('#form_packages_count').val(),
packagesWeightSum: $('#form_packages_weight_sum').val(),
packagesWeightMax: $('#form_packages_weight_max').val(),
packagesSizeXMax: $('#form_packages_size_x_max').val(),
packagesSizeYMax: $('#form_packages_size_y_max').val(),
packagesSizeZMax: $('#form_packages_size_z_max').val(),
palette: $('#form_palette').is(':checked'),
paletteCount: $('#form_palette_count').val(),
paletteWeightSum: $('#form_palette_weight_sum').val(),
paletteWeightMx: $('#form_palette_weight_max').val(),
paletteSizeYMax: $('#form_palette_size_y_max').val(),
token: dpdshipping_token
}, success: function (response, status, xhr) {
if (response.success === true && response.data !== null) {
window.location.href = response.data.redirectPath;
} else if (response.success === false && response.errors && response.errors.length > 0) {
$('.errorMessagePickupCourier').text(response.errors[0]);
$('.errorMessagePickupCourier').show();
} else {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
}, error: function () {
$('.errorMessagePickupCourier').text('Unknown error');
$('.errorMessagePickupCourier').show();
}
});
function isEmptyInputData(fields) {
return fields.some(function (selector) {
return !$.trim($(selector).val()) && !$.trim($(selector).text());
});
}
function validateAddPickupCourier() {
function showError(errorMsg) {
$('.errorMessagePickupCourier').text(errorMsg);
$('.errorMessagePickupCourier').show();
}
if (isEmptyInputData([
'#form_customer_company',
'#form_customer_name',
'#form_customer_phone'])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_customer);
return false;
}
if (isEmptyInputData([
'#senderFullName',
'#senderName',
'#senderAddress',
'#senderPostalCode',
'#senderCity',
'#senderCountryCode',
'#senderPhone',
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_sender);
return false;
}
if (isEmptyInputData([
'#payerNumber',
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_payer);
return false;
}
if (isEmptyInputData([
'#form_pickup_date',
'#form_pickup_time',
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_pickup_date_time);
return false;
}
if (!$('#form_letters').is(':checked') &&
!$('#form_packages').is(':checked') &&
!$('#form_palette').is(':checked')) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_parcel);
return false;
}
if ($('#form_letters').is(':checked')) {
if (isEmptyInputData([
'#form_letters_count',
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_letters);
return false;
}
}
if ($('#form_packages').is(':checked')) {
if (isEmptyInputData([
'#form_packages_count',
'#form_packages_weight_sum',
'#form_packages_weight_max',
'#form_packages_size_x_max',
'#form_packages_size_y_max',
'#form_packages_size_z_max',
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_packages);
return false;
}
}
if ($('#form_palette').is(':checked')) {
if (isEmptyInputData([
'#form_palette_count',
'#form_palette_weight_sum',
'#form_palette_weight_max',
'#form_palette_size_y_max'
])) {
showError(dpdshipping_pickup_courier_pickup_courier_ajax_empty_palette);
return false;
}
}
return true;
}
});
$('#form_pickup_time').on('change', function (event) {
const selectedRange = $(this).val();
const timeFrames = $('#form_pickup_time').data('timeframes');
const selectedTimeFrame = timeFrames.find(tf => tf.range === selectedRange);
function getFormatedHour() {
const rangeParts = selectedTimeFrame.range.split('-');
const startTime = rangeParts[0];
const startDate = new Date();
const [startHour, startMinute] = startTime.split(':');
startDate.setHours(parseInt(startHour));
startDate.setMinutes(parseInt(startMinute));
startDate.setSeconds(0);
const offsetDate = new Date(startDate.getTime() - selectedTimeFrame.offset * 60000);
const offsetHour = offsetDate.getHours().toString().padStart(2, '0');
const offsetMinute = offsetDate.getMinutes().toString().padStart(2, '0');
return `${offsetHour}:${offsetMinute}`;
}
if (selectedTimeFrame) {
$('#timeFrameHour').text(getFormatedHour());
$('#timeFrameDate').text($('#form_pickup_date').val());
} else {
console.error('No matching time frame found for the selected range:', selectedRange);
}
});
});