403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/boxberry.delivery/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/boxberry.delivery/orders_list.js
async function bbOrdersListHandler(action) {
    const oForm = document.form_tbl_sale_order;
    const expType = oForm.action_target.checked;
    let oid = [];
    if (!expType) {
        let num = oForm.elements.length;
        for (let i = 0; i < num; i++) {
            if (oForm.elements[i].tagName.toUpperCase() === 'INPUT'
                && oForm.elements[i].type.toUpperCase() === 'CHECKBOX'
                && oForm.elements[i].name.toUpperCase() === 'ID[]'
                && oForm.elements[i].checked === true) {
                oid.push(oForm.elements[i].value);
            }
        }
    }

    if (oid.length === 0) {
        alert(BX.message('ORDERS_NOT_SELECTED'));
        return;
    }

    let results = [];
    let actionTypeFile = action === 'parselCreate' ? BX.message('STICKERS') : BX.message('ACTS');

    let dialog = new BX.CDialog({
        title: BX.message('RECEIVING') + actionTypeFile,
        content: BX.message('RECEIVING_EXECUTE') + actionTypeFile + BX.message('PLEASE_WAIT'),
        resizable: true,
        draggable: true,
        height: 'auto',
        width: 'auto'
    });
    dialog.Show();

    let table = document.getElementById('bbOrdersPrintActionsTable');
    if (table) {
        while (table.firstChild) {
            table.removeChild(table.firstChild);
        }
    } else {
        table = document.createElement('table');
        table.id = 'bbOrdersPrintActionsTable';
    }

    let headerRow = document.createElement('tr');
    let headers = [BX.message('ORDER_ID'), BX.message('PROCESS_STATUS'), BX.message('MESSAGE_TEXT')];
    headers.forEach(headerText => {
        let th = document.createElement('th');
        th.textContent = headerText;
        headerRow.appendChild(th);
    });
    table.appendChild(headerRow);

    for (let i = 0; i < oid.length; i++) {
        let tr = document.createElement('tr');
        tr.id = 'order-' + oid[i];

        let td1 = document.createElement('td');
        td1.innerHTML = bbOrderLink(oid[i]);
        tr.appendChild(td1);

        let td2 = document.createElement('td');
        td2.textContent = BX.message('EXECUTING');
        tr.appendChild(td2);

        let td3 = document.createElement('td');
        tr.appendChild(td3);
        table.appendChild(tr);
    }

    dialog.SetContent(table);

    if (action === 'parselCreate' || action === 'parselCreateAndSend') {
        for (let i = 0; i < oid.length; i++) {
            let result = await bbSendOrderAction(oid[i], 'parselCreate');
            let orderRow = document.getElementById('order-' + oid[i]);

            if (result.status === 'error') {
                orderRow.innerHTML = '<td>' + bbOrderLink(oid[i]) + '</td><td style="color: red;">' + BX.message('ERROR') + '</td><td>' + result.errors[0].message + '</td>';
            } else {
                orderRow.innerHTML = '<td>' + bbOrderLink(oid[i]) + '</td><td style="color: green;">' + BX.message('SUCCESS') + '</td><td>' + result.data.message + '</td>';
                results.push(result.data.path);
            }

            dialog.SetContent(table);
        }
    }

    if (action === 'parselSend' || action === 'parselCreateAndSend') {
        let result = await bbSendOrderAction(oid, 'parselSend');

        for (let i = 0; i < oid.length; i++) {
            let orderRow = document.getElementById('order-' + oid[i]);

            if (result.status === 'error') {
                orderRow.innerHTML = '<td>' + bbOrderLink(oid[i]) + '</td><td style="color: red;">' + BX.message('ERROR') + '</td><td>' + result.errors[0].message + '</td>';
            } else {
                orderRow.innerHTML = '<td>' + bbOrderLink(oid[i]) + '</td><td style="color: green;">' + BX.message('SUCCESS') + '</td><td>' + BX.message('ACT_RECEIVED_WAIT_FOR_PRINT_PAGE_OPEN') + '</td>';

                if (result.data.hasOwnProperty(oid[i])) {
                    results.push(result.data[oid[i]]);
                }
            }

            dialog.SetContent(table);
        }
    }

    if (results.length > 0) {
        bbOpenFilesForPrinting(results, BX.message('PRINT') + actionTypeFile, action);
    }
}

function bbOpenFilesForPrinting(files, title, action) {
    let uniqueFiles = [...new Set(files)];
    let labels = [];
    let acts = [];

    for (let i = 0; i < uniqueFiles.length; i++) {
        if (uniqueFiles[i].includes("act")) {
            acts.push(uniqueFiles[i]);
        } else {
            labels.push(uniqueFiles[i]);
        }
    }

    if ((action === 'parselCreate' || action === 'parselCreateAndSend') && labels.length > 0) {
        let printWindow = window.open('', '_blank');

        let html = '<html><head><title>' + title + '</title></head><body>';
        for (let i = 0; i < labels.length; i++) {
            html += '<iframe src="' + labels[i] + '" width="100%" height="500px"></iframe><hr>';
        }
        html += '</body></html>';

        printWindow.document.write(html);
        printWindow.document.close();
    }

    if ((action === 'parselSend' || action === 'parselCreateAndSend') && acts.length > 0) {
        for (let i = 0; i < acts.length; i++) {
            window.open(acts[i], '_blank');
        }
    }
}

function bbOrderLink(orderId) {
    return '<a href="/bitrix/admin/sale_order_view.php?lang=ru&ID=' + orderId + '" target="_blank">' + orderId + '</a>';
}

function bbSendOrderAction(orderId, action) {
    let orderIds = Array.isArray(orderId) ? orderId.join(',') : orderId;

    return fetch('/bitrix/services/main/ajax.php?sessid=' + BX.bitrix_sessid() + '&action=boxberry:delivery.api.order.' + action + '&print=true', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        body: new URLSearchParams({
            orderId: orderIds,
        }).toString()
    }).then(response => response.json());
}


Youez - 2016 - github.com/yon3zu
LinuXploit