@stamhoofd/models 2.63.0 → 2.64.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/1605262045-import-postcodes.d.ts +1 -1
- package/dist/src/migrations/1605262045-import-postcodes.js +1 -4
- package/dist/src/migrations/1734429094-registration-trial-until.sql +3 -0
- package/dist/src/migrations/1734429095-membership-trial-until.sql +2 -0
- package/dist/src/migrations/1734535120-registration-period-previous-period-id.sql +3 -0
- package/dist/src/migrations/1734535121-platform-previous-period-id.sql +3 -0
- package/dist/src/migrations/1734626607-cached-balance-amount-open.sql +2 -0
- package/dist/src/migrations/1734698906-cached-balance-amount-paid.sql +2 -0
- package/dist/src/models/BalanceItem.d.ts +2 -2
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +13 -11
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/BalanceItemPayment.d.ts +5 -0
- package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
- package/dist/src/models/BalanceItemPayment.js +15 -0
- package/dist/src/models/BalanceItemPayment.js.map +1 -1
- package/dist/src/models/CachedBalance.d.ts +6 -2
- package/dist/src/models/CachedBalance.d.ts.map +1 -1
- package/dist/src/models/CachedBalance.js +64 -20
- package/dist/src/models/CachedBalance.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +36 -9
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/Member.d.ts +3 -7
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +2 -41
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +10 -1
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
- package/dist/src/models/MemberPlatformMembership.js +79 -5
- package/dist/src/models/MemberPlatformMembership.js.map +1 -1
- package/dist/src/models/MergedMember.d.ts +1 -1
- package/dist/src/models/MergedMember.js +1 -1
- package/dist/src/models/Platform.d.ts +2 -0
- package/dist/src/models/Platform.d.ts.map +1 -1
- package/dist/src/models/Platform.js +9 -1
- package/dist/src/models/Platform.js.map +1 -1
- package/dist/src/models/Registration.d.ts +17 -5
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +23 -34
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/RegistrationPeriod.d.ts +7 -0
- package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/RegistrationPeriod.js +36 -0
- package/dist/src/models/RegistrationPeriod.js.map +1 -1
- package/package.json +2 -2
- package/src/migrations/1605262045-import-postcodes.ts +2 -4
- package/src/migrations/1734429094-registration-trial-until.sql +3 -0
- package/src/migrations/1734429095-membership-trial-until.sql +2 -0
- package/src/migrations/1734535120-registration-period-previous-period-id.sql +3 -0
- package/src/migrations/1734535121-platform-previous-period-id.sql +3 -0
- package/src/migrations/1734626607-cached-balance-amount-open.sql +2 -0
- package/src/migrations/1734698906-cached-balance-amount-paid.sql +2 -0
- package/src/models/BalanceItem.ts +18 -17
- package/src/models/BalanceItemPayment.ts +20 -1
- package/src/models/CachedBalance.ts +88 -23
- package/src/models/DocumentTemplate.ts +39 -9
- package/src/models/Member.ts +2 -48
- package/src/models/MemberPlatformMembership.ts +92 -5
- package/src/models/MergedMember.ts +1 -1
- package/src/models/Platform.ts +9 -1
- package/src/models/Registration.ts +21 -40
- package/src/models/RegistrationPeriod.ts +47 -2
|
@@ -12,6 +12,7 @@ class Platform extends simple_database_1.Model {
|
|
|
12
12
|
id;
|
|
13
13
|
config = structures_1.PlatformConfig.create({});
|
|
14
14
|
periodId;
|
|
15
|
+
previousPeriodId = null;
|
|
15
16
|
membershipOrganizationId = null;
|
|
16
17
|
privateConfig = structures_1.PlatformPrivateConfig.create({});
|
|
17
18
|
static sharedStruct = null;
|
|
@@ -22,6 +23,10 @@ class Platform extends simple_database_1.Model {
|
|
|
22
23
|
clone.setShared();
|
|
23
24
|
return clone;
|
|
24
25
|
}
|
|
26
|
+
async setPreviousPeriodId() {
|
|
27
|
+
const period = await RegistrationPeriod_1.RegistrationPeriod.getByID(this.periodId);
|
|
28
|
+
this.previousPeriodId = period?.previousPeriodId ?? null;
|
|
29
|
+
}
|
|
25
30
|
static async getSharedPrivateStruct() {
|
|
26
31
|
if (this.sharedStruct && this.sharedStruct.privateConfig) {
|
|
27
32
|
return this.sharedStruct;
|
|
@@ -55,8 +60,8 @@ class Platform extends simple_database_1.Model {
|
|
|
55
60
|
this.sharedStruct = null;
|
|
56
61
|
}
|
|
57
62
|
async save() {
|
|
58
|
-
Platform.clearCache();
|
|
59
63
|
const s = await super.save();
|
|
64
|
+
Platform.clearCache();
|
|
60
65
|
// Force update cache immediately
|
|
61
66
|
await Platform.getSharedStruct();
|
|
62
67
|
return s;
|
|
@@ -76,6 +81,9 @@ tslib_1.__decorate([
|
|
|
76
81
|
tslib_1.__decorate([
|
|
77
82
|
(0, simple_database_1.column)({ type: 'string' })
|
|
78
83
|
], Platform.prototype, "periodId", void 0);
|
|
84
|
+
tslib_1.__decorate([
|
|
85
|
+
(0, simple_database_1.column)({ type: 'string', nullable: true })
|
|
86
|
+
], Platform.prototype, "previousPeriodId", void 0);
|
|
79
87
|
tslib_1.__decorate([
|
|
80
88
|
(0, simple_database_1.column)({ type: 'string', nullable: true })
|
|
81
89
|
], Platform.prototype, "membershipOrganizationId", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../src/models/Platform.ts"],"names":[],"mappings":";;;;AAAA,iEAA4D;AAC5D,8CAAiD;AACjD,sDAA0G;AAC1G,+BAAoC;AACpC,6DAA0D;AAE1D,MAAa,QAAS,SAAQ,uBAAK;IAC/B,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAO1B,EAAE,CAAU;IAGZ,MAAM,GAAmB,2BAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAGnD,QAAQ,CAAS;IAGjB,wBAAwB,GAAkB,IAAI,CAAC;IAG/C,aAAa,GAA0B,kCAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,YAAY,GAA0B,IAAI,CAAC;IAElD,MAAM,CAAC,KAAK,CAAC,eAAe;QACxB,MAAM,MAAM,GAAmB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB;QAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,YAAmB,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,qBAAY,CAAC,QAAQ,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,uCAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,qBAAc,CAAC,MAAM,CAAC;gBACjC,GAAG,KAAK;gBACR,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,SAAS;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;YAE3B,OAAO,MAAa,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS;QAClB,OAAO,qBAAY,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC1D,kBAAkB;YAClB,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,wBAAwB;gBACxB,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACvB,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC;gBACf,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,uCAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,UAAU;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI;QACN,
|
|
1
|
+
{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../src/models/Platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,26 @@ export declare class Registration extends Model {
|
|
|
20
20
|
* @deprecated
|
|
21
21
|
*/
|
|
22
22
|
cycle: number;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated
|
|
25
|
+
* Moved to cached balances
|
|
26
|
+
*/
|
|
23
27
|
price: number | null;
|
|
24
28
|
createdAt: Date;
|
|
25
29
|
updatedAt: Date;
|
|
30
|
+
/**
|
|
31
|
+
* The date when the registration was confirmed
|
|
32
|
+
*/
|
|
26
33
|
registeredAt: Date | null;
|
|
27
34
|
reservedUntil: Date | null;
|
|
35
|
+
/**
|
|
36
|
+
* Start date of the registration. Defaults to the start date of the related group
|
|
37
|
+
*/
|
|
38
|
+
startDate: Date | null;
|
|
39
|
+
/**
|
|
40
|
+
* If this registration is under a trial, this is the end date of the trial
|
|
41
|
+
*/
|
|
42
|
+
trialUntil: Date | null;
|
|
28
43
|
/**
|
|
29
44
|
* @deprecated - replaced by group type
|
|
30
45
|
*/
|
|
@@ -36,7 +51,8 @@ export declare class Registration extends Model {
|
|
|
36
51
|
canRegister: boolean;
|
|
37
52
|
deactivatedAt: Date | null;
|
|
38
53
|
/**
|
|
39
|
-
*
|
|
54
|
+
* @deprecated
|
|
55
|
+
* Moved to cached balances
|
|
40
56
|
*/
|
|
41
57
|
pricePaid: number;
|
|
42
58
|
/**
|
|
@@ -47,10 +63,6 @@ export declare class Registration extends Model {
|
|
|
47
63
|
getStructure(this: Registration & {
|
|
48
64
|
group: import('./Group').Group;
|
|
49
65
|
}): RegistrationStructure;
|
|
50
|
-
/**
|
|
51
|
-
* Update the outstanding balance of multiple members in one go (or all members)
|
|
52
|
-
*/
|
|
53
|
-
static updateOutstandingBalance(registrationIds: string[] | 'all', organizationId?: string): Promise<void>;
|
|
54
66
|
/**
|
|
55
67
|
* Get the number of active members that are currently registered
|
|
56
68
|
* This is used for billing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registration.d.ts","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAsC,SAAS,EAAE,YAAY,EAAuB,kBAAkB,EAAE,YAAY,IAAI,qBAAqB,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMlP,OAAO,EAAS,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/C,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,UAAU,CAAC;IAGvB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IAGnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAErD;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAK;
|
|
1
|
+
{"version":3,"file":"Registration.d.ts","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAsC,SAAS,EAAE,YAAY,EAAuB,kBAAkB,EAAE,YAAY,IAAI,qBAAqB,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMlP,OAAO,EAAS,YAAY,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/C,qBAAa,YAAa,SAAQ,KAAK;IACnC,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,cAAc,EAAE,MAAM,CAAC;IAGvB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,UAAU,CAAC;IAGvB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IAGnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAErD;;OAEG;IAEH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAK;IAElB;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAY5B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB;;OAEG;IAEH,YAAY,EAAE,IAAI,GAAG,IAAI,CAAQ;IAGjC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;OAEG;IAEH,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE9B;;OAEG;IAEH,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,WAAW,UAAS;IAEpB;;;OAGG;IAEH,WAAW,UAAS;IAGpB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAQ;IAElC;;;OAGG;IAEH,SAAS,SAAK;IAEd;;OAEG;IAEH,iBAAiB,EAAE,gBAAgB,EAAE,CAAM;IAE3C,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,CAAC;IAElE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,SAAS,EAAE,KAAK,CAAA;KAAE;IAQpE;;;OAGG;WACU,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBhE,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,KAAK;IAwDnE,iBAAiB,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,iBAAiB,CAAC;KAC3B;WA0BY,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO;IAyFpG,kBAAkB;CAGrB"}
|
|
@@ -28,11 +28,26 @@ class Registration extends simple_database_1.Model {
|
|
|
28
28
|
* @deprecated
|
|
29
29
|
*/
|
|
30
30
|
cycle = 0;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated
|
|
33
|
+
* Moved to cached balances
|
|
34
|
+
*/
|
|
31
35
|
price = null;
|
|
32
36
|
createdAt;
|
|
33
37
|
updatedAt;
|
|
38
|
+
/**
|
|
39
|
+
* The date when the registration was confirmed
|
|
40
|
+
*/
|
|
34
41
|
registeredAt = null;
|
|
35
42
|
reservedUntil = null;
|
|
43
|
+
/**
|
|
44
|
+
* Start date of the registration. Defaults to the start date of the related group
|
|
45
|
+
*/
|
|
46
|
+
startDate = null;
|
|
47
|
+
/**
|
|
48
|
+
* If this registration is under a trial, this is the end date of the trial
|
|
49
|
+
*/
|
|
50
|
+
trialUntil = null;
|
|
36
51
|
/**
|
|
37
52
|
* @deprecated - replaced by group type
|
|
38
53
|
*/
|
|
@@ -44,7 +59,8 @@ class Registration extends simple_database_1.Model {
|
|
|
44
59
|
canRegister = false;
|
|
45
60
|
deactivatedAt = null;
|
|
46
61
|
/**
|
|
47
|
-
*
|
|
62
|
+
* @deprecated
|
|
63
|
+
* Moved to cached balances
|
|
48
64
|
*/
|
|
49
65
|
pricePaid = 0;
|
|
50
66
|
/**
|
|
@@ -59,39 +75,6 @@ class Registration extends simple_database_1.Model {
|
|
|
59
75
|
price: this.price ?? 0,
|
|
60
76
|
});
|
|
61
77
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Update the outstanding balance of multiple members in one go (or all members)
|
|
64
|
-
*/
|
|
65
|
-
static async updateOutstandingBalance(registrationIds, organizationId) {
|
|
66
|
-
if (registrationIds !== 'all' && registrationIds.length === 0) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const params = [];
|
|
70
|
-
let firstWhere = '';
|
|
71
|
-
let secondWhere = '';
|
|
72
|
-
if (registrationIds !== 'all') {
|
|
73
|
-
firstWhere = ` AND registrationId IN (?)`;
|
|
74
|
-
params.push(registrationIds);
|
|
75
|
-
secondWhere = `WHERE registrations.id IN (?)`;
|
|
76
|
-
params.push(registrationIds);
|
|
77
|
-
}
|
|
78
|
-
const query = `UPDATE
|
|
79
|
-
registrations
|
|
80
|
-
LEFT JOIN (
|
|
81
|
-
SELECT
|
|
82
|
-
registrationId,
|
|
83
|
-
sum(unitPrice * amount) AS price,
|
|
84
|
-
sum(pricePaid) AS pricePaid
|
|
85
|
-
FROM
|
|
86
|
-
balance_items
|
|
87
|
-
WHERE status != 'Hidden'${firstWhere}
|
|
88
|
-
GROUP BY
|
|
89
|
-
registrationId
|
|
90
|
-
) i ON i.registrationId = registrations.id
|
|
91
|
-
SET registrations.price = coalesce(i.price, 0), registrations.pricePaid = coalesce(i.pricePaid, 0)
|
|
92
|
-
${secondWhere}`;
|
|
93
|
-
await simple_database_1.Database.update(query, params);
|
|
94
|
-
}
|
|
95
78
|
/**
|
|
96
79
|
* Get the number of active members that are currently registered
|
|
97
80
|
* This is used for billing
|
|
@@ -341,6 +324,12 @@ tslib_1.__decorate([
|
|
|
341
324
|
tslib_1.__decorate([
|
|
342
325
|
(0, simple_database_1.column)({ type: 'datetime', nullable: true })
|
|
343
326
|
], Registration.prototype, "reservedUntil", void 0);
|
|
327
|
+
tslib_1.__decorate([
|
|
328
|
+
(0, simple_database_1.column)({ type: 'datetime', nullable: true })
|
|
329
|
+
], Registration.prototype, "startDate", void 0);
|
|
330
|
+
tslib_1.__decorate([
|
|
331
|
+
(0, simple_database_1.column)({ type: 'datetime', nullable: true })
|
|
332
|
+
], Registration.prototype, "trialUntil", void 0);
|
|
344
333
|
tslib_1.__decorate([
|
|
345
334
|
(0, simple_database_1.column)({ type: 'boolean' })
|
|
346
335
|
], Registration.prototype, "waitingList", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":";;;;AAAA,iEAAyF;AACzF,sDAAkP;AAClP,gDAA+C;AAC/C,+BAAoC;AAEpC,iEAAsF;AACtF,0DAA4D;AAC5D,yBAA+C;AAE/C,MAAa,YAAa,SAAQ,uBAAK;IACnC,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC;IAO/B,EAAE,CAAU;IAGZ,QAAQ,CAAS;IAGjB,cAAc,CAAS;IAGvB,oBAAoB,GAAkB,IAAI,CAAC;IAG3C,QAAQ,CAAS;IAGjB,OAAO,CAAS;IAGhB,UAAU,CAAa;IAGvB,OAAO,GAAyB,EAAE,CAAC;IAGnC,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAErD;;OAEG;IAEH,SAAS,GAAkB,IAAI,CAAC;IAEhC;;OAEG;IAEH,KAAK,GAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Registration.js","sourceRoot":"","sources":["../../../src/models/Registration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Model } from '@simonbackx/simple-database';
|
|
2
|
+
import { SQLSelect } from '@stamhoofd/sql';
|
|
2
3
|
import { RegistrationPeriodBase, RegistrationPeriodSettings, RegistrationPeriod as RegistrationPeriodStruct } from '@stamhoofd/structures';
|
|
3
4
|
export declare class RegistrationPeriod extends Model {
|
|
4
5
|
static table: string;
|
|
5
6
|
id: string;
|
|
7
|
+
previousPeriodId: string | null;
|
|
6
8
|
organizationId: string | null;
|
|
7
9
|
startDate: Date;
|
|
8
10
|
endDate: Date;
|
|
@@ -13,5 +15,10 @@ export declare class RegistrationPeriod extends Model {
|
|
|
13
15
|
getBaseStructure(): RegistrationPeriodBase;
|
|
14
16
|
getStructure(): RegistrationPeriodStruct;
|
|
15
17
|
static getByDate(date: Date): Promise<RegistrationPeriod | null>;
|
|
18
|
+
setPreviousPeriodId(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Experimental: needs to move to library
|
|
21
|
+
*/
|
|
22
|
+
static select(): SQLSelect<RegistrationPeriod>;
|
|
16
23
|
}
|
|
17
24
|
//# sourceMappingURL=RegistrationPeriod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistrationPeriod.d.ts","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,
|
|
1
|
+
{"version":3,"file":"RegistrationPeriod.d.ts","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAA0B,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAO,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kBAAkB,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG3I,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,MAAM,CAAC,KAAK,SAA0B;IAOtC,EAAE,EAAG,MAAM,CAAC;IAGZ,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGrC,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAGd,QAAQ,EAAE,0BAA0B,CAAC;IAGrC,MAAM,UAAS;IAYf,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,gBAAgB;IAIhB,YAAY;WAIC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAahE,mBAAmB;IAwBzB;;OAEG;IACH,MAAM,CAAC,MAAM;CAchB"}
|
|
@@ -9,6 +9,7 @@ const uuid_1 = require("uuid");
|
|
|
9
9
|
class RegistrationPeriod extends simple_database_1.Model {
|
|
10
10
|
static table = 'registration_periods';
|
|
11
11
|
id;
|
|
12
|
+
previousPeriodId = null;
|
|
12
13
|
organizationId = null;
|
|
13
14
|
startDate;
|
|
14
15
|
endDate;
|
|
@@ -32,6 +33,38 @@ class RegistrationPeriod extends simple_database_1.Model {
|
|
|
32
33
|
}
|
|
33
34
|
return RegistrationPeriod.fromRow(result[this.table]) ?? null;
|
|
34
35
|
}
|
|
36
|
+
async setPreviousPeriodId() {
|
|
37
|
+
const allPeriods = await RegistrationPeriod.where({ organizationId: this.organizationId });
|
|
38
|
+
// Include self if not yet in database
|
|
39
|
+
if (!this.existsInDatabase) {
|
|
40
|
+
allPeriods.push(this);
|
|
41
|
+
}
|
|
42
|
+
// Sort by start date
|
|
43
|
+
allPeriods.sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
|
|
44
|
+
// Take the one before this.periodId
|
|
45
|
+
let previousPeriod = null;
|
|
46
|
+
for (const period of allPeriods) {
|
|
47
|
+
if (period.id === this.id) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
previousPeriod = period;
|
|
51
|
+
}
|
|
52
|
+
this.previousPeriodId = previousPeriod?.id ?? null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Experimental: needs to move to library
|
|
56
|
+
*/
|
|
57
|
+
static select() {
|
|
58
|
+
const transformer = (row) => {
|
|
59
|
+
const d = this.fromRow(row[this.table]);
|
|
60
|
+
if (!d) {
|
|
61
|
+
throw new Error('MemberPlatformMembership not found');
|
|
62
|
+
}
|
|
63
|
+
return d;
|
|
64
|
+
};
|
|
65
|
+
const select = new sql_1.SQLSelect(transformer, sql_1.SQL.wildcard());
|
|
66
|
+
return select.from(sql_1.SQL.table(this.table));
|
|
67
|
+
}
|
|
35
68
|
}
|
|
36
69
|
exports.RegistrationPeriod = RegistrationPeriod;
|
|
37
70
|
tslib_1.__decorate([
|
|
@@ -41,6 +74,9 @@ tslib_1.__decorate([
|
|
|
41
74
|
},
|
|
42
75
|
})
|
|
43
76
|
], RegistrationPeriod.prototype, "id", void 0);
|
|
77
|
+
tslib_1.__decorate([
|
|
78
|
+
(0, simple_database_1.column)({ type: 'string', nullable: true })
|
|
79
|
+
], RegistrationPeriod.prototype, "previousPeriodId", void 0);
|
|
44
80
|
tslib_1.__decorate([
|
|
45
81
|
(0, simple_database_1.column)({ type: 'string', nullable: true })
|
|
46
82
|
], RegistrationPeriod.prototype, "organizationId", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistrationPeriod.js","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"RegistrationPeriod.js","sourceRoot":"","sources":["../../../src/models/RegistrationPeriod.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.
|
|
3
|
+
"version": "2.64.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": "
|
|
32
|
+
"gitHead": "80eebbb0b4fb84ac979041c3f8c7762863622367"
|
|
33
33
|
}
|
|
@@ -11,11 +11,9 @@ export class Gemeente extends Model {
|
|
|
11
11
|
static table = 'gemeenten';
|
|
12
12
|
|
|
13
13
|
@column({
|
|
14
|
-
primary: true, type: '
|
|
15
|
-
return value ?? uuidv4();
|
|
16
|
-
},
|
|
14
|
+
primary: true, type: 'integer',
|
|
17
15
|
})
|
|
18
|
-
id!:
|
|
16
|
+
id!: number;
|
|
19
17
|
|
|
20
18
|
@column({ type: 'string' })
|
|
21
19
|
postcode: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { column, Database, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
|
-
import {
|
|
2
|
+
import { BalanceItemPaymentWithPayment, BalanceItemPaymentWithPrivatePayment, BalanceItemRelation, BalanceItemRelationType, BalanceItemStatus, BalanceItem as BalanceItemStruct, BalanceItemType, BalanceItemWithPayments, BalanceItemWithPrivatePayments, Payment as PaymentStruct, PrivatePayment } from '@stamhoofd/structures';
|
|
3
3
|
import { Formatter } from '@stamhoofd/utility';
|
|
4
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
5
|
|
|
6
6
|
import { EnumDecoder, MapDecoder } from '@simonbackx/simple-encoding';
|
|
7
7
|
import { SQL, SQLSelect } from '@stamhoofd/sql';
|
|
8
|
-
import { Document,
|
|
8
|
+
import { Document, Payment } from './';
|
|
9
9
|
import { CachedBalance } from './CachedBalance';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -220,8 +220,18 @@ export class BalanceItem extends Model {
|
|
|
220
220
|
await this.deleteItems(items);
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
static async getForRegistration(registrationId: string) {
|
|
224
|
-
|
|
223
|
+
static async getForRegistration(registrationId: string, organizationId?: string) {
|
|
224
|
+
let q = BalanceItem.select()
|
|
225
|
+
.where('registrationId', registrationId)
|
|
226
|
+
.whereNot('status', BalanceItemStatus.Hidden);
|
|
227
|
+
|
|
228
|
+
if (organizationId) {
|
|
229
|
+
q = q.where('organizationId', organizationId);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
const items = await q
|
|
233
|
+
.fetch();
|
|
234
|
+
|
|
225
235
|
return {
|
|
226
236
|
items,
|
|
227
237
|
...(await this.loadPayments(items)),
|
|
@@ -237,15 +247,6 @@ export class BalanceItem extends Model {
|
|
|
237
247
|
|
|
238
248
|
await BalanceItem.updatePricePaid(items.map(i => i.id));
|
|
239
249
|
|
|
240
|
-
// Deprecated: the member balances have moved to CachedBalance
|
|
241
|
-
// Update outstanding amount of related members and registrations
|
|
242
|
-
const memberIds: string[] = Formatter.uniqueArray(items.map(p => p.memberId).filter(id => id !== null));
|
|
243
|
-
|
|
244
|
-
const Member = (await import('./Member')).Member;
|
|
245
|
-
await Member.updateOutstandingBalance(memberIds);
|
|
246
|
-
|
|
247
|
-
const { Registration } = await import('./Registration');
|
|
248
|
-
|
|
249
250
|
const organizationIds = Formatter.uniqueArray(items.map(p => p.organizationId));
|
|
250
251
|
for (const organizationId of organizationIds) {
|
|
251
252
|
const filteredItems = items.filter(i => i.organizationId === organizationId);
|
|
@@ -260,9 +261,7 @@ export class BalanceItem extends Model {
|
|
|
260
261
|
await CachedBalance.updateForOrganizations(organizationId, organizationIds);
|
|
261
262
|
|
|
262
263
|
const registrationIds: string[] = Formatter.uniqueArray(filteredItems.map(p => p.registrationId).filter(id => id !== null));
|
|
263
|
-
|
|
264
|
-
// Deprecated: we'll need to move the outstanding balance of registrations to CachedBalance
|
|
265
|
-
await Registration.updateOutstandingBalance(registrationIds, organizationId);
|
|
264
|
+
await CachedBalance.updateForRegistrations(organizationId, registrationIds);
|
|
266
265
|
|
|
267
266
|
if (registrationIds.length) {
|
|
268
267
|
await Document.updateForRegistrations(registrationIds, organizationId);
|
|
@@ -344,7 +343,9 @@ export class BalanceItem extends Model {
|
|
|
344
343
|
|
|
345
344
|
// Load balance payment items
|
|
346
345
|
const { BalanceItemPayment } = await import('./BalanceItemPayment');
|
|
347
|
-
const balanceItemPayments = await BalanceItemPayment.
|
|
346
|
+
const balanceItemPayments = await BalanceItemPayment.select()
|
|
347
|
+
.where('balanceItemId', items.map(i => i.id))
|
|
348
|
+
.fetch();
|
|
348
349
|
|
|
349
350
|
const payments = await Payment.getByIDs(...balanceItemPayments.map(p => p.paymentId));
|
|
350
351
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { column, ManyToOneRelation, Model } from '@simonbackx/simple-database';
|
|
1
|
+
import { column, ManyToOneRelation, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
2
|
import { v4 as uuidv4 } from 'uuid';
|
|
3
3
|
|
|
4
4
|
import { BalanceItem, Payment } from './';
|
|
5
|
+
import { SQLSelect, SQL } from '@stamhoofd/sql';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Keeps track of all the created payments of a balance item, which contains the (tries) to pay a balance item.
|
|
@@ -56,4 +57,22 @@ export class BalanceItemPayment extends Model {
|
|
|
56
57
|
|
|
57
58
|
static balanceItem = new ManyToOneRelation(BalanceItem, 'balanceItem');
|
|
58
59
|
static payment = new ManyToOneRelation(Payment, 'payment');
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Experimental: needs to move to library
|
|
63
|
+
*/
|
|
64
|
+
static select() {
|
|
65
|
+
const transformer = (row: SQLResultNamespacedRow): BalanceItemPayment => {
|
|
66
|
+
const d = (this as typeof BalanceItemPayment & typeof Model).fromRow(row[this.table] as any) as BalanceItemPayment | undefined;
|
|
67
|
+
|
|
68
|
+
if (!d) {
|
|
69
|
+
throw new Error('EmailTemplate not found');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return d;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const select = new SQLSelect(transformer, SQL.wildcard());
|
|
76
|
+
return select.from(SQL.table(this.table));
|
|
77
|
+
}
|
|
59
78
|
}
|