Я пытаюсь написать скрипт в Google Sheets JavaScript, который имеет базу данных счетов. Я пытаюсь создать способ оплаты, где кто-то может выбрать поставщика и произвести массовый платеж, который затем назначает правильную сумму для каждого счета.
Я использовал цикл while, и хотя платежи работают отлично, цикл не заканчивается, и я не знаю почему.
function makePayment() {
var dbsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('InvoiceDB');
var dasheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dashboard');
var casheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Calc');
var amount = dasheet.getRange('I9').getValue();
while (amount > 0) {
var range = dbsheet.getRange("B1:B");
var values = range.getValues();
var invoiceNo = casheet.getRange('C1').getValue();
var i = [];
for (var y = 0; y < values.length; y++) {
if (values[y] == invoiceNo) {
i.push(y);
}
}
var Row = Number(i) + Number(range.getRow());
var outstanding = dbsheet.getRange(Row, 9).getValue();
var alreadyPaid = dbsheet.getRange(Row, 8).getValue();
if (amount > outstanding) {
dbsheet.getRange(Row, 8).setValue(alreadyPaid + outstanding);
amount = amount - outstanding;
} else {
dbsheet.getRange(Row, 8).setValue(amount);
}
dasheet.getRange('C9').clearContent();
dasheet.getRange('I9').clearContent();
}
}