enable changes based on template, refactor newSku
This commit is contained in:
@ -1,19 +1,31 @@
|
|||||||
function newSku(e: GoogleAppsScript.Events.SheetsOnEdit) {
|
function newSkuHandler(e: GoogleAppsScript.Events.SheetsOnEdit) {
|
||||||
var sheet = SpreadsheetApp.getActive().getActiveSheet()
|
var sheet = SpreadsheetApp.getActive().getActiveSheet()
|
||||||
if (sheet.getName() !== "product_inventory") {
|
if (sheet.getName() !== "product_inventory") {
|
||||||
console.log("skipping edit on sheet " + sheet.getName())
|
console.log("skipping edit on sheet " + sheet.getName())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let row = e.range.getRow()
|
let row = e.range.getRowIndex()
|
||||||
let idCell = getCellRangeByColumnName(sheet, "#", row)
|
let idCell = getCellRangeByColumnName(sheet, "#", row)
|
||||||
let idCellValue = idCell.getValue()
|
let idCellValue = idCell.getValue()
|
||||||
let skuPrefixCellValue = getCellValueByColumnName(sheet, "sku_prefix", row)
|
|
||||||
console.log("skuPrefixCellValue = '" + skuPrefixCellValue + "'")
|
|
||||||
console.log("idCellValue = '" + idCellValue + "'")
|
console.log("idCellValue = '" + idCellValue + "'")
|
||||||
if (idCellValue != "?" && idCellValue != "n") {
|
if (idCellValue != "?" && idCellValue != "n") {
|
||||||
console.log("new ID was not requested, returning")
|
console.log("new ID was not requested, returning")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
newSku(row)
|
||||||
|
}
|
||||||
|
|
||||||
|
function newSku(row: number) {
|
||||||
|
let sheet = SpreadsheetApp.getActive().getSheetByName("product_inventory")
|
||||||
|
let idCell = getCellRangeByColumnName(sheet, "#", row)
|
||||||
|
let safeToOverwrite: string[] = ["?", "n", ""]
|
||||||
|
let idCellValue = idCell.getValue()
|
||||||
|
let skuPrefixCellValue = getCellValueByColumnName(sheet, "sku_prefix", row)
|
||||||
|
console.log("skuPrefixCellValue = '" + skuPrefixCellValue + "'")
|
||||||
|
if (!safeToOverwrite.includes(idCellValue)) {
|
||||||
|
console.log("ID '" + idCellValue + "' is not safe to overwrite, returning")
|
||||||
|
return
|
||||||
|
}
|
||||||
var idArray = sheet.getRange(2, 9, sheet.getLastRow(), 1).getValues()
|
var idArray = sheet.getRange(2, 9, sheet.getLastRow(), 1).getValues()
|
||||||
var regExp = new RegExp(`^` + skuPrefixCellValue + `-0*(\\d+)$`)
|
var regExp = new RegExp(`^` + skuPrefixCellValue + `-0*(\\d+)$`)
|
||||||
console.log("regExp: " + regExp.toString())
|
console.log("regExp: " + regExp.toString())
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/// <reference types="@types/google-apps-script" />
|
/// <reference types="@types/google-apps-script" />
|
||||||
|
|
||||||
function onEdit(e: GoogleAppsScript.Events.SheetsOnEdit) {
|
function onEdit(e: GoogleAppsScript.Events.SheetsOnEdit) {
|
||||||
newSku(e)
|
newSkuHandler(e)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ function productTemplate(row: number) {
|
|||||||
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("product_inventory")
|
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("product_inventory")
|
||||||
let titleValue = getCellValueByColumnName(productInventorySheet, "title", row)
|
let titleValue = getCellValueByColumnName(productInventorySheet, "title", row)
|
||||||
for (let i = 0; i < updateColumns.length; i++) {
|
for (let i = 0; i < updateColumns.length; i++) {
|
||||||
|
let updateColumn = updateColumns[i]
|
||||||
let currentValue = getCellValueByColumnName(
|
let currentValue = getCellValueByColumnName(
|
||||||
productInventorySheet,
|
productInventorySheet,
|
||||||
updateColumns[i],
|
updateColumns[i],
|
||||||
@ -21,24 +22,30 @@ function productTemplate(row: number) {
|
|||||||
)
|
)
|
||||||
if (currentValue != "") {
|
if (currentValue != "") {
|
||||||
console.log(
|
console.log(
|
||||||
"current value for '" + updateColumns[i] + "' is '" + currentValue + "'"
|
"current value for '" + updateColumn + "' is '" + currentValue + "'"
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
let templateValue = vlookupByColumns(
|
var templateValue: string = ""
|
||||||
|
templateValue = vlookupByColumns(
|
||||||
"product_types",
|
"product_types",
|
||||||
"title",
|
"title",
|
||||||
titleValue,
|
titleValue,
|
||||||
updateColumns[i]
|
updateColumn
|
||||||
)
|
)
|
||||||
if (templateValue != "") {
|
if (templateValue != "") {
|
||||||
console.log(
|
console.log(
|
||||||
"template value for '" +
|
"template value for '" +
|
||||||
updateColumns[i] +
|
updateColumn +
|
||||||
"' is '" +
|
"' is '" +
|
||||||
templateValue +
|
templateValue +
|
||||||
"'"
|
"'"
|
||||||
)
|
)
|
||||||
|
toastAndLog("updating '" + updateColumn + "' to '" + templateValue + "'")
|
||||||
|
let cell = getCellRangeByColumnName(productInventorySheet, updateColumn, row)
|
||||||
|
cell.setValue(templateValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log("updating sku...")
|
||||||
|
newSku(row)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,7 +58,7 @@ function vlookupByColumns(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let resultValue = getCellValueByColumnName(s, resultColumn, index + 2)
|
let resultValue = getCellValueByColumnName(s, resultColumn, index + 2)
|
||||||
toastAndLog(resultValue)
|
console.log("resultValue: " + resultValue)
|
||||||
return resultValue
|
return resultValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user