← back to Filemaker Mcp
auto-save: 2026-07-02T07:11:42 (1 files) — scripts/relookup-invoice-102387.mjs
5a0d50edc5d30b5d62e5ee093b6a3d7cf024d387 · 2026-07-02 07:11:48 -0700 · Steve Abrams
Files touched
A scripts/relookup-invoice-102387.mjs
Diff
commit 5a0d50edc5d30b5d62e5ee093b6a3d7cf024d387
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 2 07:11:48 2026 -0700
auto-save: 2026-07-02T07:11:42 (1 files) — scripts/relookup-invoice-102387.mjs
---
scripts/relookup-invoice-102387.mjs | 42 +++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/scripts/relookup-invoice-102387.mjs b/scripts/relookup-invoice-102387.mjs
new file mode 100644
index 0000000..26d7056
--- /dev/null
+++ b/scripts/relookup-invoice-102387.mjs
@@ -0,0 +1,42 @@
+// Re-fire the WALLPAPER lookups on invoice 102387 (recordId 64919) now that the
+// DWKK-120156 master exists (recordId 536618). FM stored lookups refire only when
+// the KEY field's value CHANGES, and updateRecord diff-skips same-value writes —
+// so each key is re-keyed in two steps: blank -> correct value.
+// Keys (from lib/invoice.js): JS Easy SKU # (Layout #47), wc pattern(1) +
+// WC Pattern Number AKA DW SKU(1) [dashless] (1-order detail 1 Copy3).
+// Usage: node scripts/relookup-invoice-102387.mjs
+import { readFileSync } from 'node:fs';
+import { fileURLToPath } from 'node:url';
+import { dirname, join } from 'node:path';
+const __dir = dirname(fileURLToPath(import.meta.url));
+for (const line of readFileSync(join(__dir, '..', '.env'), 'utf8').split('\n')) {
+ const m = line.match(/^([A-Z_]+)=(.*)$/);
+ if (m && !process.env[m[1]]) process.env[m[1]] = m[2];
+}
+const fm = await import('../src/fm-client.js');
+const ID = 64919;
+
+const rekeys = [
+ ['Layout #47', 'JS Easy SKU #', 'DWKK-120156'],
+ ['1-order detail 1 Copy3', 'wc pattern(1)', 'DWKK-120156'],
+ ['1-order detail 1 Copy3', 'WC Pattern Number AKA DW SKU(1)', 'DWKK120156'],
+];
+for (const [layout, field, value] of rekeys) {
+ for (const v of ['', value]) {
+ try {
+ const r = await fm.updateRecord('invoice', layout, ID, { [field]: v }, { dryRun: false });
+ console.log(`set ${field}=${JSON.stringify(v)}:`, JSON.stringify(r.changes ?? r.note ?? r));
+ } catch (e) { console.log(`FAIL ${field}=${JSON.stringify(v)}: ${e.message}`); }
+ }
+}
+
+const rec = await fm.getRecord('invoice', '1-order detail 1 Copy3', ID);
+const f = rec.fieldData;
+console.log('READBACK:', JSON.stringify({
+ 'wc pattern(1)': f['wc pattern(1)'],
+ 'WC Pattern Number AKA DW SKU(1)': f['WC Pattern Number AKA DW SKU(1)'],
+ 'Detail 1 Mfr Number(1)': f['Detail 1 Mfr Number(1)'],
+ 'wc mfr num lookup(1)': f['wc mfr num lookup(1)'],
+ 'detail1 dash width': f['detail1 dash width'],
+ 'DETAIL 1(1)': f['DETAIL 1(1)'],
+}, null, 1));
← a231cf0 add DWKK-120156 master (order 32513/inv 102387) + invoice pr
·
back to Filemaker Mcp
·
sales-to-Slack via FileMaker: EOD daily+MTD summary + per-in 4255ec9 →