@mj-biz-apps/sales-core-entities-server 6.15.2 → 6.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/CloseDealOperation.d.ts +36 -2
  2. package/dist/CloseDealOperation.d.ts.map +1 -1
  3. package/dist/CloseDealOperation.js +160 -25
  4. package/dist/CloseDealOperation.js.map +1 -1
  5. package/dist/CloseWonTaskService.d.ts +16 -0
  6. package/dist/CloseWonTaskService.d.ts.map +1 -1
  7. package/dist/CloseWonTaskService.js +82 -0
  8. package/dist/CloseWonTaskService.js.map +1 -1
  9. package/dist/ContractOrderRelink.d.ts +32 -0
  10. package/dist/ContractOrderRelink.d.ts.map +1 -0
  11. package/dist/ContractOrderRelink.js +142 -0
  12. package/dist/ContractOrderRelink.js.map +1 -0
  13. package/dist/DealEntityServer.d.ts +34 -1
  14. package/dist/DealEntityServer.d.ts.map +1 -1
  15. package/dist/DealEntityServer.js +67 -3
  16. package/dist/DealEntityServer.js.map +1 -1
  17. package/dist/DealTeamMemberEntityServer.d.ts +19 -2
  18. package/dist/DealTeamMemberEntityServer.d.ts.map +1 -1
  19. package/dist/DealTeamMemberEntityServer.js +56 -26
  20. package/dist/DealTeamMemberEntityServer.js.map +1 -1
  21. package/dist/LiveContractsSeam.d.ts +3 -2
  22. package/dist/LiveContractsSeam.d.ts.map +1 -1
  23. package/dist/LiveContractsSeam.js +6 -4
  24. package/dist/LiveContractsSeam.js.map +1 -1
  25. package/dist/PipelineStageEntityServer.d.ts +59 -0
  26. package/dist/PipelineStageEntityServer.d.ts.map +1 -0
  27. package/dist/PipelineStageEntityServer.js +177 -0
  28. package/dist/PipelineStageEntityServer.js.map +1 -0
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +9 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/pipelines/CopyDefaultPipeline.d.ts +66 -0
  34. package/dist/pipelines/CopyDefaultPipeline.d.ts.map +1 -0
  35. package/dist/pipelines/CopyDefaultPipeline.js +174 -0
  36. package/dist/pipelines/CopyDefaultPipeline.js.map +1 -0
  37. package/package.json +2 -2
@@ -78,7 +78,7 @@ export declare class CloseDealOperation extends SalesCloseDealOperationBase {
78
78
  /**
79
79
  * The stage a close should land in, when the caller did not name one.
80
80
  *
81
- * ── THE MIRROR OF `priorStageFromCloseEvent`, AND THE OTHER HALF OF DN-18 ───────────────────────
81
+ * ── THE MIRROR OF `closeEventBeingUndone`, AND THE OTHER HALF OF DN-18 ───────────────────────
82
82
  *
83
83
  * `CD18` proves a reopen restores the stage the deal came from. It could not help a deal closed
84
84
  * through the browser, because `DealWorkspaceComponent.ConfirmClose()` sends no `ClosingStageID` — so
@@ -109,6 +109,33 @@ export declare class CloseDealOperation extends SalesCloseDealOperationBase {
109
109
  * (`CD17`). Both are mutant-proven. Without them this change would double-close every deal it touched.
110
110
  */
111
111
  private closingStageForOutcome;
112
+ /**
113
+ * The stage a close lands in, the probability and forecast category it writes, and the warning when
114
+ * there is nowhere to land (bc-aidp-next-golive#345).
115
+ *
116
+ * ── WHY THE CLOSE WRITES THESE ITSELF ──────────────────────────────────────────────────────────
117
+ *
118
+ * A close declares its transition, and a declared transition switches the stage defaults off (`CD17`
119
+ * depends on it: the closing status must win over whatever the stage declares). That left nothing
120
+ * writing the probability, so a won deal kept the 50 it had in Proposal. The figures still come from
121
+ * the data, never from a constant chosen here:
122
+ *
123
+ * · the landing stage's own `Probability` and `ForecastCategoryTypeID`, when that stage's status
124
+ * declares the SAME outcome as the close — a Won close into a stage whose status is won;
125
+ * · otherwise the outcome's flag: 100 for won, 0 for lost. A won deal has no other probability, and
126
+ * this is the only answer for a status-only close on a pipeline with no stage for the outcome.
127
+ * The forecast category is left as it is in that case: no type-table flag names a closed one.
128
+ *
129
+ * The stage's figures are not used when its status contradicts the close (`CD17`'s Lost-into-a-won-
130
+ * stage pairing), because then they describe the other outcome.
131
+ *
132
+ * ── THE WARNING ────────────────────────────────────────────────────────────────────────────────
133
+ *
134
+ * A pipeline with no active stage for the outcome still closes (see `closingStageForOutcome`), but the
135
+ * deal stays in an open stage. That used to be silent. It is now a warning, so the person closing it
136
+ * and anyone reading `Issues` learn the pipeline is missing a stage.
137
+ */
138
+ private resolveClosing;
112
139
  /**
113
140
  * When a close-won task falls due: `DueInDays` after the BUSINESS day the deal closed on
114
141
  * (bc-aidp-next-golive#168).
@@ -206,8 +233,15 @@ export declare class ReopenDealOperation extends SalesReopenDealOperationBase {
206
233
  * Returns null when there is no close event to read — a deal closed by SQL, an import that wrote no
207
234
  * provenance, or a log that was never written. The reopen then leaves the stage alone rather than
208
235
  * guessing, which is the same answer as "the caller sent no StageID" and needs no extra branch.
236
+ *
237
+ * ── AND THE PROBABILITY THE CLOSE LEFT BEHIND (bc-aidp-next-golive#345) ───────────────────────────
238
+ *
239
+ * The close now writes 100 or 0, so a reopen that kept the deal's probability would leave a reopened
240
+ * deal at 100. The same event stamped the pre-close value in `ProbabilityAtTransition`; the reopen
241
+ * restores it, which is what "the reopen keeps the probability a human set" (`CD16`) means once the
242
+ * close no longer leaves it in place.
209
243
  */
210
- private priorStageFromCloseEvent;
244
+ private closeEventBeingUndone;
211
245
  /** The default landing status — chosen by the `IsOpen` FLAG, never by a status name. */
212
246
  private firstOpenStatus;
213
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CloseDealOperation.d.ts","sourceRoot":"","sources":["../src/CloseDealOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAGH,iBAAiB,EAIjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EACH,uBAAuB,IAAI,2BAA2B,EACtD,wBAAwB,IAAI,4BAA4B,EAKxD,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAIzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC7B,MAAM,6BAA6B,CAAC;AAsMrC,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAKxE;AAED,wBAAgB,iBAAiB,IAAI,eAAe,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAyCD,qBACa,kBAAmB,SAAQ,2BAA2B;cAC/C,eAAe,CAC3B,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,oBAAoB,CAAC;IAsVhC;;;;;OAKG;YACW,QAAQ;IAyDtB;;;;;OAKG;YACW,kBAAkB;IAoBhC;;;;;;OAMG;YACW,aAAa;IAgC3B;;;;;;;;;;;;OAYG;YACW,WAAW;IA4BzB,0FAA0F;YAC5E,OAAO;IAoCrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;YACW,sBAAsB;IAgDpC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU;IA6DlB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,WAAW;YA4BL,eAAe;IA+B7B,4FAA4F;YAC9E,6BAA6B;YAsB7B,kBAAkB;CAuDnC;AAED;;;;;GAKG;AACH,qBACa,mBAAoB,SAAQ,4BAA4B;cACjD,eAAe,CAC3B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,qBAAqB,CAAC;YAwQnB,aAAa;IAmB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;YACW,wBAAwB;IA6CtC,wFAAwF;YAC1E,eAAe;CAkBhC"}
1
+ {"version":3,"file":"CloseDealOperation.d.ts","sourceRoot":"","sources":["../src/CloseDealOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAGH,iBAAiB,EAIjB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EACH,uBAAuB,IAAI,2BAA2B,EACtD,wBAAwB,IAAI,4BAA4B,EAKxD,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAIzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC7B,MAAM,6BAA6B,CAAC;AA8QrC,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAKxE;AAED,wBAAgB,iBAAiB,IAAI,eAAe,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAyCD,qBACa,kBAAmB,SAAQ,2BAA2B;cAC/C,eAAe,CAC3B,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,oBAAoB,CAAC;IA6VhC;;;;;OAKG;YACW,QAAQ;IAyDtB;;;;;OAKG;YACW,kBAAkB;IAoBhC;;;;;;OAMG;YACW,aAAa;IAgC3B;;;;;;;;;;;;OAYG;YACW,WAAW;IA4BzB,0FAA0F;YAC5E,OAAO;IAoCrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;YACW,sBAAsB;IA8CpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;YACW,cAAc;IAwC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU;IAwElB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,WAAW;YA4BL,eAAe;IA+B7B,4FAA4F;YAC9E,6BAA6B;YAsB7B,kBAAkB;CAuDnC;AAED;;;;;GAKG;AACH,qBACa,mBAAoB,SAAQ,4BAA4B;cACjD,eAAe,CAC3B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,qBAAqB,CAAC;YA6RnB,aAAa;IAmB3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;YACW,qBAAqB;IAoDnC,wFAAwF;YAC1E,eAAe;CAkBhC"}
@@ -77,6 +77,39 @@ const POLICY_DEFAULTS = {
77
77
  // made it -- see `DECISIONS-NEEDED.md` DN-11. A deployment setting it is configuring nothing.
78
78
  OneTimeLinesTo: 'None',
79
79
  };
80
+ /** A stage's figures and the outcome its status declares, or null when it cannot be read. */
81
+ async function readStage(stageID, provider, user) {
82
+ const view = provider;
83
+ const stages = await view.RunView({
84
+ EntityName: STAGE_ENTITY,
85
+ ExtraFilter: `ID = '${stageID}'`,
86
+ ResultType: 'simple',
87
+ Fields: ['Probability', 'ForecastCategoryTypeID', 'DealStatusTypeID'],
88
+ }, user);
89
+ const row = (stages.Success ? (stages.Results ?? [])[0] : undefined);
90
+ if (!row) {
91
+ return null;
92
+ }
93
+ let isWon = false;
94
+ let isLost = false;
95
+ if (row.DealStatusTypeID) {
96
+ const statuses = await view.RunView({
97
+ EntityName: DEAL_STATUS_ENTITY,
98
+ ExtraFilter: `ID = '${row.DealStatusTypeID}'`,
99
+ ResultType: 'simple',
100
+ Fields: ['IsWon', 'IsLost'],
101
+ }, user);
102
+ const status = (statuses.Success ? (statuses.Results ?? [])[0] : undefined);
103
+ isWon = status?.IsWon === true;
104
+ isLost = status?.IsLost === true;
105
+ }
106
+ return {
107
+ Probability: row.Probability ?? null,
108
+ ForecastCategoryTypeID: row.ForecastCategoryTypeID ?? null,
109
+ IsWon: isWon,
110
+ IsLost: isLost,
111
+ };
112
+ }
80
113
  function issue(Section, Message, Field = null) {
81
114
  return { Section, Field, Severity: 'error', Message };
82
115
  }
@@ -347,13 +380,19 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
347
380
  * name and no catalogue ID now fails when the importer tries to write the order line, which
348
381
  * is the right place for it to fail.
349
382
  */
383
+ /**
384
+ * The stage this close lands in, and the figures it carries. Resolved BEFORE the stamp
385
+ * because `stampClose` is synchronous and this needs reads, and before the preview so a
386
+ * preview can say when there is nowhere to land. `input.ClosingStageID` wins when supplied.
387
+ */
388
+ const closing = await this.resolveClosing(deal, input, target, provider, user);
350
389
  if (input.PreviewOnly) {
351
390
  // Nothing written, nothing locked — the caller just wanted to see the consequences.
352
391
  // A refusal IS one of those consequences, so the preview reports it too: a caller that
353
392
  // previews before closing should not learn about it only after committing.
354
393
  return {
355
394
  Success: true,
356
- Issues: routingIssues(routing, true),
395
+ Issues: [...closing.Issues, ...routingIssues(routing, true)],
357
396
  IsWon: target.IsWon,
358
397
  IsLost: target.IsLost,
359
398
  Locked: false,
@@ -394,15 +433,9 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
394
433
  * the surface exists to badge it.
395
434
  */
396
435
  const taskIssues = [];
397
- /**
398
- * The stage this close lands in, resolved BEFORE the stamp because `stampClose` is
399
- * synchronous and this needs two reads. `input.ClosingStageID` wins when supplied.
400
- */
401
- const derivedClosingStageID = input.ClosingStageID
402
- ? null
403
- : await this.closingStageForOutcome(deal.PipelineID, target, provider, user);
404
- this.stampClose(deal, input, target, routing, user, derivedClosingStageID, validation.LossReasonName);
405
- if (!(await deal.Save())) {
436
+ this.stampClose(deal, input, target, routing, user, closing, validation.LossReasonName);
437
+ // The close stamps are writable only inside this call (#252); every other save refuses them.
438
+ if (!(await deal.BeginClose(() => deal.Save()))) {
406
439
  throw new Error(`the deal could not be saved: ${deal.LatestResult?.CompleteMessage ?? 'unknown error'}`);
407
440
  }
408
441
  // The save appended the close's `DealStageEvent` — one row, whether or not the stage moved.
@@ -415,7 +448,8 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
415
448
  * the renewal pass in Orders prices from the paper rather than from hand-entered values.
416
449
  *
417
450
  * A warning, not a failure: the deal closed and both records are right. A missing link only
418
- * means the terms have to be set on the subscriptions by hand.
451
+ * means the terms have to be set on the subscriptions by hand. A `Pending` link (contracts
452
+ * too old to have links) is a note: the daily relink adds it after the upgrade.
419
453
  */
420
454
  const linkIssues = [];
421
455
  if (target.IsWon && deal.ContractID && deal.OrderID) {
@@ -427,7 +461,7 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
427
461
  linkIssues.push({
428
462
  Section: 'deal',
429
463
  Field: null,
430
- Severity: 'warning',
464
+ Severity: link.Pending ? 'info' : 'warning',
431
465
  Message: link.Message ?? 'The order was not linked to the contract.',
432
466
  });
433
467
  }
@@ -530,7 +564,13 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
530
564
  * written inside `deal.Save()` a few lines further down. So a reader of the array reads
531
565
  * the close in sequence, which is the only ordering that means anything here.
532
566
  */
533
- Issues: [...taskIssues, ...linkIssues, ...orderStatusIssues(deal), ...routingIssues(routing, false)],
567
+ Issues: [
568
+ ...closing.Issues,
569
+ ...taskIssues,
570
+ ...linkIssues,
571
+ ...orderStatusIssues(deal),
572
+ ...routingIssues(routing, false),
573
+ ],
534
574
  IsWon: target.IsWon,
535
575
  IsLost: target.IsLost,
536
576
  Locked: target.LocksDeal,
@@ -715,7 +755,7 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
715
755
  /**
716
756
  * The stage a close should land in, when the caller did not name one.
717
757
  *
718
- * ── THE MIRROR OF `priorStageFromCloseEvent`, AND THE OTHER HALF OF DN-18 ───────────────────────
758
+ * ── THE MIRROR OF `closeEventBeingUndone`, AND THE OTHER HALF OF DN-18 ───────────────────────
719
759
  *
720
760
  * `CD18` proves a reopen restores the stage the deal came from. It could not help a deal closed
721
761
  * through the browser, because `DealWorkspaceComponent.ConfirmClose()` sends no `ClosingStageID` — so
@@ -777,6 +817,59 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
777
817
  const row = (stages.Results ?? [])[0];
778
818
  return row?.ID ? String(row.ID) : null;
779
819
  }
820
+ /**
821
+ * The stage a close lands in, the probability and forecast category it writes, and the warning when
822
+ * there is nowhere to land (bc-aidp-next-golive#345).
823
+ *
824
+ * ── WHY THE CLOSE WRITES THESE ITSELF ──────────────────────────────────────────────────────────
825
+ *
826
+ * A close declares its transition, and a declared transition switches the stage defaults off (`CD17`
827
+ * depends on it: the closing status must win over whatever the stage declares). That left nothing
828
+ * writing the probability, so a won deal kept the 50 it had in Proposal. The figures still come from
829
+ * the data, never from a constant chosen here:
830
+ *
831
+ * · the landing stage's own `Probability` and `ForecastCategoryTypeID`, when that stage's status
832
+ * declares the SAME outcome as the close — a Won close into a stage whose status is won;
833
+ * · otherwise the outcome's flag: 100 for won, 0 for lost. A won deal has no other probability, and
834
+ * this is the only answer for a status-only close on a pipeline with no stage for the outcome.
835
+ * The forecast category is left as it is in that case: no type-table flag names a closed one.
836
+ *
837
+ * The stage's figures are not used when its status contradicts the close (`CD17`'s Lost-into-a-won-
838
+ * stage pairing), because then they describe the other outcome.
839
+ *
840
+ * ── THE WARNING ────────────────────────────────────────────────────────────────────────────────
841
+ *
842
+ * A pipeline with no active stage for the outcome still closes (see `closingStageForOutcome`), but the
843
+ * deal stays in an open stage. That used to be silent. It is now a warning, so the person closing it
844
+ * and anyone reading `Issues` learn the pipeline is missing a stage.
845
+ */
846
+ async resolveClosing(deal, input, target, provider, user) {
847
+ const stageID = input.ClosingStageID
848
+ ?? (await this.closingStageForOutcome(deal.PipelineID, target, provider, user));
849
+ const stage = stageID ? await readStage(stageID, provider, user) : null;
850
+ const stageAgrees = !!stage && stage.IsWon === target.IsWon && stage.IsLost === target.IsLost;
851
+ const flagProbability = target.IsWon ? 100 : target.IsLost ? 0 : null;
852
+ const probability = stageAgrees && stage.Probability !== null ? stage.Probability : flagProbability;
853
+ const forecastCategory = stageAgrees ? stage.ForecastCategoryTypeID : null;
854
+ const issues = [];
855
+ if (!stageID && (target.IsWon || target.IsLost)) {
856
+ const outcome = target.IsWon ? 'won' : 'lost';
857
+ issues.push({
858
+ Section: 'deal',
859
+ Field: 'PipelineStageID',
860
+ Severity: 'warning',
861
+ Message: `Closed as ${outcome}, but the ${deal.Pipeline ?? 'deal\'s'} pipeline has no active ${outcome} ` +
862
+ `stage, so the deal stayed in ${deal.PipelineStage ?? 'its current stage'}. Add a ${outcome} ` +
863
+ 'stage to the pipeline so closed deals land in it.',
864
+ });
865
+ }
866
+ return {
867
+ StageID: stageID,
868
+ Probability: probability,
869
+ ForecastCategoryTypeID: forecastCategory,
870
+ Issues: issues,
871
+ };
872
+ }
780
873
  /* ── The close stamp (§7.2 step 6) ──────────────────────────────────────── */
781
874
  /**
782
875
  * When a close-won task falls due: `DueInDays` after the BUSINESS day the deal closed on
@@ -804,7 +897,7 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
804
897
  * §7 also calls for writing an `Activity` here. The Activity spine does not exist in common or MJ
805
898
  * core, so that step is skipped and recorded in CLOSE-FLOW-DECISIONS.md D-CF5 rather than faked.
806
899
  */
807
- stampClose(deal, input, target, routing, user, derivedClosingStageID, lossReasonName) {
900
+ stampClose(deal, input, target, routing, user, closing, lossReasonName) {
808
901
  /**
809
902
  * ── DECLARED, NOT WRITTEN. THIS METHOD USED TO APPEND THE ROW ITSELF ────────────────────────
810
903
  *
@@ -814,8 +907,8 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
814
907
  * one.
815
908
  *
816
909
  * `DeclareTransition` hands the entity the one thing it could not derive — the routing note — and
817
- * leaves the writing to the single writer, which also suppresses the stage defaults so a close's
818
- * probability is not re-derived from the stage it lands in. The `From`/`To` stamps come out the
910
+ * leaves the writing to the single writer, which also suppresses the stage defaults: the close
911
+ * writes its own probability and forecast category below, from `resolveClosing`. The `From`/`To` stamps come out the
819
912
  * same, because the entity reads them from `OldValue`, which is what this method read too.
820
913
  *
821
914
  * The event id is no longer available here: it exists only once the save has appended the row.
@@ -827,9 +920,20 @@ let CloseDealOperation = class CloseDealOperation extends SalesCloseDealOperatio
827
920
  deal.DealStatusTypeID = target.ID;
828
921
  // Derived when the caller named no stage -- see closingStageForOutcome. This is what gives a
829
922
  // browser-driven close a stage to move into, and therefore gives the reopen something to restore.
830
- const closingStage = input.ClosingStageID ?? derivedClosingStageID;
831
- if (closingStage) {
832
- deal.PipelineStageID = closingStage;
923
+ if (closing.StageID) {
924
+ deal.PipelineStageID = closing.StageID;
925
+ }
926
+ /**
927
+ * The close's own probability and forecast category (bc-aidp-next-golive#345). The declared
928
+ * transition switches the stage defaults off, so nothing else writes them: before this, every
929
+ * closed deal kept the figures it had while open. The event above still stamps the pre-close
930
+ * probability, because the entity reads it from `OldValue`. See `resolveClosing`.
931
+ */
932
+ if (closing.Probability !== null) {
933
+ deal.Probability = closing.Probability;
934
+ }
935
+ if (closing.ForecastCategoryTypeID) {
936
+ deal.ForecastCategoryTypeID = closing.ForecastCategoryTypeID;
833
937
  }
834
938
  if (input.LossReasonID) {
835
939
  deal.LossReasonID = input.LossReasonID;
@@ -1135,10 +1239,29 @@ let ReopenDealOperation = class ReopenDealOperation extends SalesReopenDealOpera
1135
1239
  * `OrderStatusOnEntry` fire so the order is asked to come back. A status-only close left the
1136
1240
  * stage where it was, so this resolves to the stage the deal is already in and nothing fires.
1137
1241
  */
1138
- const landingStage = input.StageID ?? (await this.priorStageFromCloseEvent(deal.ID, provider, user));
1242
+ const undone = await this.closeEventBeingUndone(deal.ID, provider, user);
1243
+ const landingStage = input.StageID ?? undone?.FromStageID ?? null;
1244
+ const stageMoves = !!landingStage && landingStage.toLowerCase() !== (deal.PipelineStageID ?? '').toLowerCase();
1139
1245
  if (landingStage) {
1140
1246
  deal.PipelineStageID = landingStage;
1141
1247
  }
1248
+ /**
1249
+ * THE FIGURES THE CLOSE OVERWROTE (bc-aidp-next-golive#345). The close writes 100 or 0 and,
1250
+ * when it lands in a closing stage, that stage's forecast category. The declared transition
1251
+ * keeps the stage defaults off here too, so the reopen puts them back itself: the probability
1252
+ * from the close event's stamp, and the forecast category from the stage the deal returns to.
1253
+ * The category is only taken when the stage actually moves; a deal that stays where it is
1254
+ * keeps the category it has.
1255
+ */
1256
+ if (undone && undone.ProbabilityAtTransition !== null) {
1257
+ deal.Probability = undone.ProbabilityAtTransition;
1258
+ }
1259
+ if (stageMoves && landingStage) {
1260
+ const landing = await readStage(landingStage, provider, user);
1261
+ if (landing?.ForecastCategoryTypeID) {
1262
+ deal.ForecastCategoryTypeID = landing.ForecastCategoryTypeID;
1263
+ }
1264
+ }
1142
1265
  // The close stamps describe a close that is no longer in effect; clearing them keeps every
1143
1266
  // rollup that tests `ClosedAt IS NOT NULL` honest. The event above preserves the history
1144
1267
  // (CLOSE-FLOW-DECISIONS.md D-CF8).
@@ -1283,8 +1406,15 @@ let ReopenDealOperation = class ReopenDealOperation extends SalesReopenDealOpera
1283
1406
  * Returns null when there is no close event to read — a deal closed by SQL, an import that wrote no
1284
1407
  * provenance, or a log that was never written. The reopen then leaves the stage alone rather than
1285
1408
  * guessing, which is the same answer as "the caller sent no StageID" and needs no extra branch.
1409
+ *
1410
+ * ── AND THE PROBABILITY THE CLOSE LEFT BEHIND (bc-aidp-next-golive#345) ───────────────────────────
1411
+ *
1412
+ * The close now writes 100 or 0, so a reopen that kept the deal's probability would leave a reopened
1413
+ * deal at 100. The same event stamped the pre-close value in `ProbabilityAtTransition`; the reopen
1414
+ * restores it, which is what "the reopen keeps the probability a human set" (`CD16`) means once the
1415
+ * close no longer leaves it in place.
1286
1416
  */
1287
- async priorStageFromCloseEvent(dealID, provider, user) {
1417
+ async closeEventBeingUndone(dealID, provider, user) {
1288
1418
  const view = provider;
1289
1419
  const locking = await view.RunView({
1290
1420
  EntityName: DEAL_STATUS_ENTITY,
@@ -1307,14 +1437,19 @@ let ReopenDealOperation = class ReopenDealOperation extends SalesReopenDealOpera
1307
1437
  ExtraFilter: `DealID = '${dealID}' AND ToDealStatusTypeID IN (${quoted})`,
1308
1438
  OrderBy: 'ChangedAt DESC',
1309
1439
  ResultType: 'simple',
1310
- Fields: ['FromStageID', 'ChangedAt'],
1440
+ Fields: ['FromStageID', 'ProbabilityAtTransition', 'ChangedAt'],
1311
1441
  }, user);
1312
1442
  if (!events.Success) {
1313
1443
  return null;
1314
1444
  }
1315
1445
  const row = (events.Results ?? [])[0];
1316
- const from = row?.FromStageID;
1317
- return from ? String(from) : null;
1446
+ if (!row) {
1447
+ return null;
1448
+ }
1449
+ return {
1450
+ FromStageID: row.FromStageID ? String(row.FromStageID) : null,
1451
+ ProbabilityAtTransition: row.ProbabilityAtTransition ?? null,
1452
+ };
1318
1453
  }
1319
1454
  /** The default landing status — chosen by the `IsOpen` FLAG, never by a status name. */
1320
1455
  async firstOpenStatus(provider, user) {
@@ -1 +1 @@
1
- {"version":3,"file":"CloseDealOperation.js","sourceRoot":"","sources":["../src/CloseDealOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CloseDealOperation.js","sourceRoot":"","sources":["../src/CloseDealOperation.ts"],"names":[],"mappings":"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"}
@@ -265,6 +265,22 @@ export declare class CloseWonTaskService {
265
265
  private link;
266
266
  /** Routes the task to its assignee, through tasks' own service so the activity log gets its entry. */
267
267
  private route;
268
+ /**
269
+ * Whether the assignee record exists: true, false, or NULL for "could not tell".
270
+ *
271
+ * Three states rather than two, because the caller treats them differently -- see the note at the
272
+ * call site. `ResultType: 'count_only'` so this asks the database a question about existence
273
+ * rather than loading a person nobody reads.
274
+ *
275
+ * AND NOT THROUGH THE INJECTED PROVIDER, which the note above `route`'s entity lookup might lead a
276
+ * reader to expect. That note is about the entity REGISTRY: resolving an EntityID from one provider
277
+ * and writing it through another is how an assignment ends up pointing at the wrong entity. This
278
+ * read resolves no id -- it asks whether a row is there -- and the row it asks about is a person who
279
+ * pre-dates the close, not something the injected provider has just written and only it can see. So
280
+ * `new RunView()` is used here, the same form every other read in this package takes. If the global
281
+ * provider cannot answer, that is the NULL case: the route goes ahead and says it could not tell.
282
+ */
283
+ private assigneeExists;
268
284
  /**
269
285
  * Whether this pipeline's policy raises a contract task.
270
286
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CloseWonTaskService.d.ts","sourceRoot":"","sources":["../src/CloseWonTaskService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CloseWonTaskService.d.ts","sourceRoot":"","sources":["../src/CloseWonTaskService.ts"],"names":[],"mappings":"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"}
@@ -434,6 +434,34 @@ export class CloseWonTaskService {
434
434
  + `'${input.Assignee.EntityName}' is not registered on this host.`);
435
435
  return null;
436
436
  }
437
+ /**
438
+ * AND THE RECORD HAS TO BE THERE (bc-aidp-next-golive#326).
439
+ *
440
+ * `TaskAssignment.AssigneeRecordID` is polymorphic, so there is no foreign key and the database
441
+ * cannot refuse a row pointing at nobody. On QA fourteen close-won tasks carried a People id that
442
+ * is not in People -- the id the seeded policy used to ship -- and every one read as assigned
443
+ * while no queue held them. That is the worse of the two failures: an unrouted task at least
444
+ * reads as unrouted, and the Issue above says so.
445
+ *
446
+ * Checked by READING the row, not by validating the id's shape. A well-formed id for a person
447
+ * who was never seeded is exactly the case that caused this.
448
+ */
449
+ const present = await this.assigneeExists(input.Assignee.EntityName, input.Assignee.RecordID, contextUser);
450
+ if (present === false) {
451
+ result.Issues.push(`The ${kind} task was created but NOT routed: the configured assignee `
452
+ + `'${input.Assignee.RecordID}' does not exist in ${input.Assignee.EntityName}. `
453
+ + "Point CloseWonTasks.AssigneeRecordID on the pipeline's CloseWonPolicy at a real record.");
454
+ return null;
455
+ }
456
+ if (present === null) {
457
+ /**
458
+ * COULD NOT TELL, so route anyway and say so. A transient read failure must not quietly stop
459
+ * routing a deployment that is configured correctly -- that would trade this defect for a
460
+ * worse one. Routing is what happens today; the Issue is what is new.
461
+ */
462
+ result.Issues.push(`The ${kind} task's assignee could not be verified before routing; if it is wrong, the `
463
+ + 'task will look assigned to nobody.');
464
+ }
437
465
  try {
438
466
  const assignment = await this.assignments.assignToTask({
439
467
  taskID,
@@ -442,6 +470,27 @@ export class CloseWonTaskService {
442
470
  roleID: input.Assignee.RoleID,
443
471
  assignedByPersonID: input.AssignedByPersonID,
444
472
  }, contextUser);
473
+ /**
474
+ * AND THE WRITE HAS TO HAVE LANDED (bc-aidp-next-golive#326 — the "or to no one" half).
475
+ *
476
+ * tasks' `assignToTask` calls `Save()` without reading its result and returns the entity
477
+ * either way, so a REFUSED write comes back looking like a successful one: `NewRecord()`
478
+ * has already put an id on it, this method would hand that id back, and the task records
479
+ * an AssignmentID with no TaskAssignment row behind it. Nine Order Review tasks on QA are
480
+ * in exactly that state — the issue's title calls it "assigned to no one", and it is
481
+ * invisible precisely because the id looks fine.
482
+ *
483
+ * `IsSaved` is `_everSaved`, stamped only where a save actually applies, so it stays
484
+ * false after a refusal. Reporting the task UNROUTED is the honest answer: the work exists
485
+ * and nobody holds it. The fix in tasks is theirs to make; this stops us reporting a
486
+ * routing that did not happen.
487
+ */
488
+ if (!assignment?.IsSaved) {
489
+ const why = assignment?.LatestResult?.CompleteMessage ?? 'the write was refused without a reason';
490
+ LogError(`CloseWonTaskService: the ${kind} assignment did not save for task ${taskID}: ${why}`);
491
+ result.Issues.push(`The ${kind} task was created but NOT routed: the assignment did not save (${why}).`);
492
+ return null;
493
+ }
445
494
  return assignment.Get('ID');
446
495
  }
447
496
  catch (err) {
@@ -449,6 +498,39 @@ export class CloseWonTaskService {
449
498
  return null;
450
499
  }
451
500
  }
501
+ /**
502
+ * Whether the assignee record exists: true, false, or NULL for "could not tell".
503
+ *
504
+ * Three states rather than two, because the caller treats them differently -- see the note at the
505
+ * call site. `ResultType: 'count_only'` so this asks the database a question about existence
506
+ * rather than loading a person nobody reads.
507
+ *
508
+ * AND NOT THROUGH THE INJECTED PROVIDER, which the note above `route`'s entity lookup might lead a
509
+ * reader to expect. That note is about the entity REGISTRY: resolving an EntityID from one provider
510
+ * and writing it through another is how an assignment ends up pointing at the wrong entity. This
511
+ * read resolves no id -- it asks whether a row is there -- and the row it asks about is a person who
512
+ * pre-dates the close, not something the injected provider has just written and only it can see. So
513
+ * `new RunView()` is used here, the same form every other read in this package takes. If the global
514
+ * provider cannot answer, that is the NULL case: the route goes ahead and says it could not tell.
515
+ */
516
+ async assigneeExists(entityName, recordID, contextUser) {
517
+ try {
518
+ const view = await new RunView().RunView({
519
+ EntityName: entityName,
520
+ ExtraFilter: `ID = '${recordID.replace(/'/g, "''")}'`,
521
+ ResultType: 'count_only',
522
+ }, contextUser);
523
+ if (!view.Success) {
524
+ LogError(`CloseWonTaskService: assignee check failed on ${entityName}: ${view.ErrorMessage}`);
525
+ return null;
526
+ }
527
+ return (view.TotalRowCount ?? 0) > 0;
528
+ }
529
+ catch (err) {
530
+ LogError(`CloseWonTaskService: assignee check threw on ${entityName}: ${String(err)}`);
531
+ return null;
532
+ }
533
+ }
452
534
  /**
453
535
  * Whether this pipeline's policy raises a contract task.
454
536
  *