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;
};
}