@stamhoofd/models 2.34.1 → 2.36.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.
- package/dist/src/migrations/1726054851-balance-item-price-pending.sql +2 -0
- package/dist/src/migrations/1726054852-cached-outstanding-balances.sql +13 -0
- package/dist/src/models/BalanceItem.d.ts +10 -1
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +77 -9
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
- package/dist/src/models/BalanceItemPayment.js +2 -6
- package/dist/src/models/BalanceItemPayment.js.map +1 -1
- package/dist/src/models/CachedOutstandingBalance.d.ts +35 -0
- package/dist/src/models/CachedOutstandingBalance.d.ts.map +1 -0
- package/dist/src/models/CachedOutstandingBalance.js +188 -0
- package/dist/src/models/CachedOutstandingBalance.js.map +1 -0
- package/dist/src/models/Member.d.ts +4 -0
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +8 -2
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +2 -1
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/index.d.ts +1 -0
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +1 -0
- package/dist/src/models/index.js.map +1 -1
- package/package.json +2 -2
- package/src/migrations/1726054851-balance-item-price-pending.sql +2 -0
- package/src/migrations/1726054852-cached-outstanding-balances.sql +13 -0
- package/src/models/BalanceItem.ts +95 -14
- package/src/models/BalanceItemPayment.ts +2 -9
- package/src/models/CachedOutstandingBalance.ts +239 -0
- package/src/models/Member.ts +9 -2
- package/src/models/Organization.ts +2 -2
- package/src/models/Registration.ts +2 -2
- package/src/models/index.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
CREATE TABLE `cached_outstanding_balances` (
|
|
2
|
+
`id` varchar(36) NOT NULL DEFAULT '',
|
|
3
|
+
`objectId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
4
|
+
`objectType` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
5
|
+
`organizationId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
|
|
6
|
+
`amount` int NOT NULL DEFAULT '0',
|
|
7
|
+
`amountPending` int NOT NULL DEFAULT '0',
|
|
8
|
+
`createdAt` datetime NOT NULL,
|
|
9
|
+
`updatedAt` datetime NOT NULL,
|
|
10
|
+
PRIMARY KEY (`id`),
|
|
11
|
+
UNIQUE KEY `objectId` (`organizationId`,`objectId`) USING BTREE,
|
|
12
|
+
CONSTRAINT `cached_outstanding_balances_ibfk_1` FOREIGN KEY (`organizationId`) REFERENCES `organizations` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
13
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
@@ -41,10 +41,15 @@ export declare class BalanceItem extends Model {
|
|
|
41
41
|
* Cached value, for optimizations
|
|
42
42
|
*/
|
|
43
43
|
pricePaid: number;
|
|
44
|
+
/**
|
|
45
|
+
* Cached value, for optimizations
|
|
46
|
+
*/
|
|
47
|
+
pricePending: number;
|
|
44
48
|
status: BalanceItemStatus;
|
|
45
49
|
createdAt: Date;
|
|
46
50
|
updatedAt: Date;
|
|
47
51
|
get price(): number;
|
|
52
|
+
get priceOpen(): number;
|
|
48
53
|
markUpdated(payment: Payment, organization: Organization): Promise<void>;
|
|
49
54
|
markPaid(payment: Payment, organization: Organization): Promise<void>;
|
|
50
55
|
undoPaid(payment: Payment, organization: Organization): Promise<void>;
|
|
@@ -62,11 +67,15 @@ export declare class BalanceItem extends Model {
|
|
|
62
67
|
balanceItemPayments: import("./BalanceItemPayment").BalanceItemPayment[];
|
|
63
68
|
items: BalanceItem[];
|
|
64
69
|
}>;
|
|
65
|
-
static updateOutstanding(items: BalanceItem[]
|
|
70
|
+
static updateOutstanding(items: BalanceItem[]): Promise<void>;
|
|
66
71
|
/**
|
|
67
72
|
* Update the outstanding balance of multiple members in one go (or all members)
|
|
68
73
|
*/
|
|
69
74
|
static updatePricePaid(balanceItemIds: string[] | 'all'): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Call this after updating the pricePaid
|
|
77
|
+
*/
|
|
78
|
+
static updatePricePending(balanceItemIds: string[] | 'all'): Promise<void>;
|
|
70
79
|
static loadPayments(items: BalanceItem[]): Promise<{
|
|
71
80
|
payments: Payment[];
|
|
72
81
|
balanceItemPayments: import("./BalanceItemPayment").BalanceItemPayment[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAgG,MAAM,uBAAuB,CAAC;AAKhP,OAAO,EAAE,YAAY,EAAE,OAAO,EAAW,MAAM,IAAI,CAAC;AACpD,OAAO,EAAO,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAgG,MAAM,uBAAuB,CAAC;AAKhP,OAAO,EAAE,YAAY,EAAE,OAAO,EAAW,MAAM,IAAI,CAAC;AACpD,OAAO,EAAO,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC,MAAM,CAAC,KAAK,SAAkB;IAO9B,EAAE,EAAG,MAAM,CAAC;IAKZ,cAAc,EAAE,MAAM,CAAA;IAKtB,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,kBAAwB;IAG5B,SAAS,EAAE,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAY;IAGxE,WAAW,SAAM;IAEjB;;OAEG;IAEH,MAAM,SAAI;IAEV;;OAEG;IAEH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,SAAS,SAAI;IAEb;;OAEG;IAEH,YAAY,SAAI;IAGhB,MAAM,oBAA4B;IAYlC,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,IAAI,KAAK,WAER;IAED,IAAI,SAAS,WAEZ;IAEK,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IAWxD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IAoDrD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IAWrD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IAgBvD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IAW7D,YAAY;WAIC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE;WA+BhC,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;;;;;WAQzC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE;IAoCnD;;OAEG;WACU,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK;IA6C7D;;OAEG;WACU,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK;WAyCnD,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE;;;;WAcjC,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;WAuBlF,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;WAkD3H,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOxF;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
|
|
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
|
|
|
9
9
|
const simple_encoding_1 = require("@simonbackx/simple-encoding");
|
|
10
10
|
const _1 = require("./");
|
|
11
11
|
const sql_1 = require("@stamhoofd/sql");
|
|
12
|
+
const CachedOutstandingBalance_1 = require("./CachedOutstandingBalance");
|
|
12
13
|
/**
|
|
13
14
|
* Keeps track of how much a member/user owes or needs to be reimbursed.
|
|
14
15
|
*/
|
|
@@ -50,12 +51,19 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
50
51
|
* Cached value, for optimizations
|
|
51
52
|
*/
|
|
52
53
|
pricePaid = 0;
|
|
54
|
+
/**
|
|
55
|
+
* Cached value, for optimizations
|
|
56
|
+
*/
|
|
57
|
+
pricePending = 0;
|
|
53
58
|
status = structures_1.BalanceItemStatus.Pending;
|
|
54
59
|
createdAt;
|
|
55
60
|
updatedAt;
|
|
56
61
|
get price() {
|
|
57
62
|
return this.unitPrice * this.amount;
|
|
58
63
|
}
|
|
64
|
+
get priceOpen() {
|
|
65
|
+
return this.price - this.pricePaid - this.pricePending;
|
|
66
|
+
}
|
|
59
67
|
async markUpdated(payment, organization) {
|
|
60
68
|
// For orders: mark order as changed (so they are refetched in front ends)
|
|
61
69
|
if (this.orderId) {
|
|
@@ -91,8 +99,6 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
91
99
|
await group.save();
|
|
92
100
|
}
|
|
93
101
|
}
|
|
94
|
-
// 2. Update registration cached prices
|
|
95
|
-
// TODO
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
// If order
|
|
@@ -147,7 +153,7 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
147
153
|
}
|
|
148
154
|
}
|
|
149
155
|
updateStatus() {
|
|
150
|
-
this.status = this.pricePaid >= this.price ? structures_1.BalanceItemStatus.Paid : (this.pricePaid
|
|
156
|
+
this.status = this.pricePaid !== 0 && this.pricePaid >= this.price ? structures_1.BalanceItemStatus.Paid : (this.pricePaid !== 0 ? structures_1.BalanceItemStatus.Pending : (this.status === structures_1.BalanceItemStatus.Hidden ? structures_1.BalanceItemStatus.Hidden : structures_1.BalanceItemStatus.Pending));
|
|
151
157
|
}
|
|
152
158
|
static async deleteItems(items) {
|
|
153
159
|
const { balanceItemPayments } = await BalanceItem.loadPayments(items);
|
|
@@ -217,15 +223,29 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
217
223
|
...(await this.loadPayments(items))
|
|
218
224
|
};
|
|
219
225
|
}
|
|
220
|
-
static async updateOutstanding(items
|
|
221
|
-
|
|
226
|
+
static async updateOutstanding(items) {
|
|
227
|
+
console.log("Update outstanding balance for", items.length, "items");
|
|
222
228
|
await BalanceItem.updatePricePaid(items.map(i => i.id));
|
|
229
|
+
await BalanceItem.updatePricePending(items.map(i => i.id));
|
|
230
|
+
// Deprecated: the member balances have moved to CachedOutstandingBalance
|
|
223
231
|
// Update outstanding amount of related members and registrations
|
|
224
232
|
const memberIds = utility_1.Formatter.uniqueArray(items.map(p => p.memberId).filter(id => id !== null));
|
|
233
|
+
const Member = (await Promise.resolve().then(() => tslib_1.__importStar(require('./Member')))).Member;
|
|
225
234
|
await Member.updateOutstandingBalance(memberIds);
|
|
226
235
|
const { Registration } = await Promise.resolve().then(() => tslib_1.__importStar(require('./Registration')));
|
|
227
|
-
const
|
|
228
|
-
|
|
236
|
+
const organizationIds = utility_1.Formatter.uniqueArray(items.map(p => p.organizationId));
|
|
237
|
+
for (const organizationId of organizationIds) {
|
|
238
|
+
const filteredItems = items.filter(i => i.organizationId === organizationId);
|
|
239
|
+
const memberIds = utility_1.Formatter.uniqueArray(filteredItems.map(p => p.memberId).filter(id => id !== null));
|
|
240
|
+
await CachedOutstandingBalance_1.CachedOutstandingBalance.updateForMembers(organizationId, memberIds);
|
|
241
|
+
const userIds = utility_1.Formatter.uniqueArray(filteredItems.filter(p => p.memberId === null && p.userId !== null).map(p => p.userId));
|
|
242
|
+
await CachedOutstandingBalance_1.CachedOutstandingBalance.updateForUsers(organizationId, userIds);
|
|
243
|
+
const organizationIds = utility_1.Formatter.uniqueArray(filteredItems.map(p => p.payingOrganizationId).filter(id => id !== null));
|
|
244
|
+
await CachedOutstandingBalance_1.CachedOutstandingBalance.updateForOrganizations(organizationId, organizationIds);
|
|
245
|
+
// Deprecated: we'll need to move the outstanding balance of registrations to CachedOutstandingBalance
|
|
246
|
+
const registrationIds = utility_1.Formatter.uniqueArray(filteredItems.map(p => p.registrationId).filter(id => id !== null));
|
|
247
|
+
await Registration.updateOutstandingBalance(registrationIds, organizationId);
|
|
248
|
+
}
|
|
229
249
|
}
|
|
230
250
|
/**
|
|
231
251
|
* Update the outstanding balance of multiple members in one go (or all members)
|
|
@@ -243,6 +263,8 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
243
263
|
secondWhere = `WHERE balance_items.id IN (?)`;
|
|
244
264
|
params.push(balanceItemIds);
|
|
245
265
|
}
|
|
266
|
+
// Note: we'll never mark a balance item as 'paid' via the database -> because we need to rigger the markPaid function manually, which will call the appropriate functions
|
|
267
|
+
// this method will set the balance item to paid once, and only call the handlers once
|
|
246
268
|
const query = `
|
|
247
269
|
UPDATE
|
|
248
270
|
balance_items
|
|
@@ -258,7 +280,50 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
258
280
|
GROUP BY
|
|
259
281
|
balanceItemId
|
|
260
282
|
) i ON i.balanceItemId = balance_items.id
|
|
261
|
-
SET balance_items.pricePaid = coalesce(i.price, 0)
|
|
283
|
+
SET balance_items.pricePaid = coalesce(i.price, 0), balance_items.status = (CASE
|
|
284
|
+
WHEN balance_items.status = '${structures_1.BalanceItemStatus.Paid}' AND balance_items.pricePaid != 0 AND balance_items.pricePaid >= (balance_items.unitPrice * balance_items.amount) THEN '${structures_1.BalanceItemStatus.Paid}'
|
|
285
|
+
WHEN balance_items.pricePaid != 0 THEN '${structures_1.BalanceItemStatus.Pending}'
|
|
286
|
+
WHEN balance_items.status = '${structures_1.BalanceItemStatus.Hidden}' THEN '${structures_1.BalanceItemStatus.Hidden}'
|
|
287
|
+
ELSE '${structures_1.BalanceItemStatus.Pending}'
|
|
288
|
+
END)
|
|
289
|
+
${secondWhere}`;
|
|
290
|
+
await simple_database_1.Database.update(query, params);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Call this after updating the pricePaid
|
|
294
|
+
*/
|
|
295
|
+
static async updatePricePending(balanceItemIds) {
|
|
296
|
+
if (balanceItemIds !== 'all' && balanceItemIds.length == 0) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
const params = [];
|
|
300
|
+
let firstWhere = '';
|
|
301
|
+
let secondWhere = '';
|
|
302
|
+
if (balanceItemIds !== 'all') {
|
|
303
|
+
firstWhere = ` AND balanceItemId IN (?)`;
|
|
304
|
+
params.push(balanceItemIds);
|
|
305
|
+
secondWhere = `WHERE balance_items.id IN (?)`;
|
|
306
|
+
params.push(balanceItemIds);
|
|
307
|
+
}
|
|
308
|
+
const query = `
|
|
309
|
+
UPDATE
|
|
310
|
+
balance_items
|
|
311
|
+
LEFT JOIN (
|
|
312
|
+
SELECT
|
|
313
|
+
balanceItemId,
|
|
314
|
+
sum(balance_item_payments.price) AS price
|
|
315
|
+
FROM
|
|
316
|
+
balance_item_payments
|
|
317
|
+
LEFT JOIN payments ON payments.id = balance_item_payments.paymentId
|
|
318
|
+
WHERE
|
|
319
|
+
payments.status != 'Succeeded' AND payments.status != 'Failed'${firstWhere}
|
|
320
|
+
GROUP BY
|
|
321
|
+
balanceItemId
|
|
322
|
+
) i ON i.balanceItemId = balance_items.id
|
|
323
|
+
SET balance_items.pricePending = LEAST(
|
|
324
|
+
balance_items.unitPrice * balance_items.amount - balance_items.pricePaid,
|
|
325
|
+
coalesce(i.price, 0)
|
|
326
|
+
)
|
|
262
327
|
${secondWhere}`;
|
|
263
328
|
await simple_database_1.Database.update(query, params);
|
|
264
329
|
}
|
|
@@ -337,7 +402,7 @@ class BalanceItem extends simple_database_1.Model {
|
|
|
337
402
|
static async balanceItemsForOrganization(organizationId) {
|
|
338
403
|
return await BalanceItem.select()
|
|
339
404
|
.where('payingOrganizationId', organizationId)
|
|
340
|
-
.
|
|
405
|
+
.whereNot('status', structures_1.BalanceItemStatus.Hidden)
|
|
341
406
|
.fetch();
|
|
342
407
|
}
|
|
343
408
|
/**
|
|
@@ -402,6 +467,9 @@ tslib_1.__decorate([
|
|
|
402
467
|
tslib_1.__decorate([
|
|
403
468
|
(0, simple_database_1.column)({ type: "integer" })
|
|
404
469
|
], BalanceItem.prototype, "pricePaid", void 0);
|
|
470
|
+
tslib_1.__decorate([
|
|
471
|
+
(0, simple_database_1.column)({ type: "integer" })
|
|
472
|
+
], BalanceItem.prototype, "pricePending", void 0);
|
|
405
473
|
tslib_1.__decorate([
|
|
406
474
|
(0, simple_database_1.column)({ type: "string" })
|
|
407
475
|
], BalanceItem.prototype, "status", void 0);
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceItemPayment.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItemPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAI/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAExD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,MAAM,CAAC,KAAK,SAA0B;IAOtC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAA;IAGtB,SAAS,EAAE,MAAM,CAAC;IAGlB,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IAEH,KAAK,SAAI;IAYT,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,MAAM,CAAC,WAAW,gDAAoD;IACtE,MAAM,CAAC,OAAO,wCAA4C;IAEpD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"BalanceItemPayment.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItemPayment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAI/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAExD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,MAAM,CAAC,KAAK,SAA0B;IAOtC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAA;IAGtB,SAAS,EAAE,MAAM,CAAC;IAGlB,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IAEH,KAAK,SAAI;IAYT,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAEf,MAAM,CAAC,WAAW,gDAAoD;IACtE,MAAM,CAAC,OAAO,wCAA4C;IAEpD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY;IAkB/J;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY;IAIzJ,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY;IAK3J,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY;CAKpK;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,MAAM,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC"}
|
|
@@ -25,7 +25,7 @@ class BalanceItemPayment extends simple_database_1.Model {
|
|
|
25
25
|
static balanceItem = new simple_database_1.ManyToOneRelation(_1.BalanceItem, "balanceItem");
|
|
26
26
|
static payment = new simple_database_1.ManyToOneRelation(_1.Payment, "payment");
|
|
27
27
|
async markPaid(organization) {
|
|
28
|
-
// Update cached amountPaid of the balance item
|
|
28
|
+
// Update cached amountPaid of the balance item (this will get overwritten later, but we need it to calculate the status)
|
|
29
29
|
this.balanceItem.pricePaid += this.price;
|
|
30
30
|
// Update status
|
|
31
31
|
const old = this.balanceItem.status;
|
|
@@ -33,6 +33,7 @@ class BalanceItemPayment extends simple_database_1.Model {
|
|
|
33
33
|
await this.balanceItem.save();
|
|
34
34
|
// Do logic of balance item
|
|
35
35
|
if (this.balanceItem.status === structures_1.BalanceItemStatus.Paid && old !== structures_1.BalanceItemStatus.Paid) {
|
|
36
|
+
// Only call markPaid once (if it wasn't (partially) paid before)
|
|
36
37
|
await this.balanceItem.markPaid(this.payment, organization);
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
@@ -43,11 +44,6 @@ class BalanceItemPayment extends simple_database_1.Model {
|
|
|
43
44
|
* Call this once a earlier succeeded payment is no longer succeeded
|
|
44
45
|
*/
|
|
45
46
|
async undoPaid(organization) {
|
|
46
|
-
// Update cached amountPaid of the balance item
|
|
47
|
-
this.balanceItem.pricePaid -= this.price;
|
|
48
|
-
// Update status
|
|
49
|
-
this.balanceItem.status = this.balanceItem.pricePaid >= this.balanceItem.price ? structures_1.BalanceItemStatus.Paid : structures_1.BalanceItemStatus.Pending;
|
|
50
|
-
await this.balanceItem.save();
|
|
51
47
|
await this.balanceItem.undoPaid(this.payment, organization);
|
|
52
48
|
}
|
|
53
49
|
async markFailed(organization) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BalanceItemPayment.js","sourceRoot":"","sources":["../../../src/models/BalanceItemPayment.ts"],"names":[],"mappings":";;;;AAAA,iEAA+E;AAC/E,sDAA0D;AAC1D,+BAAoC;AAEpC,yBAAwD;AAExD;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,uBAAK;IACzC,MAAM,CAAC,KAAK,GAAG,uBAAuB,CAAA;IAOtC,EAAE,CAAU;IAGZ,cAAc,CAAQ;IAGtB,SAAS,CAAS;IAGlB,aAAa,CAAS;IAEtB;;OAEG;IAEH,KAAK,GAAG,CAAC,CAAA;IAYT,SAAS,CAAM;IAUf,SAAS,CAAM;IAEf,MAAM,CAAC,WAAW,GAAG,IAAI,mCAAiB,CAAC,cAAW,EAAE,aAAa,CAAC,CAAA;IACtE,MAAM,CAAC,OAAO,GAAG,IAAI,mCAAiB,CAAC,UAAO,EAAE,SAAS,CAAC,CAAA;IAE1D,KAAK,CAAC,QAAQ,CAAuH,YAA0B;QAC3J
|
|
1
|
+
{"version":3,"file":"BalanceItemPayment.js","sourceRoot":"","sources":["../../../src/models/BalanceItemPayment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Model } from '@simonbackx/simple-database';
|
|
2
|
+
import { SQLSelect } from '@stamhoofd/sql';
|
|
3
|
+
export type CachedOutstandingBalanceType = 'organization' | 'member' | 'user';
|
|
4
|
+
/**
|
|
5
|
+
* Keeps track of how much a member/user owes or needs to be reimbursed.
|
|
6
|
+
*/
|
|
7
|
+
export declare class CachedOutstandingBalance extends Model {
|
|
8
|
+
static table: string;
|
|
9
|
+
id: string;
|
|
10
|
+
organizationId: string;
|
|
11
|
+
objectId: string;
|
|
12
|
+
/**
|
|
13
|
+
* Defines which field to select
|
|
14
|
+
* organization: payingOrganizationId
|
|
15
|
+
* member: member id
|
|
16
|
+
* user: all balance items with that user id, but without a member id
|
|
17
|
+
*/
|
|
18
|
+
objectType: CachedOutstandingBalanceType;
|
|
19
|
+
amount: number;
|
|
20
|
+
amountPending: number;
|
|
21
|
+
createdAt: Date;
|
|
22
|
+
updatedAt: Date;
|
|
23
|
+
static getForObjects(objectIds: string[], limitOrganizationId?: string | null): Promise<CachedOutstandingBalance[]>;
|
|
24
|
+
static updateForObjects(organizationId: string, objectIds: string[], objectType: CachedOutstandingBalanceType): Promise<void>;
|
|
25
|
+
private static fetchForObjects;
|
|
26
|
+
private static setForResults;
|
|
27
|
+
static updateForOrganizations(organizationId: string, organizationIds: string[]): Promise<void>;
|
|
28
|
+
static updateForMembers(organizationId: string, memberIds: string[]): Promise<void>;
|
|
29
|
+
static updateForUsers(organizationId: string, userIds: string[]): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Experimental: needs to move to library
|
|
32
|
+
*/
|
|
33
|
+
static select(): SQLSelect<CachedOutstandingBalance>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CachedOutstandingBalance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedOutstandingBalance.d.ts","sourceRoot":"","sources":["../../../src/models/CachedOutstandingBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAsE,SAAS,EAAiC,MAAM,gBAAgB,CAAC;AAM9I,MAAM,MAAM,4BAA4B,GAAG,cAAc,GAAC,QAAQ,GAAC,MAAM,CAAA;AAEzE;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAC/C,MAAM,CAAC,KAAK,SAAgC;IAO5C,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAA;IAGtB,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;;;OAKG;IAEH,UAAU,EAAE,4BAA4B,CAAA;IAGxC,MAAM,SAAI;IAGV,aAAa,SAAI;IAYjB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;WAEF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAC,IAAI,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;WAW1G,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,4BAA4B;mBAc9F,eAAe;mBAsEf,aAAa;WAqCrB,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE;WAQxE,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;WAQ5D,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAQrE;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachedOutstandingBalance = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const simple_database_1 = require("@simonbackx/simple-database");
|
|
6
|
+
const sql_1 = require("@stamhoofd/sql");
|
|
7
|
+
const structures_1 = require("@stamhoofd/structures");
|
|
8
|
+
const uuid_1 = require("uuid");
|
|
9
|
+
const BalanceItem_1 = require("./BalanceItem");
|
|
10
|
+
/**
|
|
11
|
+
* Keeps track of how much a member/user owes or needs to be reimbursed.
|
|
12
|
+
*/
|
|
13
|
+
class CachedOutstandingBalance extends simple_database_1.Model {
|
|
14
|
+
static table = "cached_outstanding_balances";
|
|
15
|
+
id;
|
|
16
|
+
organizationId;
|
|
17
|
+
objectId;
|
|
18
|
+
/**
|
|
19
|
+
* Defines which field to select
|
|
20
|
+
* organization: payingOrganizationId
|
|
21
|
+
* member: member id
|
|
22
|
+
* user: all balance items with that user id, but without a member id
|
|
23
|
+
*/
|
|
24
|
+
objectType;
|
|
25
|
+
amount = 0;
|
|
26
|
+
amountPending = 0;
|
|
27
|
+
createdAt;
|
|
28
|
+
updatedAt;
|
|
29
|
+
static async getForObjects(objectIds, limitOrganizationId) {
|
|
30
|
+
const query = this.select()
|
|
31
|
+
.where("objectId", objectIds);
|
|
32
|
+
if (limitOrganizationId) {
|
|
33
|
+
query.where("organizationId", limitOrganizationId);
|
|
34
|
+
}
|
|
35
|
+
return await query.fetch();
|
|
36
|
+
}
|
|
37
|
+
static async updateForObjects(organizationId, objectIds, objectType) {
|
|
38
|
+
switch (objectType) {
|
|
39
|
+
case 'organization':
|
|
40
|
+
await this.updateForOrganizations(organizationId, objectIds);
|
|
41
|
+
break;
|
|
42
|
+
case 'member':
|
|
43
|
+
await this.updateForMembers(organizationId, objectIds);
|
|
44
|
+
break;
|
|
45
|
+
case 'user':
|
|
46
|
+
await this.updateForUsers(organizationId, objectIds);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
static async fetchForObjects(organizationId, objectIds, columnName, customWhere) {
|
|
51
|
+
const query = sql_1.SQL.select(sql_1.SQL.column(columnName), new sql_1.SQLSelectAs(new sql_1.SQLCalculation(new sql_1.SQLSum(new sql_1.SQLCalculation(sql_1.SQL.column('unitPrice'), new sql_1.SQLMultiplicationSign(), sql_1.SQL.column('amount'))), new sql_1.SQLMinusSign(), new sql_1.SQLSum(sql_1.SQL.column('pricePaid'))), new sql_1.SQLAlias('data__amount')), new sql_1.SQLSelectAs(new sql_1.SQLSum(sql_1.SQL.column('pricePending')), new sql_1.SQLAlias('data__amountPending')))
|
|
52
|
+
.from(BalanceItem_1.BalanceItem.table)
|
|
53
|
+
.where("organizationId", organizationId)
|
|
54
|
+
.where(columnName, objectIds)
|
|
55
|
+
.whereNot("status", structures_1.BalanceItemStatus.Hidden)
|
|
56
|
+
.groupBy(sql_1.SQL.column(columnName));
|
|
57
|
+
if (customWhere) {
|
|
58
|
+
query.where(customWhere);
|
|
59
|
+
}
|
|
60
|
+
const result = await query.fetch();
|
|
61
|
+
const results = [];
|
|
62
|
+
for (const row of result) {
|
|
63
|
+
if (!row["data"]) {
|
|
64
|
+
throw new Error("Invalid data namespace");
|
|
65
|
+
}
|
|
66
|
+
if (!row[BalanceItem_1.BalanceItem.table]) {
|
|
67
|
+
throw new Error("Invalid " + BalanceItem_1.BalanceItem.table + " namespace");
|
|
68
|
+
}
|
|
69
|
+
const objectId = row[BalanceItem_1.BalanceItem.table][columnName];
|
|
70
|
+
const amount = row["data"]["amount"];
|
|
71
|
+
const amountPending = row["data"]["amountPending"];
|
|
72
|
+
if (typeof objectId !== "string") {
|
|
73
|
+
throw new Error("Invalid objectId");
|
|
74
|
+
}
|
|
75
|
+
if (typeof amount !== "number") {
|
|
76
|
+
throw new Error("Invalid amount");
|
|
77
|
+
}
|
|
78
|
+
if (typeof amountPending !== "number") {
|
|
79
|
+
throw new Error("Invalid amountPending");
|
|
80
|
+
}
|
|
81
|
+
results.push([objectId, { amount, amountPending }]);
|
|
82
|
+
}
|
|
83
|
+
return results;
|
|
84
|
+
}
|
|
85
|
+
static async setForResults(organizationId, result, objectType) {
|
|
86
|
+
if (result.length === 0) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const query = sql_1.SQL.insert(this.table)
|
|
90
|
+
.columns("id", "organizationId", "objectId", "objectType", "amount", "amountPending", "createdAt", "updatedAt")
|
|
91
|
+
.values(...result.map(([objectId, { amount, amountPending }]) => {
|
|
92
|
+
return [
|
|
93
|
+
(0, uuid_1.v4)(),
|
|
94
|
+
organizationId,
|
|
95
|
+
objectId,
|
|
96
|
+
objectType,
|
|
97
|
+
amount,
|
|
98
|
+
amountPending,
|
|
99
|
+
new Date(),
|
|
100
|
+
new Date()
|
|
101
|
+
];
|
|
102
|
+
}))
|
|
103
|
+
.as('v')
|
|
104
|
+
.onDuplicateKeyUpdate(sql_1.SQL.assignment("amount", sql_1.SQL.column("v", "amount")), sql_1.SQL.assignment("amountPending", sql_1.SQL.column("v", "amountPending")), sql_1.SQL.assignment("updatedAt", sql_1.SQL.column("v", "updatedAt")));
|
|
105
|
+
await query.insert();
|
|
106
|
+
}
|
|
107
|
+
static async updateForOrganizations(organizationId, organizationIds) {
|
|
108
|
+
if (organizationIds.length === 0) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const results = await this.fetchForObjects(organizationId, organizationIds, "payingOrganizationId");
|
|
112
|
+
await this.setForResults(organizationId, results, "organization");
|
|
113
|
+
}
|
|
114
|
+
static async updateForMembers(organizationId, memberIds) {
|
|
115
|
+
if (memberIds.length === 0) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const results = await this.fetchForObjects(organizationId, memberIds, "memberId");
|
|
119
|
+
await this.setForResults(organizationId, results, "member");
|
|
120
|
+
}
|
|
121
|
+
static async updateForUsers(organizationId, userIds) {
|
|
122
|
+
if (userIds.length === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const results = await this.fetchForObjects(organizationId, userIds, "userId", sql_1.SQL.where("memberId", null));
|
|
126
|
+
await this.setForResults(organizationId, results, "user");
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Experimental: needs to move to library
|
|
130
|
+
*/
|
|
131
|
+
static select() {
|
|
132
|
+
const transformer = (row) => {
|
|
133
|
+
const d = this.fromRow(row[this.table]);
|
|
134
|
+
if (!d) {
|
|
135
|
+
throw new Error("EmailTemplate not found");
|
|
136
|
+
}
|
|
137
|
+
return d;
|
|
138
|
+
};
|
|
139
|
+
const select = new sql_1.SQLSelect(transformer, sql_1.SQL.wildcard());
|
|
140
|
+
return select.from(sql_1.SQL.table(this.table));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.CachedOutstandingBalance = CachedOutstandingBalance;
|
|
144
|
+
tslib_1.__decorate([
|
|
145
|
+
(0, simple_database_1.column)({
|
|
146
|
+
primary: true, type: "string", beforeSave(value) {
|
|
147
|
+
return value ?? (0, uuid_1.v4)();
|
|
148
|
+
}
|
|
149
|
+
})
|
|
150
|
+
], CachedOutstandingBalance.prototype, "id", void 0);
|
|
151
|
+
tslib_1.__decorate([
|
|
152
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
153
|
+
], CachedOutstandingBalance.prototype, "organizationId", void 0);
|
|
154
|
+
tslib_1.__decorate([
|
|
155
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
156
|
+
], CachedOutstandingBalance.prototype, "objectId", void 0);
|
|
157
|
+
tslib_1.__decorate([
|
|
158
|
+
(0, simple_database_1.column)({ type: "string" })
|
|
159
|
+
], CachedOutstandingBalance.prototype, "objectType", void 0);
|
|
160
|
+
tslib_1.__decorate([
|
|
161
|
+
(0, simple_database_1.column)({ type: "integer" })
|
|
162
|
+
], CachedOutstandingBalance.prototype, "amount", void 0);
|
|
163
|
+
tslib_1.__decorate([
|
|
164
|
+
(0, simple_database_1.column)({ type: "integer" })
|
|
165
|
+
], CachedOutstandingBalance.prototype, "amountPending", void 0);
|
|
166
|
+
tslib_1.__decorate([
|
|
167
|
+
(0, simple_database_1.column)({
|
|
168
|
+
type: "datetime", beforeSave(old) {
|
|
169
|
+
if (old !== undefined) {
|
|
170
|
+
return old;
|
|
171
|
+
}
|
|
172
|
+
const date = new Date();
|
|
173
|
+
date.setMilliseconds(0);
|
|
174
|
+
return date;
|
|
175
|
+
}
|
|
176
|
+
})
|
|
177
|
+
], CachedOutstandingBalance.prototype, "createdAt", void 0);
|
|
178
|
+
tslib_1.__decorate([
|
|
179
|
+
(0, simple_database_1.column)({
|
|
180
|
+
type: "datetime", beforeSave() {
|
|
181
|
+
const date = new Date();
|
|
182
|
+
date.setMilliseconds(0);
|
|
183
|
+
return date;
|
|
184
|
+
},
|
|
185
|
+
skipUpdate: true
|
|
186
|
+
})
|
|
187
|
+
], CachedOutstandingBalance.prototype, "updatedAt", void 0);
|
|
188
|
+
//# sourceMappingURL=CachedOutstandingBalance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedOutstandingBalance.js","sourceRoot":"","sources":["../../../src/models/CachedOutstandingBalance.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,10 @@ export declare class Member extends Model {
|
|
|
58
58
|
/**
|
|
59
59
|
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
60
60
|
*/
|
|
61
|
+
static getMemberIdsWithRegistrationForUser(user: User): Promise<string[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
64
|
+
*/
|
|
61
65
|
static getMembersWithRegistrationForUser(user: User): Promise<MemberWithRegistrations[]>;
|
|
62
66
|
getStructureWithRegistrations(this: MemberWithRegistrations, forOrganization?: null | boolean): MemberWithRegistrationsBlob;
|
|
63
67
|
static getRegistrationWithMemberStructure(registration: RegistrationWithMember & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhI,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,sBAAsB,IAAI,4BAA4B,EAAc,MAAM,uBAAuB,CAAC;AAMvJ,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAA+D,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AACtI,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG;IAC3C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,CAAC,YAAY,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,qBAAa,MAAO,SAAQ,KAAK;IAC7B,MAAM,CAAC,KAAK,SAAY;IAQxB,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IAQnC,SAAS,EAAE,MAAM,CAAA;IAMjB,QAAQ,EAAE,MAAM,CAAA;IAShB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IASvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAG3B,OAAO,EAAE,aAAa,CAAA;IAEtB;;OAEG;IAEH,kBAAkB,SAAI;IAYtB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,MAAM,CAAC,aAAa,2DAA2E;IAG/F,MAAM,CAAC,KAAK,uDAAiD;IAE7D;;OAEG;WACU,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAItF;;OAEG;WACU,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK;IAmCjE;;OAEG;WACU,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoC9F;;OAEG;WACU,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiClG;;MAEE;WACU,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAwCtG;;MAEE;WACU,YAAY,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgE/E;;OAEG;WACU,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAmBtF;;MAEE;WACU,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Member.d.ts","sourceRoot":"","sources":["../../../src/models/Member.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,kBAAkB,EAAqB,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhI,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,sBAAsB,IAAI,4BAA4B,EAAc,MAAM,uBAAuB,CAAC;AAMvJ,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAA+D,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AACtI,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG;IAC3C,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,CAAC,YAAY,GAAG;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,CAAC,EAAE,CAAA;CACnD,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,qBAAa,MAAO,SAAQ,KAAK;IAC7B,MAAM,CAAC,KAAK,SAAY;IAQxB,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAC,IAAI,CAAQ;IAQnC,SAAS,EAAE,MAAM,CAAA;IAMjB,QAAQ,EAAE,MAAM,CAAA;IAShB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IASvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAG3B,OAAO,EAAE,aAAa,CAAA;IAEtB;;OAEG;IAEH,kBAAkB,SAAI;IAYtB,SAAS,EAAE,IAAI,CAAA;IAUf,SAAS,EAAE,IAAI,CAAA;IAGf,MAAM,CAAC,aAAa,2DAA2E;IAG/F,MAAM,CAAC,KAAK,uDAAiD;IAE7D;;OAEG;WACU,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAItF;;OAEG;WACU,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK;IAmCjE;;OAEG;WACU,+BAA+B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoC9F;;OAEG;WACU,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAiClG;;MAEE;WACU,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAwCtG;;MAEE;WACU,YAAY,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAgE/E;;OAEG;WACU,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAmBtF;;MAEE;WACW,mCAAmC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAoB/E;;MAEE;WACU,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAI9F,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,EAAE,eAAe,GAAE,IAAI,GAAG,OAAc;IASnG,MAAM,CAAC,kCAAkC,CAAC,YAAY,EAAE,sBAAsB,GAAG;QAAC,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAC,GAAG,4BAA4B;IAYhJ,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM;WA6BhC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,UAAQ;YA8KhD,kBAAkB;IA4B1B,kBAAkB,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqFzE,iBAAiB;IAIjB,yCAAyC;CA6BlD"}
|
|
@@ -234,7 +234,7 @@ class Member extends simple_database_1.Model {
|
|
|
234
234
|
/**
|
|
235
235
|
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
236
236
|
*/
|
|
237
|
-
static async
|
|
237
|
+
static async getMemberIdsWithRegistrationForUser(user) {
|
|
238
238
|
const query = sql_1.SQL
|
|
239
239
|
.select('id')
|
|
240
240
|
.from(Member.table)
|
|
@@ -242,7 +242,13 @@ class Member extends simple_database_1.Model {
|
|
|
242
242
|
.leftJoin('_members_users')
|
|
243
243
|
.where(sql_1.SQL.column('_members_users', 'membersId'), sql_1.SQL.column(Member.table, 'id'))).where(sql_1.SQL.column('_members_users', 'usersId'), user.id);
|
|
244
244
|
const data = await query.fetch();
|
|
245
|
-
return
|
|
245
|
+
return data.map((r) => r.members.id);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Fetch all members with their corresponding (valid) registrations or waiting lists and payments
|
|
249
|
+
*/
|
|
250
|
+
static async getMembersWithRegistrationForUser(user) {
|
|
251
|
+
return this.getBlobByIds(...(await this.getMemberIdsWithRegistrationForUser(user)));
|
|
246
252
|
}
|
|
247
253
|
getStructureWithRegistrations(forOrganization = null) {
|
|
248
254
|
return structures_1.MemberWithRegistrationsBlob.create({
|