@mj-biz-apps/orders-core-entities-server 5.36.0 → 5.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/CheckoutSessionService.d.ts +44 -2
  2. package/dist/CheckoutSessionService.d.ts.map +1 -1
  3. package/dist/CheckoutSessionService.js +156 -39
  4. package/dist/CheckoutSessionService.js.map +1 -1
  5. package/dist/ConcessionApprovalListener.js +6 -1
  6. package/dist/ConcessionApprovalListener.js.map +1 -1
  7. package/dist/ConcessionApprovalTask.d.ts +40 -1
  8. package/dist/ConcessionApprovalTask.d.ts.map +1 -1
  9. package/dist/ConcessionApprovalTask.js +139 -15
  10. package/dist/ConcessionApprovalTask.js.map +1 -1
  11. package/dist/EntitlementEngine.d.ts +7 -1
  12. package/dist/EntitlementEngine.d.ts.map +1 -1
  13. package/dist/EntitlementEngine.js +70 -60
  14. package/dist/EntitlementEngine.js.map +1 -1
  15. package/dist/ExternalInvoiceBehavior.d.ts +4 -0
  16. package/dist/ExternalInvoiceBehavior.d.ts.map +1 -1
  17. package/dist/ExternalInvoiceBehavior.js +34 -3
  18. package/dist/ExternalInvoiceBehavior.js.map +1 -1
  19. package/dist/InvoiceDisplay.d.ts +2 -0
  20. package/dist/InvoiceDisplay.d.ts.map +1 -1
  21. package/dist/InvoiceDisplay.js +7 -3
  22. package/dist/InvoiceDisplay.js.map +1 -1
  23. package/dist/OrderConcessionEntityServer.d.ts +13 -3
  24. package/dist/OrderConcessionEntityServer.d.ts.map +1 -1
  25. package/dist/OrderConcessionEntityServer.js +64 -11
  26. package/dist/OrderConcessionEntityServer.js.map +1 -1
  27. package/dist/OrderEntityServer.d.ts +5 -0
  28. package/dist/OrderEntityServer.d.ts.map +1 -1
  29. package/dist/OrderEntityServer.js +120 -45
  30. package/dist/OrderEntityServer.js.map +1 -1
  31. package/dist/OrderJournalEntryFactory.d.ts +5 -3
  32. package/dist/OrderJournalEntryFactory.d.ts.map +1 -1
  33. package/dist/OrderJournalEntryFactory.js +56 -49
  34. package/dist/OrderJournalEntryFactory.js.map +1 -1
  35. package/dist/OrderLineEntityServer.d.ts +13 -0
  36. package/dist/OrderLineEntityServer.d.ts.map +1 -1
  37. package/dist/OrderLineEntityServer.js +91 -0
  38. package/dist/OrderLineEntityServer.js.map +1 -1
  39. package/dist/OrdersSettings.d.ts +9 -0
  40. package/dist/OrdersSettings.d.ts.map +1 -1
  41. package/dist/OrdersSettings.js +11 -0
  42. package/dist/OrdersSettings.js.map +1 -1
  43. package/dist/PaymentWebhookHandler.d.ts.map +1 -1
  44. package/dist/PaymentWebhookHandler.js +2 -1
  45. package/dist/PaymentWebhookHandler.js.map +1 -1
  46. package/dist/RevenueRecognition.d.ts +1 -1
  47. package/dist/RevenueRecognition.d.ts.map +1 -1
  48. package/dist/RevenueRecognition.js +12 -7
  49. package/dist/RevenueRecognition.js.map +1 -1
  50. package/dist/SubscriptionBehavior.d.ts +91 -9
  51. package/dist/SubscriptionBehavior.d.ts.map +1 -1
  52. package/dist/SubscriptionBehavior.js +134 -11
  53. package/dist/SubscriptionBehavior.js.map +1 -1
  54. package/dist/TermLengthExceptions.d.ts +84 -0
  55. package/dist/TermLengthExceptions.d.ts.map +1 -0
  56. package/dist/TermLengthExceptions.js +119 -0
  57. package/dist/TermLengthExceptions.js.map +1 -0
  58. package/dist/checkoutCaptureAlert.d.ts +3 -0
  59. package/dist/checkoutCaptureAlert.d.ts.map +1 -1
  60. package/dist/checkoutCaptureAlert.js +21 -3
  61. package/dist/checkoutCaptureAlert.js.map +1 -1
  62. package/dist/displaced-start-event.d.ts +1 -1
  63. package/dist/displaced-start-event.d.ts.map +1 -1
  64. package/dist/displaced-start-event.js +3 -1
  65. package/dist/displaced-start-event.js.map +1 -1
  66. package/dist/index.d.ts +1 -1
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/isolatedProvider.d.ts +22 -0
  71. package/dist/isolatedProvider.d.ts.map +1 -0
  72. package/dist/isolatedProvider.js +39 -0
  73. package/dist/isolatedProvider.js.map +1 -0
  74. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ConcessionApprovalTask.d.ts","sourceRoot":"","sources":["../src/ConcessionApprovalTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConcessionApprovalTask.d.ts","sourceRoot":"","sources":["../src/ConcessionApprovalTask.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@
17
17
  * logged; when no holder is left, recording is refused, for the reason a missing rule is — nobody would be
18
18
  * told the concession is waiting.
19
19
  *
20
+ * A HOLDER'S OWN CONCESSION GOES UP (bc-aidp-next-golive#320). When the Orders setting
21
+ * `ConcessionSelfApprovalEscalation` is set and the requester holds the rule's role, the task is assigned to
22
+ * the escalation instead (`SelfApprovalEscalation`): the order company's `ApprovalCFOUserID` for `CompanyCFO`,
23
+ * or a named role's active holders, the first target in the list that names someone other than the requester.
24
+ * Nobody is left: recording is refused. Unset, the requester approves their own as before.
25
+ *
20
26
  * CLOSING. Deciding a concession on its own record closes its open task: Completed when approved,
21
27
  * Cancelled when rejected. Withdrawing it cancels its task and removes its link. A decision recorded on the
22
28
  * task itself is applied by ./ConcessionApprovalListener.ts, and the tasks app closes that task.
@@ -27,13 +33,16 @@
27
33
  * CONNECTS TO:
28
34
  * CALLER: OrderConcessionEntityServer (record, decide, withdraw) · ConcessionApprovalListener (decide on task)
29
35
  * WRITES: Tasks · Task Links · Task Assignments · Task Activities · Order Headers (ApprovalTaskID)
30
- * READS: Task Types · MJ: User Roles · MJ: Users · MJ_BizApps_Common: People
36
+ * READS: Task Types · MJ: User Roles · MJ: Roles · MJ: Users · MJ_BizApps_Common: People
37
+ * Accounting Company Profiles (ApprovalCFOUserID, for the CompanyCFO escalation)
31
38
  */
32
39
  import { BaseEntity, LogStatus, RunView, } from '@memberjunction/core';
33
40
  import { UUIDsEqual } from '@memberjunction/global';
34
41
  // Imported for its side effect: it registers the tasks entities' generated subclasses. See `requireSubclass`.
35
42
  import '@mj-biz-apps/tasks-entities';
43
+ import { UserHoldsRole } from '@mj-biz-apps/orders-entities';
36
44
  import { ORDER_CONCESSION_ENTITY, ORDER_HEADER_ENTITY } from './entity-names.js';
45
+ import { OrdersSettings } from './OrdersSettings.js';
37
46
  import { ResolvePersonIDsForUsers } from './person-user-link.js';
38
47
  import { EscapeText, RequireUUID, RequireUUIDs } from './sql-guards.js';
39
48
  export const TASK_ENTITY = 'MJ_BizApps_Tasks: Tasks';
@@ -53,6 +62,8 @@ export const PERSON_ENTITY = 'MJ_BizApps_Common: People';
53
62
  export const APPROVAL_TASK_TYPE_CODE = 'ORDERS_CONCESSION_APPROVAL';
54
63
  const USER_ENTITY = 'MJ: Users';
55
64
  const USER_ROLE_ENTITY = 'MJ: User Roles';
65
+ const ROLE_ENTITY = 'MJ: Roles';
66
+ const COMPANY_PROFILE_ENTITY = 'MJ_BizApps_Accounting: Accounting Company Profiles';
56
67
  const LOG_PREFIX = '[BizAppsOrders] Concession approval:';
57
68
  /**
58
69
  * The concession status a terminal task outcome decides, or null for an outcome this app does not know.
@@ -130,6 +141,101 @@ export function ApproverAssignees(holders, requesterUserID) {
130
141
  }
131
142
  return { PersonIDs: personIDs, WithoutPerson: others.filter((h) => !h.PersonID).map((h) => h.UserID) };
132
143
  }
144
+ /** The `ConcessionSelfApprovalEscalation` target that names the order company's `ApprovalCFOUserID`. */
145
+ export const COMPANY_CFO_ESCALATION = 'CompanyCFO';
146
+ /**
147
+ * The first target that names an active user other than the requester, with those users; never the requester.
148
+ * When none does, a refusal saying what each target came to, so the setting or the role can be fixed.
149
+ */
150
+ export function ChooseEscalationApprovers(requesterUserID, candidates) {
151
+ for (const c of candidates) {
152
+ const others = [];
153
+ for (const id of c.UserIDs) {
154
+ if (!UUIDsEqual(id, requesterUserID) && !others.some((o) => UUIDsEqual(o, id)))
155
+ others.push(id);
156
+ }
157
+ if (others.length > 0)
158
+ return { Target: c.Target, UserIDs: others };
159
+ }
160
+ const tried = candidates
161
+ .map((c) => `'${c.Target}' (${c.Problem ?? (c.UserIDs.length > 0 ? 'only the requester' : 'no active user')})`)
162
+ .join(', ');
163
+ return {
164
+ Refusal: 'This concession was requested by a holder of the role that approves it, so it goes to the next approver ' +
165
+ `up (Orders setting ConcessionSelfApprovalEscalation), and no one other than the requester is there: ${tried}. ` +
166
+ 'Name an approver for it.',
167
+ };
168
+ }
169
+ /**
170
+ * Who decides a concession its requester would otherwise approve themselves (bc-aidp-next-golive#320): null when
171
+ * the escalation does not apply (the setting is unset, or the requester does not hold `roleID`), else the users
172
+ * of the first target that names someone other than the requester, or a refusal when none does.
173
+ */
174
+ export async function SelfApprovalEscalation(roleID, concession, ctx) {
175
+ await OrdersSettings.Load(ctx.Provider, ctx.User);
176
+ const targets = OrdersSettings.ConcessionSelfApprovalEscalation;
177
+ if (targets.length === 0)
178
+ return null;
179
+ if (!(await UserHoldsRole(RequireUUID(roleID, 'RoleID'), ctx.Provider, ctx.User, RequireUUID(concession.RequestedByUserID, 'UserID')))) {
180
+ return null;
181
+ }
182
+ const candidates = [];
183
+ for (const target of targets) {
184
+ const candidate = target.toLowerCase() === COMPANY_CFO_ESCALATION.toLowerCase()
185
+ ? await companyCFOCandidate(target, concession.OrderHeaderID, ctx)
186
+ : await roleCandidate(target, ctx);
187
+ candidates.push(candidate);
188
+ // Stop at the first that names someone else: later targets are not read.
189
+ if (candidate.UserIDs.some((id) => !UUIDsEqual(id, concession.RequestedByUserID)))
190
+ break;
191
+ }
192
+ return ChooseEscalationApprovers(concession.RequestedByUserID, candidates);
193
+ }
194
+ /** The order company's active `ApprovalCFOUserID`, as an access override resolves it. */
195
+ async function companyCFOCandidate(target, orderHeaderID, ctx) {
196
+ if (!ctx.Provider.EntityByName(COMPANY_PROFILE_ENTITY)) {
197
+ return { Target: target, UserIDs: [], Problem: 'the accounting app is not installed' };
198
+ }
199
+ const order = (await view(ctx, {
200
+ EntityName: ORDER_HEADER_ENTITY,
201
+ ExtraFilter: `ID = '${RequireUUID(orderHeaderID, 'OrderHeaderID')}'`,
202
+ Fields: ['CompanyID'],
203
+ ResultType: 'simple',
204
+ }))[0];
205
+ if (!order?.CompanyID)
206
+ return { Target: target, UserIDs: [], Problem: 'the order names no company' };
207
+ // IS-A: the accounting profile shares its company's ID.
208
+ const profile = (await view(ctx, {
209
+ EntityName: COMPANY_PROFILE_ENTITY,
210
+ ExtraFilter: `ID = '${RequireUUID(order.CompanyID, 'CompanyID')}'`,
211
+ Fields: ['ApprovalCFOUserID'],
212
+ ResultType: 'simple',
213
+ }))[0];
214
+ const named = profile?.ApprovalCFOUserID ?? null;
215
+ if (!named)
216
+ return { Target: target, UserIDs: [], Problem: "the order's company names no ApprovalCFOUserID" };
217
+ const active = await view(ctx, {
218
+ EntityName: USER_ENTITY,
219
+ ExtraFilter: `ID = '${RequireUUID(named, 'ApprovalCFOUserID')}' AND IsActive = 1`,
220
+ Fields: ['ID'],
221
+ ResultType: 'simple',
222
+ });
223
+ return active.length > 0
224
+ ? { Target: target, UserIDs: [active[0].ID] }
225
+ : { Target: target, UserIDs: [], Problem: "the company's ApprovalCFOUserID is not an active user" };
226
+ }
227
+ /** A role's active holders, by the role's name. */
228
+ async function roleCandidate(roleName, ctx) {
229
+ const role = (await view(ctx, {
230
+ EntityName: ROLE_ENTITY,
231
+ ExtraFilter: `Name = '${EscapeText(roleName)}'`,
232
+ Fields: ['ID'],
233
+ ResultType: 'simple',
234
+ }))[0];
235
+ if (!role)
236
+ return { Target: roleName, UserIDs: [], Problem: 'no role has that name' };
237
+ return { Target: roleName, UserIDs: await ActiveRoleHolderIDs(role.ID, ctx) };
238
+ }
133
239
  /**
134
240
  * Raise an approval task for one Pending concession: assign the role's holders by person, link the order
135
241
  * and the concession, and point the order at the task. Throws when the tasks app is absent or no one could
@@ -253,8 +359,8 @@ function entityID(name, ctx) {
253
359
  return entity.ID;
254
360
  }
255
361
  async function raiseTask(concession, roleID, name, linkDescription, refusal, order, ctx) {
256
- const approverPersonIDs = await approverPersons(roleID, concession.RequestedByUserID, ctx);
257
- const task = await createTask(order, name, refusal, ctx);
362
+ const { PersonIDs: approverPersonIDs, EscalatedTo } = await approverPersons(roleID, concession, ctx);
363
+ const task = await createTask(order, name, refusal, EscalatedTo, ctx);
258
364
  await CreateTaskLink(task.ID, entityID(ORDER_HEADER_ENTITY, ctx), order.ID, `Order ${order.OrderNumber}`, ctx);
259
365
  await CreateTaskLink(task.ID, entityID(ORDER_CONCESSION_ENTITY, ctx), concession.ID, linkDescription, ctx);
260
366
  const personEntityID = entityID(PERSON_ENTITY, ctx);
@@ -269,10 +375,19 @@ async function raiseTask(concession, roleID, name, linkDescription, refusal, ord
269
375
  }
270
376
  /**
271
377
  * The person records to assign: one per active holder of the role other than the requester, through the
272
- * active person linked to their user. Throws when that leaves no one.
378
+ * active person linked to their user, or the self-approval escalation's users when it applies (with the
379
+ * target they came from). Throws when that leaves no one.
273
380
  */
274
- async function approverPersons(roleID, requesterUserID, ctx) {
275
- const holderIDs = await ActiveRoleHolderIDs(roleID, ctx);
381
+ async function approverPersons(roleID, concession, ctx) {
382
+ const requesterUserID = concession.RequestedByUserID;
383
+ const resolved = concession.SalesRuleID ? await SelfApprovalEscalation(roleID, concession, ctx) : null;
384
+ let escalation = null;
385
+ if (resolved) {
386
+ if ('Refusal' in resolved)
387
+ throw new Error(resolved.Refusal);
388
+ escalation = resolved;
389
+ }
390
+ const holderIDs = escalation ? escalation.UserIDs : await ActiveRoleHolderIDs(roleID, ctx);
276
391
  const others = holderIDs.filter((id) => !UUIDsEqual(id, requesterUserID));
277
392
  if (others.length === 0) {
278
393
  throw new Error('This concession is outside the requester\'s authority, and no active user other than the requester ' +
@@ -285,16 +400,21 @@ async function approverPersons(roleID, requesterUserID, ctx) {
285
400
  }));
286
401
  const { PersonIDs, WithoutPerson } = ApproverAssignees(holders, requesterUserID);
287
402
  if (PersonIDs.length === 0) {
288
- throw new Error('This concession is outside the requester\'s authority, and none of the active holders of the role the ' +
289
- 'ConcessionLimit rule names has an active person record linked to their user. The tasks app tells ' +
290
- 'and lists an approver through that person record, so no one would be told the concession is ' +
291
- 'waiting. Link a person record to an approver\'s user.');
403
+ throw new Error(escalation
404
+ ? `This concession goes to '${escalation.Target}' (Orders setting ConcessionSelfApprovalEscalation), and ` +
405
+ 'no approver there has an active person record linked to their user. The tasks app tells and lists ' +
406
+ 'an approver through that person record, so no one would be told the concession is waiting. Link a ' +
407
+ "person record to the approver's user."
408
+ : 'This concession is outside the requester\'s authority, and none of the active holders of the role the ' +
409
+ 'ConcessionLimit rule names has an active person record linked to their user. The tasks app tells ' +
410
+ 'and lists an approver through that person record, so no one would be told the concession is ' +
411
+ 'waiting. Link a person record to an approver\'s user.');
292
412
  }
293
413
  if (WithoutPerson.length > 0) {
294
- LogStatus(`${LOG_PREFIX} ${WithoutPerson.length} holder(s) of role ${roleID} have no active person record linked ` +
295
- `to their user and were not assigned the approval task: ${WithoutPerson.join(', ')}`);
414
+ LogStatus(`${LOG_PREFIX} ${WithoutPerson.length} approver(s) for ${escalation ? `'${escalation.Target}'` : `role ${roleID}`} ` +
415
+ `have no active person record linked to their user and were not assigned the approval task: ${WithoutPerson.join(', ')}`);
296
416
  }
297
- return PersonIDs;
417
+ return { PersonIDs, EscalatedTo: escalation ? escalation.Target : null };
298
418
  }
299
419
  /** Every active user holding the role, by name order. The tasks app has no group assignee, so a role is expanded to these. */
300
420
  export async function ActiveRoleHolderIDs(roleID, ctx) {
@@ -333,7 +453,7 @@ async function loadTask(taskID, ctx) {
333
453
  throw new Error(`Approval task ${taskID} was not found.`);
334
454
  return task;
335
455
  }
336
- async function createTask(order, name, refusal, ctx) {
456
+ async function createTask(order, name, refusal, escalatedTo, ctx) {
337
457
  const types = await view(ctx, {
338
458
  EntityName: TASK_TYPE_ENTITY,
339
459
  ExtraFilter: `Code = '${EscapeText(APPROVAL_TASK_TYPE_CODE)}'`,
@@ -352,7 +472,11 @@ async function createTask(order, name, refusal, ctx) {
352
472
  (refusal ? `A decision recorded on this concession's previous approval task was not applied: ${refusal} ` : '') +
353
473
  `This concession on order ${order.OrderNumber} is outside the requester's sales authority. The order ` +
354
474
  `cannot be confirmed, and its documents cannot be sent, until it is decided. A decision on this task ` +
355
- `decides this concession only.`;
475
+ `decides this concession only.` +
476
+ (escalatedTo
477
+ ? ` It was requested by a holder of the role that approves it, so it comes to '${escalatedTo}' instead ` +
478
+ `(Orders setting ConcessionSelfApprovalEscalation).`
479
+ : '');
356
480
  task.Priority = 'High';
357
481
  task.Status = 'Open';
358
482
  if (!(await task.Save())) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConcessionApprovalTask.js","sourceRoot":"","sources":["../src/ConcessionApprovalTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConcessionApprovalTask.js","sourceRoot":"","sources":["../src/ConcessionApprovalTask.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,13 @@ export interface GrantOutcome {
81
81
  * the customer access as a side effect of returning the thing that conferred it — the same class of
82
82
  * mistake as materializing a second subscription on a cancellation (D16).
83
83
  */
84
- export declare function CreateEntitlementGrants(order: GrantableOrder, lines: GrantableLine[], termsByLine: Map<string, TermForLine>, provider: IMetadataProvider, user: UserInfo, options?: EntitySaveOptions): Promise<GrantOutcome>;
84
+ export declare function CreateEntitlementGrants(order: GrantableOrder, lines: GrantableLine[],
85
+ /**
86
+ * The term or terms each subscription line bought. A line that states an end past its first term
87
+ * bought several (golive #338); a grant that follows the term is written once per term, so
88
+ * extending, shifting or cancelling one term moves the access that term gave.
89
+ */
90
+ termsByLine: Map<string, TermForLine | readonly TermForLine[]>, provider: IMetadataProvider, user: UserInfo, options?: EntitySaveOptions): Promise<GrantOutcome>;
85
91
  /**
86
92
  * Unwind the grants a returned line conferred.
87
93
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EntitlementEngine.d.ts","sourceRoot":"","sources":["../src/EntitlementEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntitlementEngine.d.ts","sourceRoot":"","sources":["../src/EntitlementEngine.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,13 @@ const quote = (ids) => [...new Set(ids.map((i) => `'${i}'`))].join(',');
45
45
  * the customer access as a side effect of returning the thing that conferred it — the same class of
46
46
  * mistake as materializing a second subscription on a cancellation (D16).
47
47
  */
48
- export async function CreateEntitlementGrants(order, lines, termsByLine, provider, user, options) {
48
+ export async function CreateEntitlementGrants(order, lines,
49
+ /**
50
+ * The term or terms each subscription line bought. A line that states an end past its first term
51
+ * bought several (golive #338); a grant that follows the term is written once per term, so
52
+ * extending, shifting or cancelling one term moves the access that term gave.
53
+ */
54
+ termsByLine, provider, user, options) {
49
55
  const out = { Created: 0, Grants: [] };
50
56
  await OrdersSettings.Load(provider, user);
51
57
  const cutoffDaysPastDue = OrdersSettings.RenewalAccessCutoffDaysPastDue;
@@ -89,10 +95,10 @@ export async function CreateEntitlementGrants(order, lines, termsByLine, provide
89
95
  // Re-keying here rather than asking the caller to change: a map that arrives with unknown casing
90
96
  // is the caller's business, and normalising on receipt cannot be forgotten by the next caller.
91
97
  const termsByLineKey = new Map();
92
- for (const [lineID, term] of termsByLine)
93
- termsByLineKey.set(key(lineID), term);
98
+ for (const [lineID, terms] of termsByLine)
99
+ termsByLineKey.set(key(lineID), Array.isArray(terms) ? terms : [terms]);
94
100
  // Subscription IDs behind the terms, so a grant can point at both.
95
- const termIDs = [...termsByLineKey.values()].map((t) => t.ID);
101
+ const termIDs = [...termsByLineKey.values()].flat().map((t) => t.ID);
96
102
  const subscriptionByTerm = new Map();
97
103
  if (termIDs.length) {
98
104
  const terms = await rv.RunView({
@@ -136,67 +142,71 @@ export async function CreateEntitlementGrants(order, lines, termsByLine, provide
136
142
  `policy could not be resolved (its type or category tree could not be read). ` +
137
143
  `Access is refused rather than granted on assumed defaults.`);
138
144
  }
139
- const term = termsByLineKey.get(key(line.ID)) ?? null;
145
+ const lineTerms = termsByLineKey.get(key(line.ID)) ?? [];
140
146
  for (const template of forThisProduct) {
141
147
  if (!TemplateAppliesToLineChoices(template, choicesByLine.get(key(line.ID)) ?? []))
142
148
  continue;
143
149
  const resolved = ResolveEntitlementPolicy(inputs.Product, inputs.CategoryChain, inputs.Type, { ValidityMode: template.ValidityMode });
144
- const event = eventByProduct.get(key(line.ProductID));
145
- const validity = ResolveValidityWindow(resolved.ValidityMode, {
146
- GrantedOn: order.OrderDate,
147
- DurationDays: template.ValidityDurationDays,
148
- EventStartsAt: event?.EventStartsAt ? new Date(event.EventStartsAt) : null,
149
- EventEndsAt: event?.EventEndsAt ? new Date(event.EventEndsAt) : null,
150
- AccessLeadHours: template.AccessLeadHours,
151
- AccessLagHours: template.AccessLagHours,
152
- TermStartDate: term ? new Date(term.StartDate) : null,
153
- TermEndDate: term ? new Date(term.EndDate) : null,
154
- });
155
- const grant = await provider.GetEntityObject(ENTITLEMENT_GRANT_ENTITY, user);
156
- grant.NewRecord();
157
- grant.ProductEntitlementID = template.ID;
158
- grant.OrderLineID = line.ID;
159
- const subID = term ? subscriptionByTerm.get(key(term.ID)) : undefined;
160
- if (term) {
161
- grant.SubscriptionTermID = term.ID;
162
- if (subID)
163
- grant.SubscriptionID = subID;
164
- }
165
- // BENEFICIARY: the subscription's holder when the grant belongs to one, so access and
166
- // the subscription never name different parties. Otherwise the line's own ship-to,
167
- // because that is where 'who is this for' lives (D61) — a seat bought for a named
168
- // colleague, a ticket for an attendee — then the order's ship-to, then the buyer.
169
- const beneficiary = (subID && holderBySubscription.get(key(subID))) || ResolveLineParty(line, order);
170
- if (beneficiary.PersonID)
171
- grant.BeneficiaryPersonID = beneficiary.PersonID;
172
- if (beneficiary.OrganizationID)
173
- grant.BeneficiaryOrganizationID = beneficiary.OrganizationID;
174
- // A subscription line's seats come from its term: the line's own quantity is prorated
175
- // by now, so 10 seats over a half-length first period would grant 5 (#589).
176
- grant.Quantity = ResolveGrantQuantity(template.Quantity, term ? term.Quantity : Number(line.Quantity ?? 0), resolved.QuantityMode);
177
- grant.ValidFrom = validity.ValidFrom;
178
- grant.ValidTo = validity.ValidTo;
179
- grant.ValidityModeApplied = validity.ModeApplied;
180
- const decision = DecideGrantStatus(resolved.GrantTiming, !!line.RenewsSubscriptionID, order.Payment, cutoffDaysPastDue);
181
- const status = decision.Status;
182
- grant.Status = status;
183
- // Recorded so the grant can be re-decided later under the rule it was written under,
184
- // whatever the catalog says by then (PaymentGatedAccess).
185
- grant.GrantTimingApplied = resolved.GrantTiming;
186
- grant.SuspensionReason = decision.Reason;
187
- grant.SuspendedAt = status === 'Suspended' ? new Date() : null;
188
- if (!(await grant.Save(options))) {
189
- throw new Error(`Failed to grant entitlement '${template.Code}' for order line ${line.ID}: ` +
190
- `${grant.LatestResult?.CompleteMessage ?? 'unknown error'}`);
150
+ // One grant per term when it follows the term; any other validity is the line's, once.
151
+ const grantTerms = resolved.ValidityMode === 'SubscriptionTerm' && lineTerms.length > 1 ? [...lineTerms] : [lineTerms[0] ?? null];
152
+ for (const term of grantTerms) {
153
+ const event = eventByProduct.get(key(line.ProductID));
154
+ const validity = ResolveValidityWindow(resolved.ValidityMode, {
155
+ GrantedOn: order.OrderDate,
156
+ DurationDays: template.ValidityDurationDays,
157
+ EventStartsAt: event?.EventStartsAt ? new Date(event.EventStartsAt) : null,
158
+ EventEndsAt: event?.EventEndsAt ? new Date(event.EventEndsAt) : null,
159
+ AccessLeadHours: template.AccessLeadHours,
160
+ AccessLagHours: template.AccessLagHours,
161
+ TermStartDate: term ? new Date(term.StartDate) : null,
162
+ TermEndDate: term ? new Date(term.EndDate) : null,
163
+ });
164
+ const grant = await provider.GetEntityObject(ENTITLEMENT_GRANT_ENTITY, user);
165
+ grant.NewRecord();
166
+ grant.ProductEntitlementID = template.ID;
167
+ grant.OrderLineID = line.ID;
168
+ const subID = term ? subscriptionByTerm.get(key(term.ID)) : undefined;
169
+ if (term) {
170
+ grant.SubscriptionTermID = term.ID;
171
+ if (subID)
172
+ grant.SubscriptionID = subID;
173
+ }
174
+ // BENEFICIARY: the subscription's holder when the grant belongs to one, so access and
175
+ // the subscription never name different parties. Otherwise the line's own ship-to,
176
+ // because that is where 'who is this for' lives (D61) — a seat bought for a named
177
+ // colleague, a ticket for an attendee — then the order's ship-to, then the buyer.
178
+ const beneficiary = (subID && holderBySubscription.get(key(subID))) || ResolveLineParty(line, order);
179
+ if (beneficiary.PersonID)
180
+ grant.BeneficiaryPersonID = beneficiary.PersonID;
181
+ if (beneficiary.OrganizationID)
182
+ grant.BeneficiaryOrganizationID = beneficiary.OrganizationID;
183
+ // A subscription line's seats come from its term: the line's own quantity is prorated
184
+ // by now, so 10 seats over a half-length first period would grant 5 (#589).
185
+ grant.Quantity = ResolveGrantQuantity(template.Quantity, term ? term.Quantity : Number(line.Quantity ?? 0), resolved.QuantityMode);
186
+ grant.ValidFrom = validity.ValidFrom;
187
+ grant.ValidTo = validity.ValidTo;
188
+ grant.ValidityModeApplied = validity.ModeApplied;
189
+ const decision = DecideGrantStatus(resolved.GrantTiming, !!line.RenewsSubscriptionID, order.Payment, cutoffDaysPastDue);
190
+ const status = decision.Status;
191
+ grant.Status = status;
192
+ // Recorded so the grant can be re-decided later under the rule it was written under,
193
+ // whatever the catalog says by then (PaymentGatedAccess).
194
+ grant.GrantTimingApplied = resolved.GrantTiming;
195
+ grant.SuspensionReason = decision.Reason;
196
+ grant.SuspendedAt = status === 'Suspended' ? new Date() : null;
197
+ if (!(await grant.Save(options))) {
198
+ throw new Error(`Failed to grant entitlement '${template.Code}' for order line ${line.ID}: ` +
199
+ `${grant.LatestResult?.CompleteMessage ?? 'unknown error'}`);
200
+ }
201
+ out.Created++;
202
+ out.Grants.push({
203
+ ID: grant.ID,
204
+ OrderLineID: line.ID,
205
+ Code: template.Code,
206
+ Status: status,
207
+ ValidityModeApplied: validity.ModeApplied,
208
+ });
191
209
  }
192
- out.Created++;
193
- out.Grants.push({
194
- ID: grant.ID,
195
- OrderLineID: line.ID,
196
- Code: template.Code,
197
- Status: status,
198
- ValidityModeApplied: validity.ModeApplied,
199
- });
200
210
  }
201
211
  }
202
212
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"EntitlementEngine.js","sourceRoot":"","sources":["../src/EntitlementEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntitlementEngine.js","sourceRoot":"","sources":["../src/EntitlementEngine.ts"],"names":[],"mappings":"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"}