@stamhoofd/models 2.77.1 → 2.77.3

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.
@@ -38,6 +38,7 @@ export declare class MemberPlatformMembership extends QueryableModel {
38
38
  canDelete(hasPlatformFullAccess?: boolean): boolean;
39
39
  delete(): Promise<void>;
40
40
  isElegibleForTrial(member: Member): Promise<boolean>;
41
+ correctDates(member: Member, registration?: Registration): Promise<void>;
41
42
  calculatePrice(member: Member, registration?: Registration): Promise<void>;
42
43
  doDelete(): Promise<void>;
43
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembership.d.ts","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAKnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,qBAAa,wBAAyB,SAAQ,cAAc;IACxD,MAAM,CAAC,KAAK,SAAiC;IAQ7C,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAEd;;;;;OAKG;IAEH,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,KAAK,SAAK;IAGV,oBAAoB,SAAK;IAEzB;;;OAGG;IAEH,iBAAiB,SAAK;IAGtB,UAAU,SAAK;IAEf;;OAEG;IAEH,SAAS,UAAS;IAKlB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAY9B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAIhB,MAAM,UAAS;IAEf,SAAS,CAAC,qBAAqB,UAAQ;IAWvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IA8BjC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;IAqK1D,QAAQ;CAYjB"}
1
+ {"version":3,"file":"MemberPlatformMembership.d.ts","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AAKnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,qBAAa,wBAAyB,SAAQ,cAAc;IACxD,MAAM,CAAC,KAAK,SAAiC;IAQ7C,EAAE,EAAG,MAAM,CAAC;IAGZ,QAAQ,EAAE,MAAM,CAAC;IAGjB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,IAAI,CAAC;IAEd;;;;;OAKG;IAEH,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,KAAK,SAAK;IAGV,oBAAoB,SAAK;IAEzB;;;OAGG;IAEH,iBAAiB,SAAK;IAGtB,UAAU,SAAK;IAEf;;OAEG;IAEH,SAAS,UAAS;IAKlB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAY9B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAIhB,MAAM,UAAS;IAEf,SAAS,CAAC,qBAAqB,UAAQ;IAWvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,kBAAkB,CAAC,MAAM,EAAE,MAAM;IA8BjC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;IAqGxD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY;IAqH1D,QAAQ;CAYjB"}
@@ -83,6 +83,92 @@ class MemberPlatformMembership extends sql_1.QueryableModel {
83
83
  }
84
84
  return true;
85
85
  }
86
+ async correctDates(member, registration) {
87
+ if (this.locked) {
88
+ // price of locked membership cannot be changed
89
+ return;
90
+ }
91
+ const platform = await Platform_1.Platform.getSharedPrivateStruct();
92
+ const membershipType = platform.config.membershipTypes.find(m => m.id === this.membershipTypeId);
93
+ if (!membershipType) {
94
+ throw new simple_errors_1.SimpleError({
95
+ code: 'invalid_membership_type',
96
+ message: 'Unknown membership type',
97
+ human: 'Deze aansluiting is niet (meer) beschikbaar',
98
+ });
99
+ }
100
+ const periodConfig = membershipType.periods.get(this.periodId);
101
+ if (!periodConfig) {
102
+ throw new simple_errors_1.SimpleError({
103
+ code: 'period_unavailable',
104
+ message: 'Membership not available for this period',
105
+ human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar',
106
+ });
107
+ }
108
+ if (membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days) {
109
+ // Make sure time is equal between start and end date
110
+ let startBrussels = utility_1.Formatter.luxon(this.startDate);
111
+ let endBrussels = utility_1.Formatter.luxon(this.endDate);
112
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
113
+ endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
114
+ this.startDate = startBrussels.toJSDate();
115
+ this.endDate = endBrussels.toJSDate();
116
+ this.expireDate = null;
117
+ }
118
+ else {
119
+ this.endDate = utility_1.Formatter.luxon(periodConfig.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate();
120
+ this.expireDate = periodConfig.expireDate ? utility_1.Formatter.luxon(periodConfig.expireDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate() : null;
121
+ // Alter start date
122
+ if (registration) {
123
+ const preferredStartDate = registration.startDate ?? registration.registeredAt ?? this.createdAt;
124
+ this.startDate = periodConfig.startDate;
125
+ if (preferredStartDate > periodConfig.startDate && preferredStartDate < periodConfig.endDate) {
126
+ let startBrussels = utility_1.Formatter.luxon(preferredStartDate);
127
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
128
+ this.startDate = startBrussels.toJSDate();
129
+ }
130
+ }
131
+ else {
132
+ // Keep the set date, but make sure it is at 0:00 in CET
133
+ let startBrussels = utility_1.Formatter.luxon(this.startDate);
134
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
135
+ this.startDate = startBrussels.toJSDate();
136
+ }
137
+ }
138
+ let minimumStartDate = utility_1.Formatter.luxon(periodConfig.startDate).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).toJSDate();
139
+ if (!this.existsInDatabase) {
140
+ if (membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days) {
141
+ // Cannot create a membership in the past
142
+ minimumStartDate = utility_1.Formatter.luxon(new Date()).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).toJSDate();
143
+ }
144
+ }
145
+ if (this.startDate < minimumStartDate) {
146
+ this.startDate = minimumStartDate;
147
+ }
148
+ if (this.endDate < this.startDate) {
149
+ this.endDate = utility_1.Formatter.luxon(this.startDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate();
150
+ }
151
+ if (periodConfig.trialDays) {
152
+ // Check whether you are elegible for a trial
153
+ if (await this.isElegibleForTrial(member)) {
154
+ // Allowed to set trial until, maximum periodConfig.trialDays after startDate
155
+ let trialUntil = utility_1.Formatter.luxon(this.startDate).plus({ days: periodConfig.trialDays });
156
+ trialUntil = trialUntil.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
157
+ // Max end date
158
+ if (trialUntil.toJSDate() > this.endDate) {
159
+ trialUntil = utility_1.Formatter.luxon(this.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
160
+ }
161
+ this.trialUntil = trialUntil.toJSDate();
162
+ }
163
+ else {
164
+ this.trialUntil = null;
165
+ }
166
+ }
167
+ else {
168
+ // No trial
169
+ this.trialUntil = null;
170
+ }
171
+ }
86
172
  async calculatePrice(member, registration) {
87
173
  if (this.locked) {
88
174
  // price of locked membership cannot be changed
@@ -116,8 +202,10 @@ class MemberPlatformMembership extends sql_1.QueryableModel {
116
202
  }
117
203
  const tagIds = organization.meta.tags;
118
204
  const shouldApplyReducedPrice = member.details.shouldApplyReducedPrice;
119
- const priceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
120
- const earliestPriceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days ? new Date(1950, 0, 1) : (new Date(1950, 0, 1)));
205
+ // Correct dates so we get the correct price config
206
+ await this.correctDates(member, registration);
207
+ const priceConfig = periodConfig.getPriceConfigForDate(this.startDate);
208
+ const earliestPriceConfig = periodConfig.getPriceConfigForDate(new Date(1950, 0, 1));
121
209
  let freeDays = 0;
122
210
  const d = this.createdAt ?? new Date();
123
211
  if (periodConfig.amountFree) {
@@ -141,14 +229,6 @@ class MemberPlatformMembership extends sql_1.QueryableModel {
141
229
  }
142
230
  }
143
231
  if (membershipType.behaviour === structures_1.PlatformMembershipTypeBehaviour.Days) {
144
- // Make sure time is equal between start and end date
145
- let startBrussels = utility_1.Formatter.luxon(this.startDate);
146
- let endBrussels = utility_1.Formatter.luxon(this.endDate);
147
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
148
- endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
149
- this.startDate = startBrussels.toJSDate();
150
- this.endDate = endBrussels.toJSDate();
151
- this.expireDate = null;
152
232
  const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
153
233
  this.maximumFreeAmount = days;
154
234
  this.priceWithoutDiscount = earliestPriceConfig.calculatePrice(tagIds, false, days);
@@ -158,48 +238,12 @@ class MemberPlatformMembership extends sql_1.QueryableModel {
158
238
  else {
159
239
  this.priceWithoutDiscount = earliestPriceConfig.getBasePrice(tagIds, false);
160
240
  this.price = priceConfig.getBasePrice(tagIds, shouldApplyReducedPrice);
161
- this.endDate = periodConfig.endDate;
162
- this.expireDate = periodConfig.expireDate;
163
241
  this.maximumFreeAmount = this.price > 0 ? 1 : 0;
164
242
  this.freeAmount = 0;
165
243
  if (freeDays > 0) {
166
244
  this.price = 0;
167
245
  this.freeAmount = 1;
168
246
  }
169
- // Alter start date
170
- if (registration && registration.startDate) {
171
- this.startDate = periodConfig.startDate;
172
- if (registration.startDate > periodConfig.startDate && registration.startDate < periodConfig.endDate) {
173
- let startBrussels = utility_1.Formatter.luxon(registration.startDate);
174
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
175
- this.startDate = startBrussels.toJSDate();
176
- }
177
- }
178
- else {
179
- let startBrussels = utility_1.Formatter.luxon(this.startDate);
180
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
181
- this.startDate = startBrussels.toJSDate();
182
- }
183
- }
184
- if (periodConfig.trialDays) {
185
- // Check whether you are elegible for a trial
186
- if (await this.isElegibleForTrial(member)) {
187
- // Allowed to set trial until, maximum periodConfig.trialDays after startDate
188
- let trialUntil = utility_1.Formatter.luxon(this.startDate).plus({ days: periodConfig.trialDays });
189
- trialUntil = trialUntil.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
190
- // Max end date
191
- if (trialUntil.toJSDate() > this.endDate) {
192
- trialUntil = utility_1.Formatter.luxon(this.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
193
- }
194
- this.trialUntil = trialUntil.toJSDate();
195
- }
196
- else {
197
- this.trialUntil = null;
198
- }
199
- }
200
- else {
201
- // No trial
202
- this.trialUntil = null;
203
247
  }
204
248
  // Never charge itself
205
249
  const chargeVia = platform.membershipOrganizationId;
@@ -207,6 +251,7 @@ class MemberPlatformMembership extends sql_1.QueryableModel {
207
251
  this.price = 0;
208
252
  this.priceWithoutDiscount = 0;
209
253
  this.freeAmount = 0;
254
+ this.maximumFreeAmount = 0;
210
255
  }
211
256
  if (this.balanceItemId) {
212
257
  this.maximumFreeAmount = this.freeAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"MemberPlatformMembership.js","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemberPlatformMembership.js","sourceRoot":"","sources":["../../../src/models/MemberPlatformMembership.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.77.1",
3
+ "version": "2.77.3",
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": "e6d9dce8ddfdfaf5380e98f3a0ffd113a3826955"
32
+ "gitHead": "73e6c9aec7a8e3feed99014f54fdae6890b346ce"
33
33
  }
@@ -153,6 +153,107 @@ export class MemberPlatformMembership extends QueryableModel {
153
153
  return true;
154
154
  }
155
155
 
156
+ async correctDates(member: Member, registration?: Registration) {
157
+ if (this.locked) {
158
+ // price of locked membership cannot be changed
159
+ return;
160
+ }
161
+
162
+ const platform = await Platform.getSharedPrivateStruct();
163
+ const membershipType = platform.config.membershipTypes.find(m => m.id === this.membershipTypeId);
164
+
165
+ if (!membershipType) {
166
+ throw new SimpleError({
167
+ code: 'invalid_membership_type',
168
+ message: 'Unknown membership type',
169
+ human: 'Deze aansluiting is niet (meer) beschikbaar',
170
+ });
171
+ }
172
+
173
+ const periodConfig = membershipType.periods.get(this.periodId);
174
+
175
+ if (!periodConfig) {
176
+ throw new SimpleError({
177
+ code: 'period_unavailable',
178
+ message: 'Membership not available for this period',
179
+ human: 'Deze aansluiting is nog niet beschikbaar voor dit werkjaar',
180
+ });
181
+ }
182
+
183
+ if (membershipType.behaviour === PlatformMembershipTypeBehaviour.Days) {
184
+ // Make sure time is equal between start and end date
185
+ let startBrussels = Formatter.luxon(this.startDate);
186
+ let endBrussels = Formatter.luxon(this.endDate);
187
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
188
+ endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
189
+ this.startDate = startBrussels.toJSDate();
190
+ this.endDate = endBrussels.toJSDate();
191
+ this.expireDate = null;
192
+ }
193
+ else {
194
+ this.endDate = Formatter.luxon(periodConfig.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate();
195
+ this.expireDate = periodConfig.expireDate ? Formatter.luxon(periodConfig.expireDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate() : null;
196
+
197
+ // Alter start date
198
+ if (registration) {
199
+ const preferredStartDate = registration.startDate ?? registration.registeredAt ?? this.createdAt;
200
+ this.startDate = periodConfig.startDate;
201
+
202
+ if (preferredStartDate > periodConfig.startDate && preferredStartDate < periodConfig.endDate) {
203
+ let startBrussels = Formatter.luxon(preferredStartDate);
204
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
205
+ this.startDate = startBrussels.toJSDate();
206
+ }
207
+ }
208
+ else {
209
+ // Keep the set date, but make sure it is at 0:00 in CET
210
+ let startBrussels = Formatter.luxon(this.startDate);
211
+ startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
212
+ this.startDate = startBrussels.toJSDate();
213
+ }
214
+ }
215
+
216
+ let minimumStartDate = Formatter.luxon(periodConfig.startDate).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).toJSDate();
217
+
218
+ if (!this.existsInDatabase) {
219
+ if (membershipType.behaviour === PlatformMembershipTypeBehaviour.Days) {
220
+ // Cannot create a membership in the past
221
+ minimumStartDate = Formatter.luxon(new Date()).set({ hour: 0, minute: 0, second: 0, millisecond: 0 }).toJSDate();
222
+ }
223
+ }
224
+
225
+ if (this.startDate < minimumStartDate) {
226
+ this.startDate = minimumStartDate;
227
+ }
228
+
229
+ if (this.endDate < this.startDate) {
230
+ this.endDate = Formatter.luxon(this.startDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).toJSDate();
231
+ }
232
+
233
+ if (periodConfig.trialDays) {
234
+ // Check whether you are elegible for a trial
235
+ if (await this.isElegibleForTrial(member)) {
236
+ // Allowed to set trial until, maximum periodConfig.trialDays after startDate
237
+ let trialUntil = Formatter.luxon(this.startDate).plus({ days: periodConfig.trialDays });
238
+ trialUntil = trialUntil.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
239
+
240
+ // Max end date
241
+ if (trialUntil.toJSDate() > this.endDate) {
242
+ trialUntil = Formatter.luxon(this.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
243
+ }
244
+
245
+ this.trialUntil = trialUntil.toJSDate();
246
+ }
247
+ else {
248
+ this.trialUntil = null;
249
+ }
250
+ }
251
+ else {
252
+ // No trial
253
+ this.trialUntil = null;
254
+ }
255
+ }
256
+
156
257
  async calculatePrice(member: Member, registration?: Registration) {
157
258
  if (this.locked) {
158
259
  // price of locked membership cannot be changed
@@ -193,8 +294,10 @@ export class MemberPlatformMembership extends QueryableModel {
193
294
  const tagIds = organization.meta.tags;
194
295
  const shouldApplyReducedPrice = member.details.shouldApplyReducedPrice;
195
296
 
196
- const priceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? this.startDate : (this.createdAt ?? new Date()));
197
- const earliestPriceConfig = periodConfig.getPriceConfigForDate(membershipType.behaviour === PlatformMembershipTypeBehaviour.Days ? new Date(1950, 0, 1) : (new Date(1950, 0, 1)));
297
+ // Correct dates so we get the correct price config
298
+ await this.correctDates(member, registration);
299
+ const priceConfig = periodConfig.getPriceConfigForDate(this.startDate);
300
+ const earliestPriceConfig = periodConfig.getPriceConfigForDate(new Date(1950, 0, 1));
198
301
 
199
302
  let freeDays = 0;
200
303
 
@@ -227,16 +330,6 @@ export class MemberPlatformMembership extends QueryableModel {
227
330
  }
228
331
 
229
332
  if (membershipType.behaviour === PlatformMembershipTypeBehaviour.Days) {
230
- // Make sure time is equal between start and end date
231
- let startBrussels = Formatter.luxon(this.startDate);
232
- let endBrussels = Formatter.luxon(this.endDate);
233
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
234
- endBrussels = endBrussels.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
235
- this.startDate = startBrussels.toJSDate();
236
- this.endDate = endBrussels.toJSDate();
237
-
238
- this.expireDate = null;
239
-
240
333
  const days = Math.round((this.endDate.getTime() - this.startDate.getTime()) / (1000 * 60 * 60 * 24));
241
334
  this.maximumFreeAmount = days;
242
335
  this.priceWithoutDiscount = earliestPriceConfig.calculatePrice(tagIds, false, days);
@@ -246,8 +339,6 @@ export class MemberPlatformMembership extends QueryableModel {
246
339
  else {
247
340
  this.priceWithoutDiscount = earliestPriceConfig.getBasePrice(tagIds, false);
248
341
  this.price = priceConfig.getBasePrice(tagIds, shouldApplyReducedPrice);
249
- this.endDate = periodConfig.endDate;
250
- this.expireDate = periodConfig.expireDate;
251
342
  this.maximumFreeAmount = this.price > 0 ? 1 : 0;
252
343
  this.freeAmount = 0;
253
344
 
@@ -255,45 +346,6 @@ export class MemberPlatformMembership extends QueryableModel {
255
346
  this.price = 0;
256
347
  this.freeAmount = 1;
257
348
  }
258
-
259
- // Alter start date
260
- if (registration && registration.startDate) {
261
- this.startDate = periodConfig.startDate;
262
-
263
- if (registration.startDate > periodConfig.startDate && registration.startDate < periodConfig.endDate) {
264
- let startBrussels = Formatter.luxon(registration.startDate);
265
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
266
- this.startDate = startBrussels.toJSDate();
267
- }
268
- }
269
- else {
270
- let startBrussels = Formatter.luxon(this.startDate);
271
- startBrussels = startBrussels.set({ hour: 0, minute: 0, second: 0, millisecond: 0 });
272
- this.startDate = startBrussels.toJSDate();
273
- }
274
- }
275
-
276
- if (periodConfig.trialDays) {
277
- // Check whether you are elegible for a trial
278
- if (await this.isElegibleForTrial(member)) {
279
- // Allowed to set trial until, maximum periodConfig.trialDays after startDate
280
- let trialUntil = Formatter.luxon(this.startDate).plus({ days: periodConfig.trialDays });
281
- trialUntil = trialUntil.set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
282
-
283
- // Max end date
284
- if (trialUntil.toJSDate() > this.endDate) {
285
- trialUntil = Formatter.luxon(this.endDate).set({ hour: 23, minute: 59, second: 59, millisecond: 0 });
286
- }
287
-
288
- this.trialUntil = trialUntil.toJSDate();
289
- }
290
- else {
291
- this.trialUntil = null;
292
- }
293
- }
294
- else {
295
- // No trial
296
- this.trialUntil = null;
297
349
  }
298
350
 
299
351
  // Never charge itself
@@ -302,6 +354,7 @@ export class MemberPlatformMembership extends QueryableModel {
302
354
  this.price = 0;
303
355
  this.priceWithoutDiscount = 0;
304
356
  this.freeAmount = 0;
357
+ this.maximumFreeAmount = 0;
305
358
  }
306
359
 
307
360
  if (this.balanceItemId) {