@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.
- package/dist/CloseWonTaskService.d.ts +8 -0
- package/dist/CloseWonTaskService.d.ts.map +1 -1
- package/dist/CloseWonTaskService.js +10 -2
- package/dist/CloseWonTaskService.js.map +1 -1
- package/dist/DealEntityServer.d.ts +50 -28
- package/dist/DealEntityServer.d.ts.map +1 -1
- package/dist/DealEntityServer.js +162 -44
- package/dist/DealEntityServer.js.map +1 -1
- package/dist/deal-delete.d.ts +83 -0
- package/dist/deal-delete.d.ts.map +1 -0
- package/dist/deal-delete.js +148 -0
- package/dist/deal-delete.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/pipelines/LinkDefaultPipeline.d.ts +54 -0
- package/dist/pipelines/LinkDefaultPipeline.d.ts.map +1 -0
- package/dist/pipelines/LinkDefaultPipeline.js +121 -0
- package/dist/pipelines/LinkDefaultPipeline.js.map +1 -0
- package/package.json +12 -12
- package/dist/pipelines/CopyDefaultPipeline.d.ts +0 -66
- package/dist/pipelines/CopyDefaultPipeline.d.ts.map +0 -1
- package/dist/pipelines/CopyDefaultPipeline.js +0 -174
- package/dist/pipelines/CopyDefaultPipeline.js.map +0 -1
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAIH,KAAK,iBAAiB,
|
|
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
|
|
230
|
-
* `
|
|
231
|
-
*
|
|
232
|
-
* order that cannot be inserted. So it happens here, after the stamps, on the one call
|
|
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
|
-
*
|
|
988
|
+
* Refuses a deal whose company is not actively linked to its pipeline through `PipelineCompany`.
|
|
989
989
|
*
|
|
990
|
-
*
|
|
991
|
-
*
|
|
992
|
-
*
|
|
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
|
-
*
|
|
996
|
-
*
|
|
997
|
-
*
|
|
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
|
|
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
|
|
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
|
|
1005
|
+
* ── WHY REFUSE RATHER THAN CORRECT ──────────────────────────────────────────────────────────
|
|
1007
1006
|
*
|
|
1008
|
-
*
|
|
1009
|
-
*
|
|
1010
|
-
*
|
|
1011
|
-
*
|
|
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
|
|
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
|
-
* `
|
|
1097
|
-
*
|
|
1098
|
-
*
|
|
1099
|
-
*
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,EAIH,iBAAiB,EAIpB,MAAM,sBAAsB,CAAC;AAe9B,OAAO,EAKH,UAAU,EAGb,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"DealEntityServer.d.ts","sourceRoot":"","sources":["../src/DealEntityServer.ts"],"names":[],"mappings":"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"}
|
package/dist/DealEntityServer.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
1140
|
-
* `
|
|
1141
|
-
*
|
|
1142
|
-
* order that cannot be inserted. So it happens here, after the stamps, on the one call
|
|
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
|
-
*
|
|
2851
|
+
* Refuses a deal whose company is not actively linked to its pipeline through `PipelineCompany`.
|
|
2841
2852
|
*
|
|
2842
|
-
*
|
|
2843
|
-
*
|
|
2844
|
-
*
|
|
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
|
-
*
|
|
2848
|
-
*
|
|
2849
|
-
*
|
|
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
|
|
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
|
|
2855
|
-
|
|
2856
|
-
|
|
2864
|
+
async companyLinkedToPipelineRefusal() {
|
|
2865
|
+
const pipelineID = this.PipelineID;
|
|
2866
|
+
const companyID = this.CompanyID;
|
|
2867
|
+
if (!pipelineID || !companyID) {
|
|
2868
|
+
return null;
|
|
2857
2869
|
}
|
|
2858
|
-
|
|
2859
|
-
|
|
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:
|
|
2864
|
-
ExtraFilter: `
|
|
2883
|
+
EntityName: PIPELINE_COMPANY_ENTITY,
|
|
2884
|
+
ExtraFilter: `PipelineID = '${pipelineID}' AND CompanyID = '${companyID}' AND IsActive = 1`,
|
|
2865
2885
|
ResultType: 'simple',
|
|
2866
|
-
Fields: ['
|
|
2886
|
+
Fields: ['ID'],
|
|
2867
2887
|
}, this.ContextCurrentUser);
|
|
2868
2888
|
if (!result.Success) {
|
|
2869
|
-
throw new Error(`DealEntityServer: could not read the pipeline's
|
|
2889
|
+
throw new Error(`DealEntityServer: could not read the pipeline's companies: ${result.ErrorMessage}`);
|
|
2870
2890
|
}
|
|
2871
|
-
|
|
2872
|
-
|
|
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
|
-
|
|
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
|
|
2899
|
+
* ── WHY REFUSE RATHER THAN CORRECT ──────────────────────────────────────────────────────────
|
|
2881
2900
|
*
|
|
2882
|
-
*
|
|
2883
|
-
*
|
|
2884
|
-
*
|
|
2885
|
-
*
|
|
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
|
|
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
|
-
* `
|
|
3018
|
-
*
|
|
3019
|
-
*
|
|
3020
|
-
*
|
|
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
|