@autologix-engineering/shared 1.2.373 → 1.2.374
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/package.json +1 -1
- package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.d.ts +4 -0
- package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.js +21 -1
- package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.js.map +1 -1
- package/src/lib/data-transfer-objects/src/create.dispatch.dto.d.ts +4 -0
- package/src/lib/data-transfer-objects/src/create.dispatch.dto.js +21 -1
- package/src/lib/data-transfer-objects/src/create.dispatch.dto.js.map +1 -1
- package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.d.ts +11 -0
- package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.js +7 -0
- package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.js.map +1 -1
- package/src/lib/date-utils/src/zoop.date.d.ts +8 -0
- package/src/lib/date-utils/src/zoop.date.js +38 -0
- package/src/lib/date-utils/src/zoop.date.js.map +1 -1
- package/src/lib/enums/src/vehicle.compliance.enum.d.ts +9 -0
- package/src/lib/enums/src/vehicle.compliance.enum.js +9 -0
- package/src/lib/enums/src/vehicle.compliance.enum.js.map +1 -1
- package/src/lib/models/src/configurations.model.d.ts +15 -0
- package/src/lib/models/src/configurations.model.js +14 -0
- package/src/lib/models/src/configurations.model.js.map +1 -1
- package/src/lib/utilities/src/map.compliance.from.rc.d.ts +10 -0
- package/src/lib/utilities/src/map.compliance.from.rc.js +7 -1
- package/src/lib/utilities/src/map.compliance.from.rc.js.map +1 -1
- package/src/lib/utilities/src/resolve.passenger.display.name.d.ts +18 -0
- package/src/lib/utilities/src/resolve.passenger.display.name.js +40 -13
- package/src/lib/utilities/src/resolve.passenger.display.name.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { DutiesQueryDTO } from './duties.query.dto';
|
|
1
2
|
export declare class CreateConsolidatedInvoiceDto {
|
|
2
3
|
contextId: string;
|
|
3
4
|
clientPersonaId: string;
|
|
4
5
|
bookingIds: string[];
|
|
6
|
+
selectAll?: boolean;
|
|
7
|
+
excludedIds?: string[];
|
|
8
|
+
filters?: DutiesQueryDTO;
|
|
5
9
|
clientGSTIN: string;
|
|
6
10
|
companyAddress: string;
|
|
7
11
|
companyAddressId?: string;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ArrayMinSize, IsArray, IsOptional, IsString, IsUUID, } from 'class-validator';
|
|
2
|
+
import { ArrayMinSize, IsArray, IsBoolean, IsOptional, IsString, IsUUID, ValidateIf, ValidateNested, } from 'class-validator';
|
|
3
|
+
import { Type } from 'class-transformer';
|
|
4
|
+
import { DutiesQueryDTO } from './duties.query.dto';
|
|
3
5
|
export class CreateConsolidatedInvoiceDto {
|
|
4
6
|
constructor(obj) {
|
|
5
7
|
Object.assign(this, obj);
|
|
@@ -14,11 +16,29 @@ __decorate([
|
|
|
14
16
|
__metadata("design:type", String)
|
|
15
17
|
], CreateConsolidatedInvoiceDto.prototype, "clientPersonaId", void 0);
|
|
16
18
|
__decorate([
|
|
19
|
+
ValidateIf((o) => !o.selectAll),
|
|
17
20
|
IsArray(),
|
|
18
21
|
ArrayMinSize(1),
|
|
19
22
|
IsString({ each: true }),
|
|
20
23
|
__metadata("design:type", Array)
|
|
21
24
|
], CreateConsolidatedInvoiceDto.prototype, "bookingIds", void 0);
|
|
25
|
+
__decorate([
|
|
26
|
+
IsOptional(),
|
|
27
|
+
IsBoolean(),
|
|
28
|
+
__metadata("design:type", Boolean)
|
|
29
|
+
], CreateConsolidatedInvoiceDto.prototype, "selectAll", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
IsOptional(),
|
|
32
|
+
IsArray(),
|
|
33
|
+
IsString({ each: true }),
|
|
34
|
+
__metadata("design:type", Array)
|
|
35
|
+
], CreateConsolidatedInvoiceDto.prototype, "excludedIds", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
ValidateIf((o) => !!o.selectAll),
|
|
38
|
+
ValidateNested(),
|
|
39
|
+
Type(() => DutiesQueryDTO),
|
|
40
|
+
__metadata("design:type", DutiesQueryDTO)
|
|
41
|
+
], CreateConsolidatedInvoiceDto.prototype, "filters", void 0);
|
|
22
42
|
__decorate([
|
|
23
43
|
IsOptional(),
|
|
24
44
|
IsString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.consolidated.invoice.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,
|
|
1
|
+
{"version":3,"file":"create.consolidated.invoice.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,4BAA4B;IA2DxC,YAAY,GAA2C;QACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA5DA;IADC,MAAM,EAAE;;+DACS;AAGlB;IADC,MAAM,EAAE;;qEACe;AAMxB;IAJC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/B,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gEACJ;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;+DACQ;AAKpB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;iEACF;AAKvB;IAHC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,cAAc,EAAE;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;8BACjB,cAAc;6DAAC;AAIzB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACS;AAIpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oEACY;AAOvB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;sEACiB;AAI1B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;0EACkB;AAI7B;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;6DACO;AAIhB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;2DACM;AAKf;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;6DACP"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
import { DutiesQueryDTO } from './duties.query.dto';
|
|
1
2
|
export declare class CreateDispatchDto {
|
|
2
3
|
requestIds: string[];
|
|
4
|
+
selectAll?: boolean;
|
|
5
|
+
excludedIds?: string[];
|
|
6
|
+
filters?: DutiesQueryDTO;
|
|
3
7
|
garagePlaceId?: string;
|
|
4
8
|
dispatchDate?: string;
|
|
5
9
|
contextId: string;
|
|
@@ -1,16 +1,36 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ArrayMinSize, IsArray, IsDateString, IsOptional, IsUUID, } from 'class-validator';
|
|
2
|
+
import { ArrayMinSize, IsArray, IsBoolean, IsDateString, IsOptional, IsString, IsUUID, ValidateIf, ValidateNested, } from 'class-validator';
|
|
3
|
+
import { Type } from 'class-transformer';
|
|
4
|
+
import { DutiesQueryDTO } from './duties.query.dto';
|
|
3
5
|
export class CreateDispatchDto {
|
|
4
6
|
constructor(obj) {
|
|
5
7
|
Object.assign(this, obj);
|
|
6
8
|
}
|
|
7
9
|
}
|
|
8
10
|
__decorate([
|
|
11
|
+
ValidateIf((o) => !o.selectAll),
|
|
9
12
|
IsArray(),
|
|
10
13
|
ArrayMinSize(1),
|
|
11
14
|
IsUUID('4', { each: true }),
|
|
12
15
|
__metadata("design:type", Array)
|
|
13
16
|
], CreateDispatchDto.prototype, "requestIds", void 0);
|
|
17
|
+
__decorate([
|
|
18
|
+
IsOptional(),
|
|
19
|
+
IsBoolean(),
|
|
20
|
+
__metadata("design:type", Boolean)
|
|
21
|
+
], CreateDispatchDto.prototype, "selectAll", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
IsOptional(),
|
|
24
|
+
IsArray(),
|
|
25
|
+
IsString({ each: true }),
|
|
26
|
+
__metadata("design:type", Array)
|
|
27
|
+
], CreateDispatchDto.prototype, "excludedIds", void 0);
|
|
28
|
+
__decorate([
|
|
29
|
+
ValidateIf((o) => !!o.selectAll),
|
|
30
|
+
ValidateNested(),
|
|
31
|
+
Type(() => DutiesQueryDTO),
|
|
32
|
+
__metadata("design:type", DutiesQueryDTO)
|
|
33
|
+
], CreateDispatchDto.prototype, "filters", void 0);
|
|
14
34
|
__decorate([
|
|
15
35
|
IsUUID(),
|
|
16
36
|
__metadata("design:type", String)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.dispatch.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.dispatch.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"create.dispatch.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.dispatch.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,iBAAiB;IAkC7B,YAAY,GAAgC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAhCA;IAJC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/B,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;qDACP;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;oDACQ;AAKpB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;sDACF;AAKvB;IAHC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,cAAc,EAAE;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;8BACjB,cAAc;kDAAC;AAMzB;IADC,MAAM,EAAE;;wDACc;AAIvB;IAFC,UAAU,EAAE;IACZ,YAAY,EAAE;;uDACO;AAGtB;IADC,MAAM,CAAC,GAAG,CAAC;;oDACM"}
|
|
@@ -25,5 +25,16 @@ export declare class UpdateSafetyAndComplianceConfigDTO {
|
|
|
25
25
|
* to disable overrides.
|
|
26
26
|
*/
|
|
27
27
|
complianceMaxGraceDays?: number;
|
|
28
|
+
/**
|
|
29
|
+
* AD-3140 §3.4 — only vehicles allocated within this many days are swept
|
|
30
|
+
* against ZoopOne. A cost control: every hit is billable across a 5k+
|
|
31
|
+
* fleet.
|
|
32
|
+
*
|
|
33
|
+
* Bounded at 730. Beyond two years the filter stops filtering anything and
|
|
34
|
+
* the setting reads as enabled while doing nothing, which is worse than
|
|
35
|
+
* having no setting. 0 is meaningful and means "sweep nothing" — scheduled
|
|
36
|
+
* verification off, manual re-hits only.
|
|
37
|
+
*/
|
|
38
|
+
complianceUtilisationWindowDays?: number;
|
|
28
39
|
constructor(obj?: Partial<UpdateSafetyAndComplianceConfigDTO>);
|
|
29
40
|
}
|
|
@@ -62,4 +62,11 @@ __decorate([
|
|
|
62
62
|
Max(90),
|
|
63
63
|
__metadata("design:type", Number)
|
|
64
64
|
], UpdateSafetyAndComplianceConfigDTO.prototype, "complianceMaxGraceDays", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
IsOptional(),
|
|
67
|
+
IsInt(),
|
|
68
|
+
Min(0),
|
|
69
|
+
Max(730),
|
|
70
|
+
__metadata("design:type", Number)
|
|
71
|
+
], UpdateSafetyAndComplianceConfigDTO.prototype, "complianceUtilisationWindowDays", void 0);
|
|
65
72
|
//# sourceMappingURL=update.safety.and.compliance.config.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.safety.and.compliance.config.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,GACH,MAAM,iBAAiB,CAAC;AAGzB,MAAM,OAAO,iBAAiB;CAwB7B;AAtBA;IADC,MAAM,CAAC,iBAAiB,CAAC;;kEACiB;AAG3C;IADC,MAAM,CAAC,iBAAiB,CAAC;;8CACH;AAGvB;IADC,MAAM,CAAC,iBAAiB,CAAC;;sDACK;AAG/B;IADC,MAAM,CAAC,iBAAiB,CAAC;;yDACQ;AAGlC;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;+DACc;AAGxC;IADC,MAAM,CAAC,iBAAiB,CAAC;;iDACA;AAG3B,MAAM,OAAO,kCAAkC;
|
|
1
|
+
{"version":3,"file":"update.safety.and.compliance.config.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,GACH,MAAM,iBAAiB,CAAC;AAGzB,MAAM,OAAO,iBAAiB;CAwB7B;AAtBA;IADC,MAAM,CAAC,iBAAiB,CAAC;;kEACiB;AAG3C;IADC,MAAM,CAAC,iBAAiB,CAAC;;8CACH;AAGvB;IADC,MAAM,CAAC,iBAAiB,CAAC;;sDACK;AAG/B;IADC,MAAM,CAAC,iBAAiB,CAAC;;yDACQ;AAGlC;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;+DACc;AAGxC;IADC,MAAM,CAAC,iBAAiB,CAAC;;iDACA;AAG3B,MAAM,OAAO,kCAAkC;IA6C9C,YAAY,GAAiD;QAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA9CA;IADC,MAAM,EAAE;;qEACS;AAGlB;IADC,QAAQ,EAAE;;4EACgD;AAW3D;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;uFAC4B;AAWrC;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,EAAE,CAAC;;kFACwB;AAgBhC;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;2FACgC"}
|
|
@@ -22,6 +22,14 @@
|
|
|
22
22
|
* "no data" stays distinguishable from "expired" all the way to the block
|
|
23
23
|
* decision.
|
|
24
24
|
*/
|
|
25
|
+
/**
|
|
26
|
+
* True when a Zoop value states the levy is paid for the life of the vehicle.
|
|
27
|
+
*
|
|
28
|
+
* Callers must treat this as VALID-forever, not as absent. `parseZoopDate`
|
|
29
|
+
* returns null for these — correctly, since there is no date — so this is the
|
|
30
|
+
* only thing that distinguishes them from a genuinely missing record.
|
|
31
|
+
*/
|
|
32
|
+
export declare const isZoopLifetimeValue: (raw: unknown) => boolean;
|
|
25
33
|
/**
|
|
26
34
|
* Normalises a raw Zoop scalar to a string, or null when it carries no data.
|
|
27
35
|
*
|
|
@@ -37,6 +37,44 @@ const NO_DATA_TOKENS = new Set([
|
|
|
37
37
|
'--',
|
|
38
38
|
'0000-00-00',
|
|
39
39
|
]);
|
|
40
|
+
/**
|
|
41
|
+
* Values Zoop uses to mean "this levy has no expiry — it was paid once, for
|
|
42
|
+
* the life of the vehicle".
|
|
43
|
+
*
|
|
44
|
+
* Seen live in `rc_tax_upto` as 'LTT' (Life Time Tax) on an ordinary private
|
|
45
|
+
* car. This is the OPPOSITE of no-data and must never be confused with it:
|
|
46
|
+
* 'NA' means the RTO has no record, 'LTT' means the RTO positively states
|
|
47
|
+
* there is nothing further to pay and no date to renew by.
|
|
48
|
+
*
|
|
49
|
+
* The distinction became load-bearing when a missing MANDATORY compliance
|
|
50
|
+
* started blocking allocation (AD-3140, QA round 2 finding G). Parsing 'LTT'
|
|
51
|
+
* to null makes Road Tax read as No Data, so any context configuring Road Tax
|
|
52
|
+
* as mandatory would permanently ground every lifetime-tax vehicle — most of a
|
|
53
|
+
* private fleet — with no way out, because the RTO will never return a date
|
|
54
|
+
* for it however many times the vehicle is re-verified.
|
|
55
|
+
*/
|
|
56
|
+
const LIFETIME_TOKENS = new Set([
|
|
57
|
+
'ltt',
|
|
58
|
+
'ott',
|
|
59
|
+
'lifetime',
|
|
60
|
+
'life time',
|
|
61
|
+
'life time tax',
|
|
62
|
+
'lifetime tax',
|
|
63
|
+
'one time tax',
|
|
64
|
+
]);
|
|
65
|
+
/**
|
|
66
|
+
* True when a Zoop value states the levy is paid for the life of the vehicle.
|
|
67
|
+
*
|
|
68
|
+
* Callers must treat this as VALID-forever, not as absent. `parseZoopDate`
|
|
69
|
+
* returns null for these — correctly, since there is no date — so this is the
|
|
70
|
+
* only thing that distinguishes them from a genuinely missing record.
|
|
71
|
+
*/
|
|
72
|
+
export const isZoopLifetimeValue = (raw) => {
|
|
73
|
+
const s = parseZoopValue(raw);
|
|
74
|
+
if (!s)
|
|
75
|
+
return false;
|
|
76
|
+
return LIFETIME_TOKENS.has(s.trim().toLowerCase().replace(/\s+/g, ' '));
|
|
77
|
+
};
|
|
40
78
|
const MONTHS = {
|
|
41
79
|
jan: 0,
|
|
42
80
|
feb: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoop.date.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/date-utils/src/zoop.date.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zoop.date.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/date-utils/src/zoop.date.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,15 @@ export declare enum ComplianceStanding {
|
|
|
66
66
|
* sets the default at 30 days).
|
|
67
67
|
*/
|
|
68
68
|
export declare const DEFAULT_COMPLIANCE_WARNING_WINDOW_DAYS = 30;
|
|
69
|
+
/**
|
|
70
|
+
* AD-3140 §3.4 — default utilisation window for the scheduled ZoopOne sweep.
|
|
71
|
+
*
|
|
72
|
+
* 90 days: long enough that a seasonally idle vehicle is still refreshed before
|
|
73
|
+
* anyone tries to deploy it, short enough to keep a 5k+ fleet's provider spend
|
|
74
|
+
* bounded. Overridable per context via
|
|
75
|
+
* ConfigurationField.ComplianceUtilisationWindowDays.
|
|
76
|
+
*/
|
|
77
|
+
export declare const DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS = 90;
|
|
69
78
|
/** Every compliance type, in the order AD-3140 §2 lists them. */
|
|
70
79
|
export declare const VEHICLE_COMPLIANCE_KEYS: VehicleComplianceKey[];
|
|
71
80
|
/**
|
|
@@ -70,6 +70,15 @@ export var ComplianceStanding;
|
|
|
70
70
|
* sets the default at 30 days).
|
|
71
71
|
*/
|
|
72
72
|
export const DEFAULT_COMPLIANCE_WARNING_WINDOW_DAYS = 30;
|
|
73
|
+
/**
|
|
74
|
+
* AD-3140 §3.4 — default utilisation window for the scheduled ZoopOne sweep.
|
|
75
|
+
*
|
|
76
|
+
* 90 days: long enough that a seasonally idle vehicle is still refreshed before
|
|
77
|
+
* anyone tries to deploy it, short enough to keep a 5k+ fleet's provider spend
|
|
78
|
+
* bounded. Overridable per context via
|
|
79
|
+
* ConfigurationField.ComplianceUtilisationWindowDays.
|
|
80
|
+
*/
|
|
81
|
+
export const DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS = 90;
|
|
73
82
|
/** Every compliance type, in the order AD-3140 §2 lists them. */
|
|
74
83
|
export const VEHICLE_COMPLIANCE_KEYS = [
|
|
75
84
|
VehicleComplianceKey.RegistrationCertificate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicle.compliance.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/vehicle.compliance.enum.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vehicle.compliance.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/vehicle.compliance.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAN,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC/B,2EAAmD,CAAA;IACnD,mCAAW,CAAA;IACX,mDAA2B,CAAA;IAC3B,yDAAiC,CAAA;IACjC,2CAAmB,CAAA;IACnB,2CAAmB,CAAA;IACnB,qEAA6C,CAAA;IAC7C,yCAAiB,CAAA;AAClB,CAAC,EATW,oBAAoB,KAApB,oBAAoB,QAS/B;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,+BAAW,CAAA;IACX,kDAA8B,CAAA;AAC/B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,wEAAwE;AACxE,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;IACjB,qDAA8B,CAAA;AAC/B,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC7B,qCAAe,CAAA;IACf,2CAAqB,CAAA;IACrB,yCAAmB,CAAA;IACnB,wCAAkB,CAAA;IAClB,sDAAgC,CAAA;AACjC,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,EAAE,CAAC;AAE7D,iEAAiE;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,oBAAoB,CAAC,uBAAuB;IAC5C,oBAAoB,CAAC,GAAG;IACxB,oBAAoB,CAAC,WAAW;IAChC,oBAAoB,CAAC,cAAc;IACnC,oBAAoB,CAAC,OAAO;IAC5B,oBAAoB,CAAC,OAAO;IAC5B,oBAAoB,CAAC,oBAAoB;IACzC,oBAAoB,CAAC,MAAM;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAyC;IAC9E,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,0BAA0B;IAC1E,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,8BAA8B;IAC1D,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,cAAc;IAClD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,iBAAiB;IACxD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,UAAU;IAC1C,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,SAAS;IACzC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,uBAAuB;IACpE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,SAAS;CACxC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC3C;IACC,UAAU,EAAE,oBAAoB,CAAC,OAAO;IACxC,sBAAsB,EAAE,oBAAoB,CAAC,uBAAuB;IACpE,8BAA8B,EAAE,oBAAoB,CAAC,uBAAuB;IAC5E,yBAAyB,EAAE,oBAAoB,CAAC,GAAG;IACnD,GAAG,EAAE,oBAAoB,CAAC,GAAG;IAC7B,WAAW,EAAE,oBAAoB,CAAC,oBAAoB;IACtD,QAAQ,EAAE,oBAAoB,CAAC,MAAM;CACrC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,IAAoB,EACU,EAAE;IAChC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC3C,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;YACjE,OAAO,GAAG,CAAC;QACZ,CAAC;IACF,CAAC;IACD,OAAO,+BAA+B,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAEpC;IACH,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,gBAAgB;IAChE,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,qBAAqB;IACjD,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAuB;IAC3D,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,6BAA6B;IACpE,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa;IAC7C,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa;IAC7C,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,uBAAuB;CACpE,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,oBAAoB,CAAC,MAAM;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IAClE,oBAAoB,CAAC,WAAW;IAChC,oBAAoB,CAAC,cAAc;IACnC,oBAAoB,CAAC,MAAM;CAC3B,CAAC"}
|
|
@@ -61,6 +61,20 @@ export declare enum ConfigurationField {
|
|
|
61
61
|
* disables the override entirely, which is the safe default.
|
|
62
62
|
*/
|
|
63
63
|
ComplianceMaxGraceDays = "cmplMaxGraceDays",
|
|
64
|
+
/**
|
|
65
|
+
* AD-3140 §3.4 — only vehicles allocated to a booking within this many days
|
|
66
|
+
* are re-verified against ZoopOne by the scheduled sweep.
|
|
67
|
+
*
|
|
68
|
+
* A cost control, not a correctness one: every provider hit is billable and
|
|
69
|
+
* the fleet is 5k+ vehicles, so a car nobody has dispatched in months is
|
|
70
|
+
* not worth re-asking about — it will be verified on demand the moment
|
|
71
|
+
* someone tries to deploy it, and the manual re-hit covers the rest.
|
|
72
|
+
*
|
|
73
|
+
* Null falls back to DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS. Zero is a
|
|
74
|
+
* meaningful value and means "sweep nothing" — the scheduled hit is off and
|
|
75
|
+
* only manual re-hits happen.
|
|
76
|
+
*/
|
|
77
|
+
ComplianceUtilisationWindowDays = "cmplUtilDays",
|
|
64
78
|
MarkTripAsCompletedOnPassengerDeboardingCorporate = "mrkCmpltdOnDbordCrprt",
|
|
65
79
|
MarkTripAsCompletedOnPassengerDeboardingNonCorporate = "mrkCmpltdOnDbordNnCrprt",
|
|
66
80
|
DriverSACCode = "driverSACCode",
|
|
@@ -193,6 +207,7 @@ export interface IConfigurations extends TypedModel {
|
|
|
193
207
|
[ConfigurationField.safetyAndCompliance]: Record<OwnershipType, ISafetyAndCompliance>;
|
|
194
208
|
[ConfigurationField.ComplianceWarningWindowDays]: number | null;
|
|
195
209
|
[ConfigurationField.ComplianceMaxGraceDays]: number | null;
|
|
210
|
+
[ConfigurationField.ComplianceUtilisationWindowDays]: number | null;
|
|
196
211
|
[ConfigurationField.MarkTripAsCompletedOnPassengerDeboardingCorporate]: boolean;
|
|
197
212
|
[ConfigurationField.MarkTripAsCompletedOnPassengerDeboardingNonCorporate]: boolean;
|
|
198
213
|
[ConfigurationField.DriverSACCode]: string;
|
|
@@ -52,6 +52,20 @@ export var ConfigurationField;
|
|
|
52
52
|
* disables the override entirely, which is the safe default.
|
|
53
53
|
*/
|
|
54
54
|
ConfigurationField["ComplianceMaxGraceDays"] = "cmplMaxGraceDays";
|
|
55
|
+
/**
|
|
56
|
+
* AD-3140 §3.4 — only vehicles allocated to a booking within this many days
|
|
57
|
+
* are re-verified against ZoopOne by the scheduled sweep.
|
|
58
|
+
*
|
|
59
|
+
* A cost control, not a correctness one: every provider hit is billable and
|
|
60
|
+
* the fleet is 5k+ vehicles, so a car nobody has dispatched in months is
|
|
61
|
+
* not worth re-asking about — it will be verified on demand the moment
|
|
62
|
+
* someone tries to deploy it, and the manual re-hit covers the rest.
|
|
63
|
+
*
|
|
64
|
+
* Null falls back to DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS. Zero is a
|
|
65
|
+
* meaningful value and means "sweep nothing" — the scheduled hit is off and
|
|
66
|
+
* only manual re-hits happen.
|
|
67
|
+
*/
|
|
68
|
+
ConfigurationField["ComplianceUtilisationWindowDays"] = "cmplUtilDays";
|
|
55
69
|
ConfigurationField["MarkTripAsCompletedOnPassengerDeboardingCorporate"] = "mrkCmpltdOnDbordCrprt";
|
|
56
70
|
ConfigurationField["MarkTripAsCompletedOnPassengerDeboardingNonCorporate"] = "mrkCmpltdOnDbordNnCrprt";
|
|
57
71
|
ConfigurationField["DriverSACCode"] = "driverSACCode";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurations.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/configurations.model.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"configurations.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/configurations.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,16 @@ import { VehicleComplianceKey } from '@autologix/shared/enums';
|
|
|
3
3
|
export interface RcComplianceMapping {
|
|
4
4
|
expiries: Partial<Record<VehicleComplianceKey, Date | null>>;
|
|
5
5
|
numbers: Partial<Record<VehicleComplianceKey, string | null>>;
|
|
6
|
+
/**
|
|
7
|
+
* Compliances the provider states are paid for the life of the vehicle and
|
|
8
|
+
* so have no expiry — `rc_tax_upto: 'LTT'` on a private car.
|
|
9
|
+
*
|
|
10
|
+
* Reported separately from `expiries` because there is no date to report,
|
|
11
|
+
* and separately from "no data" because it is the opposite claim: the RTO
|
|
12
|
+
* is telling us there is nothing left to renew. A caller that conflates the
|
|
13
|
+
* two blocks a vehicle that can never be unblocked.
|
|
14
|
+
*/
|
|
15
|
+
lifetime: Partial<Record<VehicleComplianceKey, boolean>>;
|
|
6
16
|
/** From rc_commercial_status. Null when the provider omits it. */
|
|
7
17
|
isCommercial: boolean | null;
|
|
8
18
|
/** e.g. 'Contract Carriage Permit [L TAXI]' — which permit is actually held. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseZoopDate, parseZoopFlag, parseZoopValue, } from '@autologix/shared/date-utils';
|
|
1
|
+
import { isZoopLifetimeValue, parseZoopDate, parseZoopFlag, parseZoopValue, } from '@autologix/shared/date-utils';
|
|
2
2
|
import { VehicleComplianceKey } from '@autologix/shared/enums';
|
|
3
3
|
/**
|
|
4
4
|
* Maps an RC-advance result to compliance records (AD-3140 §5).
|
|
@@ -44,6 +44,12 @@ export const mapComplianceFromRc = (raw) => {
|
|
|
44
44
|
// Form 42: no field in the payload. Left absent rather than
|
|
45
45
|
// null-mapped so the distinction stays visible here.
|
|
46
46
|
},
|
|
47
|
+
lifetime: {
|
|
48
|
+
// Road tax is the only levy the payload expresses this way. Kept as
|
|
49
|
+
// a map rather than a boolean so a provider that starts returning
|
|
50
|
+
// e.g. a lifetime permit needs no shape change here.
|
|
51
|
+
[VehicleComplianceKey.RoadTax]: isZoopLifetimeValue(r?.rc_tax_upto),
|
|
52
|
+
},
|
|
47
53
|
numbers: {
|
|
48
54
|
[VehicleComplianceKey.PUC]: parseZoopValue(r?.rc_pucc_no),
|
|
49
55
|
[VehicleComplianceKey.StatePermit]: parseZoopValue(r?.rc_permit_number),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.compliance.from.rc.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/map.compliance.from.rc.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,aAAa,EACb,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"map.compliance.from.rc.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/map.compliance.from.rc.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAgC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAuB,EAAE;IACpE,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;IAC7B,OAAO;QACN,QAAQ,EAAE;YACT,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAC5D,CAAC,EAAE,cAAc,IAAI,CAAC,EAAE,WAAW,CACnC;YACD,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,mBAAmB,CAAC;YACjE,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAChD,CAAC,EAAE,qBAAqB,IAAI,CAAC,EAAE,oBAAoB,CACnD;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,aAAa,CACnD,CAAC,EAAE,2BAA2B,CAC9B;YACD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;YAC7D,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAC5C,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,YAAY,CACjC;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,aAAa,CACzD,CAAC,EAAE,SAAS,EAAE,WAAW,IAAI,CAAC,EAAE,cAAc,CAC9C;YACD,4DAA4D;YAC5D,qDAAqD;SACrD;QACD,QAAQ,EAAE;YACT,oEAAoE;YACpE,kEAAkE;YAClE,qDAAqD;YACrD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,WAAW,CAAC;SACnE;QACD,OAAO,EAAE;YACR,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;YACzD,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,cAAc,CACjD,CAAC,EAAE,gBAAgB,CACnB;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,cAAc,CACpD,CAAC,EAAE,sBAAsB,CACzB;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAC1D,CAAC,EAAE,SAAS,EAAE,aAAa,CAC3B;SACD;QACD,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC;QACpD,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC;QAC7C,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;QAC7C,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;QAChC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC;QAClC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC;QACvC,aAAa,EAAE;YACd,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACrD,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,uBAAuB,CAAC;SACzD;KACD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,2 +1,20 @@
|
|
|
1
1
|
import { IPassenger, IRequest } from '@autologix/shared/models';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the name to display for a passenger — the `{{user_name}}` token in
|
|
4
|
+
* every alert template, the calendar invite title, the booking report column.
|
|
5
|
+
*
|
|
6
|
+
* `Passenger.psngrName` cannot be trusted on its own: the signup and
|
|
7
|
+
* context-lookup paths store only the first name in it while writing the full
|
|
8
|
+
* name into `firstName`/`lastName`, and a later profile edit never re-syncs it.
|
|
9
|
+
* A booking whose row had drifted that way rendered the full name for the one
|
|
10
|
+
* recipient resolved through the booking communications (that path composes
|
|
11
|
+
* `firstName + lastName`) and the first name alone for everyone else.
|
|
12
|
+
*
|
|
13
|
+
* So the composed `firstName + lastName` is used in preference to `psngrName`,
|
|
14
|
+
* but only when it contributes a name part `psngrName` is missing. That keeps
|
|
15
|
+
* the output identical for every row where `psngrName` is already complete —
|
|
16
|
+
* including the ones whose `lastName` merely repeats a word the stored name
|
|
17
|
+
* already has — and only repairs the genuinely truncated ones. The names
|
|
18
|
+
* carried on the request are used when the passenger row yields nothing.
|
|
19
|
+
*/
|
|
2
20
|
export declare function resolvePassengerDisplayName(passenger: IPassenger | null | undefined, request: IRequest | null | undefined): string;
|
|
@@ -2,20 +2,47 @@ import { PassengerField, RequestCommunicationField, RequestField, RequestPasseng
|
|
|
2
2
|
function isValidName(value) {
|
|
3
3
|
return !!value && value !== 'undefined' && value !== 'null';
|
|
4
4
|
}
|
|
5
|
+
/** Trimmed value, or '' for anything the caller must not display. */
|
|
6
|
+
function cleanName(value) {
|
|
7
|
+
return isValidName(value) ? value.trim() : '';
|
|
8
|
+
}
|
|
9
|
+
/** Lower-cased name parts — "Ravi Kumar" → ['ravi', 'kumar']. */
|
|
10
|
+
function nameParts(value) {
|
|
11
|
+
return value ? value.toLowerCase().split(/\s+/).filter(Boolean) : [];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the name to display for a passenger — the `{{user_name}}` token in
|
|
15
|
+
* every alert template, the calendar invite title, the booking report column.
|
|
16
|
+
*
|
|
17
|
+
* `Passenger.psngrName` cannot be trusted on its own: the signup and
|
|
18
|
+
* context-lookup paths store only the first name in it while writing the full
|
|
19
|
+
* name into `firstName`/`lastName`, and a later profile edit never re-syncs it.
|
|
20
|
+
* A booking whose row had drifted that way rendered the full name for the one
|
|
21
|
+
* recipient resolved through the booking communications (that path composes
|
|
22
|
+
* `firstName + lastName`) and the first name alone for everyone else.
|
|
23
|
+
*
|
|
24
|
+
* So the composed `firstName + lastName` is used in preference to `psngrName`,
|
|
25
|
+
* but only when it contributes a name part `psngrName` is missing. That keeps
|
|
26
|
+
* the output identical for every row where `psngrName` is already complete —
|
|
27
|
+
* including the ones whose `lastName` merely repeats a word the stored name
|
|
28
|
+
* already has — and only repairs the genuinely truncated ones. The names
|
|
29
|
+
* carried on the request are used when the passenger row yields nothing.
|
|
30
|
+
*/
|
|
5
31
|
export function resolvePassengerDisplayName(passenger, request) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
32
|
+
const storedName = cleanName(passenger?.[PassengerField.PassengerName]);
|
|
33
|
+
const composedName = [
|
|
34
|
+
cleanName(passenger?.[PassengerField.FirstName]),
|
|
35
|
+
cleanName(passenger?.[PassengerField.LastName]),
|
|
36
|
+
]
|
|
37
|
+
.filter(Boolean)
|
|
38
|
+
.join(' ');
|
|
39
|
+
const storedParts = nameParts(storedName);
|
|
40
|
+
const composedAddsAName = nameParts(composedName).some((part) => !storedParts.includes(part));
|
|
41
|
+
const passengerName = composedName && composedAddsAName ? composedName : storedName;
|
|
42
|
+
if (passengerName) {
|
|
43
|
+
return passengerName;
|
|
12
44
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(isValidName(commName) ? commName.split(' ')[0] : '');
|
|
16
|
-
const firstName = isValidName(firstNameRaw) ? firstNameRaw : '';
|
|
17
|
-
const lastNameRaw = passenger?.[PassengerField.LastName] ?? '';
|
|
18
|
-
const lastName = isValidName(lastNameRaw) ? lastNameRaw : '';
|
|
19
|
-
return [firstName, lastName].filter(Boolean).join(' ');
|
|
45
|
+
return (cleanName(request?.[RequestField.PassengerDetails]?.[0]?.[RequestPassengerField.PassengerName]) ||
|
|
46
|
+
cleanName(request?.[RequestField.Communications]?.[0]?.[RequestCommunicationField.PassengerName]));
|
|
20
47
|
}
|
|
21
48
|
//# sourceMappingURL=resolve.passenger.display.name.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.passenger.display.name.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/resolve.passenger.display.name.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,WAAW,CAAC,KAAgC;IACpD,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;AAC7D,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"resolve.passenger.display.name.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/resolve.passenger.display.name.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,WAAW,CAAC,KAAgC;IACpD,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;AAC7D,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,KAAgC;IAClD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,iEAAiE;AACjE,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,2BAA2B,CAC1C,SAAwC,EACxC,OAAoC;IAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG;QACpB,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC/C;SACC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrC,CAAC;IACF,MAAM,aAAa,GAClB,YAAY,IAAI,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IAE/D,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,OAAO,CACN,SAAS,CACR,OAAO,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC9C,qBAAqB,CAAC,aAAa,CACnC,CACD;QACD,SAAS,CACR,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5C,yBAAyB,CAAC,aAAa,CACvC,CACD,CACD,CAAC;AACH,CAAC"}
|