@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.
- package/dist/sync.js +23 -13
- 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
|
|
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
|
-
|
|
145
|
+
const refSeries = metadataString(metadata, "series") ?? metadataString(metadata, "seriesName");
|
|
146
|
+
const refResult = {
|
|
143
147
|
number,
|
|
144
|
-
series:
|
|
145
|
-
metadataString(metadata, "seriesName") ??
|
|
146
|
-
body.seriesName,
|
|
148
|
+
series: refSeries ?? undefined,
|
|
147
149
|
url: externalRef.externalUrl ?? undefined,
|
|
148
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
195
|
+
const refSeries = metadataString(metadata, "series") ?? metadataString(metadata, "seriesName");
|
|
196
|
+
const refResult = {
|
|
189
197
|
number,
|
|
190
|
-
series:
|
|
191
|
-
metadataString(metadata, "seriesName") ??
|
|
192
|
-
body.seriesName,
|
|
198
|
+
series: refSeries ?? undefined,
|
|
193
199
|
url: externalRef.externalUrl ?? undefined,
|
|
194
|
-
}
|
|
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.
|
|
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.
|
|
63
|
-
"@voyantjs/finance": "0.80.
|
|
64
|
-
"@voyantjs/hono": "0.80.
|
|
65
|
-
"@voyantjs/storage": "0.80.
|
|
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.
|
|
73
|
-
"@voyantjs/ui": "0.80.
|
|
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.
|
|
105
|
-
"@voyantjs/ui": "0.80.
|
|
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": [
|