diff --git a/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.html b/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.html index c968abcf2..fe4676e6d 100644 --- a/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.html +++ b/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.html @@ -224,15 +224,9 @@ @if ( supportDetailsFormControl.fromDate.invalid && - supportDetailsFormControl.fromDate.hasError('invalidDate') + supportDetailsFormControl.fromDate.hasError('invalidTaskDate') ) { - Please enter a valid date - } - @if ( - supportDetailsFormControl.fromDate.invalid && - supportDetailsFormControl.fromDate.hasError('invalidTaskDateTime') - ) { - Date/time must fall within the task dates + Date must fall within the task dates } @if ( supportDetailsFormControl.fromDate.invalid && @@ -256,13 +250,13 @@ supportDetailsFormControl.fromTime.invalid && supportDetailsFormControl.fromTime.hasError('required') ) { - From Time is required + From Time is required } @if ( supportDetailsFormControl.fromTime.invalid && - supportDetailsFormControl.fromTime.hasError('invalidTaskDateTime') + supportDetailsFormControl.fromTime.hasError('invalidTaskTime') ) { - Date/time must fall within the task dates + Time must fall within the task dates } @@ -306,15 +300,9 @@ @if ( supportDetailsFormControl.toDate.invalid && - supportDetailsFormControl.toDate.hasError('invalidDate') - ) { - Please enter a valid date - } - @if ( - supportDetailsFormControl.toDate.invalid && - supportDetailsFormControl.toDate.hasError('invalidTaskDateTime') + supportDetailsFormControl.toDate.hasError('invalidTaskDate') ) { - Date/time must fall within the task dates + Date must fall within the task dates } @if ( supportDetailsFormControl.toDate.invalid && @@ -338,13 +326,13 @@ supportDetailsFormControl.toTime.invalid && supportDetailsFormControl.toTime.hasError('required') ) { - To Time Required + To Time is required } @if ( supportDetailsFormControl.toTime.invalid && - supportDetailsFormControl.toTime.hasError('invalidTaskDateTime') + supportDetailsFormControl.toTime.hasError('invalidTaskTime') ) { - Date/time must fall within the task dates + Time must fall within the task dates } diff --git a/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.ts b/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.ts index f385663d7..c9c196e15 100644 --- a/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.ts +++ b/responders/src/UI/embc-responder/src/app/feature-components/wizard/support-components/support-details/support-details.component.ts @@ -152,10 +152,17 @@ export class SupportDetailsComponent implements OnInit, OnDestroy { compareTaskDateTimeValidator({ controlType, other }: { controlType: 'date' | 'time'; other: string }): ValidatorFn { return (control: AbstractControl): ValidationErrors | null => { let isValid = false; + const error = controlType === 'date' ? { invalidTaskDate: true } : { invalidTaskTime: true }; const otherControl = this.supportDetailsForm?.get(other); - const error = { invalidTaskDateTime: true }; - if (!control?.value || !otherControl?.value) { + if ( + control?.value === null || + control?.value === '' || + control?.value === undefined || + otherControl?.value === null || + otherControl?.value === '' || + otherControl?.value === undefined + ) { isValid = true; } else { let controlDate; @@ -168,20 +175,22 @@ export class SupportDetailsComponent implements OnInit, OnDestroy { if (this.evacueeSessionService?.evacFile?.task?.from && this.evacueeSessionService?.evacFile?.task?.to) { const from = moment(this.evacueeSessionService?.evacFile?.task?.from); const to = moment(this.evacueeSessionService?.evacFile?.task?.to); - isValid = moment(controlDate).isBetween(from, to, 'm', '[]'); - } else { - isValid = true; - } + const current = moment(controlDate); + + if (current.isSame(to, 'day') && current.isAfter(to)) { + isValid = false; + } else { + isValid = current.isBetween(from, to, 'm', '[]'); + } + } else isValid = true; } if (!isValid) { - control.setErrors({ ...control.errors, ...error }); - otherControl.setErrors({ ...otherControl.errors, ...error }); - } else { - this.removeError(control, 'invalidTaskDateTime'); - this.removeError(otherControl, 'invalidTaskDateTime'); + otherControl?.setErrors(error); + return error; } + otherControl?.setErrors(null); return null; }; }