@stamhoofd/models 2.71.0 → 2.73.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.
@@ -67,12 +67,26 @@ export declare class BalanceItem extends QueryableModel {
67
67
  */
68
68
  get priceUnpaid(): number;
69
69
  get isPaid(): boolean;
70
- static deleteItems(items: BalanceItem[]): Promise<void>;
70
+ /**
71
+ * Options.cancellationFeePercentage: 0-10000 (0-100%)
72
+ * By default 0% will be charged
73
+ * Will create a new cancellation fee if the cancellation fee percentage is not 0%
74
+ */
75
+ static deleteItems(items: BalanceItem[], options?: {
76
+ cancellationFeePercentage?: number;
77
+ }): Promise<BalanceItem[]>;
78
+ createCancellationItem(fee: number): Promise<BalanceItem>;
71
79
  static reactivateItems(items: BalanceItem[]): Promise<void>;
72
80
  static undoForDeletedOrders(orderIds: string[]): Promise<void>;
73
- static deleteForDeletedOrders(orderIds: string[]): Promise<void>;
74
- static deleteForDeletedMember(memberId: string): Promise<void>;
75
- static deleteForDeletedRegistration(registrationId: string): Promise<void>;
81
+ static deleteForDeletedOrders(orderIds: string[], options?: {
82
+ cancellationFeePercentage?: number;
83
+ }): Promise<BalanceItem[] | undefined>;
84
+ static deleteForDeletedMember(memberId: string, options?: {
85
+ cancellationFeePercentage?: number;
86
+ }): Promise<BalanceItem[]>;
87
+ static deleteForDeletedRegistration(registrationId: string, options?: {
88
+ cancellationFeePercentage?: number;
89
+ }): Promise<BalanceItem[]>;
76
90
  static getForRegistration(registrationId: string, organizationId?: string): Promise<{
77
91
  payments: Payment[];
78
92
  balanceItemPayments: import("./BalanceItemPayment").BalanceItemPayment[];
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAuE,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,IAAI,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,8BAA8B,EAA4C,MAAM,uBAAuB,CAAC;AAKnU,OAAO,EAAE,cAAc,EAAO,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAwB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGnD;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAc;IAC3C,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAKZ,cAAc,EAAE,MAAM,CAAC;IAKvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IAEH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC;;OAEG;IAEH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE9B;;;;OAIG;IAEH,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7C,IAAI,kBAAyB;IAG7B,SAAS,EAAE,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAa;IAGzE,WAAW,SAAM;IAEjB;;OAEG;IAEH,MAAM,SAAK;IAEX;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,SAAS,SAAK;IAEd;;OAEG;IAEH,YAAY,SAAK;IAEjB;;OAEG;IAQH,SAAS,SAAK;IAEd;;;OAGG;IAEH,MAAM,oBAAyB;IAE/B;;;OAGG;IAEH,KAAK,EAAE,IAAI,GAAG,IAAI,CAAQ;IAY1B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,IAAI,KAAK,WAER;IAED,IAAI,mBAAmB,WAKtB;IAED;;OAEG;IACH,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,YAKT;WAEY,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE;WA8BhC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE;WAepC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE;WAQvC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;WAQzC,sBAAsB,CAAC,QAAQ,EAAE,MAAM;WAKvC,4BAA4B,CAAC,cAAc,EAAE,MAAM;WAKnD,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;;IAkB/E;;;OAGG;WACU,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE;IAmCnD;;OAEG;WACU,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK;WAyDhD,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE;;;;IAgB9C,YAAY;WAMC,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;WAuBlF,+BAA+B,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;WAuBhG,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;WAoD7H,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAM3F"}
1
+ {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,12 @@ class BalanceItem extends sql_1.QueryableModel {
92
92
  }
93
93
  return this.priceUnpaid <= 0;
94
94
  }
95
- static async deleteItems(items) {
95
+ /**
96
+ * Options.cancellationFeePercentage: 0-10000 (0-100%)
97
+ * By default 0% will be charged
98
+ * Will create a new cancellation fee if the cancellation fee percentage is not 0%
99
+ */
100
+ static async deleteItems(items, options) {
96
101
  // Find depending items
97
102
  const dependingItemIds = utility_1.Formatter.uniqueArray(items.filter(i => !!i.dependingBalanceItemId).map(i => i.dependingBalanceItemId)).filter(id => !items.some(item => item.id === id));
98
103
  if (dependingItemIds.length) {
@@ -100,21 +105,48 @@ class BalanceItem extends sql_1.QueryableModel {
100
105
  const dependingItems = await BalanceItem.getByIDs(...dependingItemIds);
101
106
  items = [...items, ...dependingItems];
102
107
  }
103
- // todo: in the future we could automatically delete payments that are not needed anymore and weren't paid yet -> to prevent leaving ghost payments
104
- // for now, an admin can manually cancel those payments
105
- let needsUpdate = false;
108
+ const deletedItems = [];
106
109
  // Set other items to zero (the balance item payments keep the real price)
107
110
  for (const item of items) {
108
111
  if (item.status !== structures_1.BalanceItemStatus.Due) {
109
112
  continue;
110
113
  }
111
- needsUpdate = true;
114
+ deletedItems.push(item);
112
115
  item.status = structures_1.BalanceItemStatus.Canceled;
113
116
  await item.save();
117
+ if (options && options.cancellationFeePercentage !== undefined && options.cancellationFeePercentage !== 0) {
118
+ if (options.cancellationFeePercentage < 0 || options.cancellationFeePercentage > 100 * 100) {
119
+ throw new Error('Invalid cancellation fee percentage. Range 0-10000 expected, received ' + options.cancellationFeePercentage);
120
+ }
121
+ // Refund the user
122
+ const cancellationFee = Math.round(item.price * options.cancellationFeePercentage / 10000);
123
+ if (cancellationFee > 0) {
124
+ // Create a new item
125
+ const cancellationItem = await item.createCancellationItem(cancellationFee);
126
+ deletedItems.push(cancellationItem);
127
+ }
128
+ }
114
129
  }
115
- if (needsUpdate) {
116
- await this.updateOutstanding(items);
130
+ if (deletedItems.length) {
131
+ await this.updateOutstanding(deletedItems);
117
132
  }
133
+ return deletedItems;
134
+ }
135
+ async createCancellationItem(fee) {
136
+ const item = new BalanceItem();
137
+ item.organizationId = this.organizationId;
138
+ item.memberId = this.memberId;
139
+ item.userId = this.userId;
140
+ item.payingOrganizationId = this.payingOrganizationId;
141
+ item.type = structures_1.BalanceItemType.CancellationFee;
142
+ item.relations = this.relations;
143
+ item.description = this.description;
144
+ item.amount = 1;
145
+ item.unitPrice = fee;
146
+ item.status = structures_1.BalanceItemStatus.Due;
147
+ item.dueAt = null;
148
+ await item.save();
149
+ return item;
118
150
  }
119
151
  static async reactivateItems(items) {
120
152
  let needsUpdate = false;
@@ -136,20 +168,20 @@ class BalanceItem extends sql_1.QueryableModel {
136
168
  const items = await BalanceItem.where({ orderId: { sign: 'IN', value: orderIds } });
137
169
  await this.reactivateItems(items);
138
170
  }
139
- static async deleteForDeletedOrders(orderIds) {
171
+ static async deleteForDeletedOrders(orderIds, options) {
140
172
  if (orderIds.length === 0) {
141
173
  return;
142
174
  }
143
175
  const items = await BalanceItem.where({ orderId: { sign: 'IN', value: orderIds } });
144
- await this.deleteItems(items);
176
+ return await this.deleteItems(items, options);
145
177
  }
146
- static async deleteForDeletedMember(memberId) {
178
+ static async deleteForDeletedMember(memberId, options) {
147
179
  const items = await BalanceItem.where({ memberId });
148
- await this.deleteItems(items);
180
+ return await this.deleteItems(items, options);
149
181
  }
150
- static async deleteForDeletedRegistration(registrationId) {
182
+ static async deleteForDeletedRegistration(registrationId, options) {
151
183
  const items = await BalanceItem.where({ registrationId });
152
- await this.deleteItems(items);
184
+ return await this.deleteItems(items, options);
153
185
  }
154
186
  static async getForRegistration(registrationId, organizationId) {
155
187
  let q = BalanceItem.select()
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.71.0",
3
+ "version": "2.73.0",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -29,5 +29,5 @@
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
32
- "gitHead": "8b35d36e694303905aa27cf9bff5539777d6ace1"
32
+ "gitHead": "fee6c6f01c19d15010807f2bac6a3ab5ee14019e"
33
33
  }
@@ -163,7 +163,12 @@ export class BalanceItem extends QueryableModel {
163
163
  return this.priceUnpaid <= 0;
164
164
  }
165
165
 
166
- static async deleteItems(items: BalanceItem[]) {
166
+ /**
167
+ * Options.cancellationFeePercentage: 0-10000 (0-100%)
168
+ * By default 0% will be charged
169
+ * Will create a new cancellation fee if the cancellation fee percentage is not 0%
170
+ */
171
+ static async deleteItems(items: BalanceItem[], options?: { cancellationFeePercentage?: number }) {
167
172
  // Find depending items
168
173
  const dependingItemIds = Formatter.uniqueArray(items.filter(i => !!i.dependingBalanceItemId).map(i => i.dependingBalanceItemId!)).filter(id => !items.some(item => item.id === id));
169
174
 
@@ -173,9 +178,7 @@ export class BalanceItem extends QueryableModel {
173
178
  items = [...items, ...dependingItems];
174
179
  }
175
180
 
176
- // todo: in the future we could automatically delete payments that are not needed anymore and weren't paid yet -> to prevent leaving ghost payments
177
- // for now, an admin can manually cancel those payments
178
- let needsUpdate = false;
181
+ const deletedItems: BalanceItem[] = [];
179
182
 
180
183
  // Set other items to zero (the balance item payments keep the real price)
181
184
  for (const item of items) {
@@ -183,14 +186,51 @@ export class BalanceItem extends QueryableModel {
183
186
  continue;
184
187
  }
185
188
 
186
- needsUpdate = true;
189
+ deletedItems.push(item);
187
190
  item.status = BalanceItemStatus.Canceled;
188
191
  await item.save();
192
+
193
+ if (options && options.cancellationFeePercentage !== undefined && options.cancellationFeePercentage !== 0) {
194
+ if (options.cancellationFeePercentage < 0 || options.cancellationFeePercentage > 100 * 100) {
195
+ throw new Error('Invalid cancellation fee percentage. Range 0-10000 expected, received ' + options.cancellationFeePercentage);
196
+ }
197
+
198
+ // Refund the user
199
+ const cancellationFee = Math.round(item.price * options.cancellationFeePercentage / 10000);
200
+ if (cancellationFee > 0) {
201
+ // Create a new item
202
+ const cancellationItem = await item.createCancellationItem(cancellationFee);
203
+ deletedItems.push(cancellationItem);
204
+ }
205
+ }
189
206
  }
190
207
 
191
- if (needsUpdate) {
192
- await this.updateOutstanding(items);
208
+ if (deletedItems.length) {
209
+ await this.updateOutstanding(deletedItems);
193
210
  }
211
+
212
+ return deletedItems;
213
+ }
214
+
215
+ async createCancellationItem(fee: number) {
216
+ const item = new BalanceItem();
217
+ item.organizationId = this.organizationId;
218
+ item.memberId = this.memberId;
219
+ item.userId = this.userId;
220
+ item.payingOrganizationId = this.payingOrganizationId;
221
+
222
+ item.type = BalanceItemType.CancellationFee;
223
+ item.relations = this.relations;
224
+ item.description = this.description;
225
+ item.amount = 1;
226
+ item.unitPrice = fee;
227
+
228
+ item.status = BalanceItemStatus.Due;
229
+ item.dueAt = null;
230
+
231
+ await item.save();
232
+
233
+ return item;
194
234
  }
195
235
 
196
236
  static async reactivateItems(items: BalanceItem[]) {
@@ -216,22 +256,22 @@ export class BalanceItem extends QueryableModel {
216
256
  await this.reactivateItems(items);
217
257
  }
218
258
 
219
- static async deleteForDeletedOrders(orderIds: string[]) {
259
+ static async deleteForDeletedOrders(orderIds: string[], options?: { cancellationFeePercentage?: number }) {
220
260
  if (orderIds.length === 0) {
221
261
  return;
222
262
  }
223
263
  const items = await BalanceItem.where({ orderId: { sign: 'IN', value: orderIds } });
224
- await this.deleteItems(items);
264
+ return await this.deleteItems(items, options);
225
265
  }
226
266
 
227
- static async deleteForDeletedMember(memberId: string) {
267
+ static async deleteForDeletedMember(memberId: string, options?: { cancellationFeePercentage?: number }) {
228
268
  const items = await BalanceItem.where({ memberId });
229
- await this.deleteItems(items);
269
+ return await this.deleteItems(items, options);
230
270
  }
231
271
 
232
- static async deleteForDeletedRegistration(registrationId: string) {
272
+ static async deleteForDeletedRegistration(registrationId: string, options?: { cancellationFeePercentage?: number }) {
233
273
  const items = await BalanceItem.where({ registrationId });
234
- await this.deleteItems(items);
274
+ return await this.deleteItems(items, options);
235
275
  }
236
276
 
237
277
  static async getForRegistration(registrationId: string, organizationId?: string) {