From fea869a19c4d837609294f69535e1a630cf52993 Mon Sep 17 00:00:00 2001 From: natib21 Date: Tue, 30 Jun 2026 14:23:54 +0000 Subject: [PATCH] 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 --- apps/edr-freight-api/src/modules/fuel/fuel.service.ts | 6 +++++- .../backoffice/src/pages/fleet/FuelPurchasePage.tsx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/edr-freight-api/src/modules/fuel/fuel.service.ts b/apps/edr-freight-api/src/modules/fuel/fuel.service.ts index 0bf89a805..77aab5842 100644 --- a/apps/edr-freight-api/src/modules/fuel/fuel.service.ts +++ b/apps/edr-freight-api/src/modules/fuel/fuel.service.ts @@ -31,7 +31,11 @@ export class FuelService { } async getAllFuelPurchases(): Promise { - return this.purchaseRepository.find({ order: { purchaseDate: 'DESC' } }); + return this.purchaseRepository + .createQueryBuilder('purchase') + .leftJoinAndSelect('purchase.vehicle', 'vehicle') + .orderBy('purchase.purchaseDate', 'DESC') + .getMany(); } async getFuelPurchases( diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx index 983da8734..b3c168df3 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/FuelPurchasePage.tsx @@ -199,7 +199,7 @@ export default function FuelPurchasePage() { {(purchasesData as FuelPurchase[])?.map((purchase) => ( - {purchase.vehicleName || purchase.vehicleId} + {(purchase as any).vehicle?.registrationNumber || (purchase as any).vehicle?.plateNumber || purchase.vehicleId} {new Date(purchase.purchaseDate).toLocaleDateString()} {Number(purchase.liters).toFixed(2)} ETB {Number(purchase.costPerLiter).toFixed(2)}