@mj-biz-apps/orders-core-entities-server 5.21.0 → 5.23.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 (145) hide show
  1. package/dist/AccountingBridge.d.ts +65 -1
  2. package/dist/AccountingBridge.d.ts.map +1 -1
  3. package/dist/AccountingBridge.js +75 -1
  4. package/dist/AccountingBridge.js.map +1 -1
  5. package/dist/AmendArrangementOperation.d.ts +78 -0
  6. package/dist/AmendArrangementOperation.d.ts.map +1 -0
  7. package/dist/AmendArrangementOperation.js +187 -0
  8. package/dist/AmendArrangementOperation.js.map +1 -0
  9. package/dist/BasePaymentProvider.d.ts +21 -0
  10. package/dist/BasePaymentProvider.d.ts.map +1 -1
  11. package/dist/BasePaymentProvider.js +4 -0
  12. package/dist/BasePaymentProvider.js.map +1 -1
  13. package/dist/BundleEngine.d.ts +7 -1
  14. package/dist/BundleEngine.d.ts.map +1 -1
  15. package/dist/BundleEngine.js +1 -0
  16. package/dist/BundleEngine.js.map +1 -1
  17. package/dist/CheckoutSessionService.d.ts +16 -1
  18. package/dist/CheckoutSessionService.d.ts.map +1 -1
  19. package/dist/CheckoutSessionService.js +141 -17
  20. package/dist/CheckoutSessionService.js.map +1 -1
  21. package/dist/CheckoutStepLog.d.ts +61 -0
  22. package/dist/CheckoutStepLog.d.ts.map +1 -0
  23. package/dist/CheckoutStepLog.js +143 -0
  24. package/dist/CheckoutStepLog.js.map +1 -0
  25. package/dist/ConcessionApprovalListener.d.ts +17 -0
  26. package/dist/ConcessionApprovalListener.d.ts.map +1 -0
  27. package/dist/ConcessionApprovalListener.js +113 -0
  28. package/dist/ConcessionApprovalListener.js.map +1 -0
  29. package/dist/ConcessionApprovalTask.d.ts +139 -0
  30. package/dist/ConcessionApprovalTask.d.ts.map +1 -0
  31. package/dist/ConcessionApprovalTask.js +467 -0
  32. package/dist/ConcessionApprovalTask.js.map +1 -0
  33. package/dist/ConcessionGate.d.ts +122 -0
  34. package/dist/ConcessionGate.d.ts.map +1 -0
  35. package/dist/ConcessionGate.js +317 -0
  36. package/dist/ConcessionGate.js.map +1 -0
  37. package/dist/DeliveryBehavior.d.ts +6 -1
  38. package/dist/DeliveryBehavior.d.ts.map +1 -1
  39. package/dist/DeliveryBehavior.js +8 -0
  40. package/dist/DeliveryBehavior.js.map +1 -1
  41. package/dist/DetectOverlappingSubscriptionsOperation.d.ts +84 -0
  42. package/dist/DetectOverlappingSubscriptionsOperation.d.ts.map +1 -0
  43. package/dist/DetectOverlappingSubscriptionsOperation.js +237 -0
  44. package/dist/DetectOverlappingSubscriptionsOperation.js.map +1 -0
  45. package/dist/DetectUnattestedProgressOperation.d.ts +52 -0
  46. package/dist/DetectUnattestedProgressOperation.d.ts.map +1 -0
  47. package/dist/DetectUnattestedProgressOperation.js +186 -0
  48. package/dist/DetectUnattestedProgressOperation.js.map +1 -0
  49. package/dist/EntitlementBehavior.d.ts +17 -0
  50. package/dist/EntitlementBehavior.d.ts.map +1 -1
  51. package/dist/EntitlementBehavior.js +13 -0
  52. package/dist/EntitlementBehavior.js.map +1 -1
  53. package/dist/EntitlementEngine.d.ts +7 -1
  54. package/dist/EntitlementEngine.d.ts.map +1 -1
  55. package/dist/EntitlementEngine.js +42 -1
  56. package/dist/EntitlementEngine.js.map +1 -1
  57. package/dist/EntitlementGrantEntityServer.d.ts +24 -0
  58. package/dist/EntitlementGrantEntityServer.d.ts.map +1 -0
  59. package/dist/EntitlementGrantEntityServer.js +114 -0
  60. package/dist/EntitlementGrantEntityServer.js.map +1 -0
  61. package/dist/GetProgressWorklistOperation.d.ts +6 -0
  62. package/dist/GetProgressWorklistOperation.d.ts.map +1 -1
  63. package/dist/GetProgressWorklistOperation.js +19 -2
  64. package/dist/GetProgressWorklistOperation.js.map +1 -1
  65. package/dist/IntentDescription.d.ts +46 -0
  66. package/dist/IntentDescription.d.ts.map +1 -0
  67. package/dist/IntentDescription.js +137 -0
  68. package/dist/IntentDescription.js.map +1 -0
  69. package/dist/OrderConcessionEntityServer.d.ts +93 -0
  70. package/dist/OrderConcessionEntityServer.d.ts.map +1 -0
  71. package/dist/OrderConcessionEntityServer.js +477 -0
  72. package/dist/OrderConcessionEntityServer.js.map +1 -0
  73. package/dist/OrderEntityServer.d.ts +21 -0
  74. package/dist/OrderEntityServer.d.ts.map +1 -1
  75. package/dist/OrderEntityServer.js +131 -1
  76. package/dist/OrderEntityServer.js.map +1 -1
  77. package/dist/OrderLineEntityServer.d.ts +19 -0
  78. package/dist/OrderLineEntityServer.d.ts.map +1 -1
  79. package/dist/OrderLineEntityServer.js +29 -0
  80. package/dist/OrderLineEntityServer.js.map +1 -1
  81. package/dist/OrdersSettings.d.ts +9 -0
  82. package/dist/OrdersSettings.d.ts.map +1 -1
  83. package/dist/OrdersSettings.js +12 -0
  84. package/dist/OrdersSettings.js.map +1 -1
  85. package/dist/OutboundEvents.d.ts +116 -0
  86. package/dist/OutboundEvents.d.ts.map +1 -0
  87. package/dist/OutboundEvents.js +273 -0
  88. package/dist/OutboundEvents.js.map +1 -0
  89. package/dist/PaymentIntentService.d.ts +5 -0
  90. package/dist/PaymentIntentService.d.ts.map +1 -1
  91. package/dist/PaymentIntentService.js +3 -0
  92. package/dist/PaymentIntentService.js.map +1 -1
  93. package/dist/PaymentTermsChange.d.ts +33 -0
  94. package/dist/PaymentTermsChange.d.ts.map +1 -0
  95. package/dist/PaymentTermsChange.js +129 -0
  96. package/dist/PaymentTermsChange.js.map +1 -0
  97. package/dist/PaymentTermsSanction.d.ts +5 -0
  98. package/dist/PaymentTermsSanction.d.ts.map +1 -0
  99. package/dist/PaymentTermsSanction.js +21 -0
  100. package/dist/PaymentTermsSanction.js.map +1 -0
  101. package/dist/PriceBelowEngineExceptions.d.ts +57 -0
  102. package/dist/PriceBelowEngineExceptions.d.ts.map +1 -0
  103. package/dist/PriceBelowEngineExceptions.js +85 -0
  104. package/dist/PriceBelowEngineExceptions.js.map +1 -0
  105. package/dist/ProgressJudgmentCall.d.ts +69 -0
  106. package/dist/ProgressJudgmentCall.d.ts.map +1 -0
  107. package/dist/ProgressJudgmentCall.js +60 -0
  108. package/dist/ProgressJudgmentCall.js.map +1 -0
  109. package/dist/RecordProgressOperation.d.ts +3 -1
  110. package/dist/RecordProgressOperation.d.ts.map +1 -1
  111. package/dist/RecordProgressOperation.js +21 -1
  112. package/dist/RecordProgressOperation.js.map +1 -1
  113. package/dist/ReplayCheckoutStepOperation.d.ts +28 -0
  114. package/dist/ReplayCheckoutStepOperation.d.ts.map +1 -0
  115. package/dist/ReplayCheckoutStepOperation.js +97 -0
  116. package/dist/ReplayCheckoutStepOperation.js.map +1 -0
  117. package/dist/SpawnRenewalsOperation.d.ts +2 -0
  118. package/dist/SpawnRenewalsOperation.d.ts.map +1 -1
  119. package/dist/SpawnRenewalsOperation.js +24 -0
  120. package/dist/SpawnRenewalsOperation.js.map +1 -1
  121. package/dist/StripePaymentProvider.d.ts +2 -1
  122. package/dist/StripePaymentProvider.d.ts.map +1 -1
  123. package/dist/StripePaymentProvider.js +16 -0
  124. package/dist/StripePaymentProvider.js.map +1 -1
  125. package/dist/SubscriptionTermEntityServer.d.ts +25 -0
  126. package/dist/SubscriptionTermEntityServer.d.ts.map +1 -0
  127. package/dist/SubscriptionTermEntityServer.js +46 -0
  128. package/dist/SubscriptionTermEntityServer.js.map +1 -0
  129. package/dist/TermExtension.d.ts +52 -0
  130. package/dist/TermExtension.d.ts.map +1 -0
  131. package/dist/TermExtension.js +442 -0
  132. package/dist/TermExtension.js.map +1 -0
  133. package/dist/TermExtensionPlan.d.ts +101 -0
  134. package/dist/TermExtensionPlan.d.ts.map +1 -0
  135. package/dist/TermExtensionPlan.js +109 -0
  136. package/dist/TermExtensionPlan.js.map +1 -0
  137. package/dist/entity-names.d.ts +4 -0
  138. package/dist/entity-names.d.ts.map +1 -1
  139. package/dist/entity-names.js +4 -0
  140. package/dist/entity-names.js.map +1 -1
  141. package/dist/index.d.ts +24 -3
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +21 -1
  144. package/dist/index.js.map +1 -1
  145. package/package.json +18 -23
@@ -17,7 +17,7 @@
17
17
  * resolves by key — but that is a different package (`accounting-server`, wired up by the host app's
18
18
  * resolver paths) and is unaffected by how this one is imported.
19
19
  */
20
- import { IMetadataProvider, UserInfo } from '@memberjunction/core';
20
+ import { BaseRemotableOperation, IMetadataProvider, UserInfo } from '@memberjunction/core';
21
21
  import { GLAccountResolver, type ResolverEntityIDs } from './GLAccountResolver.js';
22
22
  import type { IntercompanyLookup } from './PaymentAllocationFactory.js';
23
23
  /** The subset of `AccountingEngineBase` used here, declared structurally so there is no type import. */
@@ -158,4 +158,68 @@ export interface CreateJournalEntriesOutcome {
158
158
  * @throws when the operation is unregistered, the call fails, or accounting refuses the drafts
159
159
  */
160
160
  export declare function SubmitJournalEntryDrafts(drafts: unknown[], what: string, provider: IMetadataProvider, user: UserInfo): Promise<CreateJournalEntriesOutcome>;
161
+ /** One exception type as `Accounting.GetFinanceExceptionTypes` reports it. */
162
+ export interface FinanceExceptionTypeInfo {
163
+ Code: string;
164
+ IsActive: boolean;
165
+ Configuration: Record<string, unknown>;
166
+ }
167
+ /** One exception to raise, in the shape `Accounting.RaiseFinanceExceptions` takes. */
168
+ export interface FinanceExceptionToRaise {
169
+ TypeCode: string;
170
+ /** MJ entity name; accounting resolves it to SourceEntityID. */
171
+ SourceEntityName: string;
172
+ SourceRecordID: string;
173
+ CompanyID: string;
174
+ Amount?: number | null;
175
+ /** `YYYY-MM-DD` — the month the exception belongs to. */
176
+ ExceptionDate: string;
177
+ Summary: string;
178
+ DedupeKey: string;
179
+ SourceCreatedByUserID?: string | null;
180
+ /** True when a creator exists but has no linked login. */
181
+ CreatorUnresolved?: boolean;
182
+ }
183
+ /** What `Accounting.RaiseFinanceExceptions` answers with. */
184
+ export interface RaiseFinanceExceptionsOutcome {
185
+ Success: boolean;
186
+ Results: Array<{
187
+ Index: number;
188
+ FinanceExceptionID?: string;
189
+ Created: boolean;
190
+ Skipped?: boolean;
191
+ }>;
192
+ Errors?: Array<{
193
+ Index?: number;
194
+ Code: string;
195
+ Message: string;
196
+ }>;
197
+ }
198
+ /**
199
+ * The accounting operation registered under `key`, or a throw naming `what` could not be done.
200
+ *
201
+ * `TryCreateInstance`, not `CreateInstance`: for an unregistered key `CreateInstance` hands back a
202
+ * hollow `BaseRemotableOperation` rather than null, so a null check alone would never fire and the
203
+ * call would route with no operation key.
204
+ */
205
+ export declare function ResolveAccountingOperation<I, O>(key: string, what: string): BaseRemotableOperation<I, O>;
206
+ /**
207
+ * The ACTIVE configuration of one finance exception type, or null when accounting has no such type
208
+ * or has switched it off — in which case the caller skips. No defaults are invented here: the
209
+ * thresholds are finance's to set, and a guessed one would raise a list nobody asked for.
210
+ *
211
+ * @throws when the operation is unregistered or the read fails
212
+ */
213
+ export declare function GetActiveFinanceExceptionType(code: string, provider: IMetadataProvider, user: UserInfo): Promise<FinanceExceptionTypeInfo | null>;
214
+ /**
215
+ * Raise finance exceptions into accounting's review list and return its payload.
216
+ *
217
+ * SIDE EFFECT, DELIBERATELY NAMED: this writes review rows. It joins the CALLER'S transaction when
218
+ * there is one, so a raise made at save time commits or rolls back with the save. Idempotent on
219
+ * (type, dedupe key) on accounting's side: a repeat returns `Created: false`.
220
+ *
221
+ * @param what names the act in the error message
222
+ * @throws when the operation is unregistered, the call fails, or accounting refuses the batch
223
+ */
224
+ export declare function RaiseFinanceExceptions(exceptions: FinanceExceptionToRaise[], what: string, provider: IMetadataProvider, user: UserInfo): Promise<RaiseFinanceExceptionsOutcome>;
161
225
  //# sourceMappingURL=AccountingBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountingBridge.d.ts","sourceRoot":"","sources":["../src/AccountingBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountingBridge.d.ts","sourceRoot":"","sources":["../src/AccountingBridge.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  * resolves by key — but that is a different package (`accounting-server`, wired up by the host app's
18
18
  * resolver paths) and is unaffected by how this one is imported.
19
19
  */
20
- import { BaseRemotableOperation, Metadata } from '@memberjunction/core';
20
+ import { BaseRemotableOperation, LogStatus, Metadata } from '@memberjunction/core';
21
21
  import { MJGlobal } from '@memberjunction/global';
22
22
  import { AccountingEngineBase, pickActiveLinkIndex } from '@mj-biz-apps/accounting-engine-base';
23
23
  import { GLAccountResolver } from './GLAccountResolver.js';
@@ -167,4 +167,78 @@ export async function SubmitJournalEntryDrafts(drafts, what, provider, user) {
167
167
  }
168
168
  return payload;
169
169
  }
170
+ /**
171
+ * The accounting operation registered under `key`, or a throw naming `what` could not be done.
172
+ *
173
+ * `TryCreateInstance`, not `CreateInstance`: for an unregistered key `CreateInstance` hands back a
174
+ * hollow `BaseRemotableOperation` rather than null, so a null check alone would never fire and the
175
+ * call would route with no operation key.
176
+ */
177
+ export function ResolveAccountingOperation(key, what) {
178
+ const resolved = MJGlobal.Instance.ClassFactory.TryCreateInstance(BaseRemotableOperation, key);
179
+ const op = resolved.Resolved ? resolved.Instance : null;
180
+ if (!op) {
181
+ throw new Error(`The '${key}' operation is not registered. The BizApps Accounting server package must be loaded before orders can ${what}.`);
182
+ }
183
+ return op;
184
+ }
185
+ /**
186
+ * The ACTIVE configuration of one finance exception type, or null when accounting has no such type
187
+ * or has switched it off — in which case the caller skips. No defaults are invented here: the
188
+ * thresholds are finance's to set, and a guessed one would raise a list nobody asked for.
189
+ *
190
+ * @throws when the operation is unregistered or the read fails
191
+ */
192
+ export async function GetActiveFinanceExceptionType(code, provider, user) {
193
+ const key = 'Accounting.GetFinanceExceptionTypes';
194
+ const op = ResolveAccountingOperation(key, `read the ${code} exception type`);
195
+ const result = await op.Execute({ Codes: [code] }, { provider, user });
196
+ if (!result.Success) {
197
+ throw new Error(`${key} did not execute: ${result.ErrorMessage ?? result.ResultCode ?? 'unknown error'}`);
198
+ }
199
+ const payload = result.Output;
200
+ if (!payload)
201
+ throw new Error(`${key} returned no payload.`);
202
+ if (!payload.Success) {
203
+ throw new Error(`${key} failed. ${(payload.Errors ?? []).map((e) => `${e.Code}: ${e.Message}`).join('; ')}`);
204
+ }
205
+ const type = (payload.Types ?? []).find((t) => t.Code === code);
206
+ if (!type) {
207
+ LogStatus(`Finance exception type ${code} is not defined in accounting; nothing is raised for it.`);
208
+ return null;
209
+ }
210
+ if (!type.IsActive) {
211
+ LogStatus(`Finance exception type ${code} is inactive; nothing is raised for it.`);
212
+ return null;
213
+ }
214
+ return { ...type, Configuration: type.Configuration ?? {} };
215
+ }
216
+ /**
217
+ * Raise finance exceptions into accounting's review list and return its payload.
218
+ *
219
+ * SIDE EFFECT, DELIBERATELY NAMED: this writes review rows. It joins the CALLER'S transaction when
220
+ * there is one, so a raise made at save time commits or rolls back with the save. Idempotent on
221
+ * (type, dedupe key) on accounting's side: a repeat returns `Created: false`.
222
+ *
223
+ * @param what names the act in the error message
224
+ * @throws when the operation is unregistered, the call fails, or accounting refuses the batch
225
+ */
226
+ export async function RaiseFinanceExceptions(exceptions, what, provider, user) {
227
+ const key = 'Accounting.RaiseFinanceExceptions';
228
+ const op = ResolveAccountingOperation(key, `raise ${what}`);
229
+ const result = await op.Execute({ Exceptions: exceptions }, { provider, user });
230
+ if (!result.Success) {
231
+ throw new Error(`${key} did not execute for ${what}: ${result.ErrorMessage ?? result.ResultCode ?? 'unknown error'}`);
232
+ }
233
+ const payload = result.Output;
234
+ if (!payload)
235
+ throw new Error(`${key} returned no payload for ${what}.`);
236
+ if (!payload.Success) {
237
+ const detail = (payload.Errors ?? [])
238
+ .map((e) => `${e.Index != null ? `#${e.Index} ` : ''}${e.Code}: ${e.Message}`)
239
+ .join('; ');
240
+ throw new Error(`Raising ${what} failed. ${detail}`);
241
+ }
242
+ return payload;
243
+ }
170
244
  //# sourceMappingURL=AccountingBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccountingBridge.js","sourceRoot":"","sources":["../src/AccountingBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountingBridge.js","sourceRoot":"","sources":["../src/AccountingBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Orders.AmendArrangement — change a booked arrangement and keep it alive (golive #221).
3
+ *
4
+ * Case B, a term extended at no charge, is what this supports today: the caller names a term and its new end
5
+ * date, with the reason. `Preview` returns what the extension would do — its value, the staged entries it
6
+ * offsets and the new schedule — and writes nothing. Otherwise it records a Duration `OrderConcession`, which
7
+ * is valued and routed for approval like any other; the extension takes effect when that concession is
8
+ * approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
9
+ * is approved on save, so the extension applies in this call.
10
+ *
11
+ * A change of amount (case A) is refused until its credit-memo path exists.
12
+ *
13
+ * A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
14
+ * records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
15
+ * terms and the due date change when it is approved (see ./PaymentTermsChange.ts). `Preview` returns the change in
16
+ * days to payment and the new due date.
17
+ *
18
+ * CONNECTS TO:
19
+ * PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
20
+ * RECORDS: OrderConcessionEntityServer (value, approval, application)
21
+ */
22
+ import { BaseRemotableOperation, type IMetadataProvider, type UserInfo } from '@memberjunction/core';
23
+ export type AmendmentReasonCategory = 'Retention' | 'Referral' | 'Other';
24
+ export interface AmendArrangementInput {
25
+ /** The booked term to amend. Not given with `NewPaymentTermsTypeID`. */
26
+ SubscriptionTermID?: string;
27
+ /** The term's new end date. Must be later than its current end. */
28
+ NewEndDate?: string;
29
+ /** The confirmed order whose payment terms change. Given with `NewPaymentTermsTypeID`. */
30
+ OrderHeaderID?: string;
31
+ /** The order's new payment terms. */
32
+ NewPaymentTermsTypeID?: string;
33
+ /** A change of amount. Not supported yet; refused. */
34
+ NewAmount?: number;
35
+ ReasonCategory: AmendmentReasonCategory;
36
+ Reason: string;
37
+ /** Return what the amendment would do without writing anything. */
38
+ Preview?: boolean;
39
+ }
40
+ export interface AmendArrangementEntry {
41
+ EffectiveDate: string;
42
+ Amount: number;
43
+ /** For an offset, the staged entry it cancels. */
44
+ Offsets?: string;
45
+ }
46
+ export interface AmendArrangementOutput {
47
+ Success: boolean;
48
+ Message?: string;
49
+ CurrentEndDate?: string;
50
+ NewEndDate?: string;
51
+ /** The day the extension takes effect: staged entries from here on are replaced. */
52
+ EffectiveDate?: string;
53
+ /** What the added days are worth at the term's own rate. */
54
+ Value?: number;
55
+ /** What the replaced entries were going to recognise, and the new schedule now does. */
56
+ Respread?: number;
57
+ Offsets?: AmendArrangementEntry[];
58
+ NewSchedule?: AmendArrangementEntry[];
59
+ /** A change of payment terms: the terms before and after, by name. */
60
+ CurrentPaymentTerms?: string | null;
61
+ NewPaymentTerms?: string;
62
+ /** Days to payment the new terms move by: positive when the customer pays later. */
63
+ DaysChange?: number;
64
+ CurrentDueDate?: string | null;
65
+ NewDueDate?: string | null;
66
+ /** Set when recorded: the concession, and whether it is Approved (applied) or Pending (awaiting approval). */
67
+ OrderConcessionID?: string;
68
+ Status?: string;
69
+ }
70
+ export declare class AmendArrangementOperation extends BaseRemotableOperation<AmendArrangementInput, AmendArrangementOutput> {
71
+ OperationKey: string;
72
+ protected InternalExecute(input: AmendArrangementInput, provider: IMetadataProvider, user: UserInfo): Promise<AmendArrangementOutput>;
73
+ private amendPaymentTerms;
74
+ private currentEnd;
75
+ }
76
+ /** Tree-shaking anchor — called from the server bootstrap so the registration is retained. */
77
+ export declare function LoadAmendArrangementOperation(): void;
78
+ //# sourceMappingURL=AmendArrangementOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmendArrangementOperation.d.ts","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACH,sBAAsB,EAEtB,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAa9B,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IAClC,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,uBAAuB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACtC,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8GAA8G;IAC9G,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,qBACa,yBAA0B,SAAQ,sBAAsB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IACzG,YAAY,SAA6B;cAEhC,eAAe,CAC3B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC;YAgFpB,iBAAiB;YAoDjB,UAAU;CAiB3B;AAMD,8FAA8F;AAC9F,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
@@ -0,0 +1,187 @@
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
+ * Orders.AmendArrangement — change a booked arrangement and keep it alive (golive #221).
9
+ *
10
+ * Case B, a term extended at no charge, is what this supports today: the caller names a term and its new end
11
+ * date, with the reason. `Preview` returns what the extension would do — its value, the staged entries it
12
+ * offsets and the new schedule — and writes nothing. Otherwise it records a Duration `OrderConcession`, which
13
+ * is valued and routed for approval like any other; the extension takes effect when that concession is
14
+ * approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
15
+ * is approved on save, so the extension applies in this call.
16
+ *
17
+ * A change of amount (case A) is refused until its credit-memo path exists.
18
+ *
19
+ * A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
20
+ * records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
21
+ * terms and the due date change when it is approved (see ./PaymentTermsChange.ts). `Preview` returns the change in
22
+ * days to payment and the new due date.
23
+ *
24
+ * CONNECTS TO:
25
+ * PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
26
+ * RECORDS: OrderConcessionEntityServer (value, approval, application)
27
+ */
28
+ import { BaseRemotableOperation, RunView, } from '@memberjunction/core';
29
+ import { RegisterClass } from '@memberjunction/global';
30
+ import { AsDateValue, ConcessionValue, InclusiveDays, } from '@mj-biz-apps/orders-entities';
31
+ import { ORDER_CONCESSION_ENTITY } from './entity-names.js';
32
+ import { RequireOptionalDay, RequireUUID } from './sql-guards.js';
33
+ import { CheckTermsChange } from './PaymentTermsChange.js';
34
+ import { CheckTermExtension } from './TermExtension.js';
35
+ const REASON_CATEGORIES = ['Retention', 'Referral', 'Other'];
36
+ let AmendArrangementOperation = class AmendArrangementOperation extends BaseRemotableOperation {
37
+ constructor() {
38
+ super(...arguments);
39
+ this.OperationKey = 'Orders.AmendArrangement';
40
+ }
41
+ async InternalExecute(input, provider, user) {
42
+ if (!REASON_CATEGORIES.includes(input.ReasonCategory)) {
43
+ return { Success: false, Message: `ReasonCategory must be one of ${REASON_CATEGORIES.join(', ')}.` };
44
+ }
45
+ if (!input.Reason?.trim())
46
+ return { Success: false, Message: 'An amendment must state its reason.' };
47
+ if (input.NewPaymentTermsTypeID != null || input.OrderHeaderID != null) {
48
+ if (input.SubscriptionTermID != null || input.NewEndDate != null || input.NewAmount != null) {
49
+ return { Success: false, Message: 'A change of payment terms is amended on its own, without a term, end date or amount.' };
50
+ }
51
+ return this.amendPaymentTerms(input, provider, user);
52
+ }
53
+ let newEnd;
54
+ try {
55
+ RequireUUID(input.SubscriptionTermID, 'SubscriptionTermID');
56
+ newEnd = AsDateValue(RequireOptionalDay(input.NewEndDate, 'NewEndDate'));
57
+ }
58
+ catch (e) {
59
+ return { Success: false, Message: String(e.message) };
60
+ }
61
+ if (input.NewAmount != null) {
62
+ return { Success: false, Message: 'Changing the amount of a booked arrangement is not supported yet.' };
63
+ }
64
+ if (!newEnd)
65
+ return { Success: false, Message: 'NewEndDate is required.' };
66
+ const termID = input.SubscriptionTermID;
67
+ const current = await this.currentEnd(termID, provider, user);
68
+ if (typeof current === 'string')
69
+ return { Success: false, Message: current };
70
+ const addedDays = Math.round((newEnd.getTime() - current.getTime()) / 86_400_000);
71
+ const checked = await CheckTermExtension({ SubscriptionTermID: termID, AddedDays: addedDays, RequestedByUserID: user.ID }, { Provider: provider, User: user });
72
+ if (typeof checked === 'string')
73
+ return { Success: false, Message: checked };
74
+ const summary = {
75
+ Success: true,
76
+ CurrentEndDate: day(checked.CurrentEndDate),
77
+ NewEndDate: day(checked.NewEndDate),
78
+ EffectiveDate: day(checked.EffectiveDate),
79
+ Value: ConcessionValue({
80
+ Form: 'Duration',
81
+ TermAmount: checked.TermAmount,
82
+ TermDays: InclusiveDays(checked.TermStartDate, checked.CurrentEndDate),
83
+ AddedDays: addedDays,
84
+ }).Value,
85
+ Respread: checked.Plan.Remaining,
86
+ Offsets: checked.Plan.Offsets.map((d, i) => ({
87
+ EffectiveDate: d.EffectiveDate,
88
+ Amount: d.Lines.reduce((sum, l) => sum + Number(l.DebitAmount ?? 0), 0),
89
+ Offsets: checked.Plan.Targets[i].EntryNumber,
90
+ })),
91
+ NewSchedule: checked.Plan.Respread.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
92
+ };
93
+ if (input.Preview) {
94
+ return { ...summary, Message: `Term would end ${summary.NewEndDate} instead of ${summary.CurrentEndDate}.` };
95
+ }
96
+ const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
97
+ concession.NewRecord();
98
+ concession.DeliveryForm = 'Duration';
99
+ concession.SubscriptionTermID = termID;
100
+ concession.AddedDays = addedDays;
101
+ concession.ReasonCategory = input.ReasonCategory;
102
+ concession.Reason = input.Reason.trim();
103
+ if (!(await concession.Save())) {
104
+ return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
105
+ }
106
+ return {
107
+ ...summary,
108
+ OrderConcessionID: concession.ID,
109
+ Status: concession.Status,
110
+ Value: Number(concession.ComputedValue),
111
+ Message: concession.Status === 'Approved'
112
+ ? `Term extended to ${summary.NewEndDate}. Accounting has been asked to confirm the re-cut.`
113
+ : `The extension to ${summary.NewEndDate} is awaiting approval; it takes effect when approved.`,
114
+ };
115
+ }
116
+ async amendPaymentTerms(input, provider, user) {
117
+ let checked;
118
+ try {
119
+ checked = await CheckTermsChange({
120
+ OrderHeaderID: RequireUUID(input.OrderHeaderID, 'OrderHeaderID'),
121
+ NewPaymentTermsTypeID: RequireUUID(input.NewPaymentTermsTypeID, 'NewPaymentTermsTypeID'),
122
+ }, { Provider: provider, User: user });
123
+ }
124
+ catch (e) {
125
+ return { Success: false, Message: String(e.message) };
126
+ }
127
+ if (typeof checked === 'string')
128
+ return { Success: false, Message: checked };
129
+ const summary = {
130
+ Success: true,
131
+ CurrentPaymentTerms: checked.PriorTermsName,
132
+ NewPaymentTerms: checked.NewTermsName,
133
+ DaysChange: checked.DaysChange,
134
+ CurrentDueDate: checked.CurrentDueDate,
135
+ NewDueDate: checked.NewDueDate,
136
+ };
137
+ if (input.Preview) {
138
+ return {
139
+ ...summary,
140
+ Message: `Order ${checked.OrderNumber} would move to ${checked.NewTermsName}, due ${checked.NewDueDate ?? 'on receipt'}.`,
141
+ };
142
+ }
143
+ const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
144
+ concession.NewRecord();
145
+ concession.DeliveryForm = 'Terms';
146
+ concession.OrderHeaderID = checked.OrderHeaderID;
147
+ concession.NewPaymentTermsTypeID = checked.NewPaymentTermsTypeID;
148
+ concession.ReasonCategory = input.ReasonCategory;
149
+ concession.Reason = (input.Reason ?? '').trim();
150
+ if (!(await concession.Save())) {
151
+ return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
152
+ }
153
+ return {
154
+ ...summary,
155
+ OrderConcessionID: concession.ID,
156
+ Status: concession.Status,
157
+ Message: `The change to ${checked.NewTermsName} is awaiting approval; it takes effect when approved.`,
158
+ };
159
+ }
160
+ async currentEnd(termID, provider, user) {
161
+ const rv = new RunView(provider);
162
+ const res = await rv.RunView({
163
+ EntityName: 'MJ_BizApps_Orders: Subscription Terms',
164
+ ExtraFilter: `ID = '${RequireUUID(termID, 'SubscriptionTermID')}'`,
165
+ Fields: ['EndDate'],
166
+ ResultType: 'simple',
167
+ BypassCache: true,
168
+ }, user);
169
+ const term = res?.Results?.[0];
170
+ if (!term)
171
+ return `Subscription term ${termID} was not found.`;
172
+ const d = new Date(term.EndDate);
173
+ return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));
174
+ }
175
+ };
176
+ AmendArrangementOperation = __decorate([
177
+ RegisterClass(BaseRemotableOperation, 'Orders.AmendArrangement')
178
+ ], AmendArrangementOperation);
179
+ export { AmendArrangementOperation };
180
+ function day(d) {
181
+ return d.toISOString().slice(0, 10);
182
+ }
183
+ /** Tree-shaking anchor — called from the server bootstrap so the registration is retained. */
184
+ export function LoadAmendArrangementOperation() {
185
+ // intentionally empty
186
+ }
187
+ //# sourceMappingURL=AmendArrangementOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmendArrangementOperation.js","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,11 @@ export interface CreateIntentRequest {
73
73
  ProviderInstrumentRef?: string | null;
74
74
  /** Free-form, echoed back on webhooks. Useful for reconciliation, never load-bearing. */
75
75
  Metadata?: Record<string, string>;
76
+ /**
77
+ * What the gateway's dashboard shows for this charge — see `FormatIntentDescription`. Display
78
+ * only, like `Metadata`: nothing reads it back.
79
+ */
80
+ Description?: string | null;
76
81
  /**
77
82
  * OUR idempotency key. Sent to gateways that support one so a retried create does not open a
78
83
  * second intent — and therefore does not charge the customer twice.
@@ -89,6 +94,20 @@ export interface CreateIntentResult {
89
94
  /** For a hosted-checkout flow — where to send the customer. */
90
95
  HostedUrl?: string;
91
96
  }
97
+ /**
98
+ * Details attached to an intent after it was opened. Checkout opens its intent before the order exists,
99
+ * so the order number and id can only reach the gateway afterwards (#327).
100
+ */
101
+ export interface UpdateIntentRequest {
102
+ ProviderIntentID: string;
103
+ Description?: string | null;
104
+ /** Merged into what the intent already carries; keys not named here are left alone. */
105
+ Metadata?: Record<string, string>;
106
+ }
107
+ export interface UpdateIntentResult {
108
+ Success: boolean;
109
+ Reason?: string;
110
+ }
92
111
  export interface CaptureRequest {
93
112
  ProviderIntentID: string;
94
113
  /** Omit for the full authorised amount. Major units. */
@@ -227,6 +246,8 @@ export declare class BasePaymentProvider {
227
246
  * Stripe's POST. This is a SERVER retrieve with our key, not a client claim.
228
247
  */
229
248
  RetrieveIntent(_request: RetrieveIntentRequest): Promise<RetrieveIntentResult>;
249
+ /** Attach display details to an intent already opened. Moves no money and changes no status. */
250
+ UpdateIntent(_request: UpdateIntentRequest): Promise<UpdateIntentResult>;
230
251
  Refund(_request: RefundRequest): Promise<RefundResult>;
231
252
  /**
232
253
  * Verify that a webhook really came from the gateway.
@@ -1 +1 @@
1
- {"version":3,"file":"BasePaymentProvider.d.ts","sourceRoot":"","sources":["../src/BasePaymentProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,iFAAiF;AACjF,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE;QACV,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACL;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IAC/B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAChC,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IACzB,mGAAmG;IACnG,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAmB;IAC5B;;;OAGG;IACI,MAAM,EAAG,qBAAqB,CAAC;IAC/B,WAAW,EAAG,kBAAkB,CAAC;IACxC,oFAAoF;IAC7E,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEvB,gGAAgG;IAChG,IAAW,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAEhD;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED;;;;;;OAMG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAEY,YAAY,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIxE,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAItE;;;;;;OAMG;IACU,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI9E,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAInE;;;;;;;OAOG;IACU,aAAa,CACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC7C,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAI/C,kGAAkG;IAC3F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAI/D,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAQjD;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
1
+ {"version":3,"file":"BasePaymentProvider.d.ts","sourceRoot":"","sources":["../src/BasePaymentProvider.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,10 @@ export class BasePaymentProvider {
69
69
  async RetrieveIntent(_request) {
70
70
  return { Success: false, Reason: this.notImplemented('retrieving a payment intent') };
71
71
  }
72
+ /** Attach display details to an intent already opened. Moves no money and changes no status. */
73
+ async UpdateIntent(_request) {
74
+ return { Success: false, Reason: this.notImplemented('updating a payment intent') };
75
+ }
72
76
  async Refund(_request) {
73
77
  return { Success: false, Reason: this.notImplemented('refunding a payment') };
74
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BasePaymentProvider.js","sourceRoot":"","sources":["../src/BasePaymentProvider.ts"],"names":[],"mappings":"AA6KA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAmB;IAW5B,gGAAgG;IAChG,IAAW,iBAAiB;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAW,qBAAqB;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAA6B;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAwB;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,CAAC,QAA+B;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAuB;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,aAAa,CACtB,QAAgB,EAChB,QAA4C;QAE5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,eAAe,2BAA2B,EAAE,CAAC;IAC5G,CAAC;IAED,kGAAkG;IAC3F,iBAAiB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,cAAc,CAAC,IAAY;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC;QAChD,OAAO,CACH,QAAQ,IAAI,uCAAuC,IAAI,kCAAkC;YACzF,oEAAoE;YACpE,iEAAiE,CACpE,CAAC;IACN,CAAC;CACJ;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB;IACnC,sBAAsB;AAC1B,CAAC"}
1
+ {"version":3,"file":"BasePaymentProvider.js","sourceRoot":"","sources":["../src/BasePaymentProvider.ts"],"names":[],"mappings":"AAkMA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAmB;IAW5B,gGAAgG;IAChG,IAAW,iBAAiB;QACxB,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAW,qBAAqB;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAA6B;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAwB;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,cAAc,CAAC,QAA+B;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,gGAAgG;IACzF,KAAK,CAAC,YAAY,CAAC,QAA6B;QACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAuB;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,aAAa,CACtB,QAAgB,EAChB,QAA4C;QAE5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,eAAe,2BAA2B,EAAE,CAAC;IAC5G,CAAC;IAED,kGAAkG;IAC3F,iBAAiB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,cAAc,CAAC,IAAY;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC;QAChD,OAAO,CACH,QAAQ,IAAI,uCAAuC,IAAI,kCAAkC;YACzF,oEAAoE;YACpE,iEAAiE,CACpE,CAAC;IACN,CAAC;CACJ;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB;IACnC,sBAAsB;AAC1B,CAAC"}
@@ -32,7 +32,13 @@ import { mjBizAppsOrdersOrderLineEntity } from '@mj-biz-apps/orders-entities';
32
32
  * Was a structural duck-type built on `Get`/`Set` — which meant every field this module touched
33
33
  * was a string literal the compiler could not check. It is the order-line entity; say so.
34
34
  */
35
- export type ExpandableLine = mjBizAppsOrdersOrderLineEntity;
35
+ /**
36
+ * An order line as expansion handles it. `WrittenByBundleExpansion` is the server line's transient
37
+ * mark that expansion wrote its parent (see `OrderLineEntityServer.refuseParentNotFromExpansion`).
38
+ */
39
+ export type ExpandableLine = mjBizAppsOrdersOrderLineEntity & {
40
+ WrittenByBundleExpansion?: boolean;
41
+ };
36
42
  export interface BundleExpansionOutcome {
37
43
  /** How many parent lines were expanded. */
38
44
  Expanded: number;
@@ -1 +1 @@
1
- {"version":3,"file":"BundleEngine.d.ts","sourceRoot":"","sources":["../src/BundleEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAEH,iBAAiB,EAGjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAkC,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAgB9G,6GAA6G;AAC7G;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAE5D,MAAM,WAAW,sBAAsB;IACnC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EACvC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC,CA2HjC;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6DjB"}
1
+ {"version":3,"file":"BundleEngine.d.ts","sourceRoot":"","sources":["../src/BundleEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAEH,iBAAiB,EAGjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAkC,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAgB9G,6GAA6G;AAC7G;;;;;GAKG;AACH;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,8BAA8B,GAAG;IAAE,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErG,MAAM,WAAW,sBAAsB;IACnC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,EACvC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC,CA4HjC;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACtC,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,MAAM,CAAC,CA6DjB"}
@@ -121,6 +121,7 @@ export async function ExpandBundleLines(lines, makeLine, provider, user) {
121
121
  row.Quantity = child.Quantity;
122
122
  row.UnitPrice = child.UnitPrice;
123
123
  row.ParentOrderLineID = line.ID;
124
+ row.WrittenByBundleExpansion = true;
124
125
  row.SourceBundleProductID = line.ProductID;
125
126
  row.IsRollupParent = false;
126
127
  row.IsQuantityOverridden = false;