I am developing a web app where the admin can add the residents name and few particulars about them there. So after adding the data there, I have few formulas written in appscript so that it will automatically fill up some columns there in my google sheet without doing it manually. So guys can anyone here help where if there is a row of data is added to column B, it should trigger the coding I have done in the appscript. I have attached the images and my code to explain myself better. Thank you.
Code.gs
var url = "https://docs.google.com/spreadsheets/d/1bM8l6JefFsPrlJnTWf56wOhnuSjdIwg3hMbY1tN1Zp8/edit#gid=531487589";
function doPost(e) {
var rowData = [];
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("PaypalData");
rowData.push(new Date(e.parameter.payment_date));
rowData.push(e.parameter.item_number);
rowData.push(e.parameter.option_selection1);
rowData.push(e.parameter.payment_status);
rowData.push(e.parameter.payment_gross);
rowData.push(e.parameter.mc_currency);
rowData.push(e.parameter.payment_fee);
rowData.push(e.parameter.first_name);
rowData.push(e.parameter.last_name);
rowData.push(e.parameter.payer_email);
rowData.push(e.parameter.residence_country);
rowData.push(e.parameter.txn_id);
sheet.appendRow(rowData);
}
function getLast(range) {
var getResult = function(range) {
if (!((range.getNumRows() > 1 && range.getNumColumns() == 1) || (range.getNumRows() == 1 && range.getNumColumns() > 1))) {
throw new Error("Please input one row or one column.");
}
var v = Array.prototype.concat.apply([], range.getValues());
var f = Array.prototype.concat.apply([], range.getFormulas());
var i;
for (i = v.length - 1; i >= 0; i--) {
if (v[i] != "" || f[i] != "") break;
}
return i + 1;
};
if (Array.isArray(range)) {
return range.map(function(e) {
return getResult(e);
});
} else {
try {
range.getA1Notation();
} catch (e) {
throw new Error("Inputted value is not a range.");
}
return getResult(range);
}
}
function username(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("A2").setFormula('=IF(ISBLANK(B2:B),"",(B2:B &"."&substitute(substitute(lower(C2:C),"jalan","jln")," ","")))');
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 1, lr-1);
ss.getRange("A2").copyTo(fillDownRange);
}
function noOfPaid(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("F2").setFormula("=IF(ISBLANK(B2:B), ,(COUNTIF('Payment Configuration'!A:A,A2:A) + COUNTIF('Payment Configuration'!E:E,A2:A)))");
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 6, lr-1);
ss.getRange("F2").copyTo(fillDownRange);
}
function fullAddress(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("I2").setFormula('=join(", ",{B2,UPPER(C2),"BANDAR PUTERI KLANG"})');
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 9, lr-1);
ss.getRange("I2").copyTo(fillDownRange);
}