@mj-biz-apps/orders-core-entities-server 5.30.0 → 5.32.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.
- package/README.md +67 -41
- package/dist/CapturePaymentOperation.d.ts.map +1 -1
- package/dist/CapturePaymentOperation.js +4 -2
- package/dist/CapturePaymentOperation.js.map +1 -1
- package/dist/CheckoutSessionService.d.ts +12 -2
- package/dist/CheckoutSessionService.d.ts.map +1 -1
- package/dist/CheckoutSessionService.js +103 -25
- package/dist/CheckoutSessionService.js.map +1 -1
- package/dist/EntitlementGrantClaimDriver.d.ts +1 -1
- package/dist/EntitlementGrantClaimDriver.d.ts.map +1 -1
- package/dist/EntitlementGrantClaimDriver.js +1 -3
- package/dist/EntitlementGrantClaimDriver.js.map +1 -1
- package/dist/GuestOrderClaimDriver.d.ts +1 -1
- package/dist/GuestOrderClaimDriver.d.ts.map +1 -1
- package/dist/GuestOrderClaimDriver.js +16 -10
- package/dist/GuestOrderClaimDriver.js.map +1 -1
- package/dist/InvoiceBehavior.d.ts +0 -1
- package/dist/InvoiceBehavior.d.ts.map +1 -1
- package/dist/InvoiceBehavior.js.map +1 -1
- package/dist/InvoiceBuilder.d.ts.map +1 -1
- package/dist/InvoiceBuilder.js +0 -1
- package/dist/InvoiceBuilder.js.map +1 -1
- package/dist/PollExternalPaymentsOperation.d.ts +10 -0
- package/dist/PollExternalPaymentsOperation.d.ts.map +1 -1
- package/dist/PollExternalPaymentsOperation.js +64 -15
- package/dist/PollExternalPaymentsOperation.js.map +1 -1
- package/dist/ProductPriceEntityServer.d.ts +2 -0
- package/dist/ProductPriceEntityServer.d.ts.map +1 -1
- package/dist/ProductPriceEntityServer.js +4 -0
- package/dist/ProductPriceEntityServer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/identityClaimContracts.d.ts +0 -118
- package/dist/identityClaimContracts.d.ts.map +0 -1
- package/dist/identityClaimContracts.js +0 -58
- package/dist/identityClaimContracts.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,50 +1,62 @@
|
|
|
1
1
|
# `@mj-biz-apps/orders-core-entities-server`
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
engines
|
|
3
|
+
**The server half of the rules that decide money.** Entity subclasses that override `Save()` or
|
|
4
|
+
validation, the engines behind booking, GL resolution, payments and subscriptions, and the remote
|
|
5
|
+
operations that expose multi-step work.
|
|
6
|
+
|
|
7
|
+
The pricing engine — price resolution, promotions, charges and tax — is not here. It lives in
|
|
8
|
+
`@mj-biz-apps/orders-entities` (`packages/Entities/src/pricing/`), so the browser can price an order
|
|
9
|
+
with the same code that books it, and this package re-exports it for server callers.
|
|
5
10
|
|
|
6
11
|
This package is server-only. Import it from the server bootstrap so its `@RegisterClass` decorators
|
|
7
12
|
fire — nothing here is reachable until they do.
|
|
8
13
|
|
|
9
14
|
---
|
|
10
15
|
|
|
11
|
-
## The shape: pure core,
|
|
16
|
+
## The shape: pure core, database shell
|
|
12
17
|
|
|
13
18
|
Each domain is split in two, and the split is deliberate rather than tidy.
|
|
14
19
|
|
|
15
|
-
| Pure (no DB, no entities) |
|
|
16
|
-
|
|
17
|
-
| `PricingBehavior` | `PriceResolver` |
|
|
18
|
-
| `PromotionBehavior` | `PromotionEngine` |
|
|
19
|
-
| `ChargeBehavior` | `ChargeEngine` |
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
20
|
+
| Pure (no DB, no entities) | Needs a database | Package |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `PricingBehavior` | `PriceResolver` | orders-entities |
|
|
23
|
+
| `PromotionBehavior` | `PromotionEngine` | orders-entities |
|
|
24
|
+
| `ChargeBehavior` | `ChargeEngine` | orders-entities |
|
|
25
|
+
| `TaxResolver` *(the walk)* | `TaxResolver` *(the lookups)* | orders-entities |
|
|
26
|
+
| `SubscriptionBehavior` | `OrderEntityServer` | this package |
|
|
22
27
|
|
|
23
28
|
**Why:** the arithmetic is where the money is, and money should be provable without a database. Two
|
|
24
29
|
10% promotions are 19% or 20% depending on one setting; a Volume band and a Tiered band give 800 and
|
|
25
30
|
900 for identical inputs. Those facts are asserted in unit tests that run in milliseconds, and the
|
|
26
|
-
|
|
31
|
+
database half is then only responsible for finding the right rows. `OrderPricingService` runs the
|
|
32
|
+
four pricing stages in order, for `Save()` and for `Orders.PriceOrder` alike.
|
|
27
33
|
|
|
28
34
|
## The order confirm, end to end
|
|
29
35
|
|
|
30
|
-
`OrderEntityServer.Save()` is the spine. Everything happens in ONE transaction
|
|
36
|
+
`OrderEntityServer.Save()` is the spine. Everything happens in ONE transaction. In outline (the
|
|
37
|
+
method has the full sequence):
|
|
31
38
|
|
|
32
39
|
```
|
|
33
40
|
BeginTransaction
|
|
34
|
-
|
|
35
|
-
|
|
41
|
+
delete lines the caller removed
|
|
42
|
+
expand bundles into their component lines
|
|
43
|
+
decide subscriptions
|
|
36
44
|
── per line, IN MEMORY ─────────────────────────────
|
|
37
45
|
proration (subscription terms)
|
|
38
46
|
event service period
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
decide charges + resolve tax → LineTax, ChargeAmount
|
|
47
|
+
OrderPricingService: price → promotions → charges → tax
|
|
48
|
+
→ UnitPrice, DiscountAmount, ChargeAmount, LineTax
|
|
42
49
|
── persist ─────────────────────────────────────────
|
|
50
|
+
save the header (a new order gets its OrderNumber here)
|
|
43
51
|
save lines
|
|
44
52
|
write adjustment + charge + component rows
|
|
53
|
+
check the total the caller was shown, if it sent one
|
|
45
54
|
materialize subscriptions
|
|
46
55
|
book journal entries
|
|
56
|
+
issue instalments already due
|
|
47
57
|
create the initial payment
|
|
58
|
+
grant entitlements
|
|
59
|
+
record the OrderConfirmed outbound event (sales only)
|
|
48
60
|
CommitTransaction
|
|
49
61
|
```
|
|
50
62
|
|
|
@@ -52,23 +64,29 @@ CommitTransaction
|
|
|
52
64
|
stylistic: a Confirmed line is frozen by trigger 51003, and because MJ's CRUD procs run under
|
|
53
65
|
`INSERT-EXEC`, a trigger rollback surfaces as *"Cannot use the ROLLBACK statement within an
|
|
54
66
|
INSERT-EXEC statement"* — an error naming neither the line nor the rule it broke. Correcting a line
|
|
55
|
-
after insert is not an option, so nothing may need correcting.
|
|
67
|
+
after insert is not an option, so nothing may need correcting. A draft being confirmed already has
|
|
68
|
+
its lines, so they are rewritten while the header is still Draft, before the status change that
|
|
69
|
+
freezes them.
|
|
56
70
|
|
|
57
71
|
## Resolution walks
|
|
58
72
|
|
|
59
|
-
|
|
60
|
-
and they cannot drift into disagreeing about what "the
|
|
73
|
+
The resolvers follow the **same path** up the product's category tree, on purpose — anyone who
|
|
74
|
+
understands one understands the others, and they cannot drift into disagreeing about what "the
|
|
75
|
+
product's category tree" means:
|
|
61
76
|
|
|
62
77
|
```
|
|
63
|
-
product → its category → that category's ancestors →
|
|
78
|
+
product → its category → that category's ancestors → …
|
|
64
79
|
```
|
|
65
80
|
|
|
66
|
-
|
|
67
|
-
still balances, so the misposting would be invisible.
|
|
68
|
-
- **`PriceResolver`** — product → price, with `BasePriceResolver` pluggable at any level.
|
|
81
|
+
They differ in where the walk ends:
|
|
69
82
|
|
|
70
|
-
|
|
71
|
-
|
|
83
|
+
- **`GLAccountResolver`** — role → GL account, continuing to the product type, then the company.
|
|
84
|
+
Nothing resolving is a hard failure; a guessed account still balances, so the misposting would be
|
|
85
|
+
invisible.
|
|
86
|
+
- **`PriceResolver`** — product → price, continuing to the company, then the default resolver, with a
|
|
87
|
+
`BasePriceResolver` plugin possible at the product, category and company levels.
|
|
88
|
+
- **`TaxResolver`** — taxability, continuing to the product type, a NOT NULL backstop so the walk
|
|
89
|
+
always terminates.
|
|
72
90
|
|
|
73
91
|
## Refusals are a feature
|
|
74
92
|
|
|
@@ -93,20 +111,15 @@ reasons applied.
|
|
|
93
111
|
Multi-step work with guards, exposed through `BaseRemotableOperation`. Logical refusals come back
|
|
94
112
|
**inside** the output as `Success: false` with a reason; only genuine faults throw.
|
|
95
113
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
| `Orders.RefundPayment` | Mirrors a capture (D53), proportionally across the orders it settled |
|
|
101
|
-
| `Orders.CancelSubscription` | Cancels with the term's own rules. Revokes standing grants when access-through has already passed |
|
|
102
|
-
| `Orders.SpawnRenewals` | Spawns renewal orders as Drafts |
|
|
103
|
-
| `Orders.CheckEntitlement` | Does this person currently have this capability? Evaluated, not a poll of `Status`. Fail closed |
|
|
104
|
-
| `Orders.ListEntitlements` | The person's library, one row per Code, same evaluator |
|
|
114
|
+
Each operation is a row in [`metadata/remote-operations/`](../../metadata/remote-operations/), the
|
|
115
|
+
source of truth; CodeGen emits its typed base into `@mj-biz-apps/orders-entities`, and this package
|
|
116
|
+
holds the implementations. The full list, with scopes and why each one is an operation rather than a
|
|
117
|
+
save, is in [`docs/orders-api-and-ui-architecture.md`](../../docs/orders-api-and-ui-architecture.md) §2.
|
|
105
118
|
|
|
106
119
|
## Accounting boundary
|
|
107
120
|
|
|
108
|
-
|
|
109
|
-
and submits balanced drafts
|
|
121
|
+
Orders resolves accounts — `GLAccountResolver`, wired to accounting's engine by `AccountingBridge` —
|
|
122
|
+
and submits balanced drafts to `Accounting.CreateJournalEntries`; accounting owns the ledger.
|
|
110
123
|
|
|
111
124
|
Two constraints that shape everything: accounting derives an entry's company **from its accounts**,
|
|
112
125
|
so a cross-company entry cannot be booked at all — which is why intercompany legs are per company
|
|
@@ -115,8 +128,10 @@ an entry (sides swapped, positive amounts), never a negation.
|
|
|
115
128
|
|
|
116
129
|
## Testing
|
|
117
130
|
|
|
118
|
-
- **Unit** (
|
|
119
|
-
|
|
131
|
+
- **Unit** (vitest, no DB) — the pure engines. Volume vs Tiered, stacking arithmetic, charge basis
|
|
132
|
+
and the taxability walk are in `packages/Entities/src/__tests__`, beside the pricing engine;
|
|
133
|
+
subscriptions, allocation and the rest of this package are in `src/__tests__`. `pnpm run test:unit`
|
|
134
|
+
at the root runs every package's.
|
|
120
135
|
- **Integration** — `@mj-biz-apps/orders-integration-tests`, transaction-per-check with rollback.
|
|
121
136
|
|
|
122
137
|
Both suites are mutation-tested: break the code deliberately, confirm the checks catch it. Worth the
|
|
@@ -125,7 +140,8 @@ entry.
|
|
|
125
140
|
|
|
126
141
|
## Adding behaviour
|
|
127
142
|
|
|
128
|
-
Prefer a plugin over an edit
|
|
143
|
+
Prefer a plugin over an edit. The three base classes come from `@mj-biz-apps/orders-entities` (this
|
|
144
|
+
package re-exports them):
|
|
129
145
|
|
|
130
146
|
```ts
|
|
131
147
|
@RegisterClass(BasePriceResolver, `Company:${companyId}`)
|
|
@@ -138,5 +154,15 @@ export class TwoYearMember extends BasePromotionQualifier { /* ... */ }
|
|
|
138
154
|
export class RooftopResolver extends BaseTaxJurisdictionResolver { /* ... */ }
|
|
139
155
|
```
|
|
140
156
|
|
|
157
|
+
A price plugin is server code, so the browser cannot run it. Set `PricingDriverClass` to the plugin's
|
|
158
|
+
key on the product, the category (inherited by child categories), the product type, or the company's
|
|
159
|
+
`OrderCompanyPolicy`; the most specific non-empty level wins. `ResolvePrice` invokes the resolver
|
|
160
|
+
registered under that key first, then falls back to the `Product:<id>`, `Category:<id>` and
|
|
161
|
+
`Company:<id>` keys. A key with no registered resolver refuses the line with a `PriceResolutionError`
|
|
162
|
+
naming the key, rather than pricing it by the default. `CanPriceOrderLocally` reads the same walk and
|
|
163
|
+
reports that the order cannot be priced locally, and `MJOPricingScheduler`, the pricing service
|
|
164
|
+
behind the order screens, sends it to `Orders.PriceOrder` instead, as it does for any order carrying
|
|
165
|
+
a promotion code.
|
|
166
|
+
|
|
141
167
|
If you must edit an engine: put the arithmetic in the pure half with a unit test, and keep the
|
|
142
|
-
|
|
168
|
+
database half to finding rows.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapturePaymentOperation.d.ts","sourceRoot":"","sources":["../src/CapturePaymentOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAKH,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,6BAA6B,IAAI,iCAAiC,EAOlE,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,
|
|
1
|
+
{"version":3,"file":"CapturePaymentOperation.d.ts","sourceRoot":"","sources":["../src/CapturePaymentOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAKH,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,6BAA6B,IAAI,iCAAiC,EAOlE,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAElC,MAAM,8BAA8B,CAAC;AAkBtC,qBACa,uBAAwB,SAAQ,iCAAiC;cAC1D,eAAe,CAC3B,KAAK,EAAE,yBAAyB,EAChC,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,0BAA0B,CAAC;IA+OtC;;;;;;;OAOG;YACW,YAAY;IAoG1B;;;;;;;;;;OAUG;YACW,qBAAqB;IAenC;;;;;;OAMG;YACW,OAAO;IAuErB,uGAAuG;YACzF,WAAW;IA8DzB,yFAAyF;YAC3E,iBAAiB;IAgB/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,MAAM;CAWjB;AAED,0FAA0F;AAC1F,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -25,7 +25,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
25
25
|
*/
|
|
26
26
|
import { BaseRemotableOperation, RunView, } from '@memberjunction/core';
|
|
27
27
|
import { RegisterClass } from '@memberjunction/global';
|
|
28
|
-
import { OrdersCapturePaymentOperation as OrdersCapturePaymentOperationBase, } from '@mj-biz-apps/orders-entities';
|
|
28
|
+
import { OrdersCapturePaymentOperation as OrdersCapturePaymentOperationBase, DerivePaymentStatus, } from '@mj-biz-apps/orders-entities';
|
|
29
29
|
import { CalendarDayOrToday } from './calendar-day.js';
|
|
30
30
|
import { RequireDate, RequireOptionalUUID, RequireUUID } from './sql-guards.js';
|
|
31
31
|
import { ResolvePaymentProvider } from './PaymentProviderResolver.js';
|
|
@@ -376,7 +376,9 @@ let CapturePaymentOperation = class CapturePaymentOperation extends OrdersCaptur
|
|
|
376
376
|
OrderNumber: o.OrderNumber,
|
|
377
377
|
AmountPaid: money(Number(o.AmountPaid ?? 0)),
|
|
378
378
|
Balance: money(Number(o.Balance ?? 0)),
|
|
379
|
-
|
|
379
|
+
// Derived, not read: the order stores no payment status, only the amounts the
|
|
380
|
+
// rollup triggers keep current. Same rule the order screens and checks use.
|
|
381
|
+
PaymentStatus: DerivePaymentStatus(o.TotalGross, o.AmountPaid, o.Balance),
|
|
380
382
|
// Over-payment is ACCEPTED (D68). The surplus is a negative balance and becomes
|
|
381
383
|
// spendable credit — the account-credit screen depends on these existing.
|
|
382
384
|
HasCredit: Number(o.Balance ?? 0) < 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CapturePaymentOperation.js","sourceRoot":"","sources":["../src/CapturePaymentOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAEH,sBAAsB,EACtB,OAAO,GAKV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,6BAA6B,IAAI,iCAAiC,GASrE,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE9E,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AACnE,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAC/D,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AACnE,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAC/D,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAE/D,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1F,MAAM,GAAG,GAAG,CAAC,EAA6B,EAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAChF,MAAM,KAAK,GAAG,CAAC,GAAa,EAAU,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAGnF,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,iCAAiC;IAChE,KAAK,CAAC,eAAe,CAC3B,KAAgC,EAChC,QAA2B,EAC3B,IAAc;QAEd,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,QAAuC,CAAC,CAAC;QAEhE,oCAAoC;QACpC,6FAA6F;QAC7F,mFAAmF;QACnF,6FAA6F;QAC7F,mCAAmC;QACnC,IAAI,kBAA0B,CAAC;QAC/B,IAAI,CAAC;YACD,kBAAkB,GAAG,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,8FAA8F;QAC9F,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,CAAC;YACD,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;QAED,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QACxF,8FAA8F;QAC9F,IAAI,KAAK,EAAE,WAAW,KAAK,SAAS,IAAI,KAAK,EAAE,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;YAC9F,IAAI,CAAC;gBACD,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CACR,eAAe,EACf,yEAAyE,EACzE,8DAA8D,CACjE,CACJ,CAAC;QACN,CAAC;QAED,uFAAuF;QACvF,4FAA4F;QAC5F,2FAA2F;QAC3F,iEAAiE;QACjE,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,CAAC;YACD,KAAK,GAAG,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7G,QAAQ,GAAG,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CACR,gBAAgB,EAChB,KAAK;gBACD,CAAC,CAAC,0EAA0E;gBAC5E,CAAC,CAAC,4EAA4E,EAClF,4DAA4D,CAC/D,CACJ,CAAC;QACN,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC;gBACD,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,CAAC,EAAE,WAAW;oBAAE,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxE,SAAS;YACb,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CACR,uBAAuB,EACvB,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,iDAAiD;oBACzF,6CAA6C,CACpD,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,uFAAuF;QACvF,wFAAwF;QACxF,2FAA2F;QAC3F,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,gDAAgD,MAAM,GAAG,CAAC,CAAC,CAAC;QAChH,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CACR,oBAAoB,EACpB,sBAAsB,MAAM,8BAA8B,SAAS,YAAY;gBAC3E,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,wEAAwE,EACxG,4DAA4D,CAC/D,CACJ,CAAC;QACN,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElD,uBAAuB;QACvB,0FAA0F;QAC1F,+CAA+C;QAC/C,EAAE;QACF,sFAAsF;QACtF,8EAA8E;QAC9E,2FAA2F;QAC3F,6FAA6F;QAC7F,4FAA4F;QAC5F,uFAAuF;QACvF,mEAAmE;QACnE,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;QACpE,IAAI,cAAc,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAC7B;gBACI,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,qBAAqB,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;gBACvE,UAAU,EAAE,QAAQ;aACvB,EACD,IAAI,CACP,CAAC;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;YACtE,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,6FAA6F;QAC7F,4FAA4F;QAC5F,qDAAqD;QACrD,EAAE;QACF,4FAA4F;QAC5F,2FAA2F;QAC3F,8DAA8D;QAC9D,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,MAAM,CAAC;gBACf,IAAI,CAAC,OAAO,CACR,eAAe,EACf,8CAA8C,IAAI,IAAI,EACtD,sEAAsE,CACzE;aACJ,CAAC,CAAC;QACP,CAAC;QACD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;gBACf,IAAI,CAAC,OAAO,CACR,gBAAgB,EAChB,IAAI,IAAI,0FAA0F,CACrG;aACJ,CAAC,CAAC;QACP,CAAC;QAED,qEAAqE;QACrE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC3B,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EACpG,IAAI,CACP,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC1D,kFAAkF;gBAClF,8EAA8E;gBAC9E,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,CACR,sBAAsB,EACtB,SAAS,KAAK,CAAC,WAAW,sEAAsE,EAChG,+FAA+F,CAClG,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElD,iBAAiB;QACjB,wFAAwF;QACxF,mFAAmF;QACnF,MAAM,UAAU,GAAG,QAA2C,CAAC;QAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;QACjC,MAAM,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,KAAK,EACL,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAC3E,QAAQ,EACR,IAAI,CACP,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAE9D,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,UAAU,CAAC,mBAAmB,EAAE,CAAC;gBACvC,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;YACxE,CAAC;YACD,MAAM,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACrC,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;QAC1F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,UAAU,CAAC,mBAAmB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAE,CAAW,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;YACnD,yFAAyF;YACzF,mEAAmE;YACnE,IAAI,cAAc,IAAI,gDAAgD,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAC1B;oBACI,UAAU,EAAE,qBAAqB;oBACjC,WAAW,EAAE,qBAAqB,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;oBACvE,UAAU,EAAE,QAAQ;iBACvB,EACD,IAAI,CACP,CAAC;gBACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC7D,OAAO,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;gBACtE,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,YAAY,CACtB,KAAgC,EAChC,GAAyG,EACzG,QAA2B,EAC3B,IAAc;QAEd,6FAA6F;QAC7F,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAA4B,qBAAqB,EAAE,IAAI,CAAC,CAAC;QACtG,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,2FAA2F;QAC3F,0FAA0F;QAC1F,8FAA8F;QAC9F,MAAM,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAA2C,CAAC,CAAC;QACjG,MAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;QACnD,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;QACzC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3B,+EAA+E;QAC/E,2FAA2F;QAC3F,2FAA2F;QAC3F,yFAAyF;QACzF,mFAAmF;QACnF,MAAM,CAAC,WAAW,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,KAAK,EAAE,oBAAoB;YAAE,MAAM,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC;QAC1F,IAAI,KAAK,EAAE,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QACxE,IAAI,KAAK,EAAE,SAAS;YAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;QAC3D,IAAI,KAAK,EAAE,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7C,IAAI,GAAG,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAEnE,2FAA2F;QAC3F,qEAAqE;QACrE,IAAI,KAAK,EAAE,aAAa,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAqC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YAC/G,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC;YAC1C,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;YACzC,IAAI,KAAK,CAAC,aAAa,CAAC,eAAe;gBAAE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC;YACtG,IAAI,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;gBAC5C,MAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAC7E,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC;gBACpD,MAAM,CAAC,6BAA6B,GAAG,KAAK,CAAC,aAAa,CAAC,6BAA6B,CAAC;YAC7F,CAAC;YACD,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc;gBAAE,MAAM,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC7G,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACX,4CAA4C,MAAM,CAAC,YAAY,EAAE,eAAe,IAAI,iBAAiB,EAAE,CAC1G,CAAC;YACN,CAAC;YACD,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;gBACxC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC;YACrE,CAAC;QACL,CAAC;QAED,+FAA+F;QAC/F,uFAAuF;QACvF,8FAA8F;QAC9F,oDAAoD;QACpD,IAAI,KAAK,EAAE,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QACnD,CAAC;QAED,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAmC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YACzG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;YACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;YACpD,IAAI,CAAC,CAAC,4BAA4B;gBAAE,IAAI,CAAC,4BAA4B,GAAG,WAAW,CAAC,CAAC,CAAC,4BAA4B,EAAE,8BAA8B,CAAC,CAAC;YACpJ,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,EAAE,EAAE;gBAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,kEAAkE;QAClE,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEjD,6FAA6F;QAC7F,wFAAwF;QACxF,6EAA6E;QAC7E,EAAE;QACF,8FAA8F;QAC9F,gGAAgG;QAChG,+FAA+F;QAC/F,6FAA6F;QAC7F,+FAA+F;QAC/F,4FAA4F;QAC5F,sEAAsE;QACtE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAErD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACX,kCAAkC,MAAM,CAAC,YAAY,EAAE,eAAe,IAAI,iBAAiB,EAAE,CAChG,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,qBAAqB,CAC/B,MAA0C,EAC1C,QAA2B,EAC3B,IAAc;QAEd,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC5C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,OAAO,CACjB,SAAiB,EACjB,QAA2B,EAC3B,IAAc,EACd,EAAW;QAEX,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAO5B,EAAE,UAAU,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1G,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAC1B,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,SAAS,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAC1G,IAAI,CACP,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,OAAO,GAAgC,EAAE,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAO3B,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EACpG,IAAI,CACP,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC;oBACT,aAAa,EAAE,CAAC,CAAC,EAAE;oBACnB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;oBAC5C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBACtC,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,gFAAgF;oBAChF,0EAA0E;oBAC1E,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC;iBACxC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAEtE,OAAO;YACH,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,GAAG,CAAC,EAAE;YACvB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACtC,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;YAChE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YAC1D,YAAY,EAAE,OAAO;YACrB,cAAc,EAAE,OAAO;YACvB,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7C,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;IAED,uGAAuG;IAC/F,KAAK,CAAC,WAAW,CACrB,SAAiB,EACjB,QAA2B,EAC3B,IAAc,EACd,EAAW;QAEX,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAUzB;YACI,UAAU,EAAE,4CAA4C;YACxD,WAAW,EACP,8EAA8E;gBAC9E,gFAAgF;gBAChF,sEAAsE,SAAS,KAAK;gBACpF,wCAAwC,SAAS,KAAK;YAC1D,UAAU,EAAE,QAAQ;SACvB,EACD,IAAI,CACP,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAa,EAAE,CAAC,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAmC,EAAE,CAAC;YACrE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,KAAK,GAAG;oBACJ,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;oBACpC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;oBACpC,cAAc,EAAE,EAAE;oBAClB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,gBAAgB,CAAC;oBAClD,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;YAC3C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAC7B,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACjC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;gBACvD,MAAM,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5C,CAAC,CAAC;QACP,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxF,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxF,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,iBAAiB,CAAC,EAAwB;QACpD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC;;;;;;kCAMR,CAAC,CAA2B,CAAC;QAEvD,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACjD,CAAC;IAEO,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE,IAAa;QACxD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5F,CAAC;IAEO,MAAM,CAAC,QAAyB;QACpC,OAAO;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACjD,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,IAAI;SACpB,CAAC;IACN,CAAC;CACJ,CAAA;AAriBY,uBAAuB;IADnC,aAAa,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;GAClD,uBAAuB,CAqiBnC;;AAED,0FAA0F;AAC1F,MAAM,UAAU,2BAA2B;IACvC,sBAAsB;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"CapturePaymentOperation.js","sourceRoot":"","sources":["../src/CapturePaymentOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -156,8 +156,8 @@ export interface CompleteCheckoutResult {
|
|
|
156
156
|
PaymentIntentID?: string;
|
|
157
157
|
ClientSecret?: string;
|
|
158
158
|
/**
|
|
159
|
-
* The IdentityClaim row id minted for the buyer's email
|
|
160
|
-
*
|
|
159
|
+
* The IdentityClaim row id minted for the buyer's email. The verification token is never
|
|
160
|
+
* returned through the checkout path; it would only travel in the claim e-mail, which is off.
|
|
161
161
|
*/
|
|
162
162
|
ClaimToken?: string;
|
|
163
163
|
}
|
|
@@ -265,8 +265,18 @@ export declare class CheckoutSessionService {
|
|
|
265
265
|
private static createOrderLine;
|
|
266
266
|
/**
|
|
267
267
|
* Dynamically populates and coerces extension companion properties from a field map.
|
|
268
|
+
* Returns the Person it resolved (null when none) and the extension row, so a caller that
|
|
269
|
+
* resolved without creating can create the Person later and set it with `setExtensionPerson`.
|
|
268
270
|
*/
|
|
269
271
|
private static hydrateLineExtension;
|
|
272
|
+
/** Sets an extension row's attendee Person, when it has an updatable PersonID / AttendeePersonID column. */
|
|
273
|
+
private static setExtensionPerson;
|
|
274
|
+
/**
|
|
275
|
+
* A per-unit product books one line per unit, so it needs one set of unit details per unit. A
|
|
276
|
+
* widget that sends fewer or more sets than the quantity (a per-line widget sends one) would
|
|
277
|
+
* otherwise book a different number of units than the buyer chose (#583).
|
|
278
|
+
*/
|
|
279
|
+
private static unitDetailsMismatch;
|
|
270
280
|
/**
|
|
271
281
|
* Extracts unit field maps from an input line across all polymorphic formats.
|
|
272
282
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutSessionService.d.ts","sourceRoot":"","sources":["../src/CheckoutSessionService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA+E,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CheckoutSessionService.d.ts","sourceRoot":"","sources":["../src/CheckoutSessionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { LogError, Metadata, RunView } from '@memberjunction/core';
|
|
11
11
|
import { BusinessTimeZoneEngine } from '@mj-biz-apps/common-entities';
|
|
12
|
-
|
|
13
|
-
// '@memberjunction/core-entities-server' once MJ publishes the engine.
|
|
12
|
+
import { IdentityClaimEngineServer } from '@memberjunction/core-entities-server';
|
|
14
13
|
import { CalendarDayOrToday } from './calendar-day.js';
|
|
15
|
-
import { IdentityClaimEngineServer } from './identityClaimContracts.js';
|
|
16
14
|
import { CheckBillingLocation, LoadOrdersEngine, OrderPricingService, OrdersEngine, TodayAsDateValue, CheckAnswersAgainstQuestions, CheckCheckoutAnswers, ReadCheckoutQuestions, NormalizeCheckoutAttribution, CheckCheckoutChoices, ChoicesForStorage, ReadCheckoutChoiceGroups, CheckChoicesAgainstGroups } from '@mj-biz-apps/orders-entities';
|
|
17
15
|
import { EscapeText } from './sql-guards.js';
|
|
18
16
|
import { RunPrePurchaseChecks } from './CheckoutPrePurchaseCheck.js';
|
|
@@ -493,17 +491,26 @@ export class CheckoutSessionService {
|
|
|
493
491
|
else if (['int', 'bigint', 'smallint', 'tinyint', 'decimal', 'numeric', 'float', 'real', 'money', 'smallmoney'].includes(sqlType)) {
|
|
494
492
|
fieldType = 'number';
|
|
495
493
|
}
|
|
496
|
-
else if (['ntext', 'text'
|
|
494
|
+
else if (['ntext', 'text'].includes(sqlType) || f.Length === -1 || f.MaxLength > 255) {
|
|
495
|
+
// MJ stores NVARCHAR(MAX) as Type 'nvarchar' with Length -1. Length is bytes;
|
|
496
|
+
// MaxLength is characters, which is what the 255 threshold means.
|
|
497
497
|
fieldType = 'textarea';
|
|
498
498
|
}
|
|
499
|
+
const options = fieldType === 'select'
|
|
500
|
+
? [...(f.EntityFieldValues ?? [])]
|
|
501
|
+
.sort((a, b) => a.Sequence - b.Sequence)
|
|
502
|
+
.map(v => ({ label: v.Value, value: v.Value }))
|
|
503
|
+
: undefined;
|
|
499
504
|
const camelName = f.Name.charAt(0).toLowerCase() + f.Name.slice(1);
|
|
500
505
|
const label = f.DisplayName?.trim() || f.Name.replace(/([a-z])([A-Z])/g, '$1 $2');
|
|
501
506
|
discoveredFields.push({
|
|
502
507
|
name: camelName,
|
|
503
508
|
label,
|
|
504
509
|
type: fieldType,
|
|
505
|
-
|
|
506
|
-
|
|
510
|
+
// A column with a default is filled by the database when the buyer leaves it blank.
|
|
511
|
+
required: !f.AllowsNull && !f.HasDefaultValue,
|
|
512
|
+
placeholder: f.Description || label,
|
|
513
|
+
...(options ? { options } : {})
|
|
507
514
|
});
|
|
508
515
|
}
|
|
509
516
|
configObj.extensionFields = discoveredFields;
|
|
@@ -715,10 +722,12 @@ export class CheckoutSessionService {
|
|
|
715
722
|
}
|
|
716
723
|
/**
|
|
717
724
|
* Dynamically populates and coerces extension companion properties from a field map.
|
|
725
|
+
* Returns the Person it resolved (null when none) and the extension row, so a caller that
|
|
726
|
+
* resolved without creating can create the Person later and set it with `setExtensionPerson`.
|
|
718
727
|
*/
|
|
719
728
|
static async hydrateLineExtension(line, extensionEntityName, fieldValues, contextUser, createPersons = true) {
|
|
720
729
|
if (!fieldValues || Object.keys(fieldValues).length === 0) {
|
|
721
|
-
return;
|
|
730
|
+
return { PersonID: null, Extension: null };
|
|
722
731
|
}
|
|
723
732
|
// Build descriptive summary for the line card if names/email are present
|
|
724
733
|
const firstName = fieldValues['FirstName'] || fieldValues['firstName'];
|
|
@@ -732,9 +741,9 @@ export class CheckoutSessionService {
|
|
|
732
741
|
if (nameOrEmail) {
|
|
733
742
|
line.Description = String(nameOrEmail);
|
|
734
743
|
}
|
|
735
|
-
// Auto-resolve PersonID if person fields exist on the entity or extension.
|
|
736
|
-
//
|
|
737
|
-
//
|
|
744
|
+
// Auto-resolve PersonID if person fields exist on the entity or extension. Neither draft
|
|
745
|
+
// pricing nor completion creates here (createPersons=false): completion creates a missing
|
|
746
|
+
// attendee only once payment has checked out (#583).
|
|
738
747
|
const resolvedPersonID = await this.resolveOrEnsurePerson(fieldValues, contextUser, createPersons);
|
|
739
748
|
const excludedClientFields = new Set([
|
|
740
749
|
'id',
|
|
@@ -750,10 +759,7 @@ export class CheckoutSessionService {
|
|
|
750
759
|
if (ext) {
|
|
751
760
|
const extFieldsByName = new Map((ext.EntityInfo?.Fields ?? []).map((f) => [f.Name.toLowerCase(), f]));
|
|
752
761
|
if (resolvedPersonID) {
|
|
753
|
-
|
|
754
|
-
if (extPField && !extPField.IsPrimaryKey && !extPField.IsVirtual && extPField.AllowUpdateAPI) {
|
|
755
|
-
ext.Set(extPField.Name, resolvedPersonID);
|
|
756
|
-
}
|
|
762
|
+
this.setExtensionPerson(ext, resolvedPersonID);
|
|
757
763
|
}
|
|
758
764
|
for (const [key, rawValue] of Object.entries(fieldValues)) {
|
|
759
765
|
const lowerKey = key.toLowerCase();
|
|
@@ -776,6 +782,26 @@ export class CheckoutSessionService {
|
|
|
776
782
|
}
|
|
777
783
|
}
|
|
778
784
|
}
|
|
785
|
+
return { PersonID: resolvedPersonID, Extension: ext };
|
|
786
|
+
}
|
|
787
|
+
/** Sets an extension row's attendee Person, when it has an updatable PersonID / AttendeePersonID column. */
|
|
788
|
+
static setExtensionPerson(ext, personID) {
|
|
789
|
+
const fields = ext.EntityInfo?.Fields ?? [];
|
|
790
|
+
const field = fields.find((f) => f.Name.toLowerCase() === 'personid') ?? fields.find((f) => f.Name.toLowerCase() === 'attendeepersonid');
|
|
791
|
+
if (field && !field.IsPrimaryKey && !field.IsVirtual && field.AllowUpdateAPI) {
|
|
792
|
+
ext.Set(field.Name, personID);
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
/**
|
|
796
|
+
* A per-unit product books one line per unit, so it needs one set of unit details per unit. A
|
|
797
|
+
* widget that sends fewer or more sets than the quantity (a per-line widget sends one) would
|
|
798
|
+
* otherwise book a different number of units than the buyer chose (#583).
|
|
799
|
+
*/
|
|
800
|
+
static unitDetailsMismatch(unitMode, quantity, unitPayloads) {
|
|
801
|
+
if (unitMode !== 'perUnit' || unitPayloads.length === 0 || unitPayloads.length === quantity) {
|
|
802
|
+
return null;
|
|
803
|
+
}
|
|
804
|
+
return `Enter details for each of the ${quantity} items (details were given for ${unitPayloads.length}).`;
|
|
779
805
|
}
|
|
780
806
|
/**
|
|
781
807
|
* Extracts unit field maps from an input line across all polymorphic formats.
|
|
@@ -1009,6 +1035,10 @@ export class CheckoutSessionService {
|
|
|
1009
1035
|
if (unitPayloads.length > effectiveMax) {
|
|
1010
1036
|
return failed(`Unit payload count ${unitPayloads.length} exceeds maximum allowed quantity of ${effectiveMax} for this item`);
|
|
1011
1037
|
}
|
|
1038
|
+
const unitMismatch = this.unitDetailsMismatch(unitMode, inputLine.Quantity, unitPayloads);
|
|
1039
|
+
if (unitMismatch) {
|
|
1040
|
+
return failed(unitMismatch);
|
|
1041
|
+
}
|
|
1012
1042
|
if ((unitMode === 'perUnit' || unitPayloads.length > 1) && unitPayloads.length > 0) {
|
|
1013
1043
|
for (const unitData of unitPayloads) {
|
|
1014
1044
|
const line = await this.createOrderLine(order, targetExtensionEntity, md, contextUser);
|
|
@@ -1551,10 +1581,12 @@ export class CheckoutSessionService {
|
|
|
1551
1581
|
Status: 'Open'
|
|
1552
1582
|
};
|
|
1553
1583
|
}
|
|
1554
|
-
// Resolve
|
|
1555
|
-
//
|
|
1556
|
-
//
|
|
1557
|
-
//
|
|
1584
|
+
// Resolve the payer Person; a new buyer's Person is created only once payment has
|
|
1585
|
+
// checked out (below), so a refused payment leaves none behind (#583). Confirm()
|
|
1586
|
+
// refuses an order without a customer, so a payer that can never be created (no
|
|
1587
|
+
// e-mail) must fail HERE with a clear message. Contact fields come from the first unit
|
|
1588
|
+
// payload (name etc.); the email is the session's captured email.
|
|
1589
|
+
let newPayerFields = null;
|
|
1558
1590
|
if (!session.PersonID) {
|
|
1559
1591
|
const firstPayload = linesInput.length > 0 ? this.extractUnitPayloads(linesInput[0])[0] ?? {} : {};
|
|
1560
1592
|
const payerFields = { ...firstPayload, Email: session.Email ?? '' };
|
|
@@ -1568,12 +1600,15 @@ export class CheckoutSessionService {
|
|
|
1568
1600
|
payerFields['Name'] = localPart;
|
|
1569
1601
|
}
|
|
1570
1602
|
}
|
|
1571
|
-
const payerPersonID = await this.resolveOrEnsurePerson(payerFields, contextUser,
|
|
1603
|
+
const payerPersonID = await this.resolveOrEnsurePerson(payerFields, contextUser, false);
|
|
1572
1604
|
if (payerPersonID) {
|
|
1573
1605
|
session.PersonID = payerPersonID;
|
|
1574
1606
|
}
|
|
1607
|
+
else if (session.Email?.trim()) {
|
|
1608
|
+
newPayerFields = payerFields;
|
|
1609
|
+
}
|
|
1575
1610
|
}
|
|
1576
|
-
if (!session.PersonID) {
|
|
1611
|
+
if (!session.PersonID && !newPayerFields) {
|
|
1577
1612
|
await CheckoutSessionService.revertSessionOpenAtomic(sessionID, md, contextUser);
|
|
1578
1613
|
session.Status = 'Open';
|
|
1579
1614
|
return {
|
|
@@ -1597,6 +1632,8 @@ export class CheckoutSessionService {
|
|
|
1597
1632
|
// this checkout cannot prove. Config() is a no-op once loaded.
|
|
1598
1633
|
await BusinessTimeZoneEngine.Instance.Config(false, contextUser ?? md.CurrentUser, Metadata.Provider);
|
|
1599
1634
|
order.OrderDate = TodayAsDateValue();
|
|
1635
|
+
// Attendees whose e-mail matches no Person yet: created after payment checks out.
|
|
1636
|
+
const newAttendees = [];
|
|
1600
1637
|
let sequence = 1;
|
|
1601
1638
|
for (const inputLine of linesInput) {
|
|
1602
1639
|
// Validate quantity: must be positive integer >= 1
|
|
@@ -1664,13 +1701,30 @@ export class CheckoutSessionService {
|
|
|
1664
1701
|
Status: 'Open'
|
|
1665
1702
|
};
|
|
1666
1703
|
}
|
|
1704
|
+
const unitMismatch = this.unitDetailsMismatch(unitMode, inputLine.Quantity, unitPayloads);
|
|
1705
|
+
if (unitMismatch) {
|
|
1706
|
+
await CheckoutSessionService.revertSessionOpenAtomic(sessionID, md, contextUser);
|
|
1707
|
+
session.Status = 'Open';
|
|
1708
|
+
return {
|
|
1709
|
+
Success: false,
|
|
1710
|
+
ErrorMessage: unitMismatch,
|
|
1711
|
+
SessionID: sessionID,
|
|
1712
|
+
Status: 'Open'
|
|
1713
|
+
};
|
|
1714
|
+
}
|
|
1715
|
+
const hydrate = async (line, unitData) => {
|
|
1716
|
+
const hydrated = await this.hydrateLineExtension(line, targetExtensionEntity, unitData, contextUser, false);
|
|
1717
|
+
if (!hydrated.PersonID && hydrated.Extension) {
|
|
1718
|
+
newAttendees.push({ Fields: unitData, Extension: hydrated.Extension });
|
|
1719
|
+
}
|
|
1720
|
+
};
|
|
1667
1721
|
if ((unitMode === 'perUnit' || unitPayloads.length > 1) && unitPayloads.length > 0) {
|
|
1668
1722
|
for (const unitData of unitPayloads) {
|
|
1669
1723
|
const line = await this.createOrderLine(order, targetExtensionEntity, md, contextUser);
|
|
1670
1724
|
line.ProductID = inputLine.ProductID;
|
|
1671
1725
|
line.Quantity = 1;
|
|
1672
1726
|
line.LineNumber = sequence++;
|
|
1673
|
-
await
|
|
1727
|
+
await hydrate(line, unitData);
|
|
1674
1728
|
}
|
|
1675
1729
|
}
|
|
1676
1730
|
else {
|
|
@@ -1679,7 +1733,7 @@ export class CheckoutSessionService {
|
|
|
1679
1733
|
line.Quantity = inputLine.Quantity;
|
|
1680
1734
|
line.LineNumber = sequence++;
|
|
1681
1735
|
if (unitPayloads.length > 0) {
|
|
1682
|
-
await
|
|
1736
|
+
await hydrate(line, unitPayloads[0]);
|
|
1683
1737
|
}
|
|
1684
1738
|
}
|
|
1685
1739
|
}
|
|
@@ -1718,8 +1772,11 @@ export class CheckoutSessionService {
|
|
|
1718
1772
|
Provider: (order.ProviderToUse ?? md),
|
|
1719
1773
|
User: contextUser ?? order.ContextCurrentUser,
|
|
1720
1774
|
});
|
|
1721
|
-
// Priced inline, exactly as the draft was: the Address row
|
|
1722
|
-
// payment checks out, so a refused payment leaves no row behind.
|
|
1775
|
+
// Priced inline, exactly as the draft was: the Address row and any new Person are
|
|
1776
|
+
// recorded only once payment checks out, so a refused payment leaves no row behind.
|
|
1777
|
+
// A new buyer is priced with no BillToPersonID, as the draft was; a Person created
|
|
1778
|
+
// moments later holds no price list, membership, exemption or order history, so
|
|
1779
|
+
// pricing it would not change the price.
|
|
1723
1780
|
const priced = await pricingService.Price({
|
|
1724
1781
|
OrderHeaderID: order.ID || null,
|
|
1725
1782
|
CompanyID: widget.CompanyID,
|
|
@@ -1783,6 +1840,22 @@ export class CheckoutSessionService {
|
|
|
1783
1840
|
// an order. Record the attempt; Confirm rolls back on failure, the record does not.
|
|
1784
1841
|
confirmStep = await CheckoutStepLog.Begin(sessionID, 'Confirm', 'Checkout', contextUser);
|
|
1785
1842
|
}
|
|
1843
|
+
// Payment has checked out (or none was due): create the Persons the checkout needs.
|
|
1844
|
+
if (newPayerFields) {
|
|
1845
|
+
const payerPersonID = await this.resolveOrEnsurePerson(newPayerFields, contextUser, true);
|
|
1846
|
+
if (!payerPersonID) {
|
|
1847
|
+
throw new Error(`Could not create the buyer's Person record for ${session.Email}`);
|
|
1848
|
+
}
|
|
1849
|
+
session.PersonID = payerPersonID;
|
|
1850
|
+
order.BillToPersonID = payerPersonID;
|
|
1851
|
+
order.ShipToPersonID = payerPersonID;
|
|
1852
|
+
}
|
|
1853
|
+
for (const attendee of newAttendees) {
|
|
1854
|
+
const attendeePersonID = await this.resolveOrEnsurePerson(attendee.Fields, contextUser, true);
|
|
1855
|
+
if (attendeePersonID) {
|
|
1856
|
+
this.setExtensionPerson(attendee.Extension, attendeePersonID);
|
|
1857
|
+
}
|
|
1858
|
+
}
|
|
1786
1859
|
// The billing location is the only location a self-serve sale has, so it is both the
|
|
1787
1860
|
// bill-to and the ship-to — the ship-to is what tax is resolved from when Confirm()
|
|
1788
1861
|
// re-prices the order.
|
|
@@ -1816,13 +1889,18 @@ export class CheckoutSessionService {
|
|
|
1816
1889
|
let claimToken;
|
|
1817
1890
|
if (session.Email) {
|
|
1818
1891
|
try {
|
|
1892
|
+
// Claim types are cached at startup; Config() is a no-op once loaded.
|
|
1893
|
+
await IdentityClaimEngineServer.Instance.Config(false, contextUser);
|
|
1819
1894
|
const claim = await IdentityClaimEngineServer.Instance.CreateClaim({
|
|
1820
1895
|
ClaimTypeName: 'GuestOrder',
|
|
1821
1896
|
RecordID: order.ID,
|
|
1822
1897
|
EntityID: md.EntityByName(ORDER_HEADER_ENTITY)?.ID ?? null,
|
|
1823
1898
|
NormalizedEmail: session.Email,
|
|
1824
1899
|
Payload: { OrderID: order.ID, OrderNumber: order.OrderNumber || order.ID },
|
|
1825
|
-
|
|
1900
|
+
// Claim e-mails stay off until a claim e-mail template and the portal base
|
|
1901
|
+
// URL are configured; without them MJ sends a generic message linking to
|
|
1902
|
+
// its default host.
|
|
1903
|
+
SendEmail: false
|
|
1826
1904
|
}, contextUser);
|
|
1827
1905
|
claimToken = claim?.ID;
|
|
1828
1906
|
}
|