Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Chronopost/Chronorelais/view/adminhtml/web/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/app/code/Chronopost/Chronorelais/view/adminhtml/web/js/weightAndDimensions.js
define(
    ['jquery', 'mage/translate'],
    function ($, tr) {
        'use strict';

        var body = $('body');
        var weightAndDimensions = {};

        $(document).ready(function () {
            if (body.hasClass('adminhtml-order-shipment-new') || body.hasClass('adminhtml-order_shipment-new')) {
                onloadWeightShipment();
            }

            if ($('input[name="weight_input"]').data('inshipment') === true) {
                setEventChange($('input[name="weight_input"]'), true);
            }
        })

        function onloadWeightShipment()
        {
            if ($('input[name="weight_input"]').length === 0) {
                setTimeout(onloadWeightShipment, 1000);
                return;
            }

            setEventChange($('input[name="weight_input"]'), true);
        }

        body.on('keyup', 'input[name="weight_input"]', function () {
            var inShipment = false;
            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            setEventChange(this, inShipment);
        });

        body.on('keyup', 'input[name="weight_input"]', function () {
            var inShipment = false;
            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            setEventChange(this, inShipment);
        });

        body.on('keyup', 'input[name="width_input"]', function () {
            var inShipment = false;
            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            setEventChange(this, inShipment);
        });

        body.on('keyup', 'input[name="height_input"]', function () {
            var inShipment = false;
            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            setEventChange(this, inShipment);
        });

        body.on('keyup', 'input[name="length_input"]', function () {
            var inShipment = false;
            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            setEventChange(this, inShipment);
        });

        body.on('load', 'input[name="nb_colis"]', function () {
            if ($(this).data('inshipment') === true) {
                $("#input_dimensions").val(buildDimensionsObject($(this), true));
            }
        });

        body.on('keyup', 'input[name="nb_colis"]', function () {
            if ($('input[name="width_input"]').length === 0 || $('input[name="height_input"]').length === 0 ||
                $('input[name="length_input"]').length === 0 || $('input[name="weight_input"]').length === 0) {
                alert($.mage.__('The Weight, Width, Length, Height and Expiration date columns should be displayed.'));
                $(this).val('1');

                return false;
            }

            $(this).val($(this).val().replace(/\D/g, ""));

            var packageNumber = $(this).val();
            var order_id = $(this).data('orderid');
            var inShipment = false;

            if ($(this).data('inshipment') === true) {
                inShipment = true;
            }

            if (packageNumber > 1) {
                $('#ad_valorem').attr('disabled', 'disabled');
                $('#ad_volorem_message').show();
            } else {
                $('#ad_valorem').removeAttr('disabled');
                $('#ad_volorem_message').hide();
            }

            reloadInputsDim(packageNumber, order_id, inShipment);

            if (inShipment) {
                $("#input_dimensions").val(buildDimensionsObject($(this), inShipment));
            }
        });

        function reloadInputsDim(packageNumber, order_id, inShipment)
        {
            if (packageNumber < 1 || packageNumber > 60) {
                return false;
            }

            var weightElems = $("input[name='weight_input'][data-orderid='" + order_id + "']");

            if (weightElems.length > packageNumber) {
                for (var ite = weightElems.length; ite > packageNumber; ite--) {
                    $("input[name='weight_input'][data-orderid='" + order_id + "']").last().remove();
                    $("input[name='width_input'][data-orderid='" + order_id + "']").last().remove();
                    $("input[name='height_input'][data-orderid='" + order_id + "']").last().remove();
                    $("input[name='length_input'][data-orderid='" + order_id + "']").last().remove();
                }
            } else if (weightElems.length < packageNumber) {
                for (var i = 0; i < packageNumber - weightElems.length; i++) {
                    addRowDimensions(order_id, inShipment);
                }
            }

            setEventChange(weightElems.first(), inShipment);
        }

        function addRowDimensions(order_id, inshipment = false)
        {
            var weightElems = $("input[name='weight_input'][data-orderid='" + order_id + "']");
            var widthElems = $("input[name='width_input'][data-orderid='" + order_id + "']");
            var heightElems = $("input[name='height_input'][data-orderid='" + order_id + "']");
            var lenghtElems = $("input[name='length_input'][data-orderid='" + order_id + "']");

            var containerWeight = null;
            var containerWidth = null;
            var containerHeight = null;
            var containerLength = null;

            if (inshipment) {
                containerWeight = weightElems.parent("td.weight_input");
                containerWidth = widthElems.parent("td.width_input");
                containerHeight = heightElems.parent("td.height_input");
                containerLength = lenghtElems.parent("td.length_input");
            } else {
                containerWeight = weightElems.parent("div.data-grid-cell-content");
                containerWidth = widthElems.parent("div.data-grid-cell-content");
                containerHeight = heightElems.parent("div.data-grid-cell-content");
                containerLength = lenghtElems.parent("div.data-grid-cell-content");
            }

            var lastPos = $("input[name='weight_input'][data-orderid='" + order_id + "']").last().data('position');
            containerWeight.append(getDefaultInputWeight(order_id, lastPos));
            containerWidth.append(getDefaultInputWidth(order_id, lastPos));
            containerHeight.append(getDefaultInputHeight(order_id, lastPos));
            containerLength.append(getDefaultInputLength(order_id, lastPos));
        }

        function getDefaultInputWeight(order_id, pos)
        {
            var firstInput = $("input[name='weight_input'][data-orderid='" + order_id + "']").first();
            var newInput = firstInput.clone();
            newInput.val(firstInput.val());
            newInput.attr('data-position', parseInt(pos) + 1);

            return newInput[0];
        }

        function getDefaultInputWidth(order_id, pos)
        {
            var newInput = $("input[name='width_input'][data-orderid='" + order_id + "']").first().clone();
            newInput.val(1);
            newInput.attr('data-position', parseInt(pos) + 1);

            return newInput[0];
        }

        function getDefaultInputHeight(order_id, pos)
        {
            var newInput = $("input[name='height_input'][data-orderid='" + order_id + "']").first().clone();
            newInput.val(1);
            newInput.attr('data-position', parseInt(pos) + 1);

            return newInput[0];
        }

        function getDefaultInputLength(order_id, pos)
        {
            var newInput = $("input[name='length_input'][data-orderid='" + order_id + "']").first().clone();
            newInput.val(1);
            newInput.attr('data-position', parseInt(pos) + 1);

            return newInput[0];
        }

        function setEventChange(input, inShipment = false)
        {
            $(input).val($(input).val().replace(/[^0-9\.]/g, ""));

            if (!correctDimension(input, inShipment)) {
                return false;
            }

            if (inShipment) {
                $("#input_dimensions").val(buildDimensionsObject(input, inShipment));
            } else {
                var orderId = $(input).data("orderid");
                $('.form_' + orderId + ' input[name="dimensions"]').val(buildDimensionsObject(input));
            }
        }

        function buildDimensionsObject(input, inShipment = false)
        {
            var dimensions = {};
            var orderId = $(input).data('orderid');
            var weights, widths, heights, lengths, expirationDate = null;

            if (inShipment) {
                weights = $('#dimensions-weight input[name="weight_input"][data-orderid="' + orderId + '"]');
                widths = $('#dimensions-weight input[name="width_input"][data-orderid="' + orderId + '"]');
                heights = $('#dimensions-weight input[name="height_input"][data-orderid="' + orderId + '"]');
                lengths = $('#dimensions-weight input[name="length_input"][data-orderid="' + orderId + '"]');
            } else {
                weights = $('.data-grid input[name="weight_input"][data-orderid="' + orderId + '"]');
                widths = $('.data-grid input[name="width_input"][data-orderid="' + orderId + '"]');
                heights = $('.data-grid input[name="height_input"][data-orderid="' + orderId + '"]');
                lengths = $('.data-grid input[name="length_input"][data-orderid="' + orderId + '"]');
            }

            for (var i = 0; i < weights.length; i++) {
                var dimension = {};
                dimension.weight = $(weights[i]).val();
                dimension.width = $(widths[i]).val();
                dimension.height = $(heights[i]).val();
                dimension.length = $(lengths[i]).val();
                dimensions[i] = dimension;
            }

            return JSON.stringify(dimensions);
        }

        function getWeightLimit(input)
        {
            var shippingMethod = $(input).data('shipping-method');
            if (shippingMethod === 'chronorelaiseur_chronorelaiseur' || shippingMethod === 'chronorelais_chronorelais'
                || shippingMethod === 'chronorelaishop_chronorelaishop') {
                return 20 * CHRONO_WEIGHT_COEFF;
            }

            return 30 * CHRONO_WEIGHT_COEFF;
        }

        function getInputDimensionsLimit(input)
        {
            var shippingMethod = $(input).data('shipping-method');
            if (shippingMethod === 'chronorelaiseur_chronorelaiseur' || shippingMethod === 'chronorelais_chronorelais'
                || shippingMethod === 'chronorelaishop_chronorelaishop') {
                return 100;
            }

            return 150;
        }

        function getGlobalDimensionsLimit(input)
        {
            var shippingMethod = $(input).data('shipping-method');
            if (shippingMethod === 'chronorelaiseur_chronorelaiseur' || shippingMethod === 'chronorelais_chronorelais'
                || shippingMethod === 'chronorelaishop_chronorelaishop') {
                return 250;
            }

            return 300;
        }

        function correctDimension(input, inShipment = false)
        {
            var allInputs;
            var orderId = $(input).data('orderid');
            var weightLimit = getWeightLimit(input);
            var dimensionsLimit = getInputDimensionsLimit(input);
            var globalDimensionsLimit = getGlobalDimensionsLimit(input);

            if (inShipment) {
                allInputs = $('.dimensions-input-container input');
            } else {
                allInputs = $('.data-grid input[data-orderid="' + orderId + '"][data-position]');
            }

            var errorLimitWeight = checkWeightLimit(allInputs, weightLimit);
            var errorLimitDimensions = checkDimensionsLimit(allInputs, dimensionsLimit);
            var errorLimitGlobalDimensions = checkGlobalDimensions(allInputs, globalDimensionsLimit);

            if (errorLimitWeight) {
                addErrorDimensions(orderId, 'weight', weightLimit, dimensionsLimit, globalDimensionsLimit);
            } else {
                removeErrorDimensions(orderId, 'weight');
            }

            if (errorLimitDimensions) {
                addErrorDimensions(orderId, 'length', weightLimit, dimensionsLimit, globalDimensionsLimit);
            } else {
                removeErrorDimensions(orderId, 'length');
            }

            if (errorLimitGlobalDimensions) {
                addErrorDimensions(orderId, 'global', weightLimit, dimensionsLimit, globalDimensionsLimit);
            } else {
                removeErrorDimensions(orderId, 'global');
            }

            var correct = !errorLimitWeight && !errorLimitDimensions && !errorLimitGlobalDimensions;

            if (correct) {
                if ($('#messages').children().length === 0) {
                    enableButtonSubmit();
                }
            } else {
                disableButtonSubmit();
            }

            return correct;
        }

        function checkWeightLimit(allInputs, weightLimit)
        {
            var error = false;

            allInputs.each(function (i) {
                if ($(allInputs[i]).attr('name') === 'weight_input') {
                    if ($(allInputs[i]).val() > weightLimit) {
                        error = true;
                    }
                }
            });

            return error;
        }

        function checkDimensionsLimit(allInputs, dimensionsLimit)
        {
            var error = false;
            allInputs.each(function (i) {
                if ($(allInputs[i]).attr('name') !== 'weight_input') {
                    if ($(allInputs[i]).val() > dimensionsLimit) {
                        error = true;
                    }
                }
            });

            return error;
        }

        function checkGlobalDimensions(allInputs, globalDimensionsLimit)
        {
            var pos = $(allInputs[allInputs.length - 1]).data('position');
            var error = false;
            var globalDimensions;

            for (var i = 1; i <= pos; i++) {
                globalDimensions = 0;

                allInputs.each(function (j) {
                    var currInput = $(allInputs[j]);

                    if (currInput.data('position') == i && currInput.attr('name') !== 'weight_input') {
                        if (currInput.attr('name') == 'width_input') {
                            globalDimensions += parseInt(currInput.val());
                        } else {
                            globalDimensions += 2 * parseInt(currInput.val());
                        }
                    }
                });

                if (globalDimensions > globalDimensionsLimit) {
                    error = true;
                }
            }

            return error;
        }

        function disableButtonSubmit()
        {
            $(".adminhtml-order_shipment-new button.save.submit-button, .adminhtml-order-shipment-new button.save.submit-button").prop('disabled', true);
        }

        function enableButtonSubmit()
        {
            $(".adminhtml-order_shipment-new button.save.submit-button, .adminhtml-order-shipment-new button.save.submit-button").prop('disabled', false);
        }

        function removeErrorDimensions(orderId, typeError)
        {
            $('.' + typeError + '.messages.id-' + orderId).remove();
        }

        function addErrorDimensions(orderId, type, weightLimit, lengthLimit, globalLimit)
        {
            var ul = $('#messages');
            var ulCreated = false;

            if (ul.length === 0) {
                ulCreated = true;
                ul = document.createElement('ul');
                ul.setAttribute('id', 'messages');
            }

            var containerMessage = document.createElement('div');
            containerMessage.setAttribute('class', type + ' messages id-' + orderId);

            var div = document.createElement('div');
            div.setAttribute('class', 'message message-error error');
            var errorMsg;

            switch (type) {
                case "weight":
                    errorMsg = document.createTextNode(($.mage.__('One or several packages are above the weight limit (%1 kg)')).replace('%1', (weightLimit / CHRONO_WEIGHT_COEFF)) + ' (' + $.mage.__('Order %1').replace('%1', orderId) + ')');
                    break;
                case "length" :
                    errorMsg = document.createTextNode($.mage.__('One or several packages are above the size limit (%1 cm)').replace('%1', lengthLimit) + ' (' + $.mage.__('Order %1').replace('%1', orderId) + ')');
                    break;
                case "global" :
                    errorMsg = document.createTextNode($.mage.__('One or several packages are above the total (L+2H+2l) size limit (%1 cm)').replace('%1', globalLimit) + ' (' + $.mage.__('Order %1').replace('%1', orderId) + ')');
                    break;
            }

            div.appendChild(errorMsg);

            containerMessage.appendChild(div);
            if ($('.' + type + '.id-' + orderId).length === 0) {
                if (ulCreated) {
                    ul.appendChild(containerMessage);
                } else {
                    ul.append(containerMessage);
                }

                if (ulCreated && $('.messages.id-' + orderId).length === 0) {
                    $('#anchor-content').prepend(ul);
                }
            }
        }

        body.on('submit', 'form[id^="form_"]', function () {
            $(this).find('button[type="submit"]').prop("disabled", true);
        });
    }
);

Spamworldpro Mini