enable changes based on template, refactor newSku

This commit is contained in:
Ben Miller
2024-11-04 21:48:31 -07:00
parent 20a5e738f7
commit 7316ba08d7
4 changed files with 29 additions and 10 deletions

View File

@ -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())

View File

@ -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)
} }

View File

@ -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)
} }

View File

@ -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
} }