From 734351b3575d8a8782cd954110db97d03ef9c234 Mon Sep 17 00:00:00 2001 From: Stephanos A Date: Sat, 8 Aug 2026 11:13:08 +0300 Subject: [PATCH] Overall report and passenger list updates --- .../src/app/reports/overall/page.tsx | 19 +++++++++++++++--- .../src/app/reports/passengers/page.tsx | 20 +++++++++++++++++++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/apps/edr-passenger-web/backoffice/src/app/reports/overall/page.tsx b/apps/edr-passenger-web/backoffice/src/app/reports/overall/page.tsx index e715fbd71..6ab811622 100644 --- a/apps/edr-passenger-web/backoffice/src/app/reports/overall/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/reports/overall/page.tsx @@ -30,13 +30,26 @@ export default function ReportsPage() { const getDateRange = () => { const end = new Date(); end.setHours(23, 59, 59, 999); - const start = new Date(); + + if (dateRange === 'custom') { + if (startDate && endDate) { + return startDate <= endDate + ? { startDate, endDate } + : { startDate: endDate, endDate: startDate }; + } + const fallbackStart = new Date(end); + fallbackStart.setDate(end.getDate() - 30); + return { + startDate: fallbackStart.toISOString().split('T')[0], + endDate: end.toISOString().split('T')[0], + }; + } + + const start = new Date(end); switch (dateRange) { case '7': start.setDate(end.getDate() - 7); break; case '30': start.setDate(end.getDate() - 30); break; case '90': start.setDate(end.getDate() - 90); break; - default: - if (startDate && endDate) return { startDate, endDate }; } return { startDate: start.toISOString().split('T')[0], diff --git a/apps/edr-passenger-web/backoffice/src/app/reports/passengers/page.tsx b/apps/edr-passenger-web/backoffice/src/app/reports/passengers/page.tsx index 35b6d6cc7..ca6a2c2f8 100644 --- a/apps/edr-passenger-web/backoffice/src/app/reports/passengers/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/reports/passengers/page.tsx @@ -74,6 +74,7 @@ export default function PassengersReportPage() { const [tab, setTab] = useState("occupancy"); const [listSearch, setListSearch] = useState(""); const [filterOrigin, setFilterOrigin] = useState(""); + const [filterDestination, setFilterDestination] = useState(""); const [filterSeatClass, setFilterSeatClass] = useState(""); const [filterCoachNumber, setFilterCoachNumber] = useState(""); @@ -110,17 +111,23 @@ export default function PassengersReportPage() { const originOptions = [ ...new Set(passengerList.map((p) => p.origin).filter(Boolean)), ].sort() as string[]; + const destinationOptions = [ + ...new Set(passengerList.map((p) => p.destination).filter(Boolean)), + ].sort() as string[]; const filteredList = passengerList .filter((p) => { if (filterCoachNumber && p.coachNumber !== filterCoachNumber) return false; if (filterOrigin && p.origin !== filterOrigin) return false; + if (filterDestination && p.destination !== filterDestination) return false; if (filterSeatClass && p.seatClassName !== filterSeatClass) return false; if (listSearch.trim()) { const q = listSearch.toLowerCase(); return ( p.passengerName.toLowerCase().includes(q) || p.bookingRef.toLowerCase().includes(q) || + (p.origin ?? '').toLowerCase().includes(q) || + (p.destination ?? '').toLowerCase().includes(q) || (p.idDocumentNumber ?? "").toLowerCase().includes(q) || (p.passportNumber ?? "").toLowerCase().includes(q) ); @@ -207,6 +214,7 @@ export default function PassengersReportPage() { setListSearch(""); setFilterCoachNumber(""); setFilterOrigin(""); + setFilterDestination(""); setFilterSeatClass(""); }} disabled={loadingSchedules} @@ -499,6 +507,18 @@ export default function PassengersReportPage() { ))} + {passengerList.length > 0 && (