@voyantjs/plugin-smartbill 0.80.11 → 0.80.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/sync.js +23 -13
  2. package/package.json +9 -9
package/dist/sync.js CHANGED
@@ -117,12 +117,15 @@ async function persistArtifact(event, documentType, body, result, runtime) {
117
117
  async function applyExternalAllocationIfRequired(event, documentType, body, result, runtime) {
118
118
  if (event.externalAllocationRequired !== true || !result.number)
119
119
  return;
120
+ await applyExternalAllocationNumber(event, documentType, body, result, runtime, formatExternalInvoiceNumber(result.series ?? body.seriesName, result.number));
121
+ }
122
+ async function applyExternalAllocationNumber(event, documentType, body, result, runtime, invoiceNumber) {
120
123
  const db = await resolveArtifactDb(event, documentType, body, result, runtime);
121
124
  if (!db) {
122
125
  throw new Error("SmartBill external allocation requires artifact database access");
123
126
  }
124
127
  const allocation = await financeService.applyExternalInvoiceAllocation(db, event.id, {
125
- invoiceNumber: formatExternalInvoiceNumber(result.series ?? body.seriesName, result.number),
128
+ invoiceNumber,
126
129
  });
127
130
  if (allocation.status === "applied") {
128
131
  runtime.logger.info?.(`[smartbill] external number applied for ${event.id}`, allocation.invoice);
@@ -139,15 +142,15 @@ async function applyExternalAllocationFromRefIfRequired(event, documentType, bod
139
142
  if (!number) {
140
143
  throw new Error("SmartBill external allocation requires an existing external number");
141
144
  }
142
- await applyExternalAllocationIfRequired(event, documentType, body, {
145
+ const refSeries = metadataString(metadata, "series") ?? metadataString(metadata, "seriesName");
146
+ const refResult = {
143
147
  number,
144
- series: metadataString(metadata, "series") ??
145
- metadataString(metadata, "seriesName") ??
146
- body.seriesName,
148
+ series: refSeries ?? undefined,
147
149
  url: externalRef.externalUrl ?? undefined,
148
- }, runtime);
150
+ };
151
+ await applyExternalAllocationNumber(event, documentType, body, refResult, runtime, formatExternalInvoiceNumber(refSeries ?? undefined, number));
149
152
  }
150
- async function resolveWriteBackInvoiceNumber(event, body, result, writeBackInvoiceNumber) {
153
+ async function resolveWriteBackInvoiceNumber(event, body, result, writeBackInvoiceNumber, options = {}) {
151
154
  if (!writeBackInvoiceNumber)
152
155
  return null;
153
156
  if (typeof writeBackInvoiceNumber === "function") {
@@ -159,12 +162,16 @@ async function resolveWriteBackInvoiceNumber(event, body, result, writeBackInvoi
159
162
  }
160
163
  if (!result.number)
161
164
  return null;
162
- return formatExternalInvoiceNumber(result.series ?? body.seriesName, result.number);
165
+ const series = result.series ?? (options.useBodySeriesFallback === false ? undefined : body.seriesName);
166
+ return formatExternalInvoiceNumber(series, result.number);
163
167
  }
164
168
  async function writeBackInvoiceNumberIfRequired(event, documentType, body, result, runtime) {
165
169
  const invoiceNumber = await resolveWriteBackInvoiceNumber(event, body, result, runtime.writeBackInvoiceNumber);
166
170
  if (!invoiceNumber)
167
171
  return;
172
+ await writeBackResolvedInvoiceNumber(event, documentType, body, result, runtime, invoiceNumber);
173
+ }
174
+ async function writeBackResolvedInvoiceNumber(event, documentType, body, result, runtime, invoiceNumber) {
168
175
  const db = await resolveArtifactDb(event, documentType, body, result, runtime);
169
176
  if (!db) {
170
177
  throw new Error("SmartBill invoice number write-back requires artifact database access");
@@ -185,13 +192,16 @@ async function writeBackInvoiceNumberFromRefIfRequired(event, documentType, body
185
192
  null;
186
193
  if (!number)
187
194
  return;
188
- await writeBackInvoiceNumberIfRequired(event, documentType, body, {
195
+ const refSeries = metadataString(metadata, "series") ?? metadataString(metadata, "seriesName");
196
+ const refResult = {
189
197
  number,
190
- series: metadataString(metadata, "series") ??
191
- metadataString(metadata, "seriesName") ??
192
- body.seriesName,
198
+ series: refSeries ?? undefined,
193
199
  url: externalRef.externalUrl ?? undefined,
194
- }, runtime);
200
+ };
201
+ const invoiceNumber = await resolveWriteBackInvoiceNumber(event, body, refResult, runtime.writeBackInvoiceNumber, { useBodySeriesFallback: false });
202
+ if (!invoiceNumber)
203
+ return;
204
+ await writeBackResolvedInvoiceNumber(event, documentType, body, refResult, runtime, invoiceNumber);
195
205
  }
196
206
  async function recordSyncError(event, documentType, err, runtime, pluginOptions) {
197
207
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/plugin-smartbill",
3
- "version": "0.80.11",
3
+ "version": "0.80.14",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -59,18 +59,18 @@
59
59
  "drizzle-orm": "^0.45.2",
60
60
  "hono": "^4.12.10",
61
61
  "zod": "^4.3.6",
62
- "@voyantjs/core": "0.80.11",
63
- "@voyantjs/finance": "0.80.11",
64
- "@voyantjs/hono": "0.80.11",
65
- "@voyantjs/storage": "0.80.11"
62
+ "@voyantjs/core": "0.80.14",
63
+ "@voyantjs/finance": "0.80.14",
64
+ "@voyantjs/hono": "0.80.14",
65
+ "@voyantjs/storage": "0.80.14"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "@tanstack/react-query": "^5.0.0",
69
69
  "lucide-react": "^0.475.0",
70
70
  "react": "^19.0.0",
71
71
  "react-dom": "^19.0.0",
72
- "@voyantjs/finance-react": "0.80.11",
73
- "@voyantjs/ui": "0.80.11"
72
+ "@voyantjs/finance-react": "0.80.14",
73
+ "@voyantjs/ui": "0.80.14"
74
74
  },
75
75
  "peerDependenciesMeta": {
76
76
  "@tanstack/react-query": {
@@ -101,8 +101,8 @@
101
101
  "react-dom": "^19.2.4",
102
102
  "typescript": "^6.0.2",
103
103
  "vitest": "^4.1.2",
104
- "@voyantjs/finance-react": "0.80.11",
105
- "@voyantjs/ui": "0.80.11",
104
+ "@voyantjs/finance-react": "0.80.14",
105
+ "@voyantjs/ui": "0.80.14",
106
106
  "@voyantjs/voyant-typescript-config": "0.1.0"
107
107
  },
108
108
  "files": [