Commit Graph

534 Commits

Author SHA1 Message Date
natib21
e5fed081fc fix 2026-07-02 14:27:09 +00:00
natib21
7d85f5dc2e fix 2026-07-02 14:18:53 +00:00
natib21
c2c29f0735 fix 2026-07-02 14:14:13 +00:00
natib21
7f6c9c6313 fix 2026-07-02 13:55:08 +00:00
natib21
1869790eab fix 2026-07-02 13:18:34 +00:00
natib21
e429a2cebf fix 2026-07-02 13:15:44 +00:00
natib21
64e346324b fix issue 2026-07-02 13:11:12 +00:00
natib21
58b3805d0b fix 2026-07-02 12:43:03 +00:00
natib21
a0f4de05f8 log full error 2026-07-02 12:37:02 +00:00
natib21
ff7e20d2ee fix 2026-07-02 11:22:35 +00:00
natib21
4519a1d75d fix 2026-07-02 10:33:32 +00:00
yaschalew
10e442deb1 fix 2026-07-02 13:18:49 +03:00
natib21
07abe9b679 fix 2026-07-02 08:51:21 +00:00
yaschalew
54b2114e7f fix issue 2026-07-02 11:28:56 +03:00
yaschalew
8b8a993953 fix conflict 2026-07-02 09:28:02 +03:00
ghost2023
2f79178496 fix: booking invoice issue 2026-07-01 16:11:47 +03:00
ghost2023
174df0b7aa chore: fix script and add seed company 2026-07-01 15:46:25 +03:00
ghost2023
aef868bc40 fix: the invoice status syncing with booking payment window 2026-07-01 15:46:13 +03:00
ghost2023
7e96fa65b9 feat: rm the hardcoded invoice types 2026-07-01 15:10:04 +03:00
ghost2023
fbda15bac8 Merge branch 'dev' into freight/feat/invoice 2026-07-01 14:40:58 +03:00
ghost2023
b7be6d6229 feat: add the seed schedules 2026-07-01 14:37:47 +03:00
ghost2023
abdf459289 feat: add the seed contracts 2026-07-01 14:26:32 +03:00
ghost2023
c88c5ee450 chore: setup script 2026-07-01 12:26:37 +03:00
Nathnael
94982d3c5a feat: setup pdf on the central billing 2026-07-01 06:25:24 +00:00
Nathnael
8ab27a6721 feat: add expiration to invoice 2026-07-01 06:19:07 +00:00
natib21
558f7f38cd feat: add fleet-wide fuel and maintenance stats endpoints
Backend:
FuelService + FuelController:
- Added getFleetFuelStats() aggregating all vehicles
- Route: GET /api/fuel/stats (before :vehicleId route)
- Returns: totalCost, totalLiters, totalPurchases, averagePricePerLiter

MaintenanceService + MaintenanceController:
- Added getFleetMaintenanceStats() aggregating all vehicles
- Route: GET /api/maintenance/stats (before :vehicleId route)
- Returns: totalCost, numberOfMaintenanceItems, averageCostPerMaintenance, costByType

Both endpoints aggregate over past 12 months (customizable via query param).

Enables dashboard to show fleet-wide operating costs.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:32:12 +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
796e63cc59 fix: add missing GET /api/fuel/purchases endpoint
Problem:
- Frontend calls GET /fuel/purchases (all purchases)
- Backend only had GET /fuel/purchases/:vehicleId (specific vehicle)
- Result: 404 when loading fuel purchases list

Solution:
- Added getAllFuelPurchases() to FuelService
- Added GET /fuel/purchases route to FuelController
- Route placed before parameterized route so it gets matched first
- Returns all fuel purchases ordered by date DESC

Endpoints:
- GET /api/fuel/purchases → all purchases
- GET /api/fuel/purchases/:vehicleId → specific vehicle
- POST /api/fuel/purchases → record purchase

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 14:18:26 +00:00
Nathnael
0056dec924 style: clean up the invoice and setup event for warehouse. 2026-06-30 13:28:14 +00:00
Nathnael
fa3138f2ac refactor: migrate the warehouse invoice to use the central one 2026-06-30 12:54:04 +00:00
natib21
f436916c42 feat: complete maintenance tracking backend
Service/Controller/Module:
- scheduleMaintenanceAsync: schedule work
- recordMaintenanceCost: log expenses
- getUpcomingMaintenance: due items
- getVehicleMaintenanceStats: cost aggregation

Endpoints:
- POST /maintenance/schedules
- POST /maintenance/costs
- PATCH /maintenance/schedules/:id
- GET /maintenance/upcoming/:vehicleId
- GET /maintenance/history/:vehicleId
- GET /maintenance/stats/:vehicleId

Migration: idempotent maintenance tables creation

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 12:33:29 +00:00
natib21
e59a77b859 feat: add maintenance tracking module foundation
Entities:
- MaintenanceSchedule: track preventive/corrective maintenance
- MaintenanceCost: record actual maintenance expenses

DTOs:
- CreateMaintenanceScheduleDto: schedule maintenance
- CreateMaintenanceCostDto: log costs
- UpdateMaintenanceScheduleDto: mark complete/adjust cost

Repository:
- getUpcomingMaintenance(): find due maintenance
- getMaintenanceCosts(): historical costs by date
- getTotalMaintenanceCost(): aggregate spending

Also fixed fuel-consumption.entity.ts: totalDistanceKm default 0

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 12:28:00 +00:00
natib21
5d70c3b557 fix 2026-06-30 12:13:48 +00:00
Nathnael
5ad4efd7eb feat: add pdf to the central invoice system 2026-06-30 11:58:28 +00:00
Nathnael
7fa18b8ee7 fix: reference type in payment service 2026-06-30 11:54:43 +00:00
Nathnael
228b840c26 Merge branch 'dev' into freight/feat/invoice 2026-06-30 11:26:32 +00:00
Nathnael
21cf24950d feat: add partial payment to match the warehouse invoice before migration 2026-06-30 10:50:43 +00:00
natib21
7b9cd88712 fix: correct fuel module TypeScript errors
- Use @InjectRepository decorators for proper dependency injection
- Fix BaseRepository initialization with Repository instance
- Remove unnecessary DataSource references
- Add proper type annotations to reduce handlers

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 10:08:56 +00:00
natib21
df6e417a56 feat: add fuel management system backend
- FuelPurchase entity: record fuel purchases with cost tracking
- FuelConsumption entity: monthly aggregation of fuel metrics
- FuelService: record purchases, calculate stats, efficiency
- FuelController: REST API for fuel operations
- FuelModule: integrated into app
- Migration: create fuel_purchases and fuel_consumption tables

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 10:07:13 +00:00
SennayT
3c5f5b5861 fix: add docker cache for pnpm installations 2026-06-30 09:54:59 +00:00
Nathnael Wondisha
fec235c433 Merge pull request #372 from Tria-plc/freight/fix/migrate-undo
fix
2026-06-30 08:39:57 +03:00
ghost2023
c299973bb0 fix 2026-06-30 08:38:27 +03:00
Nathnael Wondisha
b5a2bd537f Merge pull request #370 from Tria-plc/freight/fix/migrate-undo
fix
2026-06-30 08:32:29 +03:00
ghost2023
468ac8b28a fix 2026-06-30 08:31:26 +03:00
hagiye
831ac59a8e Merge branch 'dev' of github.com:Tria-plc/edr-platform into importhandover 2026-06-30 07:20:10 +03:00
hagiye
9f5c22c1ee Goods recieved notes and Booking delivery 2026-06-30 07:19:12 +03:00
natib21
14dde418f7 fix(migrations): check if tables exist before CREATE TABLE
Make invoices migration idempotent - skip table/index creation if they
already exist. Prevents 'relation already exists' errors on redeployment.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 03:55:57 +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
25e91c6d93 fix: comment out isPostPaymentCompleted column decorator
Column doesn't exist in DB yet. Commenting out @Column decorator
prevents TypeORM from trying to select non-existent column.
Fixes 500 QueryFailedError on first-mile/last-mile list endpoints.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 03:33:54 +00:00
natib21
f9ef473cff fix(migrations): check pg_type before CREATE TYPE enum
PostgreSQL doesn't support IF NOT EXISTS on CREATE TYPE AS ENUM.
Query pg_type table to check if enum exists before creating.
Compatible with all PostgreSQL versions.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-30 02:45:37 +00:00