Commit Graph

731 Commits

Author SHA1 Message Date
natib21
17a6d846a4 fix: show multiple vehicles on tracking map for demo
Changed from filtering by ACTIVE status to showing first 10 vehicles.
Ensures at least 2+ car icons visible on map for testing.

Changes:
- trackableVehicles: first 10 vehicles instead of ACTIVE filter
- Map markers: shows all trackable vehicles
- Badge: "Tracked" count instead of "Active"
- Vehicle list: "Tracked Vehicles (count)" instead of "Active Vehicles"

Enables demo of map functionality with actual fleet data.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:28:44 +00:00
natib21
8be47f98a9 feat: show only active vehicles on tracking map
Filter vehicles to status === 'ACTIVE':
- Map markers: only active vehicles displayed
- Vehicle dropdown: only active vehicles selectable
- All vehicles list: renamed to "Active Vehicles (count)"
- All use activeVehicles useMemo computed from vehiclesWithGPS

Inactive vehicles (maintenance, idle, etc.) hidden from tracking view.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:26:35 +00:00
natib21
fea869a19c feat: display vehicle name instead of ID in fuel purchases table
Backend:
- FuelService.getAllFuelPurchases() now loads vehicle relationship
- Uses leftJoinAndSelect to eagerly load Vehicle data
- Returns complete FuelPurchase with nested vehicle object

Frontend:
- Table displays vehicle.registrationNumber (primary)
- Falls back to vehicle.plateNumber if registration unavailable
- Falls back to vehicleId as last resort

Better UX: shows human-readable vehicle info instead of UUID.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:23:54 +00:00
natib21
67ba168a22 fix: convert numeric strings to numbers in fuel calculations
Problem:
- purchasesData from API returns numeric columns as strings
- Calling .toFixed() on strings throws "toFixed is not a function"
- Occurs in stats cards and table rows

Solution:
- Wrap p.liters, p.costPerLiter, p.totalCost in Number() before calculations
- Total Liters stat card: sum + Number(p.liters)
- Total Cost stat card: sum + Number(p.totalCost)
- Avg Price/L stat card: use Number() on both divisor and dividend
- Table rows: Number(purchase.liters).toFixed(2), etc.

Fixes render error in FuelPurchasePage when loading fuel purchases list.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:21:16 +00:00
natib21
ea8198f8a8 style: reduce horizontal padding on fleet dashboards
Add px="lg" (24px) to all Container components:
- FleetDashboard
- FuelPurchasePage
- FuelStatsPage
- MaintenancePage
- FinancialReportsPage
- TrackingPage

Reduces left/right padding from default to 24px,
making better use of horizontal screen space.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:13:58 +00:00
natib21
2e1c720b86 feat: add vehicle tracking/GPS map
New TrackingPage with:
- Interactive map grid showing vehicle locations
- Real-time GPS coordinates (mock data)
- Vehicle speed & heading display
- Vehicle selector dropdown
- Live status indicators
- All vehicles list with speed
- Click-to-track functionality
- Location details sidebar:
  * Latitude/Longitude
  * Current speed
  * Heading direction
  * Last update timestamp
  * View history button

Features:
- Grid-based map (no external dependencies)
- Vehicle markers (color-coded selected/inactive)
- SVG grid background (lat/lng lines)
- Responsive layout (map + sidebar)
- Mantine UI + brand colors
- Mock GPS generation per vehicle

Route: /dashboard/tracking
Sidebar: "Track Vehicles" in Fleet Management

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:08:21 +00:00
natib21
69d1d3073f style: standardize dashboard padding
All fleet pages now use consistent layout:
- Container size: xl
- Vertical padding: xl

Pages updated:
- FleetDashboard: size="xl" py="xl" (unchanged)
- FuelPurchasePage: lg → xl
- FuelStatsPage: lg → xl
- MaintenancePage: Added Container wrapper (xl, xl)
- FinancialReportsPage: Added Container wrapper (xl, xl)

Uniform spacing across all fleet management dashboards.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 13:59:20 +00:00
natib21
5af7f0606b style: apply consistent branding across fleet pages
Import freightBrand theme from @/theme/freight-brand

Color updates:
- Primary buttons: color="edr-green"
- Stat cards: top border #1B9E7A (freightBrand.primary)
- Status badges:
  * Active/Completed: edr-green
  * In Progress: edr-amber-soft
  * Maintenance: edr-amber-soft
  * Overdue: edr-red
  * Unassigned: edr-slate
- Ring progress:
  * Fuel: edr-accent (#F2A516)
  * Maintenance: edr-red
- Progress bars: edr-green, edr-red, edr-amber-soft
- Icons: Use edr-green, edr-blue, edr-accent, edr-red per metric

Pages updated:
- FleetDashboard: All metrics, progress bars, badges
- FuelPurchasePage: Record button
- MaintenancePage: Schedule button, badges
- FinancialReportsPage: Ring progress colors

Consistent palette across all fleet pages.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 13:52:27 +00:00
natib21
6a4a3d464a improve: fleet dashboard UI + add drivers
UI Improvements:
- Better card design with gradient icons
- Added title + description section
- Improved stat card layout (gradient backgrounds)
- Added change percentage badges
- Better color scheme (blue, cyan, orange, red)
- Striped + highlight on hover for tables
- Tab interface for vehicles/drivers

Driver Management:
- Fetch drivers from /drivers API
- Display driver list in table
- Show driver name, license, contact info
- Display assigned/unassigned status
- Count total drivers + assigned drivers in metrics

Metrics now show:
1. Total Vehicles
2. Total Drivers (NEW)
3. Fuel Spend
4. Maintenance Spend
5. Status breakdowns
6. Cost breakdown pie chart

Tabs show:
- Vehicles with registration, plate, model, status
- Drivers with name, license, contact, assignment

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 13:46:58 +00:00
natib21
814db8a17d feat: fleet dashboard page
Shows fleet overview + key metrics:
- Total vehicles, active count
- Total fuel spending
- Total maintenance spending
- Average fuel efficiency
- Fleet status (active/idle/maintenance)
- Operating cost breakdown (fuel vs maintenance pie chart)
- Fleet vehicle list (first 10)

Route: /dashboard/fleet-dashboard
Sidebar: Added to Fleet Management section

Metrics aggregate from:
- /vehicles (fleet size)
- /fuel/stats (fuel spending + efficiency)
- /maintenance/stats (maintenance spending)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 13:38:35 +00:00
natib21
8e0cc7d5ee fix: vehicles data extraction in maintenance + financial pages
Both MaintenancePage and FinancialReportsPage were calling
vehiclesService.getAll() but not extracting res.data property.
Result was vehicles being undefined, causing .map error.

Fixed to match FuelPurchasePage pattern:
  const res = await vehiclesService.getAll()
  return res.data || []

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 13:10:47 +00:00
natib21
373c0356f2 feat: maintenance + financial reports frontend
MaintenancePage:
- Schedule maintenance (PREVENTIVE/CORRECTIVE/INSPECTION/REPAIR)
- View upcoming by vehicle
- Modal form with date, cost, provider, notes

FinancialReportsPage:
- Aggregate fuel + maintenance costs
- Period selector (3/6/12 months)
- Cost breakdown (percentages, ring progress)
- Operating insights (purchases, efficiency, items, avg cost)
- Cost per month calculation

Routes:
- /dashboard/maintenance
- /dashboard/financial-reports

Sidebar:
- "Maintenance" in Fleet Management
- "Financial Reports" in Fleet Management

QUERY_KEYS:
- FUEL, MAINTENANCE, FINANCIAL_REPORTS cache patterns

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 12:41:23 +00:00
natib21
f27f00d480 fix: use vehiclesService and add VEHICLES QUERY_KEYS
- Add VEHICLES to QUERY_KEYS constant
- Use vehiclesService.getAll() instead of direct API call
- Remove duplicate Vehicle type definitions
- Fix TypeScript type references

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 10:15:43 +00:00
natib21
3f81bb77ad feat: add fuel management frontend pages
- FuelPurchasePage: Record fuel purchases, calculate total costs
- FuelStatsPage: View fuel consumption stats, efficiency metrics
- Routes: /dashboard/fuel-purchases and /dashboard/fuel-stats
- Sidebar menu items in Fleet Management section

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 10:11:13 +00:00
natib21
360e61ac15 fix: use byId() instead of detail() in QUERY_KEYS
QUERY_KEYS.FIRST_MILE and QUERY_KEYS.LAST_MILE have byId() not detail().

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 04:04:56 +00:00
natib21
0bc9534172 fix: replace apiClient with api in FirstMilePage
Use correct import 'api' from '@/auth/http' instead of undefined 'apiClient'.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 04:03:29 +00:00
natib21
b142552f17 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/hot_fix 2026-06-30 03:46:26 +00:00
natib21
b1d9045d0b fix: remove isPostPaymentCompleted filter check
Property removed from entities until migration creates column.
Temporarily skip this filter until feature is fully implemented.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 03:15:58 +00:00
yaschalew
1193e2bfa9 fix commit 2026-06-29 18:35:51 +03:00
yaschalew
690753154f fix 2026-06-29 18:29:24 +03:00
natib21
9b11eeb623 fix 2026-06-29 14:54:34 +00:00
natib21
6fa315db0f fix 2026-06-29 14:45:22 +00:00
Nathnael
feae27d0c3 feat: improve the invoices in the portal 2026-06-29 14:26:25 +00:00
Nathnael Wondisha
4cf8e89780 Merge branch 'dev' into freight/feat/invoice 2026-06-29 17:24:29 +03:00
Nathnael
e9f9450b0f fix: types 2026-06-29 14:10:10 +00:00
Nathnael
6d40d185d6 feat: setup the invoice page in the portal 2026-06-29 13:54:14 +00:00
marshal
d22fb6bb22 Merge pull request #338 from Tria-plc/freight_feature/contrat
payemnt
2026-06-29 15:10:57 +03:00
marshal
a83a686f37 payemnt 2026-06-29 15:09:19 +03:00
marshal
1795bb8830 Merge pull request #335 from Tria-plc/freight_feature/contrat
Freight feature/contrat
2026-06-29 15:07:25 +03:00
marshal
211301b7ce Merge branch 'freight_feature/contrat' of github.com:Tria-plc/edr-platform into freight_feature/contrat 2026-06-29 15:06:23 +03:00
marshal
1491db304b payemnt 2026-06-29 15:04:01 +03:00
yaschalew10
db7f0cb601 Merge pull request #334 from Tria-plc/freight/feature/last_mile_invoice
Freight/feature/last mile invoice
2026-06-29 15:03:00 +03:00
natib21
835facc65a fix 2026-06-29 11:12:51 +00:00
Nathnael
c37e8acfdc Merge branch 'dev' into freight/feat/invoice 2026-06-29 10:58:12 +00:00
hagiye
64cab3ecd0 Merge branch 'dev' of github.com:Tria-plc/edr-platform into handover 2026-06-29 13:49:25 +03:00
hagiye
9176df5e4b Marshaling document Receive Export and import handover to customer 2026-06-29 13:48:58 +03:00
marshal
943a986b05 Merge pull request #332 from Tria-plc/freight_feature/contrat
Freight feature/contrat
2026-06-29 13:36:14 +03:00
Marshal
1c170ec790 remove unused import for PackageCheck in step2-service-type.tsx 2026-06-29 10:34:40 +00:00
Marshal
15a19053d9 Merge branch 'freight_feature/contrat' of github.com:Tria-plc/edr-platform into freight_feature/contrat 2026-06-29 10:27:16 +00:00
Marshal
6be461bb2f add profile creation flow with license upload in NewContractPage 2026-06-29 10:25:06 +00:00
marshal
bdca3a1e8d Merge pull request #331 from Tria-plc/freight_feature/contrat
merge conflict
2026-06-29 12:52:50 +03:00
marshal
9fe90c8ef7 merge conflict 2026-06-29 12:50:47 +03:00
marshal
7f63d4bd2b Merge pull request #330 from Tria-plc/freight_feature/contrat
Freight feature/contrat
2026-06-29 12:49:33 +03:00
marshal
1c01c792fc merge conflict 2026-06-29 12:45:40 +03:00
natib21
fc03e27bdc fix 2026-06-29 09:43:31 +00:00
natib21
9f0d16886d fix 2026-06-29 09:33:56 +00:00
marshal
2ad384e63b Merge branch 'freight_feature/contrat' of github.com:Tria-plc/edr-platform into freight_feature/contrat 2026-06-29 12:31:21 +03:00
Marshal
0f7cac2b68 add booking request functionality for GENERAL customs contracts
- Create migration for booking_requests table with necessary fields and indexes.
- Implement BookingRequestRepository for database operations related to booking requests.
- Develop BookingRequestService to handle business logic for submitting, accepting, rejecting, and canceling booking requests.
- Create DTOs for creating booking requests and reviewing them.
- Define BookingRequest entity to map to the booking_requests table.
- Add UI components for managing shipment requests, including detail and list pages.
- Implement OperationDatePicker component for selecting available shipment days.
2026-06-29 09:30:44 +00:00
natib21
31b38311ff fix 2026-06-29 09:30:44 +00:00
natib21
4a7503a667 fix 2026-06-29 09:27:43 +00:00