function doPost(e) { // Настраиваем доступ к таблице и листам var sheetId = '1lO0WP4r0ounMmImzw6IMaRpnK1RR5oU__e21g3lc508'; var ss = SpreadsheetApp.openById(sheetId); var sheet = ss.getSheetByName('Доп. заказы'); var transferSheet = ss.getSheetByName('Переносы'); var urgentSheet = ss.getSheetByName('Срочность'); if (!sheet) { return ContentService.createTextOutput(JSON.stringify({"status": "error", "message": "Лист 'Доп. заказы' не найден"})).setMimeType(ContentService.MimeType.JSON); } // Получаем данные из формы var actionType = e.parameter.action_type; // 'add', 'transfer' или 'urgent' var orderId = e.parameter.order_id; var description = e.parameter.description; var username = e.parameter.username || "Не указан"; var date = e.parameter.current_date; try { if (actionType === 'add') { // ========================================== // 1. ЛОГИКА ДОБАВЛЕНИЯ (Лист "Доп. заказы") // ========================================== var lastRow = sheet.getLastRow(); var newRow = lastRow + 1; sheet.getRange(newRow, 1).setValue(orderId); // A: Номер заказа sheet.getRange(newRow, 3).setValue(description); // C: Описание sheet.getRange(newRow, 6).setValue(username); // F: Имя пользователя sheet.getRange(newRow, 7).setValue(date); // G: Дата } else if (actionType === 'transfer') { // ========================================== // 2. ЛОГИКА ПЕРЕНОСА // ========================================== if (!transferSheet) { return ContentService.createTextOutput(JSON.stringify({"status": "error", "message": "Лист 'Переносы' не найден"})).setMimeType(ContentService.MimeType.JSON); } var combinedData = "Дата: " + date + "\nИмя: " + username + "\nОписание: " + description; // Работа с листом "Доп. заказы" var data = sheet.getRange("A:A").getValues(); var targetRow = -1; for (var i = 0; i < data.length; i++) { if (data[i][0].toString() === orderId.toString() && data[i][0].toString() !== "") { targetRow = i + 1; break; } } if (targetRow !== -1) { var startCol = 12; var maxCol = sheet.getMaxColumns(); var targetCol = -1; if (maxCol < startCol) { sheet.insertColumnsAfter(maxCol, startCol - maxCol); maxCol = startCol; } for (var col = startCol; col <= maxCol; col++) { if (sheet.getRange(targetRow, col).getValue() === "") { targetCol = col; break; } } if (targetCol === -1) { sheet.insertColumnAfter(maxCol); targetCol = maxCol + 1; } sheet.getRange(targetRow, targetCol).setValue(combinedData); } // Работа с листом "Переносы" var tData = transferSheet.getRange("A:A").getValues(); var tTargetRow = -1; for (var j = 0; j < tData.length; j++) { if (tData[j][0].toString() === orderId.toString() && tData[j][0].toString() !== "") { tTargetRow = j + 1; break; } } if (tTargetRow !== -1) { var tStartCol = 2; var tMaxCol = transferSheet.getMaxColumns(); var tTargetCol = -1; if (tMaxCol < tStartCol) { transferSheet.insertColumnsAfter(tMaxCol, tStartCol - tMaxCol); tMaxCol = tStartCol; } for (var c = tStartCol; c <= tMaxCol; c++) { if (transferSheet.getRange(tTargetRow, c).getValue() === "") { tTargetCol = c; break; } } if (tTargetCol === -1) { transferSheet.insertColumnAfter(tMaxCol); tTargetCol = tMaxCol + 1; } transferSheet.getRange(tTargetRow, tTargetCol).setValue(combinedData); } else { var newTRow = transferSheet.getLastRow() + 1; transferSheet.getRange(newTRow, 1).setValue(orderId); transferSheet.getRange(newTRow, 2).setValue(combinedData); } } else if (actionType === 'urgent') { // ========================================== // 3. ЛОГИКА СРОЧНЫХ ЗАКАЗОВ // ========================================== if (!urgentSheet) { return ContentService.createTextOutput(JSON.stringify({"status": "error", "message": "Лист 'Срочность' не найден. Создайте его."})).setMimeType(ContentService.MimeType.JSON); } // Добавляем новую строку на лист "Срочность" // Столбец A: Номер заказа, B: Описание, C: Имя, D: Дата urgentSheet.appendRow([orderId, description, username, date]); } return ContentService.createTextOutput(JSON.stringify({"status": "success"})).setMimeType(ContentService.MimeType.JSON); } catch (error) { return ContentService.createTextOutput(JSON.stringify({"status": "error", "message": error.toString()})).setMimeType(ContentService.MimeType.JSON); } }