@mj-biz-apps/orders-core-entities-server 5.27.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 (33) 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/OrderEntityServer.d.ts +71 -3
  10. package/dist/OrderEntityServer.d.ts.map +1 -1
  11. package/dist/OrderEntityServer.js +262 -26
  12. package/dist/OrderEntityServer.js.map +1 -1
  13. package/dist/SpawnRenewalsOperation.d.ts +50 -1
  14. package/dist/SpawnRenewalsOperation.d.ts.map +1 -1
  15. package/dist/SpawnRenewalsOperation.js +210 -19
  16. package/dist/SpawnRenewalsOperation.js.map +1 -1
  17. package/dist/SubscriptionBehavior.d.ts +125 -0
  18. package/dist/SubscriptionBehavior.d.ts.map +1 -1
  19. package/dist/SubscriptionBehavior.js +147 -5
  20. package/dist/SubscriptionBehavior.js.map +1 -1
  21. package/dist/SubscriptionFamilyRules.d.ts +34 -0
  22. package/dist/SubscriptionFamilyRules.d.ts.map +1 -0
  23. package/dist/SubscriptionFamilyRules.js +96 -0
  24. package/dist/SubscriptionFamilyRules.js.map +1 -0
  25. package/dist/entity-names.d.ts +2 -0
  26. package/dist/entity-names.d.ts.map +1 -1
  27. package/dist/entity-names.js +2 -0
  28. package/dist/entity-names.js.map +1 -1
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -0
  32. package/dist/index.js.map +1 -1
  33. package/package.json +13 -13
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview `Orders.CheckCoverageOverlap` — would confirming this draft create coverage that
3
+ * overlaps another band the holder already has (golive #276)?
4
+ *
5
+ * WHY THIS IS AN OPERATION AND NOT A CLIENT QUERY. Who a line's subscriber is (ship-to falling back
6
+ * to the header, an organization inferred from the person's affiliation), which axes define a
7
+ * duplicate (the type's BenefitModel), and what the term's dates will be (the type's start and end
8
+ * rules) are all decided on the server at confirm. A notice computed from its own queries would be
9
+ * a second copy of those rules, and it would disagree with the refusal the first time either
10
+ * changed. So the editor asks the same code confirm refuses with.
11
+ *
12
+ * READ-ONLY: it loads the order and runs the confirm-time decision pass in preview, which writes
13
+ * nothing.
14
+ *
15
+ * CONNECTS TO:
16
+ * CODE: OrderEntityServer.PreviewCoverageOverlaps, SubscriptionBehavior.DecideCoverageOverlap
17
+ * UI: the order lines editor's coverage notice
18
+ *
19
+ * @module @mj-biz-apps/orders-core-entities-server
20
+ */
21
+ import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
22
+ import { OrdersCheckCoverageOverlapOperation as OrdersCheckCoverageOverlapOperationBase, type CheckCoverageOverlapInput, type CheckCoverageOverlapOutput } from '@mj-biz-apps/orders-entities';
23
+ export declare class CheckCoverageOverlapOperation extends OrdersCheckCoverageOverlapOperationBase {
24
+ protected InternalExecute(input: CheckCoverageOverlapInput, provider: IMetadataProvider, user: UserInfo): Promise<CheckCoverageOverlapOutput>;
25
+ }
26
+ /** Tree-shaking anchor — call from the server bootstrap so @RegisterClass is retained. */
27
+ export declare function LoadCheckCoverageOverlapOperation(): void;
28
+ //# sourceMappingURL=CheckCoverageOverlapOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckCoverageOverlapOperation.d.ts","sourceRoot":"","sources":["../src/CheckCoverageOverlapOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAA0B,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErG,OAAO,EACH,mCAAmC,IAAI,uCAAuC,EAC9E,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAClC,MAAM,8BAA8B,CAAC;AAStC,qBACa,6BAA8B,SAAQ,uCAAuC;cACtE,eAAe,CAC3B,KAAK,EAAE,yBAAyB,EAChC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,0BAA0B,CAAC;CA4BzC;AAED,0FAA0F;AAC1F,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
@@ -0,0 +1,70 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * @fileoverview `Orders.CheckCoverageOverlap` — would confirming this draft create coverage that
9
+ * overlaps another band the holder already has (golive #276)?
10
+ *
11
+ * WHY THIS IS AN OPERATION AND NOT A CLIENT QUERY. Who a line's subscriber is (ship-to falling back
12
+ * to the header, an organization inferred from the person's affiliation), which axes define a
13
+ * duplicate (the type's BenefitModel), and what the term's dates will be (the type's start and end
14
+ * rules) are all decided on the server at confirm. A notice computed from its own queries would be
15
+ * a second copy of those rules, and it would disagree with the refusal the first time either
16
+ * changed. So the editor asks the same code confirm refuses with.
17
+ *
18
+ * READ-ONLY: it loads the order and runs the confirm-time decision pass in preview, which writes
19
+ * nothing.
20
+ *
21
+ * CONNECTS TO:
22
+ * CODE: OrderEntityServer.PreviewCoverageOverlaps, SubscriptionBehavior.DecideCoverageOverlap
23
+ * UI: the order lines editor's coverage notice
24
+ *
25
+ * @module @mj-biz-apps/orders-core-entities-server
26
+ */
27
+ import { BaseRemotableOperation } from '@memberjunction/core';
28
+ import { RegisterClass } from '@memberjunction/global';
29
+ import { OrdersCheckCoverageOverlapOperation as OrdersCheckCoverageOverlapOperationBase, } from '@mj-biz-apps/orders-entities';
30
+ import { RequireUUID } from './sql-guards.js';
31
+ const ORDER_ENTITY = 'MJ_BizApps_Orders: Order Headers';
32
+ const day = (d) => d.toISOString().slice(0, 10);
33
+ let CheckCoverageOverlapOperation = class CheckCoverageOverlapOperation extends OrdersCheckCoverageOverlapOperationBase {
34
+ async InternalExecute(input, provider, user) {
35
+ const orderID = RequireUUID(input?.OrderHeaderID, 'OrderHeaderID');
36
+ const order = await provider.GetEntityObject(ORDER_ENTITY, user);
37
+ if (!(await order.Load(orderID))) {
38
+ throw new Error(`Order ${orderID} does not exist, so its coverage cannot be checked.`);
39
+ }
40
+ // A booked order has already created its subscriptions; there is nothing left to warn about.
41
+ if (order.Status !== 'Draft')
42
+ return { Lines: [] };
43
+ const found = await order.PreviewCoverageOverlaps();
44
+ return {
45
+ Lines: found
46
+ .filter((f) => f.Decision.Outcome !== 'None')
47
+ .map((f) => ({
48
+ OrderLineID: f.Line.ID,
49
+ Outcome: f.Decision.Outcome,
50
+ Message: f.Decision.Message ?? '',
51
+ Overlaps: f.Overlaps.map((o) => ({
52
+ SubscriptionID: o.SubscriptionID,
53
+ SubscriptionNumber: o.SubscriptionNumber,
54
+ ProductName: o.ProductName,
55
+ CoverageStart: day(o.CoverageStart),
56
+ CoverageEnd: day(o.CoverageEnd),
57
+ })),
58
+ })),
59
+ };
60
+ }
61
+ };
62
+ CheckCoverageOverlapOperation = __decorate([
63
+ RegisterClass(BaseRemotableOperation, 'Orders.CheckCoverageOverlap')
64
+ ], CheckCoverageOverlapOperation);
65
+ export { CheckCoverageOverlapOperation };
66
+ /** Tree-shaking anchor — call from the server bootstrap so @RegisterClass is retained. */
67
+ export function LoadCheckCoverageOverlapOperation() {
68
+ // intentionally empty
69
+ }
70
+ //# sourceMappingURL=CheckCoverageOverlapOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckCoverageOverlapOperation.js","sourceRoot":"","sources":["../src/CheckCoverageOverlapOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,sBAAsB,EAAyC,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,mCAAmC,IAAI,uCAAuC,GAGjF,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,MAAM,GAAG,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAG/C,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,uCAAuC;IAC5E,KAAK,CAAC,eAAe,CAC3B,KAAgC,EAChC,QAA2B,EAC3B,IAAc;QAEd,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAoB,YAAY,EAAE,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,qDAAqD,CAAC,CAAC;QAC3F,CAAC;QACD,6FAA6F;QAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAEnD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACpD,OAAO;YACH,KAAK,EAAE,KAAK;iBACP,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACT,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;gBACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAiE;gBACrF,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7B,cAAc,EAAE,CAAC,CAAC,cAAc;oBAChC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;oBACxC,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;oBACnC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;iBAClC,CAAC,CAAC;aACN,CAAC,CAAC;SACV,CAAC;IACN,CAAC;CACJ,CAAA;AAjCY,6BAA6B;IADzC,aAAa,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;GACxD,6BAA6B,CAiCzC;;AAED,0FAA0F;AAC1F,MAAM,UAAU,iCAAiC;IAC7C,sBAAsB;AAC1B,CAAC"}
@@ -18,6 +18,12 @@
18
18
  * as unresolved: a booked order's confirmer can never be filled in afterwards, so
19
19
  * an unresolved row could never be cleared and its month never close.
20
20
  *
21
+ * AN ACKNOWLEDGED BAND OVERLAP IS NOT RAISED. A SameFamily pair whose later line set
22
+ * `AcknowledgesCoverageOverlap` was confirmed by someone told that both would be billed; raising it
23
+ * would put a decision already made back on finance's list. The query still lists it, flagged.
24
+ * SameProduct and SameCategory pairs are raised whatever the flag says: the acknowledgment is offered
25
+ * only for another band of the same family, so on those pairs it acknowledges nothing.
26
+ *
21
27
  * SETTINGS COME FROM THE EXCEPTION TYPE and nowhere else. A missing or inactive
22
28
  * OVERLAPPING_SUBSCRIPTION type means the check does not run; a configuration without a boolean
23
29
  * `IncludeSameCategory` is refused rather than defaulted, because a default here would decide on
@@ -45,7 +51,7 @@ export declare const OVERLAPPING_SUBSCRIPTIONS_QUERY_CATEGORY = "Orders";
45
51
  /** One row of the "Overlapping Subscriptions" query — the columns this check reads. */
46
52
  export interface OverlappingSubscriptionRow {
47
53
  CompanyID: string;
48
- MatchBasis: 'SameProduct' | 'SameCategory';
54
+ MatchBasis: 'SameProduct' | 'SameFamily' | 'SameCategory';
49
55
  OverlapStart: Date | string | null;
50
56
  OverlapEnd: Date | string | null;
51
57
  EarlierSubscriptionID: string;
@@ -54,13 +60,18 @@ export interface OverlappingSubscriptionRow {
54
60
  LaterSubscriptionNumber: string | null;
55
61
  LaterOrderHeaderID: string | null;
56
62
  LaterOverlappingTermsAmount: number | null;
63
+ /** The later subscription's `OrderLine.AcknowledgesCoverageOverlap`. */
64
+ LaterOverlapAcknowledged?: boolean | null;
57
65
  }
58
66
  /**
59
67
  * The type's `IncludeSameCategory` setting, or an error message when the configuration does not
60
68
  * state it as a boolean. Never defaulted — see the header.
61
69
  */
62
70
  export declare function ReadIncludeSameCategory(configuration: Record<string, unknown> | null | undefined): boolean | string;
63
- /** The pairs to raise: every row, less the SameCategory ones when the type excludes them. */
71
+ /**
72
+ * The pairs to raise: every row, less acknowledged SameFamily pairs, and less the SameCategory ones
73
+ * when the type excludes them.
74
+ */
64
75
  export declare function PairsToRaise(rows: OverlappingSubscriptionRow[], includeSameCategory: boolean): OverlappingSubscriptionRow[];
65
76
  export declare function OverlapDedupeKey(row: Pick<OverlappingSubscriptionRow, 'EarlierSubscriptionID' | 'LaterSubscriptionID'>): string;
66
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DetectOverlappingSubscriptionsOperation.d.ts","sourceRoot":"","sources":["../src/DetectOverlappingSubscriptionsOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EAKjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEH,KAAK,yCAAyC,EAC9C,KAAK,0CAA0C,EAElD,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGH,KAAK,uBAAuB,EAE/B,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,wCAAwC,WAAW,CAAC;AASjE,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,aAAa,GAAG,cAAc,CAAC;IAC3C,YAAY,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAOnH;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,IAAI,EAAE,0BAA0B,EAAE,EAAE,mBAAmB,EAAE,OAAO,GAAG,0BAA0B,EAAE,CAE3H;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,0BAA0B,EAAE,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,MAAM,CAE/H;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,0BAA0B,EAC/B,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,aAAa,EAAE,MAAM,GACtB,uBAAuB,CAoBzB;AAMD,qBACa,uCAAwC,SAAQ,sBAAsB,CAC/E,yCAAyC,EACzC,0CAA0C,CAC7C;IACU,YAAY,SAA2C;cAE9C,eAAe,CAC3B,KAAK,EAAE,yCAAyC,EAChD,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,0CAA0C,CAAC;YA2DxC,eAAe;IAW7B,2FAA2F;YAC7E,cAAc;YA6Bd,UAAU;CAwC3B;AAED,iGAAiG;AACjG,wBAAgB,2CAA2C,IAAI,IAAI,CAElE"}
1
+ {"version":3,"file":"DetectOverlappingSubscriptionsOperation.d.ts","sourceRoot":"","sources":["../src/DetectOverlappingSubscriptionsOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,EACH,sBAAsB,EACtB,iBAAiB,EAKjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEH,KAAK,yCAAyC,EAC9C,KAAK,0CAA0C,EAElD,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGH,KAAK,uBAAuB,EAE/B,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,kCAAkC,6BAA6B,CAAC;AAC7E,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,wCAAwC,WAAW,CAAC;AASjE,uFAAuF;AACvF,MAAM,WAAW,0BAA0B;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC;IAC1D,YAAY,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAOnH;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,0BAA0B,EAAE,EAAE,mBAAmB,EAAE,OAAO,GAAG,0BAA0B,EAAE,CAM3H;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,0BAA0B,EAAE,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,MAAM,CAE/H;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,0BAA0B,EAC/B,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,aAAa,EAAE,MAAM,GACtB,uBAAuB,CAyBzB;AAMD,qBACa,uCAAwC,SAAQ,sBAAsB,CAC/E,yCAAyC,EACzC,0CAA0C,CAC7C;IACU,YAAY,SAA2C;cAE9C,eAAe,CAC3B,KAAK,EAAE,yCAAyC,EAChD,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,0CAA0C,CAAC;YA2DxC,eAAe;IAW7B,2FAA2F;YAC7E,cAAc;YA6Bd,UAAU;CAwC3B;AAED,iGAAiG;AACjG,wBAAgB,2CAA2C,IAAI,IAAI,CAElE"}
@@ -24,6 +24,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
24
24
  * as unresolved: a booked order's confirmer can never be filled in afterwards, so
25
25
  * an unresolved row could never be cleared and its month never close.
26
26
  *
27
+ * AN ACKNOWLEDGED BAND OVERLAP IS NOT RAISED. A SameFamily pair whose later line set
28
+ * `AcknowledgesCoverageOverlap` was confirmed by someone told that both would be billed; raising it
29
+ * would put a decision already made back on finance's list. The query still lists it, flagged.
30
+ * SameProduct and SameCategory pairs are raised whatever the flag says: the acknowledgment is offered
31
+ * only for another band of the same family, so on those pairs it acknowledges nothing.
32
+ *
27
33
  * SETTINGS COME FROM THE EXCEPTION TYPE and nowhere else. A missing or inactive
28
34
  * OVERLAPPING_SUBSCRIPTION type means the check does not run; a configuration without a boolean
29
35
  * `IncludeSameCategory` is refused rather than defaulted, because a default here would decide on
@@ -69,9 +75,13 @@ export function ReadIncludeSameCategory(configuration) {
69
75
  return (`The ${OVERLAPPING_SUBSCRIPTION_TYPE_CODE} exception type's Configuration must set IncludeSameCategory ` +
70
76
  `to true or false; it has ${value === undefined ? 'no such setting' : JSON.stringify(value)}.`);
71
77
  }
72
- /** The pairs to raise: every row, less the SameCategory ones when the type excludes them. */
78
+ /**
79
+ * The pairs to raise: every row, less acknowledged SameFamily pairs, and less the SameCategory ones
80
+ * when the type excludes them.
81
+ */
73
82
  export function PairsToRaise(rows, includeSameCategory) {
74
- return includeSameCategory ? rows : rows.filter((row) => row.MatchBasis !== 'SameCategory');
83
+ return rows.filter((row) => !(row.MatchBasis === 'SameFamily' && row.LaterOverlapAcknowledged) &&
84
+ (includeSameCategory || row.MatchBasis !== 'SameCategory'));
75
85
  }
76
86
  export function OverlapDedupeKey(row) {
77
87
  return `${row.EarlierSubscriptionID}|${row.LaterSubscriptionID}`;
@@ -87,7 +97,11 @@ export function BuildOverlapException(row, confirmedBy, exceptionDate) {
87
97
  const creator = row.LaterOrderHeaderID ? confirmedBy.get(row.LaterOrderHeaderID.toUpperCase()) ?? null : null;
88
98
  const later = row.LaterSubscriptionNumber ?? row.LaterSubscriptionID;
89
99
  const earlier = row.EarlierSubscriptionNumber ?? row.EarlierSubscriptionID;
90
- const basis = row.MatchBasis === 'SameProduct' ? 'the same product' : 'a product in the same category with the same subscription type';
100
+ const basis = row.MatchBasis === 'SameProduct'
101
+ ? 'the same product'
102
+ : row.MatchBasis === 'SameFamily'
103
+ ? 'another band of the same subscription family'
104
+ : 'a product in the same category with the same subscription type';
91
105
  const window = `${ToISODate(row.OverlapStart) ?? '?'} to ${ToISODate(row.OverlapEnd) ?? '?'}`;
92
106
  return {
93
107
  TypeCode: OVERLAPPING_SUBSCRIPTION_TYPE_CODE,
@@ -1 +1 @@
1
- {"version":3,"file":"DetectOverlappingSubscriptionsOperation.js","sourceRoot":"","sources":["../src/DetectOverlappingSubscriptionsOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,sBAAsB,EAGtB,SAAS,EACT,QAAQ,EACR,OAAO,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,SAAS,GAIZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,6BAA6B,EAC7B,0BAA0B,GAG7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAC,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AAC7E,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,wCAAwC,GAAG,QAAQ,CAAC;AACjE,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAC/D,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAE/D,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,4DAA4D;AAC5D,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAgBlC,qGAAqG;AAErG;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,aAAyD;IAC7F,MAAM,KAAK,GAAG,aAAa,EAAE,mBAAmB,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,CACH,OAAO,kCAAkC,+DAA+D;QACxG,4BAA4B,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CACjG,CAAC;AACN,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,IAAkC,EAAE,mBAA4B;IACzF,OAAO,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAsF;IACnH,OAAO,GAAG,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACjC,GAA+B,EAC/B,WAAwC,EACxC,aAAqB;IAErB,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9G,MAAM,KAAK,GAAG,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,mBAAmB,CAAC;IACrE,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,IAAI,GAAG,CAAC,qBAAqB,CAAC;IAC3E,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gEAAgE,CAAC;IACvI,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;IAC9F,OAAO;QACH,QAAQ,EAAE,kCAAkC;QAC5C,gBAAgB,EAAE,mBAAmB;QACrC,cAAc,EAAE,GAAG,CAAC,mBAAmB;QACvC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,GAAG,CAAC,2BAA2B,IAAI,IAAI;QAC/C,aAAa,EAAE,aAAa;QAC5B,OAAO,EACH,gBAAgB,KAAK,0BAA0B,OAAO,6BAA6B,MAAM,IAAI;YAC7F,GAAG,KAAK,0EAA0E;QACtF,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC;QAChC,qBAAqB,EAAE,OAAO;QAC9B,iBAAiB,EAAE,KAAK;KAC3B,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,MAA4D;IAChF,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;AAChG,CAAC;AAGM,IAAM,uCAAuC,GAA7C,MAAM,uCAAwC,SAAQ,sBAG5D;IAHM;;QAII,iBAAY,GAAG,uCAAuC,CAAC;IAkJlE,CAAC;IAhJa,KAAK,CAAC,eAAe,CAC3B,KAAgD,EAChD,QAA2B,EAC3B,IAAc;QAEd,2FAA2F;QAC3F,yCAAyC;QACzC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAW,CAAC;QAEpG,MAAM,GAAG,GAA+C;YACpD,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,aAAa;YAC5B,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,uFAAuF;QACvF,MAAM,IAAI,GAAG,MAAM,6BAA6B,CAAC,kCAAkC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,GAAG,CAAC,OAAO,GAAG,OAAO,kCAAkC,6EAA6E,CAAC;YACrI,SAAS,CAAC,0CAA0C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,GAAG,CAAC;QACf,CAAC;QACD,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAEtB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxE,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACjF,GAAG,CAAC,OAAO,GAAG,mBAAmB,CAAC;YAClC,OAAO,GAAG,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACtD,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,OAAO,GAAG,0CAA0C,IAAI,CAAC,MAAM,kBAAkB,CAAC;YACtF,OAAO,GAAG,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;QAE9F,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACvE,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClG,CAAC;QAED,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACtC,GAAG,CAAC,OAAO;YACP,GAAG,KAAK,CAAC,MAAM,8BAA8B,aAAa,KAAK,GAAG,CAAC,OAAO,wBAAwB;gBAClG,GAAG,GAAG,CAAC,aAAa,oBAAoB,GAAG,CAAC,OAAO,UAAU;gBAC7D,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChF,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAA2B,EAAE,IAAc;QACrE,MAAM,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,QAAwC,CAAC,CAAC,QAAQ,CAChF,EAAE,SAAS,EAAE,+BAA+B,EAAE,YAAY,EAAE,wCAAwC,EAAE,EACtG,IAAI,CACP,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,+BAA+B,mBAAmB,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAiC,CAAC;IAClE,CAAC;IAED,2FAA2F;IACnF,KAAK,CAAC,cAAc,CACxB,KAAmC,EACnC,QAA2B,EAC3B,IAAc;QAEd,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,qBAAqB,EAAE,CAAC;YAC1E,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB,CAAC,EAAE,oBAAoB,CAAC,CAAC;YACrG,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC3B;gBACI,UAAU,EAAE,mBAAmB;gBAC/B,WAAW,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBACnC,UAAU,EAAE,QAAQ;aACvB,EACD,IAAI,CACP,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;YAChH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,iBAAiB;oBAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClG,CAAC;QACL,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,UAAU,CACpB,KAAgC,EAChC,GAA+C,EAC/C,QAA2B,EAC3B,IAAc;QAEd,MAAM,EAAE,GAAG,0BAA0B,CACjC,mCAAmC,EACnC,0BAA0B,CAC7B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,sDAAsD,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;YACjI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAA0C,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACnJ,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,yFAAyF;YACzF,mFAAmF;YACnF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClH,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YACtE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;oBACtB,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,cAAc;oBACrD,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,sCAAsC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;iBAClG,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,OAAO;gBAAE,GAAG,CAAC,OAAO,EAAE,CAAC;iBACxB,IAAI,CAAC,CAAC,OAAO;gBAAE,GAAG,CAAC,OAAO,EAAE,CAAC;;gBAC7B,GAAG,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;CACJ,CAAA;AAtJY,uCAAuC;IADnD,aAAa,CAAC,sBAAsB,EAAE,uCAAuC,CAAC;GAClE,uCAAuC,CAsJnD;;AAED,iGAAiG;AACjG,MAAM,UAAU,2CAA2C;IACvD,KAAK,uCAAuC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"DetectOverlappingSubscriptionsOperation.js","sourceRoot":"","sources":["../src/DetectOverlappingSubscriptionsOperation.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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"}