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