@mj-biz-apps/orders-core-entities-server 5.32.0 → 5.33.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/dist/AmendArrangementOperation.d.ts +28 -2
- package/dist/AmendArrangementOperation.d.ts.map +1 -1
- package/dist/AmendArrangementOperation.js +288 -20
- package/dist/AmendArrangementOperation.js.map +1 -1
- package/dist/AmountChange.d.ts +140 -0
- package/dist/AmountChange.d.ts.map +1 -0
- package/dist/AmountChange.js +576 -0
- package/dist/AmountChange.js.map +1 -0
- package/dist/AmountChangePlan.d.ts +214 -0
- package/dist/AmountChangePlan.d.ts.map +1 -0
- package/dist/AmountChangePlan.js +337 -0
- package/dist/AmountChangePlan.js.map +1 -0
- package/dist/AttendeeRequirement.d.ts +57 -0
- package/dist/AttendeeRequirement.d.ts.map +1 -0
- package/dist/AttendeeRequirement.js +96 -0
- package/dist/AttendeeRequirement.js.map +1 -0
- package/dist/BaseInvoiceRail.d.ts +17 -0
- package/dist/BaseInvoiceRail.d.ts.map +1 -1
- package/dist/BaseInvoiceRail.js.map +1 -1
- package/dist/BasePaymentProvider.d.ts +52 -0
- package/dist/BasePaymentProvider.d.ts.map +1 -1
- package/dist/BasePaymentProvider.js +8 -0
- package/dist/BasePaymentProvider.js.map +1 -1
- package/dist/BillComGateway.d.ts +2 -0
- package/dist/BillComGateway.d.ts.map +1 -1
- package/dist/BillComGateway.js +7 -6
- package/dist/BillComGateway.js.map +1 -1
- package/dist/BundleBehavior.d.ts +60 -0
- package/dist/BundleBehavior.d.ts.map +1 -1
- package/dist/BundleBehavior.js +78 -0
- package/dist/BundleBehavior.js.map +1 -1
- package/dist/BundleEngine.d.ts.map +1 -1
- package/dist/BundleEngine.js +110 -6
- package/dist/BundleEngine.js.map +1 -1
- package/dist/CancelSubscriptionOperation.d.ts +6 -0
- package/dist/CancelSubscriptionOperation.d.ts.map +1 -1
- package/dist/CancelSubscriptionOperation.js +45 -10
- package/dist/CancelSubscriptionOperation.js.map +1 -1
- package/dist/ChargeExceptionResolution.d.ts +81 -0
- package/dist/ChargeExceptionResolution.d.ts.map +1 -0
- package/dist/ChargeExceptionResolution.js +83 -0
- package/dist/ChargeExceptionResolution.js.map +1 -0
- package/dist/CheckoutRenewalPayment.d.ts +162 -0
- package/dist/CheckoutRenewalPayment.d.ts.map +1 -0
- package/dist/CheckoutRenewalPayment.js +318 -0
- package/dist/CheckoutRenewalPayment.js.map +1 -0
- package/dist/CheckoutSavedInstrument.d.ts +11 -0
- package/dist/CheckoutSavedInstrument.d.ts.map +1 -1
- package/dist/CheckoutSavedInstrument.js +44 -18
- package/dist/CheckoutSavedInstrument.js.map +1 -1
- package/dist/CheckoutSessionService.d.ts +87 -7
- package/dist/CheckoutSessionService.d.ts.map +1 -1
- package/dist/CheckoutSessionService.js +457 -47
- package/dist/CheckoutSessionService.js.map +1 -1
- package/dist/ConcessionAcknowledgment.d.ts +25 -0
- package/dist/ConcessionAcknowledgment.d.ts.map +1 -0
- package/dist/ConcessionAcknowledgment.js +100 -0
- package/dist/ConcessionAcknowledgment.js.map +1 -0
- package/dist/ConcessionApprovalTask.d.ts +13 -8
- package/dist/ConcessionApprovalTask.d.ts.map +1 -1
- package/dist/ConcessionApprovalTask.js +23 -16
- package/dist/ConcessionApprovalTask.js.map +1 -1
- package/dist/ConcessionGate.d.ts +20 -7
- package/dist/ConcessionGate.d.ts.map +1 -1
- package/dist/ConcessionGate.js +139 -15
- package/dist/ConcessionGate.js.map +1 -1
- package/dist/CreateOrderFromProviderPaymentOperation.d.ts +60 -0
- package/dist/CreateOrderFromProviderPaymentOperation.d.ts.map +1 -0
- package/dist/CreateOrderFromProviderPaymentOperation.js +308 -0
- package/dist/CreateOrderFromProviderPaymentOperation.js.map +1 -0
- package/dist/EntitlementBehavior.d.ts +6 -5
- package/dist/EntitlementBehavior.d.ts.map +1 -1
- package/dist/EntitlementBehavior.js +6 -5
- package/dist/EntitlementBehavior.js.map +1 -1
- package/dist/EntitlementEngine.d.ts +16 -0
- package/dist/EntitlementEngine.d.ts.map +1 -1
- package/dist/EntitlementEngine.js +90 -11
- package/dist/EntitlementEngine.js.map +1 -1
- package/dist/GiftCardBehavior.d.ts +3 -1
- package/dist/GiftCardBehavior.d.ts.map +1 -1
- package/dist/GiftCardBehavior.js +6 -6
- package/dist/GiftCardBehavior.js.map +1 -1
- package/dist/GuestOrderClaimDriver.d.ts.map +1 -1
- package/dist/GuestOrderClaimDriver.js +2 -3
- package/dist/GuestOrderClaimDriver.js.map +1 -1
- package/dist/HubSpotPaymentsGateway.d.ts +37 -0
- package/dist/HubSpotPaymentsGateway.d.ts.map +1 -0
- package/dist/HubSpotPaymentsGateway.js +54 -0
- package/dist/HubSpotPaymentsGateway.js.map +1 -0
- package/dist/HubSpotPaymentsProvider.d.ts +13 -0
- package/dist/HubSpotPaymentsProvider.d.ts.map +1 -0
- package/dist/HubSpotPaymentsProvider.js +49 -0
- package/dist/HubSpotPaymentsProvider.js.map +1 -0
- package/dist/HubSpotPaymentsRail.d.ts +20 -0
- package/dist/HubSpotPaymentsRail.d.ts.map +1 -0
- package/dist/HubSpotPaymentsRail.js +164 -0
- package/dist/HubSpotPaymentsRail.js.map +1 -0
- package/dist/InstalmentBilledSoFar.d.ts +52 -0
- package/dist/InstalmentBilledSoFar.d.ts.map +1 -0
- package/dist/InstalmentBilledSoFar.js +133 -0
- package/dist/InstalmentBilledSoFar.js.map +1 -0
- package/dist/InstalmentInvoiceEntry.d.ts +53 -5
- package/dist/InstalmentInvoiceEntry.d.ts.map +1 -1
- package/dist/InstalmentInvoiceEntry.js +59 -22
- package/dist/InstalmentInvoiceEntry.js.map +1 -1
- package/dist/InvoiceBehavior.d.ts +72 -1
- package/dist/InvoiceBehavior.d.ts.map +1 -1
- package/dist/InvoiceBehavior.js +129 -11
- package/dist/InvoiceBehavior.js.map +1 -1
- package/dist/InvoiceBuilder.d.ts +28 -1
- package/dist/InvoiceBuilder.d.ts.map +1 -1
- package/dist/InvoiceBuilder.js +155 -6
- package/dist/InvoiceBuilder.js.map +1 -1
- package/dist/InvoiceRailResolver.d.ts +13 -1
- package/dist/InvoiceRailResolver.d.ts.map +1 -1
- package/dist/InvoiceRailResolver.js +16 -2
- package/dist/InvoiceRailResolver.js.map +1 -1
- package/dist/IssueInstalmentInvoiceOperation.d.ts.map +1 -1
- package/dist/IssueInstalmentInvoiceOperation.js +34 -7
- package/dist/IssueInstalmentInvoiceOperation.js.map +1 -1
- package/dist/LineParty.d.ts +34 -0
- package/dist/LineParty.d.ts.map +1 -0
- package/dist/LineParty.js +23 -0
- package/dist/LineParty.js.map +1 -0
- package/dist/OrderConcessionEntityServer.d.ts +124 -5
- package/dist/OrderConcessionEntityServer.d.ts.map +1 -1
- package/dist/OrderConcessionEntityServer.js +502 -54
- package/dist/OrderConcessionEntityServer.js.map +1 -1
- package/dist/OrderEntityServer.d.ts +78 -6
- package/dist/OrderEntityServer.d.ts.map +1 -1
- package/dist/OrderEntityServer.js +366 -30
- package/dist/OrderEntityServer.js.map +1 -1
- package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts +12 -1
- package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts.map +1 -1
- package/dist/OrderHeaderPaymentScheduleEntityServer.js +25 -1
- package/dist/OrderHeaderPaymentScheduleEntityServer.js.map +1 -1
- package/dist/OrderJournalEntryFactory.d.ts +7 -0
- package/dist/OrderJournalEntryFactory.d.ts.map +1 -1
- package/dist/OrderJournalEntryFactory.js +20 -5
- package/dist/OrderJournalEntryFactory.js.map +1 -1
- package/dist/OrderLineEntityServer.d.ts +1 -15
- package/dist/OrderLineEntityServer.d.ts.map +1 -1
- package/dist/OrderLineEntityServer.js +9 -17
- package/dist/OrderLineEntityServer.js.map +1 -1
- package/dist/OrdersSettings.d.ts +25 -0
- package/dist/OrdersSettings.d.ts.map +1 -1
- package/dist/OrdersSettings.js +54 -0
- package/dist/OrdersSettings.js.map +1 -1
- package/dist/PaymentAllocationInputs.d.ts.map +1 -1
- package/dist/PaymentAllocationInputs.js +2 -1
- package/dist/PaymentAllocationInputs.js.map +1 -1
- package/dist/PaymentIntentService.d.ts +6 -0
- package/dist/PaymentIntentService.d.ts.map +1 -1
- package/dist/PaymentIntentService.js +43 -12
- package/dist/PaymentIntentService.js.map +1 -1
- package/dist/PaymentScheduleBehavior.d.ts +12 -3
- package/dist/PaymentScheduleBehavior.d.ts.map +1 -1
- package/dist/PaymentScheduleBehavior.js +26 -7
- package/dist/PaymentScheduleBehavior.js.map +1 -1
- package/dist/PollExternalPaymentsOperation.d.ts +2 -1
- package/dist/PollExternalPaymentsOperation.d.ts.map +1 -1
- package/dist/PollExternalPaymentsOperation.js +42 -17
- package/dist/PollExternalPaymentsOperation.js.map +1 -1
- package/dist/ProviderPaymentOrder.d.ts +56 -0
- package/dist/ProviderPaymentOrder.d.ts.map +1 -0
- package/dist/ProviderPaymentOrder.js +78 -0
- package/dist/ProviderPaymentOrder.js.map +1 -0
- package/dist/ReconcilePaymentProviderChargesOperation.d.ts +12 -0
- package/dist/ReconcilePaymentProviderChargesOperation.d.ts.map +1 -1
- package/dist/ReconcilePaymentProviderChargesOperation.js +68 -4
- package/dist/ReconcilePaymentProviderChargesOperation.js.map +1 -1
- package/dist/ReferralProgram.d.ts +25 -0
- package/dist/ReferralProgram.d.ts.map +1 -0
- package/dist/ReferralProgram.js +59 -0
- package/dist/ReferralProgram.js.map +1 -0
- package/dist/RenewalCharging.d.ts +222 -0
- package/dist/RenewalCharging.d.ts.map +1 -0
- package/dist/RenewalCharging.js +718 -0
- package/dist/RenewalCharging.js.map +1 -0
- package/dist/RenewalPromotions.d.ts +58 -0
- package/dist/RenewalPromotions.d.ts.map +1 -0
- package/dist/RenewalPromotions.js +81 -0
- package/dist/RenewalPromotions.js.map +1 -0
- package/dist/ResolveChargeExceptionOperation.d.ts +66 -0
- package/dist/ResolveChargeExceptionOperation.d.ts.map +1 -0
- package/dist/ResolveChargeExceptionOperation.js +198 -0
- package/dist/ResolveChargeExceptionOperation.js.map +1 -0
- package/dist/ReversalBehavior.d.ts +55 -1
- package/dist/ReversalBehavior.d.ts.map +1 -1
- package/dist/ReversalBehavior.js +79 -15
- package/dist/ReversalBehavior.js.map +1 -1
- package/dist/ReversalResolver.d.ts.map +1 -1
- package/dist/ReversalResolver.js +1 -0
- package/dist/ReversalResolver.js.map +1 -1
- package/dist/ReversalScheduleReduction.d.ts +61 -0
- package/dist/ReversalScheduleReduction.d.ts.map +1 -0
- package/dist/ReversalScheduleReduction.js +180 -0
- package/dist/ReversalScheduleReduction.js.map +1 -0
- package/dist/SeatAddition.d.ts +16 -0
- package/dist/SeatAddition.d.ts.map +1 -0
- package/dist/SeatAddition.js +62 -0
- package/dist/SeatAddition.js.map +1 -0
- package/dist/SpawnRenewalsOperation.d.ts +50 -7
- package/dist/SpawnRenewalsOperation.d.ts.map +1 -1
- package/dist/SpawnRenewalsOperation.js +161 -21
- package/dist/SpawnRenewalsOperation.js.map +1 -1
- package/dist/StripePaymentProvider.d.ts +33 -1
- package/dist/StripePaymentProvider.d.ts.map +1 -1
- package/dist/StripePaymentProvider.js +142 -3
- package/dist/StripePaymentProvider.js.map +1 -1
- package/dist/SubscriptionBehavior.d.ts +34 -4
- package/dist/SubscriptionBehavior.d.ts.map +1 -1
- package/dist/SubscriptionBehavior.js +41 -6
- package/dist/SubscriptionBehavior.js.map +1 -1
- package/dist/TermExtension.d.ts +78 -1
- package/dist/TermExtension.d.ts.map +1 -1
- package/dist/TermExtension.js +63 -46
- package/dist/TermExtension.js.map +1 -1
- package/dist/TermExtensionPlan.d.ts +6 -3
- package/dist/TermExtensionPlan.d.ts.map +1 -1
- package/dist/TermExtensionPlan.js +6 -4
- package/dist/TermExtensionPlan.js.map +1 -1
- package/dist/TermShift.d.ts +65 -0
- package/dist/TermShift.d.ts.map +1 -0
- package/dist/TermShift.js +342 -0
- package/dist/TermShift.js.map +1 -0
- package/dist/TermShiftPlan.d.ts +71 -0
- package/dist/TermShiftPlan.d.ts.map +1 -0
- package/dist/TermShiftPlan.js +127 -0
- package/dist/TermShiftPlan.js.map +1 -0
- package/dist/UnmatchedChargeOrders.d.ts +49 -0
- package/dist/UnmatchedChargeOrders.d.ts.map +1 -0
- package/dist/UnmatchedChargeOrders.js +122 -0
- package/dist/UnmatchedChargeOrders.js.map +1 -0
- package/dist/UnmatchedChargeRules.d.ts +73 -0
- package/dist/UnmatchedChargeRules.d.ts.map +1 -0
- package/dist/UnmatchedChargeRules.js +92 -0
- package/dist/UnmatchedChargeRules.js.map +1 -0
- package/dist/VatLocationEvidence.d.ts +21 -0
- package/dist/VatLocationEvidence.d.ts.map +1 -0
- package/dist/VatLocationEvidence.js +31 -0
- package/dist/VatLocationEvidence.js.map +1 -0
- package/dist/claimDriverHelpers.d.ts.map +1 -1
- package/dist/claimDriverHelpers.js +1 -2
- package/dist/claimDriverHelpers.js.map +1 -1
- package/dist/entity-names.d.ts +6 -0
- package/dist/entity-names.d.ts.map +1 -1
- package/dist/entity-names.js +6 -0
- package/dist/entity-names.js.map +1 -1
- package/dist/index.d.ts +33 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/person-user-link.d.ts +59 -0
- package/dist/person-user-link.d.ts.map +1 -0
- package/dist/person-user-link.js +174 -0
- package/dist/person-user-link.js.map +1 -0
- package/dist/sql-guards.d.ts +2 -36
- package/dist/sql-guards.d.ts.map +1 -1
- package/dist/sql-guards.js +7 -59
- package/dist/sql-guards.js.map +1 -1
- package/package.json +3 -3
|
@@ -8,7 +8,24 @@
|
|
|
8
8
|
* approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
|
|
9
9
|
* is approved on save, so the extension applies in this call.
|
|
10
10
|
*
|
|
11
|
-
* A
|
|
11
|
+
* A referral extension (#529) names its `ReferralProgramID`, with the reason category Referral. The program approves
|
|
12
|
+
* it when it is in program (see ./ReferralProgram.ts); `Preview` says whether it would, and the extension applies in
|
|
13
|
+
* this call when it does. More days than the program grants are recorded Pending, like any other concession.
|
|
14
|
+
*
|
|
15
|
+
* A change of amount (case A, #506): the caller names a term and its new, lower amount, optionally the invoice the
|
|
16
|
+
* reduction is about. `Preview` returns the plan from ./AmountChange.ts: the catch-up, the staged entries offset and
|
|
17
|
+
* the new schedule, the instalments reduced and any credit memo. Otherwise it records a Price `OrderConcession`
|
|
18
|
+
* carrying `NewAmount`, valued as the reduction and routed for approval like any other; the change applies when that
|
|
19
|
+
* concession is approved. What the uninvoiced instalments cannot absorb is credited on a credit memo the approved
|
|
20
|
+
* concession carries (#662); `RefundRequested` asks for a paid invoice's credit back, which finance then refunds.
|
|
21
|
+
*
|
|
22
|
+
* A shift (#507) moves the term's start and end by the same number of days: the caller names the term and its
|
|
23
|
+
* new start, and the new end follows. It records a Shift `OrderConcession`, valued at zero, which goes through
|
|
24
|
+
* under the `TermShiftReviewDays` setting and otherwise waits for finance to review it; it takes effect when
|
|
25
|
+
* approved (see ./TermShift.ts). `Preview` returns the offsets, the new schedule and the catch-up or reversal for
|
|
26
|
+
* periods already behind us. Finance escalates a shift awaiting its review to the ConcessionLimit approver by
|
|
27
|
+
* naming the concession in `EscalateOrderConcessionID`, with the reason. A shortening (an earlier end, or a later
|
|
28
|
+
* start with the same end) is refused until the credit-memo path its credit follows exists.
|
|
12
29
|
*
|
|
13
30
|
* A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
|
|
14
31
|
* records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
|
|
@@ -17,14 +34,23 @@
|
|
|
17
34
|
*
|
|
18
35
|
* CONNECTS TO:
|
|
19
36
|
* PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
|
|
37
|
+
* ./AmountChange.ts (CheckAmountChange) · ./ReferralProgram.ts (CheckReferralProgram)
|
|
38
|
+
* ./TermShift.ts (CheckTermShift)
|
|
20
39
|
* RECORDS: OrderConcessionEntityServer (value, approval, application)
|
|
21
40
|
*/
|
|
22
41
|
import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
|
|
23
42
|
import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, type AmendArrangementInput, type AmendArrangementOutput } from '@mj-biz-apps/orders-entities';
|
|
24
43
|
export declare class AmendArrangementOperation extends OrdersAmendArrangementOperationBase {
|
|
25
44
|
protected InternalExecute(input: AmendArrangementInput, provider: IMetadataProvider, user: UserInfo): Promise<AmendArrangementOutput>;
|
|
45
|
+
private amendAmount;
|
|
26
46
|
private amendPaymentTerms;
|
|
27
|
-
|
|
47
|
+
/** The subscription the line that bought the term renews, or null when that line is not a renewal. */
|
|
48
|
+
private renewsSubscription;
|
|
49
|
+
private currentDates;
|
|
50
|
+
/** Record a Shift concession, or preview what it would do (#507). */
|
|
51
|
+
private amendShift;
|
|
52
|
+
/** Finance sends a Shift awaiting its review to the ConcessionLimit approver (#507). */
|
|
53
|
+
private escalateShift;
|
|
28
54
|
}
|
|
29
55
|
/** Tree-shaking anchor — called from the server bootstrap so the registration is retained. */
|
|
30
56
|
export declare function LoadAmendArrangementOperation(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmendArrangementOperation.d.ts","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AmendArrangementOperation.d.ts","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAGH,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,+BAA+B,IAAI,mCAAmC,EAEtE,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAK9B,MAAM,8BAA8B,CAAC;AAYtC,qBACa,yBAA0B,SAAQ,mCAAmC;cAC9D,eAAe,CAC3B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC;YAsJpB,WAAW;YAyFX,iBAAiB;IAoD/B,sGAAsG;YACxF,kBAAkB;YAelB,YAAY;IAiB1B,qEAAqE;YACvD,UAAU;IAgExB,wFAAwF;YAC1E,aAAa;CA0B9B;AAcD,8FAA8F;AAC9F,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
|
|
@@ -14,7 +14,24 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
14
14
|
* approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
|
|
15
15
|
* is approved on save, so the extension applies in this call.
|
|
16
16
|
*
|
|
17
|
-
* A
|
|
17
|
+
* A referral extension (#529) names its `ReferralProgramID`, with the reason category Referral. The program approves
|
|
18
|
+
* it when it is in program (see ./ReferralProgram.ts); `Preview` says whether it would, and the extension applies in
|
|
19
|
+
* this call when it does. More days than the program grants are recorded Pending, like any other concession.
|
|
20
|
+
*
|
|
21
|
+
* A change of amount (case A, #506): the caller names a term and its new, lower amount, optionally the invoice the
|
|
22
|
+
* reduction is about. `Preview` returns the plan from ./AmountChange.ts: the catch-up, the staged entries offset and
|
|
23
|
+
* the new schedule, the instalments reduced and any credit memo. Otherwise it records a Price `OrderConcession`
|
|
24
|
+
* carrying `NewAmount`, valued as the reduction and routed for approval like any other; the change applies when that
|
|
25
|
+
* concession is approved. What the uninvoiced instalments cannot absorb is credited on a credit memo the approved
|
|
26
|
+
* concession carries (#662); `RefundRequested` asks for a paid invoice's credit back, which finance then refunds.
|
|
27
|
+
*
|
|
28
|
+
* A shift (#507) moves the term's start and end by the same number of days: the caller names the term and its
|
|
29
|
+
* new start, and the new end follows. It records a Shift `OrderConcession`, valued at zero, which goes through
|
|
30
|
+
* under the `TermShiftReviewDays` setting and otherwise waits for finance to review it; it takes effect when
|
|
31
|
+
* approved (see ./TermShift.ts). `Preview` returns the offsets, the new schedule and the catch-up or reversal for
|
|
32
|
+
* periods already behind us. Finance escalates a shift awaiting its review to the ConcessionLimit approver by
|
|
33
|
+
* naming the concession in `EscalateOrderConcessionID`, with the reason. A shortening (an earlier end, or a later
|
|
34
|
+
* start with the same end) is refused until the credit-memo path its credit follows exists.
|
|
18
35
|
*
|
|
19
36
|
* A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
|
|
20
37
|
* records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
|
|
@@ -23,52 +40,122 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
23
40
|
*
|
|
24
41
|
* CONNECTS TO:
|
|
25
42
|
* PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
|
|
43
|
+
* ./AmountChange.ts (CheckAmountChange) · ./ReferralProgram.ts (CheckReferralProgram)
|
|
44
|
+
* ./TermShift.ts (CheckTermShift)
|
|
26
45
|
* RECORDS: OrderConcessionEntityServer (value, approval, application)
|
|
27
46
|
*/
|
|
28
47
|
import { BaseRemotableOperation, RunView, } from '@memberjunction/core';
|
|
29
48
|
import { RegisterClass } from '@memberjunction/global';
|
|
30
|
-
import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, AsDateValue, ConcessionValue, InclusiveDays, } from '@mj-biz-apps/orders-entities';
|
|
31
|
-
import { ORDER_CONCESSION_ENTITY } from './entity-names.js';
|
|
49
|
+
import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, AsDateValue, ConcessionValue, InclusiveDays, SplitTermDateChange, } from '@mj-biz-apps/orders-entities';
|
|
50
|
+
import { ORDER_CONCESSION_ENTITY, ORDER_LINE_ENTITY } from './entity-names.js';
|
|
32
51
|
import { RequireOptionalDay, RequireUUID } from './sql-guards.js';
|
|
52
|
+
import { CheckAmountChange } from './AmountChange.js';
|
|
33
53
|
import { CheckTermsChange } from './PaymentTermsChange.js';
|
|
34
|
-
import {
|
|
35
|
-
|
|
54
|
+
import { CheckReferralProgram } from './ReferralProgram.js';
|
|
55
|
+
import { AsDay, CheckTermExtension, IsoDay } from './TermExtension.js';
|
|
56
|
+
import { CheckTermShift } from './TermShift.js';
|
|
57
|
+
const REASON_CATEGORIES = ['Retention', 'Referral', 'Dispute', 'Other'];
|
|
36
58
|
let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAmendArrangementOperationBase {
|
|
37
59
|
async InternalExecute(input, provider, user) {
|
|
38
|
-
if (
|
|
60
|
+
if (input.EscalateOrderConcessionID != null)
|
|
61
|
+
return this.escalateShift(input, provider, user);
|
|
62
|
+
if (!input.ReasonCategory || !REASON_CATEGORIES.includes(input.ReasonCategory)) {
|
|
39
63
|
return { Success: false, Message: `ReasonCategory must be one of ${REASON_CATEGORIES.join(', ')}.` };
|
|
40
64
|
}
|
|
41
65
|
if (!input.Reason?.trim())
|
|
42
66
|
return { Success: false, Message: 'An amendment must state its reason.' };
|
|
43
67
|
if (input.NewPaymentTermsTypeID != null || input.OrderHeaderID != null) {
|
|
44
|
-
if (input.SubscriptionTermID != null ||
|
|
45
|
-
|
|
68
|
+
if (input.SubscriptionTermID != null ||
|
|
69
|
+
input.NewStartDate != null ||
|
|
70
|
+
input.NewEndDate != null ||
|
|
71
|
+
input.NewAmount != null ||
|
|
72
|
+
input.AppliesToInvoiceID != null ||
|
|
73
|
+
input.ReferralProgramID != null) {
|
|
74
|
+
return {
|
|
75
|
+
Success: false,
|
|
76
|
+
Message: 'A change of payment terms is amended on its own, without a term, end date, amount or referral program.',
|
|
77
|
+
};
|
|
46
78
|
}
|
|
47
79
|
return this.amendPaymentTerms(input, provider, user);
|
|
48
80
|
}
|
|
81
|
+
if (input.NewAmount != null) {
|
|
82
|
+
if (input.NewEndDate != null || input.NewStartDate != null) {
|
|
83
|
+
return { Success: false, Message: 'A change of amount and a change of dates are amended separately.' };
|
|
84
|
+
}
|
|
85
|
+
if (input.ReferralProgramID != null) {
|
|
86
|
+
return { Success: false, Message: 'A referral program extends a term; it does not go with a change of amount.' };
|
|
87
|
+
}
|
|
88
|
+
return this.amendAmount(input, provider, user);
|
|
89
|
+
}
|
|
90
|
+
if (input.AppliesToInvoiceID != null || input.RefundRequested) {
|
|
91
|
+
return { Success: false, Message: 'AppliesToInvoiceID and RefundRequested go with a change of amount (NewAmount).' };
|
|
92
|
+
}
|
|
49
93
|
let newEnd;
|
|
94
|
+
let newStart;
|
|
50
95
|
try {
|
|
51
96
|
RequireUUID(input.SubscriptionTermID, 'SubscriptionTermID');
|
|
52
97
|
newEnd = AsDateValue(RequireOptionalDay(input.NewEndDate, 'NewEndDate'));
|
|
98
|
+
newStart = AsDateValue(RequireOptionalDay(input.NewStartDate, 'NewStartDate'));
|
|
99
|
+
if (input.ReferralProgramID != null)
|
|
100
|
+
RequireUUID(input.ReferralProgramID, 'ReferralProgramID');
|
|
53
101
|
}
|
|
54
102
|
catch (e) {
|
|
55
103
|
return { Success: false, Message: String(e.message) };
|
|
56
104
|
}
|
|
57
|
-
if (
|
|
58
|
-
return { Success: false, Message: '
|
|
59
|
-
}
|
|
60
|
-
if (!newEnd)
|
|
61
|
-
return { Success: false, Message: 'NewEndDate is required.' };
|
|
105
|
+
if (!newEnd && !newStart)
|
|
106
|
+
return { Success: false, Message: 'NewEndDate or NewStartDate is required.' };
|
|
62
107
|
const termID = input.SubscriptionTermID;
|
|
63
|
-
const current = await this.
|
|
108
|
+
const current = await this.currentDates(termID, provider, user);
|
|
64
109
|
if (typeof current === 'string')
|
|
65
110
|
return { Success: false, Message: current };
|
|
66
|
-
const
|
|
111
|
+
const startDays = newStart ? Math.round((AsDay(newStart).getTime() - current.StartDate.getTime()) / 86_400_000) : 0;
|
|
112
|
+
const change = SplitTermDateChange(current, {
|
|
113
|
+
StartDate: newStart ? AsDay(newStart) : current.StartDate,
|
|
114
|
+
// A new start alone moves the end with it: that is a shift.
|
|
115
|
+
EndDate: newEnd ? AsDay(newEnd) : new Date(current.EndDate.getTime() + startDays * 86_400_000),
|
|
116
|
+
});
|
|
117
|
+
if (change.ShorteningDays > 0) {
|
|
118
|
+
return {
|
|
119
|
+
Success: false,
|
|
120
|
+
Message: 'Shortening a booked term (an earlier end, or a later start with the same end) is not supported yet: ' +
|
|
121
|
+
'its credit follows the change-of-amount path, which cannot record a change yet.',
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
if (change.ShiftDays !== 0 && change.ExtensionDays !== 0) {
|
|
125
|
+
return {
|
|
126
|
+
Success: false,
|
|
127
|
+
Message: 'This change both moves the term and lengthens it. Move it first, then extend it, as two amendments.',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
if (change.ShiftDays !== 0) {
|
|
131
|
+
if (input.ReferralProgramID != null) {
|
|
132
|
+
return { Success: false, Message: 'A referral program extends a term; it does not go with a move of its dates.' };
|
|
133
|
+
}
|
|
134
|
+
return this.amendShift(input, termID, current, change.ShiftDays, provider, user);
|
|
135
|
+
}
|
|
136
|
+
const addedDays = change.ExtensionDays;
|
|
67
137
|
const checked = await CheckTermExtension({ SubscriptionTermID: termID, AddedDays: addedDays, RequestedByUserID: user.ID }, { Provider: provider, User: user });
|
|
68
138
|
if (typeof checked === 'string')
|
|
69
139
|
return { Success: false, Message: checked };
|
|
140
|
+
let program = null;
|
|
141
|
+
if (input.ReferralProgramID != null) {
|
|
142
|
+
const verdict = await CheckReferralProgram({
|
|
143
|
+
ReferralProgramID: input.ReferralProgramID,
|
|
144
|
+
DeliveryForm: 'Duration',
|
|
145
|
+
ReasonCategory: input.ReasonCategory,
|
|
146
|
+
AddedDays: addedDays,
|
|
147
|
+
OrderHeaderID: checked.OrderHeaderID,
|
|
148
|
+
RenewsSubscriptionID: await this.renewsSubscription(checked.OrderLineID, provider, user),
|
|
149
|
+
TermStartDate: checked.TermStartDate,
|
|
150
|
+
Today: checked.EffectiveDate,
|
|
151
|
+
}, { Provider: provider, User: user });
|
|
152
|
+
if (typeof verdict === 'string')
|
|
153
|
+
return { Success: false, Message: verdict };
|
|
154
|
+
program = verdict;
|
|
155
|
+
}
|
|
70
156
|
const summary = {
|
|
71
157
|
Success: true,
|
|
158
|
+
...(program ? { ReferralProgram: program.ProgramName, ApprovedByReferralProgram: program.InProgram } : {}),
|
|
72
159
|
CurrentEndDate: day(checked.CurrentEndDate),
|
|
73
160
|
NewEndDate: day(checked.NewEndDate),
|
|
74
161
|
EffectiveDate: day(checked.EffectiveDate),
|
|
@@ -87,7 +174,7 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
|
|
|
87
174
|
NewSchedule: checked.Plan.Respread.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
|
|
88
175
|
};
|
|
89
176
|
if (input.Preview) {
|
|
90
|
-
return { ...summary, Message: `Term would end ${summary.NewEndDate} instead of ${summary.CurrentEndDate}
|
|
177
|
+
return { ...summary, Message: `Term would end ${summary.NewEndDate} instead of ${summary.CurrentEndDate}.${programNote(program)}` };
|
|
91
178
|
}
|
|
92
179
|
const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
|
|
93
180
|
concession.NewRecord();
|
|
@@ -96,6 +183,8 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
|
|
|
96
183
|
concession.AddedDays = addedDays;
|
|
97
184
|
concession.ReasonCategory = input.ReasonCategory;
|
|
98
185
|
concession.Reason = input.Reason.trim();
|
|
186
|
+
if (input.ReferralProgramID != null)
|
|
187
|
+
concession.ReferralProgramID = input.ReferralProgramID;
|
|
99
188
|
if (!(await concession.Save())) {
|
|
100
189
|
return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
|
|
101
190
|
}
|
|
@@ -109,6 +198,85 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
|
|
|
109
198
|
: `The extension to ${summary.NewEndDate} is awaiting approval; it takes effect when approved.`,
|
|
110
199
|
};
|
|
111
200
|
}
|
|
201
|
+
async amendAmount(input, provider, user) {
|
|
202
|
+
let checked;
|
|
203
|
+
try {
|
|
204
|
+
checked = await CheckAmountChange({
|
|
205
|
+
SubscriptionTermID: RequireUUID(input.SubscriptionTermID, 'SubscriptionTermID'),
|
|
206
|
+
NewAmount: Number(input.NewAmount),
|
|
207
|
+
AppliesToInvoiceID: input.AppliesToInvoiceID ? RequireUUID(input.AppliesToInvoiceID, 'AppliesToInvoiceID') : null,
|
|
208
|
+
RefundRequested: input.RefundRequested === true,
|
|
209
|
+
RequestedByUserID: user.ID,
|
|
210
|
+
}, { Provider: provider, User: user });
|
|
211
|
+
}
|
|
212
|
+
catch (e) {
|
|
213
|
+
return { Success: false, Message: String(e.message) };
|
|
214
|
+
}
|
|
215
|
+
if (typeof checked === 'string')
|
|
216
|
+
return { Success: false, Message: checked };
|
|
217
|
+
const plan = checked.Recognition;
|
|
218
|
+
const billing = checked.Billing;
|
|
219
|
+
const summary = {
|
|
220
|
+
Success: true,
|
|
221
|
+
EffectiveDate: day(checked.EffectiveDate),
|
|
222
|
+
CurrentAmount: checked.CurrentAmount,
|
|
223
|
+
NewAmount: checked.NewAmount,
|
|
224
|
+
Value: plan.Reduction,
|
|
225
|
+
TaxReduction: checked.TaxReduction,
|
|
226
|
+
GrossReduction: checked.GrossReduction,
|
|
227
|
+
CatchUp: plan.CatchUp,
|
|
228
|
+
Respread: plan.Remaining,
|
|
229
|
+
Offsets: plan.Offsets.map((d, i) => ({
|
|
230
|
+
EffectiveDate: d.EffectiveDate,
|
|
231
|
+
Amount: d.Lines.reduce((sum, l) => sum + Number(l.DebitAmount ?? 0), 0),
|
|
232
|
+
Offsets: plan.Targets[i].EntryNumber,
|
|
233
|
+
})),
|
|
234
|
+
NewSchedule: plan.Respread.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
|
|
235
|
+
Instalments: billing.Instalments.map((c) => ({
|
|
236
|
+
InstalmentID: c.ID,
|
|
237
|
+
InstallmentNumber: c.InstallmentNumber,
|
|
238
|
+
DueDate: c.DueDate,
|
|
239
|
+
CurrentAmount: c.CurrentAmount,
|
|
240
|
+
NewAmount: c.NewAmount,
|
|
241
|
+
})),
|
|
242
|
+
CreditMemo: billing.CreditMemo,
|
|
243
|
+
CreditApplied: billing.Applied.map((a) => ({ InstalmentID: a.InstalmentID, DocumentNumber: a.DocumentNumber, Amount: a.Amount })),
|
|
244
|
+
Refund: billing.Refund,
|
|
245
|
+
OpenCredit: billing.OpenCredit,
|
|
246
|
+
};
|
|
247
|
+
if (input.Preview) {
|
|
248
|
+
return {
|
|
249
|
+
...summary,
|
|
250
|
+
Message: `Term ${checked.TermNumber} of ${checked.SubscriptionNumber} would go from ${checked.CurrentAmount.toFixed(2)} to ` +
|
|
251
|
+
`${checked.NewAmount.toFixed(2)}: ${plan.CatchUp.toFixed(2)} taken back from revenue already earned, ` +
|
|
252
|
+
`${checked.ScheduleReduction.toFixed(2)} off the instalments not yet invoiced, ` +
|
|
253
|
+
`${billing.CreditMemo.toFixed(2)} credited on a credit memo` +
|
|
254
|
+
(billing.Refund > 0 ? `, of which ${billing.Refund.toFixed(2)} is refunded.` : '.'),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
|
|
258
|
+
concession.NewRecord();
|
|
259
|
+
concession.DeliveryForm = 'Price';
|
|
260
|
+
concession.SubscriptionTermID = checked.TermID;
|
|
261
|
+
concession.NewAmount = checked.NewAmount;
|
|
262
|
+
concession.AppliesToPaymentScheduleID = input.AppliesToInvoiceID ?? null;
|
|
263
|
+
concession.RefundRequested = input.RefundRequested === true;
|
|
264
|
+
concession.ReasonCategory = input.ReasonCategory;
|
|
265
|
+
concession.Reason = (input.Reason ?? '').trim();
|
|
266
|
+
if (!(await concession.Save())) {
|
|
267
|
+
return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
...summary,
|
|
271
|
+
OrderConcessionID: concession.ID,
|
|
272
|
+
Status: concession.Status,
|
|
273
|
+
Message: concession.Status === 'Approved'
|
|
274
|
+
? `Term ${checked.TermNumber} lowered to ${checked.NewAmount.toFixed(2)}` +
|
|
275
|
+
(concession.CreditMemoNumber ? `, with credit memo ${concession.CreditMemoNumber}` : '') +
|
|
276
|
+
`. Accounting has been asked to confirm the re-cut${billing.Refund > 0 ? ' and pay the refund' : ''}.`
|
|
277
|
+
: `Lowering term ${checked.TermNumber} to ${checked.NewAmount.toFixed(2)} is awaiting approval; it takes effect when approved.`,
|
|
278
|
+
};
|
|
279
|
+
}
|
|
112
280
|
async amendPaymentTerms(input, provider, user) {
|
|
113
281
|
let checked;
|
|
114
282
|
try {
|
|
@@ -153,26 +321,126 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
|
|
|
153
321
|
Message: `The change to ${checked.NewTermsName} is awaiting approval; it takes effect when approved.`,
|
|
154
322
|
};
|
|
155
323
|
}
|
|
156
|
-
|
|
324
|
+
/** The subscription the line that bought the term renews, or null when that line is not a renewal. */
|
|
325
|
+
async renewsSubscription(lineID, provider, user) {
|
|
326
|
+
const rv = new RunView(provider);
|
|
327
|
+
const res = await rv.RunView({
|
|
328
|
+
EntityName: ORDER_LINE_ENTITY,
|
|
329
|
+
ExtraFilter: `ID = '${RequireUUID(lineID, 'OrderLineID')}'`,
|
|
330
|
+
Fields: ['RenewsSubscriptionID'],
|
|
331
|
+
ResultType: 'simple',
|
|
332
|
+
BypassCache: true,
|
|
333
|
+
}, user);
|
|
334
|
+
return res?.Results?.[0]?.RenewsSubscriptionID ?? null;
|
|
335
|
+
}
|
|
336
|
+
async currentDates(termID, provider, user) {
|
|
157
337
|
const rv = new RunView(provider);
|
|
158
338
|
const res = await rv.RunView({
|
|
159
339
|
EntityName: 'MJ_BizApps_Orders: Subscription Terms',
|
|
160
340
|
ExtraFilter: `ID = '${RequireUUID(termID, 'SubscriptionTermID')}'`,
|
|
161
|
-
Fields: ['EndDate'],
|
|
341
|
+
Fields: ['StartDate', 'EndDate'],
|
|
162
342
|
ResultType: 'simple',
|
|
163
343
|
BypassCache: true,
|
|
164
344
|
}, user);
|
|
165
345
|
const term = res?.Results?.[0];
|
|
166
346
|
if (!term)
|
|
167
347
|
return `Subscription term ${termID} was not found.`;
|
|
168
|
-
|
|
169
|
-
|
|
348
|
+
return { StartDate: AsDay(term.StartDate), EndDate: AsDay(term.EndDate) };
|
|
349
|
+
}
|
|
350
|
+
/** Record a Shift concession, or preview what it would do (#507). */
|
|
351
|
+
async amendShift(input, termID, current, shiftDays, provider, user) {
|
|
352
|
+
const checked = await CheckTermShift({ SubscriptionTermID: termID, ShiftDays: shiftDays, RequestedByUserID: user.ID }, { Provider: provider, User: user });
|
|
353
|
+
if (typeof checked === 'string')
|
|
354
|
+
return { Success: false, Message: checked };
|
|
355
|
+
const plan = checked.Plan;
|
|
356
|
+
const summary = {
|
|
357
|
+
Success: true,
|
|
358
|
+
CurrentStartDate: IsoDay(checked.CurrentStartDate),
|
|
359
|
+
NewStartDate: IsoDay(checked.NewStartDate),
|
|
360
|
+
CurrentEndDate: IsoDay(checked.CurrentEndDate),
|
|
361
|
+
NewEndDate: IsoDay(checked.NewEndDate),
|
|
362
|
+
EffectiveDate: IsoDay(checked.EffectiveDate),
|
|
363
|
+
Value: 0,
|
|
364
|
+
Offsets: plan.Offsets.map((d, i) => ({
|
|
365
|
+
EffectiveDate: d.EffectiveDate,
|
|
366
|
+
Amount: d.Lines.reduce((sum, l) => sum + Number(l.DebitAmount ?? 0), 0),
|
|
367
|
+
Offsets: plan.Targets[i].EntryNumber,
|
|
368
|
+
})),
|
|
369
|
+
NewSchedule: plan.Schedule.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
|
|
370
|
+
Correction: plan.Correction ? { EffectiveDate: plan.Correction.EffectiveDate, Amount: plan.CorrectionAmount } : null,
|
|
371
|
+
MovedInstalments: checked.Instalments.map((m) => ({
|
|
372
|
+
InstallmentNumber: m.InstallmentNumber,
|
|
373
|
+
DueDate: IsoDay(m.DueDate),
|
|
374
|
+
NewDueDate: IsoDay(m.NewDueDate),
|
|
375
|
+
})),
|
|
376
|
+
InstalmentsLeft: checked.InstalmentsLeft,
|
|
377
|
+
};
|
|
378
|
+
const window = `${summary.NewStartDate} – ${summary.NewEndDate}`;
|
|
379
|
+
if (input.Preview) {
|
|
380
|
+
return { ...summary, Message: `Term would run ${window} instead of ${IsoDay(current.StartDate)} – ${IsoDay(current.EndDate)}.` };
|
|
381
|
+
}
|
|
382
|
+
const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
|
|
383
|
+
concession.NewRecord();
|
|
384
|
+
concession.DeliveryForm = 'Shift';
|
|
385
|
+
concession.SubscriptionTermID = termID;
|
|
386
|
+
concession.NewStartDate = checked.NewStartDate;
|
|
387
|
+
concession.NewEndDate = checked.NewEndDate;
|
|
388
|
+
concession.ReasonCategory = input.ReasonCategory;
|
|
389
|
+
concession.Reason = input.Reason.trim();
|
|
390
|
+
if (!(await concession.Save())) {
|
|
391
|
+
return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
|
|
392
|
+
}
|
|
393
|
+
return {
|
|
394
|
+
...summary,
|
|
395
|
+
OrderConcessionID: concession.ID,
|
|
396
|
+
Status: concession.Status,
|
|
397
|
+
Message: concession.Status === 'Approved'
|
|
398
|
+
? `Term moved to ${window}. Accounting has been asked to confirm the re-cut.`
|
|
399
|
+
: `The move to ${window} is awaiting finance review; it takes effect when approved.`,
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
/** Finance sends a Shift awaiting its review to the ConcessionLimit approver (#507). */
|
|
403
|
+
async escalateShift(input, provider, user) {
|
|
404
|
+
let id;
|
|
405
|
+
try {
|
|
406
|
+
id = RequireUUID(input.EscalateOrderConcessionID, 'EscalateOrderConcessionID');
|
|
407
|
+
}
|
|
408
|
+
catch (e) {
|
|
409
|
+
return { Success: false, Message: String(e.message) };
|
|
410
|
+
}
|
|
411
|
+
const others = [input.SubscriptionTermID, input.NewStartDate, input.NewEndDate, input.NewAmount, input.OrderHeaderID, input.ReferralProgramID];
|
|
412
|
+
if (others.some((v) => v != null)) {
|
|
413
|
+
return { Success: false, Message: 'An escalation names only the concession and the reason.' };
|
|
414
|
+
}
|
|
415
|
+
const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
|
|
416
|
+
if (!(await concession.Load(id)))
|
|
417
|
+
return { Success: false, Message: `Order concession ${id} was not found.` };
|
|
418
|
+
if (typeof concession.EscalateShift !== 'function') {
|
|
419
|
+
return { Success: false, Message: 'The orders server subclass of Order Concessions is not registered, so the shift cannot be escalated.' };
|
|
420
|
+
}
|
|
421
|
+
if (!(await concession.EscalateShift(input.Reason ?? ''))) {
|
|
422
|
+
return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The shift could not be escalated.' };
|
|
423
|
+
}
|
|
424
|
+
return {
|
|
425
|
+
Success: true,
|
|
426
|
+
OrderConcessionID: concession.ID,
|
|
427
|
+
Status: concession.Status,
|
|
428
|
+
Message: 'The shift was sent to the ConcessionLimit approver; it takes effect when approved.',
|
|
429
|
+
};
|
|
170
430
|
}
|
|
171
431
|
};
|
|
172
432
|
AmendArrangementOperation = __decorate([
|
|
173
433
|
RegisterClass(BaseRemotableOperation, 'Orders.AmendArrangement')
|
|
174
434
|
], AmendArrangementOperation);
|
|
175
435
|
export { AmendArrangementOperation };
|
|
436
|
+
function programNote(program) {
|
|
437
|
+
if (!program)
|
|
438
|
+
return '';
|
|
439
|
+
return program.InProgram
|
|
440
|
+
? ` Referral program '${program.ProgramName}' would approve it.`
|
|
441
|
+
: ` It is more than referral program '${program.ProgramName}' grants (${program.DaysPerReferral} days), or the ` +
|
|
442
|
+
`program is inactive, so it would be routed for approval.`;
|
|
443
|
+
}
|
|
176
444
|
function day(d) {
|
|
177
445
|
return d.toISOString().slice(0, 10);
|
|
178
446
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmendArrangementOperation.js","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AmendArrangementOperation.js","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"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"}
|