@mj-biz-apps/orders-core-entities-server 5.26.0 → 5.28.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 (90) hide show
  1. package/dist/CheckCoverageOverlapOperation.d.ts +28 -0
  2. package/dist/CheckCoverageOverlapOperation.d.ts.map +1 -0
  3. package/dist/CheckCoverageOverlapOperation.js +70 -0
  4. package/dist/CheckCoverageOverlapOperation.js.map +1 -0
  5. package/dist/DetectOverlappingSubscriptionsOperation.d.ts +13 -2
  6. package/dist/DetectOverlappingSubscriptionsOperation.d.ts.map +1 -1
  7. package/dist/DetectOverlappingSubscriptionsOperation.js +17 -3
  8. package/dist/DetectOverlappingSubscriptionsOperation.js.map +1 -1
  9. package/dist/EntitlementBehavior.d.ts +4 -3
  10. package/dist/EntitlementBehavior.d.ts.map +1 -1
  11. package/dist/EntitlementBehavior.js +4 -3
  12. package/dist/EntitlementBehavior.js.map +1 -1
  13. package/dist/ExternalInvoiceBehavior.d.ts +12 -8
  14. package/dist/ExternalInvoiceBehavior.d.ts.map +1 -1
  15. package/dist/ExternalInvoiceBehavior.js +4 -4
  16. package/dist/ExternalInvoiceBehavior.js.map +1 -1
  17. package/dist/GetExternalInvoicingWorklistOperation.d.ts +6 -3
  18. package/dist/GetExternalInvoicingWorklistOperation.d.ts.map +1 -1
  19. package/dist/GetExternalInvoicingWorklistOperation.js +44 -44
  20. package/dist/GetExternalInvoicingWorklistOperation.js.map +1 -1
  21. package/dist/InvoiceBehavior.d.ts +38 -26
  22. package/dist/InvoiceBehavior.d.ts.map +1 -1
  23. package/dist/InvoiceBehavior.js +40 -21
  24. package/dist/InvoiceBehavior.js.map +1 -1
  25. package/dist/InvoiceBuilder.d.ts +6 -4
  26. package/dist/InvoiceBuilder.d.ts.map +1 -1
  27. package/dist/InvoiceBuilder.js +9 -6
  28. package/dist/InvoiceBuilder.js.map +1 -1
  29. package/dist/IssueExternalInvoiceOperation.d.ts +15 -20
  30. package/dist/IssueExternalInvoiceOperation.d.ts.map +1 -1
  31. package/dist/IssueExternalInvoiceOperation.js +45 -49
  32. package/dist/IssueExternalInvoiceOperation.js.map +1 -1
  33. package/dist/IssueInstalmentInvoiceOperation.d.ts +6 -0
  34. package/dist/IssueInstalmentInvoiceOperation.d.ts.map +1 -1
  35. package/dist/IssueInstalmentInvoiceOperation.js +78 -44
  36. package/dist/IssueInstalmentInvoiceOperation.js.map +1 -1
  37. package/dist/OrderEntityServer.d.ts +71 -3
  38. package/dist/OrderEntityServer.d.ts.map +1 -1
  39. package/dist/OrderEntityServer.js +277 -30
  40. package/dist/OrderEntityServer.js.map +1 -1
  41. package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts +7 -6
  42. package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts.map +1 -1
  43. package/dist/OrderHeaderPaymentScheduleEntityServer.js +18 -31
  44. package/dist/OrderHeaderPaymentScheduleEntityServer.js.map +1 -1
  45. package/dist/OrderJournalEntryFactory.d.ts.map +1 -1
  46. package/dist/OrderJournalEntryFactory.js +17 -11
  47. package/dist/OrderJournalEntryFactory.js.map +1 -1
  48. package/dist/OrderLineEntityServer.d.ts +6 -0
  49. package/dist/OrderLineEntityServer.d.ts.map +1 -1
  50. package/dist/OrderLineEntityServer.js +15 -4
  51. package/dist/OrderLineEntityServer.js.map +1 -1
  52. package/dist/PaymentAllocationInputs.d.ts +8 -2
  53. package/dist/PaymentAllocationInputs.d.ts.map +1 -1
  54. package/dist/PaymentAllocationInputs.js +26 -5
  55. package/dist/PaymentAllocationInputs.js.map +1 -1
  56. package/dist/PaymentHeaderEntityServer.d.ts +7 -0
  57. package/dist/PaymentHeaderEntityServer.d.ts.map +1 -1
  58. package/dist/PaymentHeaderEntityServer.js +14 -3
  59. package/dist/PaymentHeaderEntityServer.js.map +1 -1
  60. package/dist/PaymentScheduleBehavior.d.ts +74 -21
  61. package/dist/PaymentScheduleBehavior.d.ts.map +1 -1
  62. package/dist/PaymentScheduleBehavior.js +155 -38
  63. package/dist/PaymentScheduleBehavior.js.map +1 -1
  64. package/dist/RecordProgressOperation.d.ts.map +1 -1
  65. package/dist/RecordProgressOperation.js +3 -5
  66. package/dist/RecordProgressOperation.js.map +1 -1
  67. package/dist/ReversalResolver.d.ts.map +1 -1
  68. package/dist/ReversalResolver.js +6 -1
  69. package/dist/ReversalResolver.js.map +1 -1
  70. package/dist/SpawnRenewalsOperation.d.ts +51 -2
  71. package/dist/SpawnRenewalsOperation.d.ts.map +1 -1
  72. package/dist/SpawnRenewalsOperation.js +214 -23
  73. package/dist/SpawnRenewalsOperation.js.map +1 -1
  74. package/dist/SubscriptionBehavior.d.ts +125 -0
  75. package/dist/SubscriptionBehavior.d.ts.map +1 -1
  76. package/dist/SubscriptionBehavior.js +147 -5
  77. package/dist/SubscriptionBehavior.js.map +1 -1
  78. package/dist/SubscriptionFamilyRules.d.ts +34 -0
  79. package/dist/SubscriptionFamilyRules.d.ts.map +1 -0
  80. package/dist/SubscriptionFamilyRules.js +96 -0
  81. package/dist/SubscriptionFamilyRules.js.map +1 -0
  82. package/dist/entity-names.d.ts +2 -0
  83. package/dist/entity-names.d.ts.map +1 -1
  84. package/dist/entity-names.js +2 -0
  85. package/dist/entity-names.js.map +1 -1
  86. package/dist/index.d.ts +4 -2
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +3 -1
  89. package/dist/index.js.map +1 -1
  90. package/package.json +13 -13
@@ -26,6 +26,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
26
26
  * with the revenue it reduces. All of it inside this transaction, so the number, the stamp and the entry
27
27
  * commit or roll back together. It reads nothing itself: the order's lines and the company's
28
28
  * sibling rows are read here and passed in.
29
+ *
30
+ * ONE DOCUMENT, ONE ENTRY PER PRODUCT COMPANY (golive #311). The row is the order company's and is
31
+ * invoiced once, but A/R and revenue stay in each product's company (D13). `CompanySlices` divides
32
+ * the row among the companies whose lines it bills, and each company with a piece gets its own
33
+ * billing entry, sliced against its own pieces of the schedule, exactly as a per-company row was.
34
+ * On a single-company order that is one entry, unchanged.
29
35
  */
30
36
  import { BaseRemotableOperation, LogError, RunView, } from '@memberjunction/core';
31
37
  import { RegisterClass } from '@memberjunction/global';
@@ -35,7 +41,7 @@ import { BuildGLAccountResolver, EntityIDFor } from './AccountingBridge.js';
35
41
  import { EmitInstalmentInvoiceEntry } from './InstalmentInvoiceEntry.js';
36
42
  import { BeginInstalmentIssue, EndInstalmentIssue } from './instalmentIssueGuard.js';
37
43
  import { LoadInstalmentCashFacts } from './PaymentAllocationInputs.js';
38
- import { DepositReleasedByCompany } from './PaymentScheduleBehavior.js';
44
+ import { CompanySlices, DepositReleasedByCompany } from './PaymentScheduleBehavior.js';
39
45
  import { OrderJournalEntryFactory } from './OrderJournalEntryFactory.js';
40
46
  import { InstalmentDocumentNumber } from './InvoiceBehavior.js';
41
47
  import { ExplainShortfalls, ScheduleShortfalls } from './PaymentScheduleBehavior.js';
@@ -46,6 +52,8 @@ const BOOKED_STATUSES = new Set(['Confirmed', 'Posted', 'Fulfilled']);
46
52
  /** Entity names the billing-entry factory needs; not in entity-names.ts, matching OrderEntityServer. */
47
53
  const CHARGE_TYPE_ENTITY = 'MJ_BizApps_Orders: Charge Types';
48
54
  const SUBSCRIPTION_TERM_ENTITY = 'MJ_BizApps_Orders: Subscription Terms';
55
+ /** The order company's piece first, then the others by id: the order the entries are posted in. */
56
+ const companyOrder = (companyID, orderCompany) => (String(companyID).toLowerCase() === orderCompany ? 0 : 1);
49
57
  /** A refusal in the operation's own shape, usable outside the class. */
50
58
  const refuse = (message, echo = {}) => ({ Success: false, AlreadyInvoiced: false, Message: message, ...echo });
51
59
  /**
@@ -70,7 +78,7 @@ export async function IssueInstalment(scheduleID, provider, user) {
70
78
  const row = rowResult.Results?.[0];
71
79
  if (!row)
72
80
  return refuse(`No instalment with ID ${scheduleID}.`);
73
- const orderResult = await rv.RunView({ EntityName: ORDER_HEADER_ENTITY, ExtraFilter: `ID = '${RequireUUID(row.OrderHeaderID, 'OrderHeaderID')}'`, Fields: ['ID', 'OrderNumber', 'Status'], ResultType: 'simple' }, user);
81
+ const orderResult = await rv.RunView({ EntityName: ORDER_HEADER_ENTITY, ExtraFilter: `ID = '${RequireUUID(row.OrderHeaderID, 'OrderHeaderID')}'`, Fields: ['ID', 'OrderNumber', 'Status', 'CompanyID'], ResultType: 'simple' }, user);
74
82
  const order = orderResult.Results?.[0];
75
83
  if (!order)
76
84
  return refuse(`Instalment ${scheduleID} belongs to an order that could not be read.`);
@@ -109,27 +117,30 @@ export async function IssueInstalment(scheduleID, provider, user) {
109
117
  if (!lines.Success || !siblings.Success) {
110
118
  return refuse(`Could not read order ${order.OrderNumber} to check its schedule: ${lines.ErrorMessage ?? siblings.ErrorMessage ?? 'unknown error'}`, echo);
111
119
  }
112
- const shortfalls = ScheduleShortfalls(siblings.Results ?? [], lines.Results ?? []);
120
+ const shortfalls = ScheduleShortfalls(siblings.Results ?? [], lines.Results ?? [], order.CompanyID);
113
121
  if (shortfalls.length) {
114
122
  const names = new Map((siblings.Results ?? []).map((s) => [String(s.CompanyID).toLowerCase(), s.Company ?? s.CompanyID]));
115
123
  return refuse(ExplainShortfalls(order.OrderNumber, shortfalls, (id) => String(names.get(id) ?? id)), echo);
116
124
  }
117
- // Position is stable: companies in ID order (as the document builder sorts them), the row's
118
- // own InstallmentNumber, and how many instalments its company has.
119
- const companyIDs = [...new Set((lines.Results ?? []).map((l) => String(l.CompanyID).toLowerCase()))].sort();
120
- const companyIndex = Math.max(0, companyIDs.indexOf(String(row.CompanyID).toLowerCase()));
121
- const mine = (s) => String(s.CompanyID).toLowerCase() === String(row.CompanyID).toLowerCase();
125
+ // The number: the order number, plus the instalment number when the order has more than one
126
+ // (golive #311). Only a row left over from a per-company schedule (one whose company is not
127
+ // the order's, kept because that order had already issued under it) keeps the old company
128
+ // letter, so it cannot collide with what that schedule already issued.
129
+ const orderCompany = String(order.CompanyID).toLowerCase();
130
+ const rowCompany = String(row.CompanyID).toLowerCase();
131
+ const lineCompanyIDs = [...new Set((lines.Results ?? []).map((l) => String(l.CompanyID).toLowerCase()))].sort();
132
+ const legacyCompanyRow = rowCompany !== orderCompany;
133
+ const companyIndex = legacyCompanyRow ? Math.max(0, lineCompanyIDs.indexOf(rowCompany)) : 0;
134
+ const companyCount = legacyCompanyRow ? Math.max(1, lineCompanyIDs.length) : 1;
135
+ const mine = (s) => String(s.CompanyID).toLowerCase() === rowCompany;
122
136
  // THE COUNT INCLUDES CANCELLED ROWS, DELIBERATELY (golive #242, Robert). The suffix exists
123
137
  // to disambiguate, and a cancelled instalment does not give its number back: archiving an
124
138
  // invoice in Bill.com keeps the number, and re-presenting it 422s as a duplicate. Counting
125
- // only live rows meant that cancelling a company's single instalment and adding a
126
- // replacement produced the bare ORD-1234 a second time — the same number on two documents,
127
- // one of which the customer may already hold.
139
+ // only live rows meant that cancelling a single instalment and adding a replacement produced
140
+ // the bare ORD-1234 a second time — the same number on two documents, one of which the
141
+ // customer may already hold.
128
142
  const companyRows = (siblings.Results ?? []).filter(mine);
129
- // The billing slice, by contrast, is taken against LIVE rows only: a cancelled instalment
130
- // bills nothing and must not take a share of any line.
131
- const live = companyRows.filter((s) => s.Status !== 'Canceled');
132
- const documentNumber = InstalmentDocumentNumber(order.OrderNumber, companyIndex, Math.max(1, companyIDs.length), Number(row.InstallmentNumber), companyRows.length);
143
+ const documentNumber = InstalmentDocumentNumber(order.OrderNumber, companyIndex, companyCount, Number(row.InstallmentNumber), companyRows.length);
133
144
  // AND REFUSE IF THAT NUMBER IS ALREADY ON THE ORDER. The count rule above prevents the
134
145
  // collision this ticket found; this catches every other route to one — a hand-stamped row,
135
146
  // an imported schedule, a renumbering — before the number is frozen and sent, rather than
@@ -155,15 +166,38 @@ export async function IssueInstalment(scheduleID, provider, user) {
155
166
  return refuse(`Could not read order ${order.OrderNumber}'s lines to bill this instalment: ${lineEntities.ErrorMessage ?? 'unknown error'}`, echo);
156
167
  }
157
168
  const factory = new OrderJournalEntryFactory(await BuildGLAccountResolver(provider, user), EntityIDFor(ORDER_LINE_ENTITY), EntityIDFor(SUBSCRIPTION_TERM_ENTITY), EntityIDFor(CHARGE_TYPE_ENTITY), provider, user);
158
- let instalmentLines;
169
+ // The row divided among the product companies whose lines it bills (golive #311). Each
170
+ // company's billing slice is taken against ITS pieces of the live rows, in InstallmentNumber
171
+ // order, so every instalment's pieces of a line sum to that line's full amount. A cancelled
172
+ // instalment bills nothing and takes no share of any line.
173
+ const liveRows = (siblings.Results ?? []).filter((s) => s.Status !== 'Canceled');
174
+ const slices = CompanySlices(liveRows, lines.Results ?? [], order.CompanyID);
175
+ const pieces = slices
176
+ .filter((s) => String(s.ID).toLowerCase() === String(row.ID).toLowerCase() && Number(s.Amount) !== 0)
177
+ .sort((a, b) => companyOrder(a.CompanyID, orderCompany) - companyOrder(b.CompanyID, orderCompany) || a.CompanyID.localeCompare(b.CompanyID));
178
+ const billings = [];
159
179
  try {
160
- instalmentLines = await factory.BuildInstalmentLineFacts(lineEntities.Results ?? [], row.CompanyID, invoiceDay);
180
+ for (const piece of pieces) {
181
+ const company = String(piece.CompanyID);
182
+ const companyLines = await factory.BuildInstalmentLineFacts(lineEntities.Results ?? [], company, invoiceDay);
183
+ if (!companyLines.length)
184
+ continue;
185
+ billings.push({
186
+ CompanyID: company,
187
+ Amount: Number(piece.Amount),
188
+ Siblings: slices
189
+ .filter((s) => String(s.CompanyID).toLowerCase() === company.toLowerCase())
190
+ .sort((a, b) => Number(a.InstallmentNumber) - Number(b.InstallmentNumber))
191
+ .map((r) => ({ ID: r.ID, InstallmentNumber: Number(r.InstallmentNumber), Amount: Number(r.Amount), Status: r.Status })),
192
+ Lines: companyLines,
193
+ });
194
+ }
161
195
  }
162
196
  catch (err) {
163
197
  return refuse(err instanceof Error ? err.message : String(err), echo);
164
198
  }
165
- if (!instalmentLines.length) {
166
- return refuse(`Order ${order.OrderNumber} has no lines for the company this instalment bills, so there is nothing to invoice.`, echo);
199
+ if (!billings.length) {
200
+ return refuse(`Order ${order.OrderNumber} has no lines for this instalment to bill, so there is nothing to invoice.`, echo);
167
201
  }
168
202
  // The entity refuses an issue it did not send (D91). Held across EVERY save below, since the
169
203
  // later ones stamp a row that is by then already Invoiced, and released in the `finally`
@@ -188,30 +222,30 @@ export async function IssueInstalment(scheduleID, provider, user) {
188
222
  if (!(await entity.Save())) {
189
223
  throw new Error(entity.LatestResult?.CompleteMessage ?? 'The instalment could not be updated.');
190
224
  }
191
- const depositApplied = DepositReleasedByCompany(depositsBefore, await LoadInstalmentCashFacts(runView, user, order.ID)).get(String(row.CompanyID).toLowerCase()) ?? 0;
192
- const { JournalEntryID: journalEntryID, BilledByLine } = await EmitInstalmentInvoiceEntry({
193
- OrderHeaderPaymentScheduleID: row.ID,
194
- OrderHeaderID: order.ID,
195
- OrderNumber: order.OrderNumber,
196
- CompanyID: row.CompanyID,
197
- InstallmentNumber: Number(row.InstallmentNumber),
198
- DocumentNumber: documentNumber,
199
- Amount: Number(row.Amount),
200
- InvoiceDay: invoiceDay,
201
- DepositApplied: depositApplied,
202
- // `live` is this company's non-Canceled rows; the billing slice is taken
203
- // against them in InstallmentNumber order so every instalment's pieces of a
204
- // line sum to that line's full amount.
205
- Siblings: [...live]
206
- .sort((a, b) => Number(a.InstallmentNumber) - Number(b.InstallmentNumber))
207
- .map((r) => ({
208
- ID: r.ID,
209
- InstallmentNumber: Number(r.InstallmentNumber),
210
- Amount: Number(r.Amount),
211
- Status: r.Status,
212
- })),
213
- Lines: instalmentLines,
214
- }, provider, user);
225
+ const released = DepositReleasedByCompany(depositsBefore, await LoadInstalmentCashFacts(runView, user, order.ID));
226
+ // One billing entry per product company. The row records the first: the order company's
227
+ // when it has lines, otherwise the first company's. Every entry links to the row
228
+ // (LinkedRecordID), so the others are found from it.
229
+ let journalEntryID = null;
230
+ const billedByLine = new Map();
231
+ for (const billing of billings) {
232
+ const result = await EmitInstalmentInvoiceEntry({
233
+ OrderHeaderPaymentScheduleID: row.ID,
234
+ OrderHeaderID: order.ID,
235
+ OrderNumber: order.OrderNumber,
236
+ CompanyID: billing.CompanyID,
237
+ InstallmentNumber: Number(row.InstallmentNumber),
238
+ DocumentNumber: documentNumber,
239
+ Amount: billing.Amount,
240
+ InvoiceDay: invoiceDay,
241
+ DepositApplied: released.get(billing.CompanyID.toLowerCase()) ?? 0,
242
+ Siblings: billing.Siblings,
243
+ Lines: billing.Lines,
244
+ }, provider, user);
245
+ journalEntryID = journalEntryID ?? result.JournalEntryID;
246
+ for (const [lineID, billed] of result.BilledByLine)
247
+ billedByLine.set(lineID, billed);
248
+ }
215
249
  if (journalEntryID) {
216
250
  // Reloaded first: the rollup rewrote AmountPaid and Status when the row became
217
251
  // billed (a fully prepaid row is Paid by now), and saving the stale copy would write
@@ -227,7 +261,7 @@ export async function IssueInstalment(scheduleID, provider, user) {
227
261
  // summary of itself, so they are written by the same act that books the entry and roll
228
262
  // back with it. A separate writer — a trigger, a later sweep — is how a total and the
229
263
  // journal lines it summarises drift apart, and nothing downstream would report it.
230
- for (const [orderLineID, billed] of BilledByLine) {
264
+ for (const [orderLineID, billed] of billedByLine) {
231
265
  // Signed: a reversal line's piece is negative and must still be applied, so the
232
266
  // guard is "did this bill anything", not "is it positive".
233
267
  if (billed === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"IssueInstalmentInvoiceOperation.js","sourceRoot":"","sources":["../src/IssueInstalmentInvoiceOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IssueInstalmentInvoiceOperation.js","sourceRoot":"","sources":["../src/IssueInstalmentInvoiceOperation.ts"],"names":[],"mappings":"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"}
@@ -27,13 +27,34 @@
27
27
  * OP: 'Accounting.CreateJournalEntries' (@mj-biz-apps/accounting-core-entities-server)
28
28
  */
29
29
  import { EntitySaveOptions, ValidationResult } from '@memberjunction/core';
30
- import { OrderHeaderEntity } from '@mj-biz-apps/orders-entities';
30
+ import { OrderHeaderEntity, mjBizAppsOrdersOrderLineEntity } from '@mj-biz-apps/orders-entities';
31
31
  import { type ManualDiscountRequest, type RequestedCharge } from '@mj-biz-apps/orders-entities';
32
+ import { type CoverageOverlap, type CoverageOverlapDecision } from './SubscriptionBehavior.js';
33
+ /** A subscription line whose term overlaps coverage in its family, as a preview reports it. */
34
+ export interface LineCoverageOverlap {
35
+ Line: mjBizAppsOrdersOrderLineEntity;
36
+ Decision: CoverageOverlapDecision;
37
+ Overlaps: CoverageOverlap[];
38
+ }
32
39
  export declare class OrderEntityServer extends OrderHeaderEntity {
33
40
  /** An approved Terms concession, applied by ./PaymentTermsChange.ts, is the only change to a confirmed order's terms. */
34
41
  protected PaymentTermsChangeSanctioned(): boolean;
35
42
  /** Price decompositions produced during this save, written once the lines have IDs (D69). */
36
43
  private _priceComponents;
44
+ /** Lines the renewal pass priced, with the price it wrote; see {@link MarkRenewalPriced}. */
45
+ private _renewalPricedLines;
46
+ /**
47
+ * Record that the renewal pass priced this line (golive #304).
48
+ *
49
+ * A renewal is priced from the prior term, not today's list: a lapsed discount, a grandfathered
50
+ * price raised by the annual increase. That can sit below the engine's price, and it is the
51
+ * price finance chose, not a concession someone typed. While the line still carries the price
52
+ * the pass wrote, the concession gate and the below-engine review treat it as engine-priced.
53
+ * Change the price and both judge it as usual.
54
+ */
55
+ MarkRenewalPriced(line: mjBizAppsOrdersOrderLineEntity): void;
56
+ /** True for a line the renewal pass priced whose price is unchanged; matched by entity or saved ID. */
57
+ private isUneditedRenewalPrice;
37
58
  /** Why a line owes no tax, by line index — written as a zero-amount component (D73). */
38
59
  private _taxReasons;
39
60
  private _manualDiscounts;
@@ -644,12 +665,24 @@ export declare class OrderEntityServer extends OrderHeaderEntity {
644
665
  * the persistence, inside the caller's transaction.
645
666
  */
646
667
  private materializeSubscriptions;
668
+ /**
669
+ * The subscription lines of this draft whose terms overlap coverage in their family, and what
670
+ * confirm will do with each (golive #276). Writes nothing.
671
+ *
672
+ * Runs the same decision pass confirm runs, over the SAVED lines. Lines a bundle would add at
673
+ * confirm are not expanded here, so a band sold inside a bundle is caught at confirm only.
674
+ */
675
+ PreviewCoverageOverlaps(): Promise<LineCoverageOverlap[]>;
647
676
  /**
648
677
  * Evaluate the subscription rules for every pending line, BEFORE any of them is inserted.
649
678
  *
650
679
  * Pure with respect to this app's tables — it reads the catalog and any existing subscription,
651
680
  * then asks the behaviour what to do. Nothing is written, so a rules rejection aborts the
652
681
  * confirm before a single line exists.
682
+ *
683
+ * `preview` turns refusals into answers: a line the rules reject is skipped, and every line
684
+ * whose term overlaps coverage in its family is collected there instead of throwing. That is
685
+ * how `Orders.CheckCoverageOverlap` asks the same question confirm does without confirming.
653
686
  */
654
687
  private decideSubscriptions;
655
688
  /**
@@ -738,7 +771,35 @@ export declare class OrderEntityServer extends OrderHeaderEntity {
738
771
  * the same product under an `AllowMultiple` type.
739
772
  */
740
773
  private findExistingSubscription;
741
- /** Load a subscription plus the end and number of its latest term, by whatever filter. */
774
+ /**
775
+ * The subscription filter for a dedupe match, or null when it names nobody.
776
+ *
777
+ * Match on exactly the axes the BenefitModel says define a duplicate (`DedupeMatch`). An
778
+ * org-held type ignores the stored person entirely (one company membership, however many
779
+ * employees, whoever the order named as its contact); a seat type matches BOTH, so two seats
780
+ * for two people never collide.
781
+ */
782
+ private holderFilter;
783
+ /** Family names by ID, for the overlap message. One read for every family on the order. */
784
+ private loadFamilyNames;
785
+ /**
786
+ * Terms that cover this holder under OTHER bands of the product's family and end on or after
787
+ * `start` (golive #276). Terms after `end` are included so the caller can say when coverage
788
+ * runs out.
789
+ *
790
+ * Bands are the family's other products in the product's own company. A subscription counts
791
+ * unless it is Migrated, and its terms count unless they are Canceled or Lapsed. A Canceled
792
+ * subscription still counts: cancelling stamps one term and leaves the subscription's access
793
+ * running to `Subscription.EndDate`, so its Canceled term counts through that date, and any
794
+ * term it did not stamp counts in full.
795
+ */
796
+ private loadFamilyCoverage;
797
+ /**
798
+ * Load a subscription plus the end and number of its latest term, by whatever filter.
799
+ *
800
+ * When the filter matches several, the most live one wins: Active or Trialing, then Paused,
801
+ * then Canceled, then the rest; among equals, one stored for `personID`, then the newest.
802
+ */
742
803
  private loadSubscriptionState;
743
804
  private createSubscription;
744
805
  /**
@@ -749,7 +810,14 @@ export declare class OrderEntityServer extends OrderHeaderEntity {
749
810
  * worth having; a `SubscriptionEvent` table nobody writes to is just schema.
750
811
  */
751
812
  private logSubscriptionEvent;
752
- /** Extension or reactivation — the term is what changes; the subscription just re-activates. */
813
+ /**
814
+ * Extension or reactivation — the term is what changes; the subscription just re-activates.
815
+ *
816
+ * `renewedOnto` is the product a renewal line names. When it is not the subscription's product,
817
+ * the subscription moved to a successor at renewal (golive #304), and from this term on it is a
818
+ * subscription to the successor: its product and type follow, so the next renewal, entitlement
819
+ * checks and reports all read the product the customer now holds.
820
+ */
753
821
  private touchExistingSubscription;
754
822
  /**
755
823
  * Mint the next `SUB-{seq}` from the SubscriptionSequence singleton.
@@ -1 +1 @@
1
- {"version":3,"file":"OrderEntityServer.d.ts","sourceRoot":"","sources":["../src/OrderEntityServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrderEntityServer.d.ts","sourceRoot":"","sources":["../src/OrderEntityServer.ts"],"names":[],"mappings":"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"}