@mj-biz-apps/sales-core-entities-server 6.24.1 → 6.26.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.
@@ -325,6 +325,14 @@ export declare class CloseWonTaskService {
325
325
  * meant refusing, because the cost was booking against an open deal. Here the cost of not knowing
326
326
  * is a second row in a work queue that someone closes — far cheaper than a close that fails, or a
327
327
  * task finance never gets because a lookup had a bad day.
328
+ *
329
+ * BOTH READS GO THROUGH THE INJECTED PROVIDER, because the close calls this inside its own
330
+ * transaction. By the time the contract task is checked, the order-review task and its links are
331
+ * rows that transaction has written and not committed. `new RunView()` reads on the global
332
+ * provider's connection, which waits on those locks until the request timeout (30 s), fails, and
333
+ * returns null: every Close Won that raised both tasks stalled 30 s, and the browser saw a 504
334
+ * while the close went on to commit. The injected provider is the transaction's connection, so it
335
+ * sees its own rows, and a re-close still finds the task it raised.
328
336
  */
329
337
  private existingTaskID;
330
338
  /**
@@ -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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"}
@@ -493,6 +493,14 @@ export class CloseWonTaskService {
493
493
  * meant refusing, because the cost was booking against an open deal. Here the cost of not knowing
494
494
  * is a second row in a work queue that someone closes — far cheaper than a close that fails, or a
495
495
  * task finance never gets because a lookup had a bad day.
496
+ *
497
+ * BOTH READS GO THROUGH THE INJECTED PROVIDER, because the close calls this inside its own
498
+ * transaction. By the time the contract task is checked, the order-review task and its links are
499
+ * rows that transaction has written and not committed. `new RunView()` reads on the global
500
+ * provider's connection, which waits on those locks until the request timeout (30 s), fails, and
501
+ * returns null: every Close Won that raised both tasks stalled 30 s, and the browser saw a 504
502
+ * while the close went on to commit. The injected provider is the transaction's connection, so it
503
+ * sees its own rows, and a re-close still finds the task it raised.
496
504
  */
497
505
  async existingTaskID(typeID, targets, provider, contextUser) {
498
506
  /**
@@ -515,7 +523,7 @@ export class CloseWonTaskService {
515
523
  const where = pairs
516
524
  .map((p) => `(EntityID = '${SafeText(p.id)}' AND RecordID = '${SafeText(p.record)}')`)
517
525
  .join(' OR ');
518
- const links = await new RunView().RunView({
526
+ const links = await new RunView(provider).RunView({
519
527
  EntityName: E_TASK_LINK,
520
528
  ExtraFilter: where,
521
529
  Fields: ['TaskID'],
@@ -526,7 +534,7 @@ export class CloseWonTaskService {
526
534
  return null;
527
535
  }
528
536
  const list = taskIDs.map((id) => `'${SafeText(id)}'`).join(', ');
529
- const tasks = await new RunView().RunView({
537
+ const tasks = await new RunView(provider).RunView({
530
538
  EntityName: E_TASK,
531
539
  ExtraFilter: `ID IN (${list}) AND TypeID = '${SafeText(typeID)}'`,
532
540
  Fields: ['ID'],
@@ -1 +1 @@
1
- {"version":3,"file":"CloseWonTaskService.js","sourceRoot":"","sources":["../src/CloseWonTaskService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CloseWonTaskService.js","sourceRoot":"","sources":["../src/CloseWonTaskService.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@
40
40
  *
41
41
  * @module @mj-biz-apps/sales-core-entities-server
42
42
  */
43
- import { EntitySaveOptions } from '@memberjunction/core';
43
+ import { EntityDeleteOptions, EntitySaveOptions } from '@memberjunction/core';
44
44
  import { DealEntity } from '@mj-biz-apps/sales-entities';
45
45
  /**
46
46
  * The persisted state a deal held on the way OUT of a stage — what `DealStageEvent` records.
@@ -226,11 +226,11 @@ export declare class DealEntityServer extends DealEntity {
226
226
  *
227
227
  * ── WHY FIRST SAVE AND NOT NewRecord() ──
228
228
  *
229
- * `OrderHeader.CompanyID` is NOT NULL, and a deal does not know its company until
230
- * `stampCompanyFromPipeline()` has run: the caller supplies a PipelineID and the selling company is
231
- * derived from it (D-4). Provisioning in `NewRecord()` would mean inventing a company or building an
232
- * order that cannot be inserted. So it happens here, after the stamps, on the one call where
233
- * `IsSaved` is still false.
229
+ * `OrderHeader.CompanyID` is NOT NULL, and a deal's company is only known to be valid once
230
+ * `companyLinkedToPipelineRefusal()` has passed it: the rep picks the selling company and it must be
231
+ * linked to the pipeline. Provisioning in `NewRecord()` would mean inventing a company or building an
232
+ * order that cannot be inserted. So it happens here, after the checks and stamps, on the one call
233
+ * where `IsSaved` is still false.
234
234
  *
235
235
  * ── WHY THE GUARD IS `IsSaved`, AND NOT `IsSaved || OrderID` ──
236
236
  *
@@ -985,31 +985,29 @@ export declare class DealEntityServer extends DealEntity {
985
985
  private missingPartyMessage;
986
986
  private suppliedParties;
987
987
  /**
988
- * Forces `Deal.CompanyID` to the pipeline's company, ignoring whatever the caller supplied.
988
+ * Refuses a deal whose company is not actively linked to its pipeline through `PipelineCompany`.
989
989
  *
990
- * THE PIPELINE IS THE ONLY SOURCE THAT CAN BE RIGHT. A deal belongs to the company that owns the
991
- * pipeline it sits in, and a CHECK constraint cannot express that — it cannot reach across the
992
- * foreign key to compare the two. So it is resolved on the write path instead, on every save, for
993
- * every caller.
990
+ * A pipeline can serve several companies, so the deal's company is the rep's choice and can no
991
+ * longer be copied from the pipeline. What stays checkable is that the choice is one the pipeline
992
+ * offers. A CHECK constraint cannot reach across the link, so it is checked here, on every save, for
993
+ * every caller — the form, the workspace, imports and Actions alike.
994
994
  *
995
- * An explicitly supplied value is OVERWRITTEN rather than rejected. A client that gets this wrong is
996
- * not making a choice the app should honour or argue with; it is stating something it has no standing
997
- * to know, and the correct answer is available here.
995
+ * Keyed on either half moving, like the stage check: an existing deal whose link was later retired
996
+ * (`IsActive = 0`) keeps saving ordinary edits, and is refused only when a save changes its company
997
+ * or its pipeline.
998
998
  *
999
- * A missing pipeline is left alone: `Validate()` already refuses a deal without one, and raising a
1000
- * second, vaguer complaint here would just bury the specific message the user needs.
999
+ * A missing pipeline or company is left to `Validate()`, which already names it.
1001
1000
  */
1002
- private stampCompanyFromPipeline;
1001
+ private companyLinkedToPipelineRefusal;
1003
1002
  /**
1004
1003
  * Refuses a deal whose stage belongs to a different pipeline (bc-aidp-next-golive#291).
1005
1004
  *
1006
- * ── WHY REFUSE, WHEN THE COMPANY STAMP ABOVE OVERWRITES ─────────────────────────────────────
1005
+ * ── WHY REFUSE RATHER THAN CORRECT ──────────────────────────────────────────────────────────
1007
1006
  *
1008
- * `stampCompanyFromPipeline` can correct a wrong company because there is exactly one right
1009
- * answer and it is derivable: the pipeline owns a company. A wrong STAGE has no such answer.
1010
- * Moving the deal to the pipeline's first stage would be inventing a position in a sales process
1011
- * nobody chose, and keeping the stage while changing the pipeline would be the same invention
1012
- * from the other end. So this one asks the caller instead.
1007
+ * A wrong stage has no derivable right answer. Moving the deal to the pipeline's first stage
1008
+ * would be inventing a position in a sales process nobody chose, and keeping the stage while
1009
+ * changing the pipeline would be the same invention from the other end. So this asks the caller
1010
+ * instead, as the company check above does.
1013
1011
  *
1014
1012
  * ── IT DID NOT SIT INERT ────────────────────────────────────────────────────────────────────
1015
1013
  *
@@ -1020,7 +1018,7 @@ export declare class DealEntityServer extends DealEntity {
1020
1018
  * Actions reach the same code without passing through it.
1021
1019
  *
1022
1020
  * A CHECK constraint cannot express this — it cannot reach across the foreign key to compare the
1023
- * stage's pipeline with the deal's — which is the same reason the company stamp lives here.
1021
+ * stage's pipeline with the deal's — which is the same reason the company check lives here.
1024
1022
  *
1025
1023
  * ── KEYED ON EITHER HALF MOVING ─────────────────────────────────────────────────────────────
1026
1024
  *
@@ -1093,10 +1091,10 @@ export declare class DealEntityServer extends DealEntity {
1093
1091
  *
1094
1092
  * ── IT IS ALSO WHAT THE SIBLING FIELD ALREADY DOES ──────────────────────────────────────────
1095
1093
  *
1096
- * `CompanyID` and `OwnerEmployeeID` are both `serverMaintained` in the form's field list, both
1097
- * derived, and both have exactly one right answer obtainable elsewhere. `stampCompanyFromPipeline`
1098
- * OVERWRITES a supplied company for that reason. Nothing principled made the owner refuse instead;
1099
- * the two now behave the same way.
1094
+ * `OwnerEmployeeID` is `serverMaintained` in the form's field list and derived, with exactly one
1095
+ * right answer obtainable elsewhere (the owner-role team member), so a supplied value is overwritten
1096
+ * rather than argued with. `CompanyID` used to be the same, copied from the pipeline; it is the rep's
1097
+ * choice now that a pipeline serves several companies, and is checked instead.
1100
1098
  *
1101
1099
  * Loading the roster is what makes the override happen: `stampOwnerFromTeam()` runs below and is
1102
1100
  * guarded by `RosterDrivesThisSave`, which asks `Team.IsLoaded`. A load failure leaves the roster
@@ -1236,6 +1234,30 @@ export declare class DealEntityServer extends DealEntity {
1236
1234
  * produce `NaN` or a truncated id, which would then be written into a foreign key.
1237
1235
  */
1238
1236
  private creatorEmployeeID;
1237
+ /**
1238
+ * Delete an open deal that was never closed, with its child rows and its unconfirmed order, in one
1239
+ * transaction (golive#429). Who may delete which deal, and why the child rows go by SQL, is in
1240
+ * `deal-delete.ts`.
1241
+ *
1242
+ * Without this the base delete removed only the deal row, which every saved deal's team row blocks
1243
+ * with a foreign key, so the user saw a generic failure. Now a refused delete says why.
1244
+ */
1245
+ Delete(options?: EntityDeleteOptions): Promise<boolean>;
1246
+ /** The persisted values, so an unsaved edit cannot change what the check sees. */
1247
+ private dealDeleteSubject;
1248
+ /** Child rows, then the deal, then its order (the deal references the order), all or none. */
1249
+ private deleteWithChildrenAndOrder;
1250
+ /**
1251
+ * Delete the order through orders' own entity, which refuses a booked order. Null on success.
1252
+ *
1253
+ * Loaded as the system user, so orders' delete of the order's lines, charges and schedule runs as
1254
+ * that user too. The caller's right to delete this deal was already checked; giving the Sales roles
1255
+ * delete on the order entities instead would let them delete rows of a booked order directly.
1256
+ */
1257
+ private deleteEmbeddedOrder;
1258
+ private dealLabel;
1259
+ /** Log it, register a failed delete result, return false — the delete twin of `refuseSave`. */
1260
+ private refuseDelete;
1239
1261
  private stampOwnerFromTeam;
1240
1262
  }
1241
1263
  //# sourceMappingURL=DealEntityServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DealEntityServer.d.ts","sourceRoot":"","sources":["../src/DealEntityServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DealEntityServer.d.ts","sourceRoot":"","sources":["../src/DealEntityServer.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ var DealEntityServer_1;
47
47
  *
48
48
  * @module @mj-biz-apps/sales-core-entities-server
49
49
  */
50
- import { BaseEntity, BaseEntityResult, LogError, } from '@memberjunction/core';
50
+ import { BaseEntity, BaseEntityResult, EntityPermissionType, LogError, } from '@memberjunction/core';
51
51
  import { createHash } from 'node:crypto';
52
52
  import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
53
53
  import { BusinessTimeZoneEngine, FromCalendarDay, ToCalendarDay } from '@mj-biz-apps/common-entities';
@@ -60,8 +60,10 @@ import { SALES_SCHEMA, getNextDealNumber } from './SequenceService.js';
60
60
  import { FindUnansweredSubscriptionLines } from './subscription-choice.js';
61
61
  import { KeptOnDealNote, SendDealScheduleToOrder, StatusIsWon } from './deal-schedule-to-order.js';
62
62
  import { OrdersIsInstalled } from './orders-availability.js';
63
+ import { VetoReader } from './veto-reader.js';
64
+ import { DealDeleteRefusal, DeleteDealChildRows, ReadDealDeleteFacts, } from './deal-delete.js';
63
65
  const DEAL_ENTITY = 'MJ_BizApps_Sales: Deals';
64
- const PIPELINE_ENTITY = 'MJ_BizApps_Sales: Pipelines';
66
+ const PIPELINE_COMPANY_ENTITY = 'MJ_BizApps_Sales: Pipeline Companies';
65
67
  const DEAL_STATUS_ENTITY = 'MJ_BizApps_Sales: Deal Status Types';
66
68
  const SALES_ACCOUNT_ENTITY = 'MJ_BizApps_Sales: Sales Accounts';
67
69
  const SALES_CONTACT_ENTITY = 'MJ_BizApps_Sales: Sales Contacts';
@@ -434,21 +436,30 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
434
436
  if (partyRefusal) {
435
437
  return this.refuseSave(partyRefusal);
436
438
  }
439
+ let companyRefusal;
440
+ try {
441
+ companyRefusal = await this.companyLinkedToPipelineRefusal();
442
+ }
443
+ catch (err) {
444
+ return this.refuseSave(`could not check the company against the pipeline: ${err}`);
445
+ }
446
+ if (companyRefusal) {
447
+ return this.refuseSave(companyRefusal);
448
+ }
437
449
  try {
438
- await this.stampCompanyFromPipeline();
439
450
  await this.stampOwnerFromTeam();
440
451
  }
441
452
  catch (err) {
442
453
  return this.refuseSave(`could not resolve a server-maintained stamp: ${err}`);
443
454
  }
444
455
  /**
445
- * AFTER the company stamp, because the company is what decides the currency, and OUTSIDE the
456
+ * AFTER the company check, because the company is what decides the currency, and OUTSIDE the
446
457
  * try above, because this one may not refuse a save. See {@link defaultCurrencyOnCreate}.
447
458
  */
448
459
  await this.defaultCurrencyOnCreate();
449
460
  this.defaultCreationDateOnCreate();
450
461
  /**
451
- * AFTER the company stamp, deliberately — and NOT AT ALL on a locked deal.
462
+ * AFTER the company check, deliberately — and NOT AT ALL on a locked deal.
452
463
  *
453
464
  * The lock check above has already run, so `_lockedAtSave` is trustworthy here. A locked deal
454
465
  * that reaches this point is one making a PERMITTED edit (Description, NextStep), and permitted
@@ -1136,11 +1147,11 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
1136
1147
  *
1137
1148
  * ── WHY FIRST SAVE AND NOT NewRecord() ──
1138
1149
  *
1139
- * `OrderHeader.CompanyID` is NOT NULL, and a deal does not know its company until
1140
- * `stampCompanyFromPipeline()` has run: the caller supplies a PipelineID and the selling company is
1141
- * derived from it (D-4). Provisioning in `NewRecord()` would mean inventing a company or building an
1142
- * order that cannot be inserted. So it happens here, after the stamps, on the one call where
1143
- * `IsSaved` is still false.
1150
+ * `OrderHeader.CompanyID` is NOT NULL, and a deal's company is only known to be valid once
1151
+ * `companyLinkedToPipelineRefusal()` has passed it: the rep picks the selling company and it must be
1152
+ * linked to the pipeline. Provisioning in `NewRecord()` would mean inventing a company or building an
1153
+ * order that cannot be inserted. So it happens here, after the checks and stamps, on the one call
1154
+ * where `IsSaved` is still false.
1144
1155
  *
1145
1156
  * ── WHY THE GUARD IS `IsSaved`, AND NOT `IsSaved || OrderID` ──
1146
1157
  *
@@ -2837,53 +2848,60 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
2837
2848
  }
2838
2849
  /* ── Selling company ────────────────────────────────────────────────────── */
2839
2850
  /**
2840
- * Forces `Deal.CompanyID` to the pipeline's company, ignoring whatever the caller supplied.
2851
+ * Refuses a deal whose company is not actively linked to its pipeline through `PipelineCompany`.
2841
2852
  *
2842
- * THE PIPELINE IS THE ONLY SOURCE THAT CAN BE RIGHT. A deal belongs to the company that owns the
2843
- * pipeline it sits in, and a CHECK constraint cannot express that — it cannot reach across the
2844
- * foreign key to compare the two. So it is resolved on the write path instead, on every save, for
2845
- * every caller.
2853
+ * A pipeline can serve several companies, so the deal's company is the rep's choice and can no
2854
+ * longer be copied from the pipeline. What stays checkable is that the choice is one the pipeline
2855
+ * offers. A CHECK constraint cannot reach across the link, so it is checked here, on every save, for
2856
+ * every caller — the form, the workspace, imports and Actions alike.
2846
2857
  *
2847
- * An explicitly supplied value is OVERWRITTEN rather than rejected. A client that gets this wrong is
2848
- * not making a choice the app should honour or argue with; it is stating something it has no standing
2849
- * to know, and the correct answer is available here.
2858
+ * Keyed on either half moving, like the stage check: an existing deal whose link was later retired
2859
+ * (`IsActive = 0`) keeps saving ordinary edits, and is refused only when a save changes its company
2860
+ * or its pipeline.
2850
2861
  *
2851
- * A missing pipeline is left alone: `Validate()` already refuses a deal without one, and raising a
2852
- * second, vaguer complaint here would just bury the specific message the user needs.
2862
+ * A missing pipeline or company is left to `Validate()`, which already names it.
2853
2863
  */
2854
- async stampCompanyFromPipeline() {
2855
- if (!this.PipelineID) {
2856
- return;
2864
+ async companyLinkedToPipelineRefusal() {
2865
+ const pipelineID = this.PipelineID;
2866
+ const companyID = this.CompanyID;
2867
+ if (!pipelineID || !companyID) {
2868
+ return null;
2857
2869
  }
2858
- if (!GUID_SHAPE.test(this.PipelineID)) {
2859
- throw new Error(`DealEntityServer: pipeline ${this.PipelineID} is not a valid ID.`);
2870
+ const companyDirty = this.GetFieldByName('CompanyID')?.Dirty === true;
2871
+ const pipelineDirty = this.GetFieldByName('PipelineID')?.Dirty === true;
2872
+ if (this.IsSaved && !companyDirty && !pipelineDirty) {
2873
+ return null;
2874
+ }
2875
+ if (!GUID_SHAPE.test(pipelineID)) {
2876
+ return 'the pipeline on this deal is not a valid ID.';
2877
+ }
2878
+ if (!GUID_SHAPE.test(companyID)) {
2879
+ return 'the company on this deal is not a valid ID.';
2860
2880
  }
2861
2881
  const viewProvider = this.ProviderToUse;
2862
2882
  const result = await viewProvider.RunView({
2863
- EntityName: PIPELINE_ENTITY,
2864
- ExtraFilter: `ID = '${this.PipelineID}'`,
2883
+ EntityName: PIPELINE_COMPANY_ENTITY,
2884
+ ExtraFilter: `PipelineID = '${pipelineID}' AND CompanyID = '${companyID}' AND IsActive = 1`,
2865
2885
  ResultType: 'simple',
2866
- Fields: ['CompanyID'],
2886
+ Fields: ['ID'],
2867
2887
  }, this.ContextCurrentUser);
2868
2888
  if (!result.Success) {
2869
- throw new Error(`DealEntityServer: could not read the pipeline's company: ${result.ErrorMessage}`);
2889
+ throw new Error(`DealEntityServer: could not read the pipeline's companies: ${result.ErrorMessage}`);
2870
2890
  }
2871
- const pipeline = (result.Results ?? [])[0];
2872
- if (!pipeline?.CompanyID) {
2873
- throw new Error(`DealEntityServer: pipeline ${this.PipelineID} could not be read, so the selling company is unknown.`);
2891
+ if ((result.Results ?? []).length === 0) {
2892
+ return 'the pipeline on this deal is not available to its company. Pick a pipeline linked to the company, or link the company to the pipeline.';
2874
2893
  }
2875
- this.CompanyID = pipeline.CompanyID;
2894
+ return null;
2876
2895
  }
2877
2896
  /**
2878
2897
  * Refuses a deal whose stage belongs to a different pipeline (bc-aidp-next-golive#291).
2879
2898
  *
2880
- * ── WHY REFUSE, WHEN THE COMPANY STAMP ABOVE OVERWRITES ─────────────────────────────────────
2899
+ * ── WHY REFUSE RATHER THAN CORRECT ──────────────────────────────────────────────────────────
2881
2900
  *
2882
- * `stampCompanyFromPipeline` can correct a wrong company because there is exactly one right
2883
- * answer and it is derivable: the pipeline owns a company. A wrong STAGE has no such answer.
2884
- * Moving the deal to the pipeline's first stage would be inventing a position in a sales process
2885
- * nobody chose, and keeping the stage while changing the pipeline would be the same invention
2886
- * from the other end. So this one asks the caller instead.
2901
+ * A wrong stage has no derivable right answer. Moving the deal to the pipeline's first stage
2902
+ * would be inventing a position in a sales process nobody chose, and keeping the stage while
2903
+ * changing the pipeline would be the same invention from the other end. So this asks the caller
2904
+ * instead, as the company check above does.
2887
2905
  *
2888
2906
  * ── IT DID NOT SIT INERT ────────────────────────────────────────────────────────────────────
2889
2907
  *
@@ -2894,7 +2912,7 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
2894
2912
  * Actions reach the same code without passing through it.
2895
2913
  *
2896
2914
  * A CHECK constraint cannot express this — it cannot reach across the foreign key to compare the
2897
- * stage's pipeline with the deal's — which is the same reason the company stamp lives here.
2915
+ * stage's pipeline with the deal's — which is the same reason the company check lives here.
2898
2916
  *
2899
2917
  * ── KEYED ON EITHER HALF MOVING ─────────────────────────────────────────────────────────────
2900
2918
  *
@@ -3014,10 +3032,10 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
3014
3032
  *
3015
3033
  * ── IT IS ALSO WHAT THE SIBLING FIELD ALREADY DOES ──────────────────────────────────────────
3016
3034
  *
3017
- * `CompanyID` and `OwnerEmployeeID` are both `serverMaintained` in the form's field list, both
3018
- * derived, and both have exactly one right answer obtainable elsewhere. `stampCompanyFromPipeline`
3019
- * OVERWRITES a supplied company for that reason. Nothing principled made the owner refuse instead;
3020
- * the two now behave the same way.
3035
+ * `OwnerEmployeeID` is `serverMaintained` in the form's field list and derived, with exactly one
3036
+ * right answer obtainable elsewhere (the owner-role team member), so a supplied value is overwritten
3037
+ * rather than argued with. `CompanyID` used to be the same, copied from the pipeline; it is the rep's
3038
+ * choice now that a pipeline serves several companies, and is checked instead.
3021
3039
  *
3022
3040
  * Loading the roster is what makes the override happen: `stampOwnerFromTeam()` runs below and is
3023
3041
  * guarded by `RosterDrivesThisSave`, which asks `Team.IsLoaded`. A load failure leaves the roster
@@ -3312,6 +3330,106 @@ let DealEntityServer = class DealEntityServer extends DealEntity {
3312
3330
  const id = user?.EmployeeID;
3313
3331
  return typeof id === 'string' && id.trim().length > 0 ? id : null;
3314
3332
  }
3333
+ /**
3334
+ * Delete an open deal that was never closed, with its child rows and its unconfirmed order, in one
3335
+ * transaction (golive#429). Who may delete which deal, and why the child rows go by SQL, is in
3336
+ * `deal-delete.ts`.
3337
+ *
3338
+ * Without this the base delete removed only the deal row, which every saved deal's team row blocks
3339
+ * with a foreign key, so the user saw a generic failure. Now a refused delete says why.
3340
+ */
3341
+ async Delete(options) {
3342
+ if (!this.IsSaved) {
3343
+ return super.Delete(options);
3344
+ }
3345
+ if (!this.CheckPermissions(EntityPermissionType.Delete, false)) {
3346
+ return this.refuseDelete(`${this.dealLabel()} was not deleted: your roles do not allow deleting deals.`);
3347
+ }
3348
+ const provider = this.ProviderToUse;
3349
+ let refusal;
3350
+ try {
3351
+ const facts = await ReadDealDeleteFacts(this.dealDeleteSubject(), provider, this.ContextCurrentUser);
3352
+ refusal = DealDeleteRefusal(facts, this.Name ?? '');
3353
+ }
3354
+ catch (err) {
3355
+ return this.refuseDelete(`${this.dealLabel()} was not deleted, because it could not be checked: ${err instanceof Error ? err.message : String(err)}`);
3356
+ }
3357
+ return refusal ? this.refuseDelete(refusal) : this.deleteWithChildrenAndOrder(options);
3358
+ }
3359
+ /** The persisted values, so an unsaved edit cannot change what the check sees. */
3360
+ dealDeleteSubject() {
3361
+ const old = (field) => this.GetFieldByName(field)?.OldValue ?? null;
3362
+ return {
3363
+ DealID: this.ID,
3364
+ DealName: this.Name ?? '',
3365
+ StatusID: old('DealStatusTypeID'),
3366
+ OwnerEmployeeID: old('OwnerEmployeeID'),
3367
+ OrderID: old('OrderID'),
3368
+ };
3369
+ }
3370
+ /** Child rows, then the deal, then its order (the deal references the order), all or none. */
3371
+ async deleteWithChildrenAndOrder(options) {
3372
+ const orderID = this.dealDeleteSubject().OrderID;
3373
+ const provider = this.ProviderToUse;
3374
+ const scope = await provider.BeginEntityTransaction();
3375
+ try {
3376
+ await DeleteDealChildRows(this.ID, provider, this.ContextCurrentUser);
3377
+ if (!(await super.Delete(options))) {
3378
+ await scope.Rollback();
3379
+ return false;
3380
+ }
3381
+ const orderRefusal = orderID ? await this.deleteEmbeddedOrder(orderID) : null;
3382
+ if (orderRefusal) {
3383
+ await scope.Rollback();
3384
+ return this.refuseDelete(`${this.dealLabel()} was not deleted, because its order could not be deleted: ${orderRefusal}`);
3385
+ }
3386
+ await scope.Commit();
3387
+ return true;
3388
+ }
3389
+ catch (err) {
3390
+ try {
3391
+ await scope.Rollback();
3392
+ }
3393
+ catch (rollbackErr) {
3394
+ LogError(`DealEntityServer.Delete: rollback failed: ${rollbackErr}`);
3395
+ }
3396
+ return this.refuseDelete(`${this.dealLabel()} was not deleted: ${err instanceof Error ? err.message : String(err)}`);
3397
+ }
3398
+ }
3399
+ /**
3400
+ * Delete the order through orders' own entity, which refuses a booked order. Null on success.
3401
+ *
3402
+ * Loaded as the system user, so orders' delete of the order's lines, charges and schedule runs as
3403
+ * that user too. The caller's right to delete this deal was already checked; giving the Sales roles
3404
+ * delete on the order entities instead would let them delete rows of a booked order directly.
3405
+ */
3406
+ async deleteEmbeddedOrder(orderID) {
3407
+ const provider = this.ProviderToUse;
3408
+ const order = await provider.GetEntityObject(ORDER_HEADER_ENTITY, VetoReader(this.ContextCurrentUser));
3409
+ if (!(await order.Load(orderID))) {
3410
+ return `order ${orderID} could not be read`;
3411
+ }
3412
+ if (await order.Delete()) {
3413
+ return null;
3414
+ }
3415
+ return order.LatestResult?.CompleteMessage || order.LatestResult?.Message || 'the order refused the delete';
3416
+ }
3417
+ dealLabel() {
3418
+ return this.Name ? `Deal "${this.Name}"` : 'This deal';
3419
+ }
3420
+ /** Log it, register a failed delete result, return false — the delete twin of `refuseSave`. */
3421
+ refuseDelete(message) {
3422
+ LogError(`DealEntityServer.Delete refused: ${message}`);
3423
+ const failed = new BaseEntityResult();
3424
+ failed.Success = false;
3425
+ failed.Type = 'delete';
3426
+ failed.Message = message;
3427
+ failed.StartedAt = new Date();
3428
+ failed.EndedAt = new Date();
3429
+ failed.OriginalValues = this.Fields.map((f) => ({ FieldName: f.CodeName, Value: f.OldValue }));
3430
+ this.RegisterResultHistoryEntry(failed);
3431
+ return false;
3432
+ }
3315
3433
  async stampOwnerFromTeam() {
3316
3434
  if (!this.RosterDrivesThisSave) {
3317
3435
  return; // the roster is not part of this save; leave the stamp alone