Pelajari Sendiri ye
var emailNotification = false;
var emailAddress = "[email protected]";
var isNewSheet = false;
var receivedData = [];
function doGet(e) {
return HtmlService.createHtmlOutput("Yep this is the webhook URL, request received");
}
function doPost(e) {
var params = JSON.stringify(e.parameter);
params = JSON.parse(params);
insertToSheet(params);
return HtmlService.createHtmlOutput("post request received");
}
function flattenObject(ob) {
var toReturn = {};
for (var i in ob) {
if (!ob.hasOwnProperty(i)) continue;
if ((typeof ob[i]) == 'object') {
var flatObject = flattenObject(ob[i]);
for (var x in flatObject) {
if (!flatObject.hasOwnProperty(x)) continue;
toReturn[i + '.' + x] = flatObject[x];
}
} else {
toReturn[i] = ob[i];
}
}
return toReturn;
}
function getHeaders(formSheet, keys) {
var headers = [];
if (!isNewSheet) {
headers = formSheet.getRange(1, 1, 1, formSheet.getLastColumn()).getValues()[0];
}
var newHeaders = [];
newHeaders = keys.filter(function(k) {
return headers.indexOf(k) > -1 ? false : k;
});
newHeaders.forEach(function(h) {
headers.push(h);
});
return headers;
}
function getValues(headers, flat) {
var values = [];
headers.forEach(function(h) {
values.push(flat[h]);
});
return values;
}
function setHeaders(sheet, values) {
var headerRow = sheet.getRange(1, 1, 1, values.length)
headerRow.setValues([values]);
headerRow.setFontWeight("bold").setHorizontalAlignment("center");
}
function setValues(sheet, values) {
var lastRow = Math.max(sheet.getLastRow(), 1);
sheet.insertRowAfter(lastRow);
sheet.getRange(lastRow + 1, 1, 1, values.length).setValues([values]).setFontWeight("normal").setHorizontalAlignment("center");
}
function getFormSheet(formName) {
var formSheet;
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
if (activeSheet.getSheetByName(formName) == null) {
formSheet = activeSheet.insertSheet();
formSheet.setName(formName);
isNewSheet = true;
}
return activeSheet.getSheetByName(formName);
}
function insertToSheet(data) {
var formName = data["form_name"];
var formSheet = getFormSheet(formName);
// Common data that doesn't change per row
var commonData = {
"form_id": data["form_id"],
"form_name": data["form_name"],
"Tanggal": data["Tanggal"],
"Kode Unik": data["Kode Unik"],
"Sales": data["Sales"],
"Area": data["Area"],
"Tipe Outlet": data["Tipe Outlet"],
"Toko / Customer": data["Toko / Customer"],
"Nomor Telepon / Whatsapp": data["Nomor Telepon / Whatsapp"],
"Alamat": data["Alamat"]
};
for (var i = 1; i <= 10; i++) { // Assuming up to 10 items
if (data["Item " + i] && data["Jumlah " + i + " (Satuan Box)"]) {
// Combine common data with specific item data
var rowData = Object.assign({}, commonData, {
"Item": data["Item " + i],
"Jumlah (Satuan Box)": data["Jumlah " + i + " (Satuan Box)"]
});
var flatRowData = flattenObject(rowData);
var keys = Object.keys(flatRowData);
var headers = getHeaders(formSheet, keys);
var values = getValues(headers, flatRowData);
setHeaders(formSheet, headers);
setValues(formSheet, values);
}
}
if (emailNotification) {
sendNotification(data, getSeetURL());
}
}
function getSeetURL() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
return spreadsheet.getUrl();
}
function sendNotification(data, url) {
var subject = "A new Elementor Pro Forms submission has been inserted to your sheet";
var message = "A new submission has been received via " + data['form_name'] + " form and inserted into your Google sheet at: " + url;
MailApp.sendEmail(emailAddress, subject, message, {
name: 'Automatic Emailer Script'
});
}
function onEdit(e) {
var sheet = e.source.getSheetByName('PO VIEW');
var range = e.range;
// Check if the edited cell is C5
if (range.getA1Notation() === 'C5') {
// Clear values in C6 and C7
sheet.getRange('C6:C7').clearContent();
}
// Check if the edited cell is C6
if (range.getA1Notation() === 'C6') {
// Clear values in and C7
sheet.getRange('C7').clearContent();
}
}
Views: 2