@wals-pro/n8n-nodes-weclapp 0.3.0

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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +206 -0
  3. package/dist/credentials/WeclappApi.credentials.d.ts +10 -0
  4. package/dist/credentials/WeclappApi.credentials.js +56 -0
  5. package/dist/credentials/WeclappApi.credentials.js.map +1 -0
  6. package/dist/credentials/weclapp.dark.svg +19 -0
  7. package/dist/credentials/weclapp.light.svg +19 -0
  8. package/dist/nodes/Weclapp/GenericFunctions.d.ts +19 -0
  9. package/dist/nodes/Weclapp/GenericFunctions.js +287 -0
  10. package/dist/nodes/Weclapp/GenericFunctions.js.map +1 -0
  11. package/dist/nodes/Weclapp/SharedFields.d.ts +24 -0
  12. package/dist/nodes/Weclapp/SharedFields.js +348 -0
  13. package/dist/nodes/Weclapp/SharedFields.js.map +1 -0
  14. package/dist/nodes/Weclapp/Weclapp.node.d.ts +27 -0
  15. package/dist/nodes/Weclapp/Weclapp.node.js +231 -0
  16. package/dist/nodes/Weclapp/Weclapp.node.js.map +1 -0
  17. package/dist/nodes/Weclapp/actions/applyPayment.d.ts +9 -0
  18. package/dist/nodes/Weclapp/actions/applyPayment.js +64 -0
  19. package/dist/nodes/Weclapp/actions/applyPayment.js.map +1 -0
  20. package/dist/nodes/Weclapp/actions/articlePriceSync.d.ts +41 -0
  21. package/dist/nodes/Weclapp/actions/articlePriceSync.js +238 -0
  22. package/dist/nodes/Weclapp/actions/articlePriceSync.js.map +1 -0
  23. package/dist/nodes/Weclapp/actions/documentUpload.d.ts +3 -0
  24. package/dist/nodes/Weclapp/actions/documentUpload.js +90 -0
  25. package/dist/nodes/Weclapp/actions/documentUpload.js.map +1 -0
  26. package/dist/nodes/Weclapp/descriptions/ArticleDescription.d.ts +3 -0
  27. package/dist/nodes/Weclapp/descriptions/ArticleDescription.js +724 -0
  28. package/dist/nodes/Weclapp/descriptions/ArticleDescription.js.map +1 -0
  29. package/dist/nodes/Weclapp/descriptions/BankDescription.d.ts +6 -0
  30. package/dist/nodes/Weclapp/descriptions/BankDescription.js +471 -0
  31. package/dist/nodes/Weclapp/descriptions/BankDescription.js.map +1 -0
  32. package/dist/nodes/Weclapp/descriptions/CustomApiDescription.d.ts +4 -0
  33. package/dist/nodes/Weclapp/descriptions/CustomApiDescription.js +238 -0
  34. package/dist/nodes/Weclapp/descriptions/CustomApiDescription.js.map +1 -0
  35. package/dist/nodes/Weclapp/descriptions/DocumentDescription.d.ts +3 -0
  36. package/dist/nodes/Weclapp/descriptions/DocumentDescription.js +976 -0
  37. package/dist/nodes/Weclapp/descriptions/DocumentDescription.js.map +1 -0
  38. package/dist/nodes/Weclapp/descriptions/PartyDescription.d.ts +4 -0
  39. package/dist/nodes/Weclapp/descriptions/PartyDescription.js +408 -0
  40. package/dist/nodes/Weclapp/descriptions/PartyDescription.js.map +1 -0
  41. package/dist/nodes/Weclapp/descriptions/ProductionOrderDescription.d.ts +4 -0
  42. package/dist/nodes/Weclapp/descriptions/ProductionOrderDescription.js +628 -0
  43. package/dist/nodes/Weclapp/descriptions/ProductionOrderDescription.js.map +1 -0
  44. package/dist/nodes/Weclapp/descriptions/PurchaseInvoiceDescription.d.ts +3 -0
  45. package/dist/nodes/Weclapp/descriptions/PurchaseInvoiceDescription.js +559 -0
  46. package/dist/nodes/Weclapp/descriptions/PurchaseInvoiceDescription.js.map +1 -0
  47. package/dist/nodes/Weclapp/descriptions/PurchaseOrderDescription.d.ts +3 -0
  48. package/dist/nodes/Weclapp/descriptions/PurchaseOrderDescription.js +681 -0
  49. package/dist/nodes/Weclapp/descriptions/PurchaseOrderDescription.js.map +1 -0
  50. package/dist/nodes/Weclapp/descriptions/QuotationDescription.d.ts +3 -0
  51. package/dist/nodes/Weclapp/descriptions/QuotationDescription.js +1069 -0
  52. package/dist/nodes/Weclapp/descriptions/QuotationDescription.js.map +1 -0
  53. package/dist/nodes/Weclapp/descriptions/SalesInvoiceDescription.d.ts +3 -0
  54. package/dist/nodes/Weclapp/descriptions/SalesInvoiceDescription.js +994 -0
  55. package/dist/nodes/Weclapp/descriptions/SalesInvoiceDescription.js.map +1 -0
  56. package/dist/nodes/Weclapp/descriptions/SalesOrderDescription.d.ts +4 -0
  57. package/dist/nodes/Weclapp/descriptions/SalesOrderDescription.js +1122 -0
  58. package/dist/nodes/Weclapp/descriptions/SalesOrderDescription.js.map +1 -0
  59. package/dist/nodes/Weclapp/descriptions/ShipmentDescription.d.ts +3 -0
  60. package/dist/nodes/Weclapp/descriptions/ShipmentDescription.js +502 -0
  61. package/dist/nodes/Weclapp/descriptions/ShipmentDescription.js.map +1 -0
  62. package/dist/nodes/Weclapp/descriptions/TagUnitUserDescription.d.ts +9 -0
  63. package/dist/nodes/Weclapp/descriptions/TagUnitUserDescription.js +664 -0
  64. package/dist/nodes/Weclapp/descriptions/TagUnitUserDescription.js.map +1 -0
  65. package/dist/nodes/Weclapp/descriptions/TicketDescription.d.ts +9 -0
  66. package/dist/nodes/Weclapp/descriptions/TicketDescription.js +745 -0
  67. package/dist/nodes/Weclapp/descriptions/TicketDescription.js.map +1 -0
  68. package/dist/nodes/Weclapp/descriptions/WarehouseDescription.d.ts +35 -0
  69. package/dist/nodes/Weclapp/descriptions/WarehouseDescription.js +935 -0
  70. package/dist/nodes/Weclapp/descriptions/WarehouseDescription.js.map +1 -0
  71. package/dist/nodes/Weclapp/descriptions/WebhookDescription.d.ts +4 -0
  72. package/dist/nodes/Weclapp/descriptions/WebhookDescription.js +411 -0
  73. package/dist/nodes/Weclapp/descriptions/WebhookDescription.js.map +1 -0
  74. package/dist/nodes/Weclapp/descriptions/index.d.ts +3 -0
  75. package/dist/nodes/Weclapp/descriptions/index.js +56 -0
  76. package/dist/nodes/Weclapp/descriptions/index.js.map +1 -0
  77. package/dist/nodes/Weclapp/generated/entityMetadata.d.ts +3 -0
  78. package/dist/nodes/Weclapp/generated/entityMetadata.js +368 -0
  79. package/dist/nodes/Weclapp/generated/entityMetadata.js.map +1 -0
  80. package/dist/nodes/Weclapp/generated/openapiMetadata.d.ts +3 -0
  81. package/dist/nodes/Weclapp/generated/openapiMetadata.js +212 -0
  82. package/dist/nodes/Weclapp/generated/openapiMetadata.js.map +1 -0
  83. package/dist/nodes/Weclapp/methods/customAttributes.d.ts +32 -0
  84. package/dist/nodes/Weclapp/methods/customAttributes.js +156 -0
  85. package/dist/nodes/Weclapp/methods/customAttributes.js.map +1 -0
  86. package/dist/nodes/Weclapp/methods/loadOptions.d.ts +3 -0
  87. package/dist/nodes/Weclapp/methods/loadOptions.js +107 -0
  88. package/dist/nodes/Weclapp/methods/loadOptions.js.map +1 -0
  89. package/dist/nodes/Weclapp/weclapp.dark.svg +19 -0
  90. package/dist/nodes/Weclapp/weclapp.light.svg +19 -0
  91. package/dist/nodes/WeclappTrigger/WeclappTrigger.node.d.ts +12 -0
  92. package/dist/nodes/WeclappTrigger/WeclappTrigger.node.js +198 -0
  93. package/dist/nodes/WeclappTrigger/WeclappTrigger.node.js.map +1 -0
  94. package/dist/nodes/WeclappTrigger/weclapp.dark.svg +19 -0
  95. package/dist/nodes/WeclappTrigger/weclapp.light.svg +19 -0
  96. package/dist/package.json +78 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharedFields.js","sourceRoot":"","sources":["../../../nodes/Weclapp/SharedFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ import { getCustomAttributeFields } from './methods/customAttributes';
3
+ export declare class Weclapp implements INodeType {
4
+ description: INodeTypeDescription;
5
+ methods: {
6
+ loadOptions: Record<string, (this: import("n8n-workflow").ILoadOptionsFunctions) => Promise<import("n8n-workflow").INodePropertyOptions[]>>;
7
+ listSearch: Record<string, (this: import("n8n-workflow").ILoadOptionsFunctions, filter?: string, paginationToken?: string) => Promise<import("n8n-workflow").INodeListSearchResult>>;
8
+ resourceMapping: {
9
+ getCustomAttributeFields: typeof getCustomAttributeFields;
10
+ };
11
+ };
12
+ customOperations: {
13
+ article: {
14
+ updatePrices: (this: IExecuteFunctions) => Promise<INodeExecutionData[][]>;
15
+ };
16
+ purchaseInvoice: {
17
+ applyPayment: (this: IExecuteFunctions) => Promise<INodeExecutionData[][]>;
18
+ };
19
+ customApiCall: {
20
+ call: (this: IExecuteFunctions) => Promise<INodeExecutionData[][]>;
21
+ };
22
+ document: {
23
+ upload: (this: IExecuteFunctions) => Promise<INodeExecutionData[][]>;
24
+ uploadNewVersion: (this: IExecuteFunctions) => Promise<INodeExecutionData[][]>;
25
+ };
26
+ };
27
+ }
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Weclapp = void 0;
4
+ const index_1 = require("./descriptions/index");
5
+ const loadOptions_1 = require("./methods/loadOptions");
6
+ const customAttributes_1 = require("./methods/customAttributes");
7
+ const applyPayment_1 = require("./actions/applyPayment");
8
+ const articlePriceSync_1 = require("./actions/articlePriceSync");
9
+ const CustomApiDescription_1 = require("./descriptions/CustomApiDescription");
10
+ const documentUpload_1 = require("./actions/documentUpload");
11
+ class Weclapp {
12
+ constructor() {
13
+ this.description = {
14
+ displayName: 'weclapp',
15
+ name: 'weclapp',
16
+ icon: {
17
+ light: 'file:weclapp.light.svg',
18
+ dark: 'file:weclapp.dark.svg',
19
+ },
20
+ group: ['transform'],
21
+ version: 1,
22
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
23
+ description: 'Interact with the weclapp ERP API — CRUD, actions, binary downloads, and webhooks. Maintained by Wals-pro (wals.pro). AI copilot available at dev.weclapp-ai.wals.pro (Beta).',
24
+ defaults: {
25
+ name: 'weclapp',
26
+ },
27
+ inputs: ['main'],
28
+ outputs: ['main'],
29
+ credentials: [
30
+ {
31
+ name: 'weclappApi',
32
+ required: true,
33
+ },
34
+ ],
35
+ requestDefaults: {
36
+ baseURL: '={{$credentials.baseUrl}}',
37
+ headers: {
38
+ AuthenticationToken: '={{$credentials.apiKey}}',
39
+ 'Content-Type': 'application/json',
40
+ Accept: 'application/json',
41
+ },
42
+ },
43
+ properties: [
44
+ {
45
+ displayName: 'Built by <a href="https://wals.pro" target="_blank">Wals-pro</a> — try the AI copilot at <a href="https://dev.weclapp-ai.wals.pro" target="_blank">weclapp-ai.wals.pro</a> (Beta)',
46
+ name: 'walsproNotice',
47
+ type: 'notice',
48
+ default: '',
49
+ },
50
+ {
51
+ displayName: 'Resource',
52
+ name: 'resource',
53
+ type: 'options',
54
+ noDataExpression: true,
55
+ options: [
56
+ {
57
+ name: 'Article',
58
+ value: 'article',
59
+ },
60
+ {
61
+ name: 'Bank Account',
62
+ value: 'bankAccount',
63
+ },
64
+ {
65
+ name: 'Bank Transaction',
66
+ value: 'bankTransaction',
67
+ },
68
+ {
69
+ name: 'Comment',
70
+ value: 'comment',
71
+ },
72
+ {
73
+ name: 'Custom API Call',
74
+ value: 'customApiCall',
75
+ },
76
+ {
77
+ name: 'Custom Attribute Definition',
78
+ value: 'customAttributeDefinition',
79
+ },
80
+ {
81
+ name: 'Document',
82
+ value: 'document',
83
+ },
84
+ {
85
+ name: 'Party',
86
+ value: 'party',
87
+ description: 'Customers, suppliers, and prospects',
88
+ },
89
+ {
90
+ name: 'Production Order',
91
+ value: 'productionOrder',
92
+ },
93
+ {
94
+ name: 'Purchase Invoice',
95
+ value: 'purchaseInvoice',
96
+ },
97
+ {
98
+ name: 'Purchase Order',
99
+ value: 'purchaseOrder',
100
+ },
101
+ {
102
+ name: 'Quotation',
103
+ value: 'quotation',
104
+ },
105
+ {
106
+ name: 'Sales Invoice',
107
+ value: 'salesInvoice',
108
+ },
109
+ {
110
+ name: 'Sales Order',
111
+ value: 'salesOrder',
112
+ },
113
+ {
114
+ name: 'Shipment',
115
+ value: 'shipment',
116
+ },
117
+ {
118
+ name: 'Tag',
119
+ value: 'tag',
120
+ },
121
+ {
122
+ name: 'Ticket',
123
+ value: 'ticket',
124
+ },
125
+ {
126
+ name: 'Unit',
127
+ value: 'unit',
128
+ },
129
+ {
130
+ name: 'User',
131
+ value: 'user',
132
+ },
133
+ {
134
+ name: 'Warehouse',
135
+ value: 'warehouse',
136
+ },
137
+ {
138
+ name: 'Warehouse Stock',
139
+ value: 'warehouseStock',
140
+ },
141
+ {
142
+ name: 'Warehouse Stock Movement',
143
+ value: 'warehouseStockMovement',
144
+ },
145
+ {
146
+ name: 'Webhook',
147
+ value: 'webhook',
148
+ },
149
+ ],
150
+ default: 'customApiCall',
151
+ },
152
+ ...index_1.resources,
153
+ ],
154
+ usableAsTool: true,
155
+ };
156
+ this.methods = {
157
+ loadOptions: loadOptions_1.loadOptions,
158
+ listSearch: loadOptions_1.listSearch,
159
+ resourceMapping: {
160
+ getCustomAttributeFields: customAttributes_1.getCustomAttributeFields,
161
+ },
162
+ };
163
+ this.customOperations = {
164
+ article: {
165
+ updatePrices: async function () {
166
+ const items = this.getInputData();
167
+ const results = [];
168
+ for (let i = 0; i < items.length; i++) {
169
+ const articleId = this.getNodeParameter('articleId', i, '', { extractValue: true });
170
+ const grossPrice = this.getNodeParameter('grossPrice', i);
171
+ const currencyId = this.getNodeParameter('currencyId', i);
172
+ const options = this.getNodeParameter('updatePricesOptions', i, {});
173
+ const result = await articlePriceSync_1.executeUpdatePrices.call(this, {
174
+ articleId,
175
+ grossPrice,
176
+ currencyId,
177
+ salesChannel: options.salesChannel,
178
+ validFrom: options.validFrom && options.validFrom > 0 ? options.validFrom : undefined,
179
+ });
180
+ results.push({ json: result, pairedItem: { item: i } });
181
+ }
182
+ return [results];
183
+ },
184
+ },
185
+ purchaseInvoice: {
186
+ applyPayment: async function () {
187
+ const items = this.getInputData();
188
+ const results = [];
189
+ for (let i = 0; i < items.length; i++) {
190
+ const result = await applyPayment_1.executeApplyPayment.call(this, i);
191
+ results.push({ json: result, pairedItem: { item: i } });
192
+ }
193
+ return [results];
194
+ },
195
+ },
196
+ customApiCall: {
197
+ call: async function () {
198
+ const items = this.getInputData();
199
+ const results = [];
200
+ for (let i = 0; i < items.length; i++) {
201
+ const result = await CustomApiDescription_1.executeCustomApiCall.call(this, i);
202
+ results.push(result);
203
+ }
204
+ return [results];
205
+ },
206
+ },
207
+ document: {
208
+ upload: async function () {
209
+ const items = this.getInputData();
210
+ const results = [];
211
+ for (let i = 0; i < items.length; i++) {
212
+ const result = await documentUpload_1.executeDocumentUpload.call(this, i);
213
+ results.push(result);
214
+ }
215
+ return [results];
216
+ },
217
+ uploadNewVersion: async function () {
218
+ const items = this.getInputData();
219
+ const results = [];
220
+ for (let i = 0; i < items.length; i++) {
221
+ const result = await documentUpload_1.executeDocumentUploadNewVersion.call(this, i);
222
+ results.push(result);
223
+ }
224
+ return [results];
225
+ },
226
+ },
227
+ };
228
+ }
229
+ }
230
+ exports.Weclapp = Weclapp;
231
+ //# sourceMappingURL=Weclapp.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Weclapp.node.js","sourceRoot":"","sources":["../../../nodes/Weclapp/Weclapp.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { IDataObject, IExecuteFunctions } from 'n8n-workflow';
2
+ export interface ApplyPaymentResult {
3
+ applied: boolean;
4
+ invoice: IDataObject;
5
+ transaction: IDataObject;
6
+ openItem: IDataObject;
7
+ }
8
+ export declare function amountsMatch(invoiceAmount: string, transactionAmount: string): boolean;
9
+ export declare function executeApplyPayment(this: IExecuteFunctions, itemIndex: number): Promise<ApplyPaymentResult>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.amountsMatch = amountsMatch;
4
+ exports.executeApplyPayment = executeApplyPayment;
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const GenericFunctions_1 = require("../GenericFunctions");
7
+ function amountsMatch(invoiceAmount, transactionAmount) {
8
+ const inv = parseFloat(invoiceAmount);
9
+ const trx = parseFloat(transactionAmount);
10
+ if (isNaN(inv) || isNaN(trx))
11
+ return false;
12
+ return Math.abs(inv - trx) < 0.0001;
13
+ }
14
+ async function executeApplyPayment(itemIndex) {
15
+ var _a, _b;
16
+ const purchaseInvoiceId = this.getNodeParameter('purchaseInvoiceId', itemIndex);
17
+ const bankTransactionId = this.getNodeParameter('bankTransactionId', itemIndex);
18
+ if (!purchaseInvoiceId) {
19
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Purchase Invoice ID is required', {
20
+ itemIndex,
21
+ });
22
+ }
23
+ if (!bankTransactionId) {
24
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Bank Transaction ID is required', {
25
+ itemIndex,
26
+ });
27
+ }
28
+ const [invoice, transaction] = (await Promise.all([
29
+ GenericFunctions_1.weclappApiRequest.call(this, 'GET', `/purchaseInvoice/id/${purchaseInvoiceId}`),
30
+ GenericFunctions_1.weclappApiRequest.call(this, 'GET', `/bankTransaction/id/${bankTransactionId}`),
31
+ ]));
32
+ const invoiceGross = invoice.grossAmount;
33
+ const transactionAmount = transaction.amount;
34
+ if (!invoiceGross) {
35
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Purchase invoice ${purchaseInvoiceId} has no grossAmount. Cannot validate payment match.`, { itemIndex });
36
+ }
37
+ if (!transactionAmount) {
38
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Bank transaction ${bankTransactionId} has no amount. Cannot validate payment match.`, { itemIndex });
39
+ }
40
+ const invAbs = String(Math.abs(parseFloat(invoiceGross)));
41
+ const trxAbs = String(Math.abs(parseFloat(transactionAmount)));
42
+ if (!amountsMatch(invAbs, trxAbs)) {
43
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Amount mismatch: invoice grossAmount ${invoiceGross} does not match bank transaction amount ${transactionAmount}. ` +
44
+ `weclapp requires exact match — partial allocation and FX conversion are not supported.`, { itemIndex });
45
+ }
46
+ const openItems = await GenericFunctions_1.weclappApiRequestAllItems.call(this, 'GET', '/purchaseOpenItem', { 'purchaseInvoiceId-eq': purchaseInvoiceId }, 1000);
47
+ if (openItems.length === 0) {
48
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `No open item found for purchase invoice ${purchaseInvoiceId}. The invoice may already be fully paid or not yet booked.`, { itemIndex });
49
+ }
50
+ const openItem = (_a = openItems.find((item) => item.cleared === false)) !== null && _a !== void 0 ? _a : openItems[0];
51
+ const openItemId = openItem.id;
52
+ if (!openItemId) {
53
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Open item for invoice ${purchaseInvoiceId} has no ID. This is unexpected — please check weclapp data integrity.`, { itemIndex });
54
+ }
55
+ const result = (await GenericFunctions_1.weclappApiRequest.call(this, 'POST', `/purchaseOpenItem/id/${openItemId}/createPaymentApplication`, { bankTransactionId }));
56
+ const updatedOpenItem = (_b = result.result) !== null && _b !== void 0 ? _b : result;
57
+ return {
58
+ applied: true,
59
+ invoice,
60
+ transaction,
61
+ openItem: updatedOpenItem,
62
+ };
63
+ }
64
+ //# sourceMappingURL=applyPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyPayment.js","sourceRoot":"","sources":["../../../../nodes/Weclapp/actions/applyPayment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { IExecuteFunctions } from 'n8n-workflow';
2
+ export interface ArticlePriceRow {
3
+ id?: string;
4
+ version?: string;
5
+ currencyId?: string;
6
+ customerId?: string | null;
7
+ description?: string;
8
+ endDate?: number | null;
9
+ price?: string;
10
+ priceScaleType?: string;
11
+ priceScaleValue?: string;
12
+ reductionAdditions?: unknown[];
13
+ salesChannel?: string;
14
+ startDate?: number | null;
15
+ }
16
+ export interface UpdatePricesInput {
17
+ articleId: string;
18
+ grossPrice: number;
19
+ salesChannel?: string;
20
+ currencyId: string;
21
+ validFrom?: number;
22
+ }
23
+ export interface UpdatePricesResult {
24
+ articleId: string;
25
+ changed: boolean;
26
+ pricesBefore: ArticlePriceRow[];
27
+ pricesAfter: ArticlePriceRow[];
28
+ }
29
+ export declare function floorToSecond(ms: number): number;
30
+ export declare function ceilToSecond(ms: number): number;
31
+ export declare function buildChannelPriceRows({ channel, desiredPrice, currencyId, effectiveTimestamp, existingRows, }: {
32
+ channel: string;
33
+ desiredPrice: number | string;
34
+ currencyId: string;
35
+ effectiveTimestamp: number;
36
+ existingRows: ArticlePriceRow[];
37
+ }): {
38
+ rows: ArticlePriceRow[];
39
+ changed: boolean;
40
+ };
41
+ export declare function executeUpdatePrices(this: IExecuteFunctions, input: UpdatePricesInput): Promise<UpdatePricesResult>;
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.floorToSecond = floorToSecond;
4
+ exports.ceilToSecond = ceilToSecond;
5
+ exports.buildChannelPriceRows = buildChannelPriceRows;
6
+ exports.executeUpdatePrices = executeUpdatePrices;
7
+ const GenericFunctions_1 = require("../GenericFunctions");
8
+ const DEFAULT_SALES_CHANNEL = 'GROSS1';
9
+ const DEFAULT_SCALE_VALUE = '0';
10
+ const ARTICLE_PRICE_PROPERTIES = [
11
+ 'id',
12
+ 'version',
13
+ 'articlePrices.id',
14
+ 'articlePrices.version',
15
+ 'articlePrices.currencyId',
16
+ 'articlePrices.customerId',
17
+ 'articlePrices.description',
18
+ 'articlePrices.endDate',
19
+ 'articlePrices.price',
20
+ 'articlePrices.priceScaleType',
21
+ 'articlePrices.priceScaleValue',
22
+ 'articlePrices.reductionAdditions',
23
+ 'articlePrices.salesChannel',
24
+ 'articlePrices.startDate',
25
+ ].join(',');
26
+ const WRITEABLE_PRICE_KEYS = [
27
+ 'id',
28
+ 'version',
29
+ 'currencyId',
30
+ 'customerId',
31
+ 'description',
32
+ 'endDate',
33
+ 'price',
34
+ 'priceScaleType',
35
+ 'priceScaleValue',
36
+ 'reductionAdditions',
37
+ 'salesChannel',
38
+ 'startDate',
39
+ ];
40
+ function floorToSecond(ms) {
41
+ return Math.floor(ms / 1000) * 1000;
42
+ }
43
+ function ceilToSecond(ms) {
44
+ return Math.ceil(ms / 1000) * 1000;
45
+ }
46
+ const _berlinDtf = new Intl.DateTimeFormat('sv-SE', { timeZone: 'Europe/Berlin' });
47
+ const _fmtBerlinDate = (ms) => _berlinDtf.format(new Date(ms));
48
+ function startOfDayBerlin(ms) {
49
+ const dateStr = _fmtBerlinDate(ms);
50
+ const parts = dateStr.split('-').map(Number);
51
+ const [y, m, d] = parts;
52
+ const utcMidnight = Date.UTC(y, m - 1, d);
53
+ const candidates = [];
54
+ for (const offsetMs of [3600000, 7200000]) {
55
+ const candidate = utcMidnight - offsetMs;
56
+ if (_fmtBerlinDate(candidate) === dateStr)
57
+ candidates.push(candidate);
58
+ }
59
+ return candidates.length > 0 ? Math.min(...candidates) : utcMidnight - 3600000;
60
+ }
61
+ function startOfNextDayBerlin(ms) {
62
+ const dateStr = _fmtBerlinDate(ms);
63
+ const parts = dateStr.split('-').map(Number);
64
+ const [y, m, d] = parts;
65
+ const nextDayNoon = Date.UTC(y, m - 1, d + 1, 12);
66
+ return startOfDayBerlin(nextDayNoon);
67
+ }
68
+ function endOfDayBerlin(ms) {
69
+ return startOfNextDayBerlin(ms) - 1;
70
+ }
71
+ function toFiniteNumber(value) {
72
+ if (value === null || value === undefined)
73
+ return null;
74
+ const parsed = Number(value);
75
+ return Number.isFinite(parsed) ? parsed : null;
76
+ }
77
+ function normalizePriceString(value, precision = 5) {
78
+ const parsed = toFiniteNumber(value);
79
+ if (parsed === null)
80
+ return null;
81
+ const factor = 10 ** precision;
82
+ const rounded = Math.round((parsed || 0) * factor) / factor;
83
+ const fixed = rounded.toFixed(precision);
84
+ return fixed.includes('.') ? fixed.replace(/\.?0+$/, '') : fixed;
85
+ }
86
+ function normalizeScaleValue(value) {
87
+ const result = normalizePriceString(value === null || value === undefined ? DEFAULT_SCALE_VALUE : value, 5);
88
+ return result === null ? DEFAULT_SCALE_VALUE : result;
89
+ }
90
+ function sanitizePriceRow(row) {
91
+ const output = {};
92
+ for (const key of WRITEABLE_PRICE_KEYS) {
93
+ const val = row[key];
94
+ if (val !== null && val !== undefined) {
95
+ if (key === 'reductionAdditions') {
96
+ output[key] = Array.isArray(val)
97
+ ? JSON.parse(JSON.stringify(val))
98
+ : [];
99
+ }
100
+ else {
101
+ output[key] = val;
102
+ }
103
+ }
104
+ }
105
+ return output;
106
+ }
107
+ function isGeneralTierZero(row) {
108
+ if (row.customerId !== null && row.customerId !== undefined && row.customerId !== '') {
109
+ return false;
110
+ }
111
+ return normalizeScaleValue(row.priceScaleValue) === DEFAULT_SCALE_VALUE;
112
+ }
113
+ function isPastAt(row, ts) {
114
+ const endDate = toFiniteNumber(row.endDate);
115
+ return endDate !== null && endDate < ts;
116
+ }
117
+ function isFutureAt(row, ts) {
118
+ const startDate = toFiniteNumber(row.startDate);
119
+ return startDate !== null && startDate > ts;
120
+ }
121
+ function buildChannelPriceRows({ channel, desiredPrice, currencyId, effectiveTimestamp, existingRows, }) {
122
+ var _a, _b;
123
+ const pastRows = [];
124
+ const currentRows = [];
125
+ const futureRows = [];
126
+ for (const row of existingRows) {
127
+ const sanitized = sanitizePriceRow(row);
128
+ if (isPastAt(row, effectiveTimestamp)) {
129
+ pastRows.push(sanitized);
130
+ }
131
+ else if (isFutureAt(row, effectiveTimestamp)) {
132
+ futureRows.push(sanitized);
133
+ }
134
+ else {
135
+ currentRows.push(sanitized);
136
+ }
137
+ }
138
+ const normalizedDesired = normalizePriceString(desiredPrice, 5);
139
+ if (currentRows.length === 1) {
140
+ const cur = currentRows[0];
141
+ const samePrice = normalizePriceString(cur.price, 5) === normalizedDesired;
142
+ const sameCurrency = String((_a = cur.currencyId) !== null && _a !== void 0 ? _a : '') === String(currencyId);
143
+ const sameScaleType = String((_b = cur.priceScaleType) !== null && _b !== void 0 ? _b : '') === 'SCALE_FROM';
144
+ const sameScaleValue = normalizeScaleValue(cur.priceScaleValue) === DEFAULT_SCALE_VALUE;
145
+ if (samePrice && sameCurrency && sameScaleType && sameScaleValue) {
146
+ return { rows: [...pastRows, cur, ...futureRows], changed: false };
147
+ }
148
+ }
149
+ let maxImmutableEndDate = null;
150
+ const processedCurrentRows = [];
151
+ for (const row of currentRows) {
152
+ const existingEndDate = toFiniteNumber(row.endDate);
153
+ if (existingEndDate !== null) {
154
+ processedCurrentRows.push(row);
155
+ if (maxImmutableEndDate === null || existingEndDate > maxImmutableEndDate) {
156
+ maxImmutableEndDate = existingEndDate;
157
+ }
158
+ }
159
+ else {
160
+ row.endDate = floorToSecond(endOfDayBerlin(effectiveTimestamp));
161
+ processedCurrentRows.push(row);
162
+ }
163
+ }
164
+ let newStartDate = ceilToSecond(startOfNextDayBerlin(effectiveTimestamp));
165
+ if (maxImmutableEndDate !== null && maxImmutableEndDate >= effectiveTimestamp) {
166
+ newStartDate = ceilToSecond(startOfNextDayBerlin(maxImmutableEndDate));
167
+ }
168
+ futureRows.sort((a, b) => {
169
+ var _a, _b;
170
+ const as = (_a = toFiniteNumber(a.startDate)) !== null && _a !== void 0 ? _a : Number.MIN_SAFE_INTEGER;
171
+ const bs = (_b = toFiniteNumber(b.startDate)) !== null && _b !== void 0 ? _b : Number.MIN_SAFE_INTEGER;
172
+ return as - bs;
173
+ });
174
+ const nextFutureStart = futureRows.length > 0 ? toFiniteNumber(futureRows[0].startDate) : null;
175
+ const newRow = {
176
+ currencyId,
177
+ price: normalizedDesired !== null && normalizedDesired !== void 0 ? normalizedDesired : String(desiredPrice),
178
+ priceScaleType: 'SCALE_FROM',
179
+ priceScaleValue: DEFAULT_SCALE_VALUE,
180
+ reductionAdditions: [],
181
+ salesChannel: channel,
182
+ startDate: newStartDate,
183
+ };
184
+ if (nextFutureStart !== null) {
185
+ if (nextFutureStart <= newStartDate) {
186
+ return { rows: [...pastRows, ...processedCurrentRows, ...futureRows], changed: false };
187
+ }
188
+ const cappedEndDate = floorToSecond(startOfDayBerlin(nextFutureStart) - 1);
189
+ if (cappedEndDate < newStartDate) {
190
+ return { rows: [...pastRows, ...processedCurrentRows, ...futureRows], changed: false };
191
+ }
192
+ newRow.endDate = cappedEndDate;
193
+ }
194
+ return {
195
+ rows: [...pastRows, ...processedCurrentRows, newRow, ...futureRows],
196
+ changed: true,
197
+ };
198
+ }
199
+ async function executeUpdatePrices(input) {
200
+ var _a;
201
+ const { articleId, grossPrice, currencyId, validFrom } = input;
202
+ const salesChannel = (_a = input.salesChannel) !== null && _a !== void 0 ? _a : DEFAULT_SALES_CHANNEL;
203
+ const effectiveTimestamp = validFrom !== null && validFrom !== void 0 ? validFrom : Date.now();
204
+ const article = (await GenericFunctions_1.weclappApiRequest.call(this, 'GET', `/article/id/${articleId}`, {}, {
205
+ properties: ARTICLE_PRICE_PROPERTIES,
206
+ }));
207
+ const pricesBefore = Array.isArray(article.articlePrices)
208
+ ? article.articlePrices
209
+ : [];
210
+ const targetRows = pricesBefore.filter((r) => r.salesChannel === salesChannel && isGeneralTierZero(r));
211
+ const preservedRows = pricesBefore
212
+ .filter((r) => !(r.salesChannel === salesChannel && isGeneralTierZero(r)))
213
+ .map(sanitizePriceRow);
214
+ const { rows: channelRows, changed } = buildChannelPriceRows({
215
+ channel: salesChannel,
216
+ desiredPrice: grossPrice,
217
+ currencyId,
218
+ effectiveTimestamp,
219
+ existingRows: targetRows,
220
+ });
221
+ if (!changed) {
222
+ return {
223
+ articleId,
224
+ changed: false,
225
+ pricesBefore,
226
+ pricesAfter: pricesBefore,
227
+ };
228
+ }
229
+ const pricesAfter = [...preservedRows, ...channelRows];
230
+ await GenericFunctions_1.weclappApiRequest.call(this, 'PUT', `/article/id/${articleId}`, { articlePrices: pricesAfter }, { ignoreMissingProperties: true });
231
+ return {
232
+ articleId,
233
+ changed: true,
234
+ pricesBefore,
235
+ pricesAfter,
236
+ };
237
+ }
238
+ //# sourceMappingURL=articlePriceSync.js.map