/** * 2019 DPD Polska Sp. z o.o. * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * prestashop@dpd.com.pl so we can send you a copy immediately. * * @author DPD Polska Sp. z o.o. * @copyright 2019 DPD Polska Sp. z o.o. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of DPD Polska Sp. z o.o. */ $(document).ready(function () { togglePudoMap(); if (redirect_and_open) { toggleShipmentCreationDisplay(); window.location = dpdpoland_pdf_uri + '?printLabels&id_package_ws=' + redirect_and_open + '&printout_format=' + printout_format + '&token=' + encodeURIComponent(dpdpoland_token) + '&_PS_ADMIN_DIR_=' + encodeURIComponent(_PS_ADMIN_DIR_) + '&returnOnErrorTo=' + encodeURIComponent(window.location.href); } updateParcelsListData(); $('#dpdpoland_shipment_parcels input[type="text"]').live('keypress', function () { $(this).addClass('modified'); $(this).siblings('p.preference_description').slideDown('fast'); }); $('#dpdpoland_shipment_parcels input[type="text"]').live('on', 'paste', function () { $(this).addClass('modified'); $(this).siblings('p.preference_description').slideDown('fast'); }); $('#dpdpoland_shipment_parcels input[type="text"]').live('on', 'input', function () { $(this).addClass('modified'); $(this).siblings('p.preference_description').slideDown('fast'); }); $('#dpdpoland_duty').on('change', function () { if (this.checked) $('#dpdpoland_duty_container').removeClass("hidden"); else $('#dpdpoland_duty_container').addClass("hidden"); }) $('#dpdpoland_dpdfood').on('change', function () { if (this.checked) $('#dpdfood_limit_date_container').removeClass("hidden"); else $('#dpdfood_limit_date_container').addClass("hidden"); }) $('#dpdpoland_dpdlq').on('change', function () { if (this.checked) { $('.adr-package').removeClass("hidden-element"); $('.adr-package input').prop("checked", true) } else { $('.adr-package').addClass("hidden-element"); } }) $('#dpdpoland_recipient_address_selection').live('change', function () { $('#ajax_running').slideDown(); $('#dpdpoland_recipient_address_container .dpdpoland_address').fadeOut('fast'); const id_address = $(this).val(); $.ajax({ type: "POST", async: true, url: dpdpoland_ajax_uri, dataType: "html", global: false, data: "ajax=true&token=" + encodeURIComponent(dpdpoland_token) + "&id_shop=" + encodeURIComponent(dpdpoland_id_shop) + "&id_lang=" + encodeURIComponent(dpdpoland_id_lang) + "&getFormattedAddressHTML=true" + "&id_address=" + encodeURIComponent(id_address), success: function (address_html) { $('#ajax_running').slideUp(); $('#dpdpoland_recipient_address_container .dpdpoland_address').html(address_html).fadeIn('fast'); }, error: function () { $('#ajax_running').slideUp(); } }); }); setDPDSenderAddress(); $('#sender_address_selection').live('change', function () { setDPDSenderAddress(); }); $('#dpdpoland_shipment_creation #add_parcel').click(function () { const max_parcel_number = $('#dpdpoland_shipment_parcels tbody').find('input[name$="[number]"]:last').attr('value'); const new_parcel_number = Number(max_parcel_number) + 1; const $tr_parcel = $(''); const $input_parcel_number = $('').attr({ 'type': 'hidden', 'name': 'parcels[' + new_parcel_number + '][number]' }).val(new_parcel_number); const $td_parcel_number = $('').addClass('center').append(new_parcel_number).append($input_parcel_number); $tr_parcel.append($td_parcel_number); const $input_content_hidden = $('').attr({ 'type': 'hidden', 'name': 'parcels[' + new_parcel_number + '][content]' }); const $input_content = $('').attr({ 'type': 'text', 'size': '46', 'name': 'parcels[' + new_parcel_number + '][content]' }); const $td_content = $('').append($input_content_hidden); $td_content.append($input_content); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); $modified_message.append(modified_field_message); $td_content.append($modified_message); $tr_parcel.append($td_content); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); const $adrVisibility = $("#dpdpoland_dpdlq").is(':checked') ? '' : 'hidden-element' const $input_adr = $('').attr({ 'type': 'checkbox', 'size': '10', 'class': 'form-control', 'name': 'parcels[' + new_parcel_number + '][adr]', 'checked': 'true' }); const $td_adr = $('').attr({ 'class': 'adr-package ' + $adrVisibility, }).append($input_adr); $modified_message.append(modified_field_message); $td_adr.append($modified_message); $tr_parcel.append($td_adr); const $input_weight_adr = $('').attr({ 'type': 'text', 'size': '10', 'class': 'form-control', 'name': 'parcels[' + new_parcel_number + '][weight_adr]', 'value': '0.000000' }); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); const $td_weight_adr = $('').attr({ 'class': 'adr-package ' + $adrVisibility, }).append($input_weight_adr); $modified_message.append(modified_field_message); $td_weight_adr.append($modified_message); $tr_parcel.append($td_weight_adr); const $input_weight = $('').attr({ 'type': 'text', 'size': '10', 'name': 'parcels[' + new_parcel_number + '][weight]', 'value': '0.000000' }); const $td_weight = $('').append($input_weight); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); $modified_message.append(modified_field_message); $td_weight.append($modified_message); $tr_parcel.append($td_weight); const $input_height = $('').attr({ 'type': 'text', 'size': '10', 'name': 'parcels[' + new_parcel_number + '][height]', 'value': '0.000000' }); const $td_height = $('').append($input_height); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); $modified_message.append(modified_field_message); $td_height.append($modified_message); $tr_parcel.append($td_height); const $input_length = $('').attr({ 'type': 'text', 'size': '10', 'name': 'parcels[' + new_parcel_number + '][length]', 'value': '0.000000' }); const $td_length = $('').append($input_length); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); $modified_message.append(modified_field_message); $td_length.append($modified_message); $tr_parcel.append($td_length); const $input_width = $('').attr({ 'type': 'text', 'size': '10', 'name': 'parcels[' + new_parcel_number + '][width]', 'value': '0.000000' }); const $td_width = $('').append($input_width); var $modified_message = $('

').attr({ 'class': 'preference_description clear', 'style': 'display: none; width: auto;' }); $modified_message.append(modified_field_message); $td_width.append($modified_message); $tr_parcel.append($td_width); $('').addClass('parcel_dimension_weight').text('0.000').appendTo($tr_parcel); const $td_delete_parcel = $(''); $tr_parcel.append($td_delete_parcel); $('#dpdpoland_shipment_parcels tbody tr:last').after($tr_parcel); const $new_parcel_option = $('

' + resp.error + '

').slideDown(); $.scrollTo('#dpdpoland', 400, {offset: {top: -100}}); } else { id_package_ws = resp.id_package_ws; window.location = dpdpoland_pdf_uri + resp.link_to_labels_pdf + '&_PS_ADMIN_DIR_=' + encodeURIComponent(_PS_ADMIN_DIR_) + '&returnOnErrorTo=' + encodeURIComponent(window.location.href); } $('#ajax_running').slideUp(); }, error: function () { $('#ajax_running').slideUp(); } }); }); $('#save_labels').click(function () { let available = true; $('#dpdpoland_shipment_products .parcel_selection').each(function () { if ($(this).val() === '' || $(this).val() === 0) { available = false; alert(dpdpoland_parcels_error_message); } }); if (!available) return false; $('#ajax_running').slideDown(); $('#dpdpoland_msg_container').slideUp().html(''); const pudo_code = $('#dpdpoland_pudo_code_input').val(); let pudo_data = ""; if (pudo_code.length > 0) { pudo_data = "&dpdpoland_pudo_code=" + pudo_code; } $.ajax({ type: "POST", async: true, url: dpdpoland_ajax_uri, dataType: "json", global: false, data: "ajax=true&token=" + encodeURIComponent(dpdpoland_token) + "&id_order=" + encodeURIComponent(id_order) + "&id_shop=" + encodeURIComponent(dpdpoland_id_shop) + "&id_lang=" + encodeURIComponent(dpdpoland_id_lang) + "&sender_address_selection=" + $('#sender_address_selection').val() + "&printout_format=" + encodeURIComponent($('input[name="dpdpoland_printout_format"]:checked').val()) + "&savePackagePrintLabels=true&" + $('#dpdpoland :input').serialize() + pudo_data, success: function (resp) { if (resp.error) { $('#dpdpoland_msg_container').hide().html('

' + resp.error + '

').slideDown(); $.scrollTo('#dpdpoland', 400, {offset: {top: -100}}); } else { current_order_uri = current_order_uri.replace(/&/g, '&') + '&scrollToShipment'; window.location = current_order_uri; } $('#ajax_running').slideUp(); }, error: function () { $('#ajax_running').slideUp(); } }); }); $('#print_labels').live('click', function () { $('#ajax_running').slideDown(); $('#dpdpoland_msg_container').slideUp().html(''); $.ajax({ type: "POST", async: true, url: dpdpoland_ajax_uri, dataType: "json", global: false, data: "ajax=true&token=" + encodeURIComponent(dpdpoland_token) + "&id_order=" + encodeURIComponent(id_order) + "&id_shop=" + encodeURIComponent(dpdpoland_id_shop) + "&id_lang=" + encodeURIComponent(dpdpoland_id_lang) + "&printLabels=true" + "&dpdpoland_printout_format=" + encodeURIComponent($('input[name="dpdpoland_printout_format"]:checked').val()) + "&id_package_ws=" + encodeURIComponent(id_package_ws) + "&_PS_ADMIN_DIR_=" + encodeURIComponent(_PS_ADMIN_DIR_), success: function (resp) { if (resp.error) { $('#dpdpoland_msg_container').hide().html('

' + resp.error + '

').slideDown(); } else { window.location = dpdpoland_pdf_uri + resp.link_to_labels_pdf + '&_PS_ADMIN_DIR_=' + encodeURIComponent(_PS_ADMIN_DIR_) + '&returnOnErrorTo=' + encodeURIComponent(window.location.href); } $('#ajax_running').slideUp(); }, error: function () { $('#ajax_running').slideUp(); } }); }); $("#dpdpoland_shipment_parcels input").live("change keyup paste", function () { const default_value = 0; const $inputs_container = $(this).parents('tr:first'); const height = $inputs_container.find('input[name$="[height]"]').attr('value'); const length = $inputs_container.find('input[name$="[length]"]').attr('value'); const width = $inputs_container.find('input[name$="[width]"]').attr('value'); let dimention_weight = Number(length) * Number(width) * Number(height) / Number(_DPDPOLAND_DIMENTION_WEIGHT_DIVISOR_); if (dimention_weight > 0) { dimention_weight = dimention_weight.toFixed(3); } else { dimention_weight = default_value.toFixed(3); } $inputs_container.find('td.parcel_dimension_weight').text(dimention_weight); }); const shipment_mode_select = $('select[name="dpdpoland_SessionType"]'); toggleServiceInputs(shipment_mode_select.val()); shipment_mode_select.change(function () { togglePudoMap(); toggleServiceInputs($(this).val()); }); $('#dpdpoland_shipment_products select.parcel_selection').live('change', function () { updateParcelsListData(); }); }); function toggleServiceInputs(shipment_mode) { const cod_container = $('#dpdpoland_cod_amount_container'); const dpd_next_day_container = $('#dpdpoland_dpdnd_container'); const dpd_express_container = $('#dpdpoland_dpde_container'); const dpd_food_container = $('.dpdpoland_dpdfood_container'); const dpd_today_container = $('.dpdpoland_dpdtoday_container'); const dpd_saturday_container = $('.dpdpoland_dpdsaturday_container'); const isCodPaymentMethod = $('#dpdpoland_is_cod_payment_method').val(); if (shipment_mode === 'domestic_with_cod' || shipment_mode === 'pudo_cod' || isCodPaymentMethod === '1') { cod_container.fadeIn(); cod_container.show(); } else { cod_container.fadeOut(); } if (shipment_mode === 'international') { dpd_next_day_container.find('input#dpdpoland_dpdnd').prop('checked', false); dpd_next_day_container.hide(); dpd_express_container.fadeIn(); dpd_food_container.fadeIn(); dpd_today_container.fadeIn(); dpd_saturday_container.fadeIn(); } else if (shipment_mode === 'domestic' || shipment_mode === 'domestic_with_cod') { dpd_express_container.find('input#dpdpoland_dpde').prop('checked', false); dpd_express_container.hide(); dpd_next_day_container.fadeIn(); dpd_food_container.fadeIn(); dpd_today_container.fadeIn(); dpd_saturday_container.fadeIn(); } else { dpd_express_container.find('input#dpdpoland_dpde').prop('checked', false); dpd_next_day_container.find('input#dpdpoland_dpdnd').prop('checked', false); dpd_today_container.find('input#dpdpoland_dpdtoday').prop('checked', false); dpd_saturday_container.find('input#dpdpoland_dpdsaturday').prop('checked', false); dpd_food_container.find('input#dpdpoland_dpdfood').prop('checked', false); dpd_express_container.fadeOut(); dpd_next_day_container.fadeOut(); dpd_food_container.fadeOut(); dpd_today_container.fadeOut(); dpd_saturday_container.fadeOut(); } if ($("#dpdpoland_dpdlq").is(':checked')) { $('.adr-package').removeClass("hidden-element") $('.adr-package input').prop("checked", true) } else { $('.adr-package').addClass("hidden-element") } } function updateParcelsListData() { const attr = $('#dpdpoland_shipment_creation select[name="dpdpoland_SessionType"]').attr('disabled'); if (typeof attr !== 'undefined' && attr !== false) { return; } const default_value = 0; const products_count = $('#dpdpoland_shipment_products .parcel_reference').length; $('#dpdpoland_shipment_parcels td:nth-child(2) input[type="text"]').not('.modified').attr('value', ''); $('#dpdpoland_shipment_parcels td:nth-child(4) input[type="text"]').not('.modified').attr('value', default_value.toFixed(6)); $('#dpdpoland_shipment_parcels td:nth-child(5) input[type="text"]').not('.modified').attr('value', default_value.toFixed(6)); $('#dpdpoland_shipment_parcels td:nth-child(2) input[type="hidden"]').attr('value', ''); $('#dpdpoland_shipment_products .parcel_reference').each(function () { let product_weight = $(this).parent().find('td:nth-child(3)').find('input[type="hidden"]').val(); product_weight = Number(product_weight); let product_id = $(this).find('input[type="hidden"]:nth-child(1)').val(); let product_attr_id = $(this).find('input[type="hidden"]:nth-child(2)').val(); const product_reference = $(this).find('input[type="hidden"]:nth-child(3)').val() const product_name = $(this).find('input[type="hidden"]:nth-child(4)').val() const productContent = getProductContent(product_id, product_attr_id, product_reference, product_name) const parcel_id = $(this).siblings().find('select').val(); const parcel_description_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(2)').find('input[type="text"]'); const parcel_adr_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(3)').find('input[type="text"]'); const parcel_weight_adr_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(4)').find('input[type="text"]'); const parcel_weight_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(5)').find('input[type="text"]'); const parcel_height_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(6)').find('input[type="text"]'); const parcel_length_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(7)').find('input[type="text"]'); const parcel_width_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(8)').find('input[type="text"]'); const parcel_dimension_weight_field = $('#dpdpoland_shipment_parcels tbody tr:nth-child(' + parcel_id + ') td:nth-child(9)'); const parcel_description_safe = parcel_description_field.siblings('input[type="hidden"]:first'); let weights = parcel_weight_field.val(); weights = Number(weights); weights = weights + product_weight; const description = getProductDescription(parcel_description_safe, productContent) if (!parcel_weight_field.hasClass('modified')) { parcel_weight_field.attr('value', weights.toFixed(6)); } if (!parcel_description_field.hasClass('modified')) { parcel_description_field.attr('value', description); parcel_description_safe.attr('value', description); } if (products_count === 1) { $('#dpdpoland_shipment_parcels td:nth-child(6) input[type="text"]').not('.modified').attr('value', default_value.toFixed(6)); $('#dpdpoland_shipment_parcels td:nth-child(7) input[type="text"]').not('.modified').attr('value', default_value.toFixed(6)); $('#dpdpoland_shipment_parcels td:nth-child(8) input[type="text"]').not('.modified').attr('value', default_value.toFixed(6)); $('#dpdpoland_shipment_parcels td:nth-child(9)').not('.modified').text(default_value.toFixed(3)); parcel_height_field.attr('value', $('#product_height').val()); parcel_length_field.attr('value', $('#product_length').val()); parcel_width_field.attr('value', $('#product_width').val()); if (!parcel_height_field.hasClass('modified') && !parcel_length_field.hasClass('modified') && !parcel_width_field.hasClass('modified') ) { const value = parcel_height_field.val() * parcel_length_field.val() * parcel_width_field.val() / _DPDPOLAND_DIMENTION_WEIGHT_DIVISOR_; parcel_dimension_weight_field.text(value.toFixed(3)); } } }); } function getProductContent(product_id, product_attr_id, product_reference, product_name) { const parcel_content_source = $('input[name="dpdpoland_parcel_content_type"]').val() switch (parcel_content_source) { case "PARCEL_CONTENT_SOURCE_SKU": return product_reference case "PARCEL_CONTENT_SOURCE_PRODUCT_ID": return product_id + "_" + product_attr_id case "PARCEL_CONTENT_SOURCE_PRODUCT_NAME": return product_name } return product_id + "_" + product_attr_id; } function getProductDescription(parcel_description_safe, newContent) { const current_value = parcel_description_safe.attr('value') if (!current_value || current_value === '' || current_value.indexOf(newContent) >= 0) if (current_value === null || current_value === undefined || current_value === '') return newContent; if(current_value.indexOf(newContent) >= 0) return current_value; return current_value + ', ' + newContent; } function displayErrorInShipmentArea(errorText) { $('#dpdpoland_msg_container').hide().html('

' + errorTextr + '

').slideDown(); } function recalculateParcels(deleted_parcel_number) { $('#dpdpoland_shipment_parcels input[name$="[number]"]').each(function () { const parcel_number = Number($(this).attr('value')); if (parcel_number > deleted_parcel_number) { const updated_parcel_number = parcel_number - 1; const $input = $(this).attr('value', updated_parcel_number); $(this).parent().text(updated_parcel_number).append($input); $(this).parent().parent().find('input[name^="parcels"]').each(function () { $(this).attr('name', $(this).attr('name').replace(parcel_number, updated_parcel_number)); }); $('#dpdpoland_shipment_products select.parcel_selection option[value="' + parcel_number + '"]').attr('value', updated_parcel_number).text(updated_parcel_number); } }); } function toggleShipmentCreationDisplay() { const $display_cont = $('#dpdpoland_shipment_creation'); const $legend = $display_cont.siblings('legend').find('a'); const fieldset_title_substitution = $legend.attr('rel'); const current_fieldset_title = $legend.text(); const $dpd_fieldset = $('fieldset#dpdpoland'); if ($dpd_fieldset.hasClass('extended')) { $display_cont.slideToggle(function () { $dpd_fieldset.removeClass('extended'); }); } else { $dpd_fieldset.addClass('extended'); $display_cont.slideToggle(); } $legend.attr('rel', current_fieldset_title).text(fieldset_title_substitution); } const animation_speed = 'fast'; function togglePudoMap() { const selected_carrier = $('select[name="dpdpoland_SessionType"] option:selected').val(); if (typeof selected_carrier == 'undefined') { return; } if (selected_carrier === 'pudo' || selected_carrier === 'pudo_cod') { $('.pudo-map-container').slideDown(animation_speed); } else { $('.pudo-map-container').slideUp(animation_speed); } } function setDPDSenderAddress() { $('#ajax_running').slideDown(); $('#dpdpoland_sender_address_container .dpdpoland_address').fadeOut('fast'); const id_address = $('#sender_address_selection').val(); $.ajax({ type: "POST", async: true, url: dpdpoland_ajax_uri, dataType: "html", global: false, data: "ajax=true&token=" + encodeURIComponent(dpdpoland_token) + "&id_shop=" + encodeURIComponent(dpdpoland_id_shop) + "&id_lang=" + encodeURIComponent(dpdpoland_id_lang) + "&getFormattedSenderAddressHTML=true" + "&id_address=" + encodeURIComponent(id_address), success: function (address_html) { $('#ajax_running').slideUp(); $('#dpdpoland_sender_address_container .dpdpoland_address').html(address_html).fadeIn('fast'); }, error: function () { $('#ajax_running').slideUp(); } }); } function savePickupPointAddress(id_point) { const block = $('.js-result[data-point-id="' + id_point + '"]'); console.log(block.text()); }