Skip to content

Commit a4f3c6b

Browse files
authored
Merge pull request #2129 from bcgov/hotfix/ALCS-2546
2546: Pass submitted date to upstream submission methods
2 parents 37618ac + 6dd01c7 commit a4f3c6b

File tree

6 files changed

+38
-52
lines changed

6 files changed

+38
-52
lines changed

services/apps/alcs/src/alcs/notification/notification.controller.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,20 @@ export class NotificationController {
117117
user,
118118
);
119119

120+
const notification = await this.notificationService.getByFileNumber(submission.fileNumber);
121+
120122
const documents = await this.notificationDocumentService.list(fileNumber);
121123
const document = documents.find(
122124
(document) => document.type?.code === DOCUMENT_TYPE.LTSA_LETTER,
123125
);
124126

125127
if (document) {
126-
const emailDidSend =
127-
await this.notificationSubmissionService.sendAndRecordLTSAPackage(
128-
submission,
129-
document,
130-
user,
131-
);
128+
const emailDidSend = await this.notificationSubmissionService.sendAndRecordLTSAPackage(
129+
submission,
130+
document,
131+
user,
132+
notification.dateSubmittedToAlc ?? undefined,
133+
);
132134

133135
if (!emailDidSend) {
134136
throw new BaseServiceException(

services/apps/alcs/src/portal/notification-submission/notification-submission.controller.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,10 @@ export class NotificationSubmissionController {
156156
if (validationResult.noticeOfIntentSubmission) {
157157
const validatedApplicationSubmission = validationResult.noticeOfIntentSubmission;
158158

159-
await this.generatePdf(notificationSubmission, req.user.entity);
160-
161-
await this.notificationSubmissionService.submitToAlcs(validatedApplicationSubmission);
159+
// Ensure PDF and DB record have the same submission date
160+
const dateSubmitted = new Date();
161+
await this.generatePdf(notificationSubmission, req.user.entity, dateSubmitted);
162+
await this.notificationSubmissionService.submitToAlcs(validatedApplicationSubmission, dateSubmitted);
162163

163164
const finalSubmission = await this.notificationSubmissionService.getByUuid(uuid, req.user.entity);
164165

@@ -172,15 +173,15 @@ export class NotificationSubmissionController {
172173
}
173174
}
174175

175-
private async generatePdf(submission: NotificationSubmission, user: User) {
176-
const savedDocument =
177-
await this.generateSrwDocumentService.generateAndAttach(
178-
submission.fileNumber,
179-
user,
180-
);
176+
private async generatePdf(submission: NotificationSubmission, user: User, dateSubmitted: Date) {
177+
const savedDocument = await this.generateSrwDocumentService.generateAndAttach(
178+
submission.fileNumber,
179+
user,
180+
dateSubmitted,
181+
);
181182

182183
if (savedDocument) {
183-
await this.notificationSubmissionService.sendAndRecordLTSAPackage(submission, savedDocument, user);
184+
await this.notificationSubmissionService.sendAndRecordLTSAPackage(submission, savedDocument, user, dateSubmitted);
184185
} else {
185186
throw new BaseServiceException('A document failed to generate', undefined, 'DocumentGenerationError');
186187
}

services/apps/alcs/src/portal/notification-submission/notification-submission.service.spec.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -243,24 +243,18 @@ describe('NotificationSubmissionService', () => {
243243
mockNotificationService.submit.mockRejectedValue(new Error());
244244

245245
await expect(
246-
service.submitToAlcs(
247-
noticeOfIntentSubmission as ValidatedNotificationSubmission,
248-
),
249-
).rejects.toMatchObject(
250-
new BaseServiceException(`Failed to submit notification: ${fileNumber}`),
251-
);
246+
service.submitToAlcs(noticeOfIntentSubmission as ValidatedNotificationSubmission, new Date()),
247+
).rejects.toMatchObject(new BaseServiceException(`Failed to submit notification: ${fileNumber}`));
252248
});
253249

254250
it('should call out to service on submitToAlcs', async () => {
255251
const notification = new Notification({
256252
dateSubmittedToAlc: new Date(),
257253
});
258-
mockStatusService.setStatusDate.mockResolvedValue(
259-
new NotificationSubmissionToSubmissionStatus(),
260-
);
254+
mockStatusService.setStatusDate.mockResolvedValue(new NotificationSubmissionToSubmissionStatus());
261255

262256
mockNotificationService.submit.mockResolvedValue(notification);
263-
await service.submitToAlcs(mockSubmission);
257+
await service.submitToAlcs(mockSubmission, new Date());
264258

265259
expect(mockNotificationService.submit).toBeCalledTimes(1);
266260
expect(mockStatusService.setStatusDate).toHaveBeenCalledTimes(1);

services/apps/alcs/src/portal/notification-submission/notification-submission.service.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -366,14 +366,14 @@ export class NotificationSubmissionService {
366366
};
367367
}
368368

369-
async submitToAlcs(notificationSubmission: ValidatedNotificationSubmission) {
369+
async submitToAlcs(notificationSubmission: ValidatedNotificationSubmission, dateSubmitted: Date) {
370370
try {
371371
const submittedNotification = await this.notificationService.submit({
372372
fileNumber: notificationSubmission.fileNumber,
373373
applicant: notificationSubmission.applicant,
374374
localGovernmentUuid: notificationSubmission.localGovernmentUuid,
375375
typeCode: notificationSubmission.typeCode,
376-
dateSubmittedToAlc: new Date(),
376+
dateSubmittedToAlc: dateSubmitted,
377377
});
378378

379379
await this.notificationSubmissionStatusService.setStatusDate(
@@ -414,8 +414,9 @@ export class NotificationSubmissionService {
414414
submission: NotificationSubmission,
415415
document: NotificationDocument,
416416
user: User,
417+
dateSubmitted?: Date,
417418
): Promise<boolean> {
418-
const templateData = await this.generateSrwEmailData(submission, document);
419+
const templateData = await this.generateSrwEmailData(submission, document, dateSubmitted);
419420

420421
const didSend = await this.emailService.sendEmail({
421422
to: [templateData.to],
@@ -458,6 +459,7 @@ export class NotificationSubmissionService {
458459
private async generateSrwEmailData(
459460
submission: NotificationSubmission,
460461
pdfDocument: NotificationDocument,
462+
dateSubmitted?: Date,
461463
) {
462464
const notification = await this.notificationService.getByFileNumber(
463465
submission.fileNumber,
@@ -468,9 +470,7 @@ export class NotificationSubmissionService {
468470
fileNumber: submission.fileNumber,
469471
contactName: `${submission.contactFirstName} ${submission.contactLastName}`,
470472
status: 'ALC Response Sent',
471-
dateSubmitted: dayjs(notification.dateSubmittedToAlc).format(
472-
'MMMM DD, YYYY',
473-
),
473+
dateSubmitted: dayjs(dateSubmitted).format('MMMM DD, YYYY'),
474474
fileName: pdfDocument.document.fileName,
475475
submittersFileNumber: submission.submittersFileNumber!,
476476
});

services/apps/alcs/src/portal/pdf-generation/generate-srw-document.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ describe('GenerateSrwDocumentService', () => {
9898
name: 'Bruce Wayne',
9999
});
100100

101-
const res = await service.generate('fake', userEntity);
101+
const res = await service.generate('fake', userEntity, new Date());
102102

103103
expect(mockCdogsService.generateDocument).toBeCalledTimes(1);
104104
expect(mockLocalGovernmentService.getByUuid).toBeCalledTimes(1);

services/apps/alcs/src/portal/pdf-generation/generate-srw-document.service.ts

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,14 @@ export class GenerateSrwDocumentService {
3131
private notificationDocumentService: NotificationDocumentService,
3232
private localGovernmentService: LocalGovernmentService,
3333
private notificationParcelService: NotificationParcelService,
34-
private notificationService: NotificationService,
3534
) {}
3635

37-
async generate(fileNumber: string, user: User) {
38-
const submission = await this.notificationSubmissionService.getByFileNumber(
39-
fileNumber,
40-
user,
41-
);
36+
async generate(fileNumber: string, user: User, dateSubmitted: Date) {
37+
const submission = await this.notificationSubmissionService.getByFileNumber(fileNumber, user);
4238

4339
const documents = await this.notificationDocumentService.list(fileNumber);
4440

45-
const payload = await this.preparePdfPayload(submission, documents);
41+
const payload = await this.preparePdfPayload(submission, documents, dateSubmitted);
4642

4743
return await this.documentGenerationService.generateDocument(
4844
`${fileNumber}_SRW_Date_Time`,
@@ -51,8 +47,8 @@ export class GenerateSrwDocumentService {
5147
);
5248
}
5349

54-
async generateAndAttach(fileNumber: string, user: User) {
55-
const reviewRes = await this.generate(fileNumber, user);
50+
async generateAndAttach(fileNumber: string, user: User, dateSubmitted: Date) {
51+
const reviewRes = await this.generate(fileNumber, user, dateSubmitted);
5652

5753
if (reviewRes.status === HttpStatus.OK) {
5854
return await this.notificationDocumentService.attachDocumentAsBuffer({
@@ -76,11 +72,8 @@ export class GenerateSrwDocumentService {
7672
private async preparePdfPayload(
7773
submission: NotificationSubmission,
7874
documents: NotificationDocument[],
75+
dateSubmitted: Date,
7976
) {
80-
const notification = await this.notificationService.getByFileNumber(
81-
submission.fileNumber,
82-
);
83-
8477
const localGovernment = submission.localGovernmentUuid
8578
? await this.localGovernmentService.getByUuid(
8679
submission.localGovernmentUuid,
@@ -116,12 +109,8 @@ export class GenerateSrwDocumentService {
116109
.join(', ');
117110

118111
return {
119-
generatedDateTime: dayjs
120-
.tz(new Date(), 'Canada/Pacific')
121-
.format('MMM DD, YYYY hh:mm:ss Z'),
122-
dateSubmitted: dayjs
123-
.tz(notification.dateSubmittedToAlc, 'Canada/Pacific')
124-
.format('MMMM DD, YYYY'),
112+
generatedDateTime: dayjs.tz(new Date(), 'Canada/Pacific').format('MMM DD, YYYY hh:mm:ss Z'),
113+
dateSubmitted: dayjs.tz(dateSubmitted, 'Canada/Pacific').format('MMMM DD, YYYY'),
125114
fileNumber: submission.fileNumber,
126115
applicant: submission.applicant,
127116
firstName: submission.contactFirstName,

0 commit comments

Comments
 (0)