@mj-biz-apps/orders-ng 5.14.0 → 5.15.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/lib/custom/OrderHeader/order-lines-editor.component.d.ts +169 -2
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.d.ts.map +1 -1
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js +782 -200
- package/dist/lib/custom/OrderHeader/order-lines-editor.component.js.map +1 -1
- package/dist/lib/custom/Product/widgets/product-accounting-widget.component.d.ts +1 -1
- package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js +12 -28
- package/dist/lib/custom/Product/widgets/product-accounting-widget.component.js.map +1 -1
- package/dist/lib/data/entity-names.d.ts +1 -0
- package/dist/lib/data/entity-names.d.ts.map +1 -1
- package/dist/lib/data/entity-names.js +1 -0
- package/dist/lib/data/entity-names.js.map +1 -1
- package/dist/lib/data/orders-queries.d.ts +20 -0
- package/dist/lib/data/orders-queries.d.ts.map +1 -1
- package/dist/lib/data/orders-queries.js +21 -3
- package/dist/lib/data/orders-queries.js.map +1 -1
- package/dist/lib/form-panels/party-order-stats.d.ts.map +1 -1
- package/dist/lib/form-panels/party-order-stats.js +3 -1
- package/dist/lib/form-panels/party-order-stats.js.map +1 -1
- package/dist/lib/form-panels/product-widget.panels.d.ts.map +1 -1
- package/dist/lib/form-panels/product-widget.panels.js +77 -12
- package/dist/lib/form-panels/product-widget.panels.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersDimensionDefault/mjbizappsordersdimensiondefault.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersDimensionDefault/mjbizappsordersdimensiondefault.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersDimensionDefault/mjbizappsordersdimensiondefault.form.component.js +71 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersDimensionDefault/mjbizappsordersdimensiondefault.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js +71 -69
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeader/mjbizappsordersorderheader.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeaderPaymentSchedule/mjbizappsordersorderheaderpaymentschedule.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeaderPaymentSchedule/mjbizappsordersorderheaderpaymentschedule.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeaderPaymentSchedule/mjbizappsordersorderheaderpaymentschedule.form.component.js +108 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersOrderHeaderPaymentSchedule/mjbizappsordersorderheaderpaymentschedule.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.js +10 -6
- package/dist/lib/generated/Entities/mjBizAppsOrdersPaymentLine/mjbizappsorderspaymentline.form.component.js.map +1 -1
- package/dist/lib/generated/generated-forms.module.d.ts +86 -79
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +40 -4
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/orders-dashboard.page.js +3 -3
- package/dist/lib/pages/orders/orders-dashboard.page.js.map +1 -1
- package/dist/lib/pages/orders/return.page.d.ts +9 -0
- package/dist/lib/pages/orders/return.page.d.ts.map +1 -1
- package/dist/lib/pages/orders/return.page.js +47 -4
- package/dist/lib/pages/orders/return.page.js.map +1 -1
- package/dist/lib/pages/receivables/billing.page.d.ts +67 -0
- package/dist/lib/pages/receivables/billing.page.d.ts.map +1 -0
- package/dist/lib/pages/receivables/billing.page.js +330 -0
- package/dist/lib/pages/receivables/billing.page.js.map +1 -0
- package/dist/lib/pages/receivables/overdue.page.d.ts.map +1 -1
- package/dist/lib/pages/receivables/overdue.page.js +4 -3
- package/dist/lib/pages/receivables/overdue.page.js.map +1 -1
- package/dist/lib/sections/orders-sections.component.d.ts.map +1 -1
- package/dist/lib/sections/orders-sections.component.js +7 -4
- package/dist/lib/sections/orders-sections.component.js.map +1 -1
- package/dist/lib/sections/section-nav.model.d.ts.map +1 -1
- package/dist/lib/sections/section-nav.model.js +1 -0
- package/dist/lib/sections/section-nav.model.js.map +1 -1
- package/dist/lib/services/pricing-scheduler.service.d.ts +43 -0
- package/dist/lib/services/pricing-scheduler.service.d.ts.map +1 -1
- package/dist/lib/services/pricing-scheduler.service.js +90 -13
- package/dist/lib/services/pricing-scheduler.service.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,9 +2,28 @@ import { EventEmitter, OnDestroy } from '@angular/core';
|
|
|
2
2
|
import { BaseEntity, type IMetadataProvider } from '@memberjunction/core';
|
|
3
3
|
import { BaseFormComponent, type EntityFormConfig, type FormNavigationEvent } from '@memberjunction/ng-base-forms';
|
|
4
4
|
import { OrderHeaderEntity, type ApplicablePrice, type PriceOverrideKind, type mjBizAppsOrdersOrderLineEntity } from '@mj-biz-apps/orders-entities';
|
|
5
|
-
import { type MJODimensionOption, type MJOProductOption } from '../../data/orders-queries.js';
|
|
6
|
-
import { type MJOLinePrice, type MJOPricingState } from '../../services/pricing-scheduler.service.js';
|
|
5
|
+
import { type MJODimensionOption, type MJODiscountAuthority, type MJOProductOption } from '../../data/orders-queries.js';
|
|
6
|
+
import { type MJOEngineDefault, type MJOLinePrice, type MJOPricingState } from '../../services/pricing-scheduler.service.js';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* The picker's option values that are not ProductPrice ids.
|
|
10
|
+
*
|
|
11
|
+
* `Default` used to be the empty string, and that is what golive #253 item 1 was: a `<select>`
|
|
12
|
+
* whose bound value names an option that is not in the DOM yet falls back to its first option, and
|
|
13
|
+
* an option whose value is `""` is indistinguishable from "nothing selected". The DOM then showed
|
|
14
|
+
* Default while the component believed the line was on a custom amount, so choosing Default fired
|
|
15
|
+
* no change event and nothing ran. A real sentinel cannot be mistaken for absence.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PRICE_PICK_DEFAULT = "__default__";
|
|
18
|
+
export declare const PRICE_PICK_CUSTOM = "__custom__";
|
|
19
|
+
/** How a discount was expressed. The two are one concession — see `ManualDiscountAmount`. */
|
|
20
|
+
export type MJODiscountMode = 'percent' | 'amount';
|
|
21
|
+
/** A discount being composed on a line, before it is complete enough to stage. */
|
|
22
|
+
export interface MJODiscountDraft {
|
|
23
|
+
Mode: MJODiscountMode;
|
|
24
|
+
Value: number | null;
|
|
25
|
+
Reason: string;
|
|
26
|
+
}
|
|
8
27
|
/**
|
|
9
28
|
* Inline catalog picker + line cards for an order header.
|
|
10
29
|
*
|
|
@@ -43,6 +62,14 @@ export declare class MJOOrderLinesEditorComponent implements OnDestroy {
|
|
|
43
62
|
private readonly overrideEditorLineIds;
|
|
44
63
|
private readonly customAmountLineIds;
|
|
45
64
|
private readonly defaultUnitByLine;
|
|
65
|
+
/** The authority the signed-in user discounts under; null once looked up and none was found. */
|
|
66
|
+
DiscountAuthority: MJODiscountAuthority | null;
|
|
67
|
+
DiscountAuthorityLoaded: boolean;
|
|
68
|
+
private readonly discountDrafts;
|
|
69
|
+
private readonly stagedDiscounts;
|
|
70
|
+
/** One in-flight sync per line — see {@link syncStagedDiscount}. */
|
|
71
|
+
private readonly discountSyncQueue;
|
|
72
|
+
private orderEvents;
|
|
46
73
|
get Lines(): mjBizAppsOrdersOrderLineEntity[];
|
|
47
74
|
/**
|
|
48
75
|
* The rows the picker shows, ranked by `RankCatalogMatches`.
|
|
@@ -118,6 +145,13 @@ export declare class MJOOrderLinesEditorComponent implements OnDestroy {
|
|
|
118
145
|
get CanOverride(): boolean;
|
|
119
146
|
ApplicableFor(line: mjBizAppsOrdersOrderLineEntity): ApplicablePrice[];
|
|
120
147
|
SelectedPriceID(line: mjBizAppsOrdersOrderLineEntity): string;
|
|
148
|
+
/**
|
|
149
|
+
* Whether this option is the one in force — bound per option rather than as `[value]` on the
|
|
150
|
+
* select. The select's value is applied before its `@if`/`@for` options exist, so a value naming
|
|
151
|
+
* one of them lands on nothing and the browser falls back to the first row (see
|
|
152
|
+
* {@link PRICE_PICK_DEFAULT}). An option knows whether it is selected as soon as it is created.
|
|
153
|
+
*/
|
|
154
|
+
IsPicked(line: mjBizAppsOrdersOrderLineEntity, value: string): boolean;
|
|
121
155
|
DisplayUnit(line: mjBizAppsOrdersOrderLineEntity): number | null;
|
|
122
156
|
/**
|
|
123
157
|
* The `Default` row of the price picker — which rule is in force, and for how much.
|
|
@@ -131,17 +165,150 @@ export declare class MJOOrderLinesEditorComponent implements OnDestroy {
|
|
|
131
165
|
*/
|
|
132
166
|
DefaultLabel(line: mjBizAppsOrdersOrderLineEntity): string;
|
|
133
167
|
ShowCustomAmount(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* The explanation is for a line that actually left its default — which, now that every pick
|
|
170
|
+
* and typed amount is compared against the engine default before the flag is set, is exactly
|
|
171
|
+
* what {@link IsOverridden} says.
|
|
172
|
+
*/
|
|
134
173
|
CanExplainOverride(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* True while the line is overridden and nobody has said why (golive #253 item 4). Done stays
|
|
176
|
+
* disabled until this is false; the server refuses the save on the same rule, so closing the
|
|
177
|
+
* editor another way does not get around it.
|
|
178
|
+
*/
|
|
179
|
+
NeedsOverrideReason(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* What the rules say this line costs, whether or not it is currently pinned.
|
|
182
|
+
*
|
|
183
|
+
* The pricing pass reports the engine default alongside the priced amount, so a pinned line
|
|
184
|
+
* still knows what it would have been. The per-line cache remains as the fallback for a
|
|
185
|
+
* result that predates that field.
|
|
186
|
+
*/
|
|
135
187
|
DefaultUnit(line: mjBizAppsOrdersOrderLineEntity): number | null;
|
|
188
|
+
/** The engine default in full — rule id and name as well as the amount — when the pass reported it. */
|
|
189
|
+
EngineDefault(line: mjBizAppsOrdersOrderLineEntity): MJOEngineDefault | null;
|
|
190
|
+
/**
|
|
191
|
+
* The named rules the picker offers BESIDES the default (golive #253 item 3).
|
|
192
|
+
*
|
|
193
|
+
* The rule the engine already chose is not listed: the Default row is that rule, named and
|
|
194
|
+
* priced, and a second option that means the same thing is what made the picker ambiguous. A
|
|
195
|
+
* product with one applicable rule therefore offers Default (and Custom amount) alone.
|
|
196
|
+
*/
|
|
197
|
+
NamedPricesFor(line: mjBizAppsOrdersOrderLineEntity): ApplicablePrice[];
|
|
136
198
|
PickNamedPrice(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
137
199
|
TypeAmount(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
138
200
|
IsOverrideEditorOpen(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
139
201
|
ToggleOverrideEditor(line: mjBizAppsOrdersOrderLineEntity): void;
|
|
140
202
|
DoneOverrideEditor(line: mjBizAppsOrdersOrderLineEntity): void;
|
|
203
|
+
/** The "Use Default Price" button: back to the rules, and the editor closes. */
|
|
141
204
|
ResetOverride(line: mjBizAppsOrdersOrderLineEntity): void;
|
|
205
|
+
/**
|
|
206
|
+
* Whether "back to the rules" is an answer this line can be given right now.
|
|
207
|
+
*
|
|
208
|
+
* An unsaved line always can: its baseline is "unpriced" and the engine fills it at save. A
|
|
209
|
+
* saved line's baseline is whatever was stored — possibly the override itself — so it can only
|
|
210
|
+
* be put back on the default once the pricing pass has said what that default IS. Until then
|
|
211
|
+
* the Default row and the reset button are offered disabled rather than acting on a guess.
|
|
212
|
+
*/
|
|
213
|
+
CanRestoreDefault(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Back to whatever the rules say, with the editor left open — the Default row of the picker.
|
|
216
|
+
* The override, its reason and any custom amount all go; the flag is cleared because the price
|
|
217
|
+
* is no longer a deviation, not merely hidden.
|
|
218
|
+
*
|
|
219
|
+
* A saved line whose default is not known is left exactly as it is, flag included: clearing the
|
|
220
|
+
* flag on a price that did not change would keep the concession and erase its audit trail.
|
|
221
|
+
*/
|
|
222
|
+
private restoreDefault;
|
|
223
|
+
/**
|
|
224
|
+
* Whether the line's price is a deviation from the rules.
|
|
225
|
+
*
|
|
226
|
+
* The flag settles it when set. Otherwise a dirty price counts only when it differs from the
|
|
227
|
+
* engine default — a saved line put back on its default carries a changed value that is not an
|
|
228
|
+
* override, and saying "overridden" of it is the false statement golive #253 item 2 reported.
|
|
229
|
+
*/
|
|
142
230
|
IsOverridden(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
143
231
|
OverrideReasonText(line: mjBizAppsOrdersOrderLineEntity): string;
|
|
144
232
|
SetOverrideReason(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
233
|
+
/** The base a percentage is taken from, and the ceiling an amount is checked against. */
|
|
234
|
+
DiscountBase(line: mjBizAppsOrdersOrderLineEntity): number;
|
|
235
|
+
/** Whether this user may discount at all — an authority is required, and absence is not it. */
|
|
236
|
+
get CanDiscount(): boolean;
|
|
237
|
+
/**
|
|
238
|
+
* Why the discount control is not on offer, in the words the person needs to act on.
|
|
239
|
+
*
|
|
240
|
+
* Silence would be the wrong answer: a rep who cannot find a discount box has no way to learn
|
|
241
|
+
* that the reason is a missing authority row rather than a missing feature, which is how this
|
|
242
|
+
* defect was reported in the first place.
|
|
243
|
+
*/
|
|
244
|
+
get DiscountUnavailableReason(): string | null;
|
|
245
|
+
/** The cap this user discounts under, for the label above the control. */
|
|
246
|
+
get DiscountCapLabel(): string;
|
|
247
|
+
/** A booked line's money is frozen, so it is shown rather than offered. */
|
|
248
|
+
CanDiscountLine(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
249
|
+
DiscountDraft(line: mjBizAppsOrdersOrderLineEntity): Readonly<MJODiscountDraft>;
|
|
250
|
+
/** What the line already carries, from the pricing pass — staged requests included. */
|
|
251
|
+
AppliedDiscount(line: mjBizAppsOrdersOrderLineEntity): number;
|
|
252
|
+
HasDiscount(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
253
|
+
/** True while a request for this line is staged and waiting for the order to be saved. */
|
|
254
|
+
HasStagedDiscount(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
255
|
+
/** The draft as money, whichever way it was expressed. Null when nothing usable was typed. */
|
|
256
|
+
DraftDiscountAmount(line: mjBizAppsOrdersOrderLineEntity): number | null;
|
|
257
|
+
/**
|
|
258
|
+
* What is wrong with the draft, or null when it is ready to stage.
|
|
259
|
+
*
|
|
260
|
+
* Every rule here is also enforced by `AuthorizeManualDiscount`, which is the one that decides.
|
|
261
|
+
* Checking them on screen too is not duplication for its own sake: an invalid request staged
|
|
262
|
+
* against the pricing pass takes the whole line strip down with a refusal, so the number the
|
|
263
|
+
* user is composing would blank the prices they are composing it against.
|
|
264
|
+
*/
|
|
265
|
+
DiscountError(line: mjBizAppsOrdersOrderLineEntity): string | null;
|
|
266
|
+
/** True once an amount is valid but no reason has been given — the last thing still missing. */
|
|
267
|
+
NeedsDiscountReason(line: mjBizAppsOrdersOrderLineEntity): boolean;
|
|
268
|
+
SetDiscountMode(line: mjBizAppsOrdersOrderLineEntity, mode: MJODiscountMode): void;
|
|
269
|
+
SetDiscountValue(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
270
|
+
SetDiscountReason(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
271
|
+
/** Drop the request. Only a STAGED one — a discount already booked is reversed, not deleted. */
|
|
272
|
+
ClearDiscount(line: mjBizAppsOrdersOrderLineEntity): void;
|
|
273
|
+
private mutableDiscountDraft;
|
|
274
|
+
/**
|
|
275
|
+
* Queue a sync for this line, so two keystrokes cannot both stage a row.
|
|
276
|
+
*
|
|
277
|
+
* {@link applyStagedDiscount} awaits `Adjustments.Create()`, and every input event calls it. Two
|
|
278
|
+
* events arriving inside that await — realistic on the first one, which instantiates the
|
|
279
|
+
* adjustment entity class — would both find no staged row and both create one, and the server
|
|
280
|
+
* would then apply the concession twice. Serialising per line is the fix that does not depend on
|
|
281
|
+
* how long the create happens to take.
|
|
282
|
+
*
|
|
283
|
+
* A rejection is swallowed rather than propagated: it must not poison the chain for the next
|
|
284
|
+
* keystroke, and there is nothing here that can fail except the create itself.
|
|
285
|
+
*/
|
|
286
|
+
private syncStagedDiscount;
|
|
287
|
+
/**
|
|
288
|
+
* Put the draft on the order, or take it off — one staged row per line, never a second.
|
|
289
|
+
*
|
|
290
|
+
* The row is only staged once it is COMPLETE. A request with no reason or an impossible amount
|
|
291
|
+
* is refused by the engine, and the pricing pass runs on every keystroke, so staging a
|
|
292
|
+
* half-typed one would replace the line prices with a refusal message while the user is still
|
|
293
|
+
* typing the thing that would make it valid.
|
|
294
|
+
*
|
|
295
|
+
* Reached only through {@link syncStagedDiscount}, which is what guarantees one at a time.
|
|
296
|
+
*/
|
|
297
|
+
private applyStagedDiscount;
|
|
298
|
+
/**
|
|
299
|
+
* Forget the staged rows once the order has been saved.
|
|
300
|
+
*
|
|
301
|
+
* The server CONSUMES them — `drainStagedPricingRequests` reads each one into a discount request
|
|
302
|
+
* and removes it — but it does that to its own copy. The browser's collection still holds them,
|
|
303
|
+
* and a second save would hand the same concessions over again and discount the line twice.
|
|
304
|
+
*
|
|
305
|
+
* ONLY THIS COMPONENT'S BOOKKEEPING IS CLEARED, deliberately: the graph response rehydrates
|
|
306
|
+
* `Order.Adjustments` from the server's own drained copy, so removing the rows here as well
|
|
307
|
+
* would be fighting the reload for the same result. Do not "fix" this by calling
|
|
308
|
+
* `Adjustments.Remove` — the rows this map points at are already gone by the time it runs.
|
|
309
|
+
*/
|
|
310
|
+
private onOrderSaved;
|
|
311
|
+
private loadDiscountAuthority;
|
|
145
312
|
OpenProduct(line: mjBizAppsOrdersOrderLineEntity, event: Event): void;
|
|
146
313
|
OnExtensionNavigate(event: FormNavigationEvent): void;
|
|
147
314
|
OnExtensionFormCreated(form: BaseFormComponent): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-lines-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/OrderHeader/order-lines-editor.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,YAAY,EAAS,SAAS,EAA6B,MAAM,eAAe,CAAC;AAGpI,OAAO,EACH,UAAU,EAIV,KAAK,iBAAiB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,iBAAiB,EAEjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACH,iBAAiB,
|
|
1
|
+
{"version":3,"file":"order-lines-editor.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/OrderHeader/order-lines-editor.component.ts"],"names":[],"mappings":"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"}
|