diff --git a/service/app-hub/dashboard/src/app/pages/ticket-system/tickets-search-dialog/tickets-search-dialog.component.ts b/service/app-hub/dashboard/src/app/pages/ticket-system/tickets-search-dialog/tickets-search-dialog.component.ts
index dfd1ce7..edad3a7 100644
--- a/service/app-hub/dashboard/src/app/pages/ticket-system/tickets-search-dialog/tickets-search-dialog.component.ts
+++ b/service/app-hub/dashboard/src/app/pages/ticket-system/tickets-search-dialog/tickets-search-dialog.component.ts
@@ -17,54 +17,51 @@ import {
} from '../../../core/data-access/graphql/generated/generated';
import { TicketViewComponent } from '../ticket-view/ticket-view.component';
import { TicketsService } from '../tickets.service';
+import { format, isAfter } from 'date-fns';
@Component({
- template: `
-
Ticket suchen
-
-
- Einsatznummer oder Patient
-
-
-
-
- @for (ticket of tickets$ | async; track ticket) {
-
-
- {{ ticket.tours.at(0)?.ordinanceType }}
- @if (ticket.tours.at(0)?.category) {
-
- ({{ ticket.tours.at(0)?.category }})
-
- }
-
-
-
- {{ ticket.tours.at(0)?.patientName }}
- {{ ticket.tours.at(0)?.patientSurname }}
-
-
- {{ ticket.tours.length }} Tour{{
- ticket.tours.length > 1 ? 'en' : ''
- }}
-
-
-
- }
+ template: `
+
Ticket suchen
+
+
+ Einsatznummer oder Patient
+
+
+
+
+ @for (ticket of tickets$ | async; track ticket) {
+
+
+
+ {{ ticket.tours.at(0)?.ordinanceType }}
+ @if (ticket.tours.at(0)?.category) {
+
+ ({{ ticket.tours.at(0)?.category }})
+
+ }
+
+
+
+
+
+ {{ ticket.tours.at(0)?.patientName }}
+ {{ ticket.tours.at(0)?.patientSurname }}
+
+
+ {{ getToursLength(ticket) }} Tour{{
+ getToursLength(ticket) > 1 ? 'en' : ''
+ }}
+
+
-
`,
- imports: [
- MatFormFieldModule,
- MatInputModule,
- ReactiveFormsModule,
- AsyncPipe
-],
- changeDetection: ChangeDetectionStrategy.OnPush
+ }
+
+
`,
+ imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, AsyncPipe],
+ changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TicketsSearchDialogComponent {
private ticketsService = inject(TicketsService);
@@ -89,4 +86,22 @@ export class TicketsSearchDialogComponent {
.pipe(tap((result) => result && this.showTicketView(result)))
.subscribe();
}
+
+ getToursLength(ticket: unknown) {
+ return (ticket as Ticket & { tours: Tour[] }).tours.filter(
+ ({ check }) => check === 0
+ ).length;
+ }
+
+ getNextStart(tours: Partial
[]) {
+ const sortedStartDates = [...tours.map(({startDate}) => new Date(startDate))].sort((a, b) => a.getTime() - b.getTime())
+ for(let i = 0; i < sortedStartDates.length; i++) {
+ const currentDate = sortedStartDates.at(i)
+ if(currentDate && isAfter(currentDate, new Date())) {
+ return format(currentDate, 'HH:mm | dd.MM.yy')
+ }
+ }
+ const latestDate = sortedStartDates.at(-1);
+ return latestDate ? format(latestDate, 'HH:mm | dd.MM.yy') : 'No Tours'
+ }
}