Commit Graph

2357 Commits

Author SHA1 Message Date
Stephanos A.
b12df90e59 Merge pull request #712 from Tria-plc/alpha
Currency issue resolution
2026-07-15 19:53:38 +03:00
Stephanos A
8bda06b226 Currency issue resolution 2026-07-15 19:50:32 +03:00
Stephanos A.
d45b4e78d4 Merge pull request #711 from Tria-plc/alpha
Alpha
2026-07-15 19:21:35 +03:00
Stephanos A
4343ead1fe Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 19:18:49 +03:00
Stephanos A
7bbd34f159 Currency issue resolution 2026-07-15 19:18:35 +03:00
Hagernesh
2647776d19 feat(warehouse): stamp actor as display name instead of UUID
Add actorLabel(user) — resolves the authenticated user to a readable name
(name → username → email → id) — and use it for the performed_by audit stamp on
every warehouse action, so the activity log shows a person, not a UUID. The
freight DB has no users table to join, so the name is stamped at write time.
approve-delivery keeps the raw user id (it is an id argument, not the audit
label). Existing rows keep their prior value; this applies going forward.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 15:24:05 +00:00
Hagernesh
2044312d93 feat(warehouse): stamp authenticated user as action actor (performedBy)
Warehouse mutation endpoints now record the JWT-authenticated user as the actor
(user.id) instead of trusting a client-supplied performedBy string, unlocking
per-operator productivity metrics and a trustworthy audit trail. Covers receive,
receive-bulk, reserve, store, ready-for-loading, ready-for-pickup, load-onto-
train, bulk-dispatch, dispatch, deliver, gate-clearance, approve-delivery, the
Djibouti/import auto-unload actions, and fee-invoice generation. The prior
client value is kept only as a fallback for unauthenticated/internal calls.

move/load do not yet carry an actor (their DTOs have no performedBy) — separate
follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:51:21 +00:00
Hagernesh
ac90b04be0 feat(warehouse): P2 dashboard — gate/dock throughput + live auto-refresh
- gateStats(): items cleared through the gate today, average arrival→gate
  turnaround (hours, 30d), and clearances per hour over the last 24h → new
  GateThroughputCard in the dashboard Performance section.
- Live board: every dashboard query (dashboard, ops, throughput, dwell, cycle,
  on-time, zone occupancy, accrual, gate) now auto-refreshes on a 60s interval,
  with a "Live" indicator in the header.

New endpoint GET /warehouse-inventory/gate-stats (guarded). Deferred (need
upstream data): capacity forecast, labour productivity, WebSocket push, yard map.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 14:26:02 +00:00
Hagernesh
fc4aadbc57 feat(warehouse): P1 dashboard analytics — dwell/aging, cycle-time + on-time, live deltas
Adds the operational-performance layer to the warehouse cockpit:

- Dwell time & aging: dwellStats() (avg + 0-3/4-7/8-14/15+ buckets over
  in-warehouse items) → DwellAgingCard histogram.
- Cycle time & on-time: cycleStats() (arrived→ready→loaded→dispatched stage
  averages + dock-to-dispatch) and onTimeDispatchStats() (share of items that
  left before their storage free-days expired, resolved via the fee engine's
  own rule matching) → CycleTimeCard.
- Live tiles: opsStats() now returns receivedYesterday; KpiStrip renders an
  optional ▲/▼ delta, and the ops strip shows received-today vs yesterday.

New endpoints: GET /warehouse-inventory/{dwell-stats,cycle-stats} and
/warehouse-fees/on-time-dispatch (all guarded). New "Performance" section on
WarehouseDashboardPage. On-time reads N/A when there is no sample / no active
storage rule.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 13:55:39 +00:00
marshal
6391ba837a Merge pull request #707 from Tria-plc/freight_feature/usermanagement
changes
2026-07-15 16:30:28 +03:00
Marshal
19c9da28ae changes 2026-07-15 13:29:01 +00:00
Eyob T.
f5423e19b5 Merge pull request #705 from Tria-plc/alpha
Fix seat reservation
2026-07-15 15:34:16 +03:00
Hagernesh
2e22b72e27 feat(warehouse): assemble dashboard cockpit + server-side throughput series
- WarehouseDashboardPage now composes the ops KPI strip, lifecycle cards, flow
  charts, zone-occupancy heatmap and demurrage/accrual exceptions into one
  control-tower view; drop the redundant lifecycle donut.
- New GET /warehouse-inventory/throughput (date_trunc time series) replaces the
  client-side buildTrend that downloaded the entire inventory list to bucket it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 12:27:53 +00:00
Roba Boru
7c9594a581 Fix seat reservation 2026-07-15 15:25:32 +03:00
Roba Boru
6f8dcaaf4a Comment out altenative schedules 2026-07-15 14:58:25 +03:00
SennayT
f9706c9fb0 refactor: separate base image configuration into Dockerfile.base for improved build management 2026-07-15 10:51:35 +00:00
SennayT
3416585a01 add puppeteer support 2026-07-15 13:42:42 +03:00
marshal
7700aa6358 Merge pull request #701 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-15 13:32:37 +03:00
Marshal
c71a0043d6 implement wagon maintenance feature: add functionality to detach wagons and move them to maintenance status 2026-07-15 10:32:09 +00:00
Roba Boru
30a91691c8 Update seat availability 2026-07-15 12:50:19 +03:00
Marshal
11771e5f92 remove reopen delay minutes from global rules and update related types
- Removed the  field from  and related components.
- Updated  to reflect the removal of the reopen delay input field.
- Modified  to include new train number fields:  and .
- Added  interface to manage active schedules with trade direction.
- Introduced  interface to track wagon shortages in bookings.
- Updated  logic to ensure consistent UI state representation.
- Created migrations to drop the  column and add  and  columns to the  table.
- Added tests for the new booking window display logic and wagon planning functionality.
2026-07-15 09:13:02 +00:00
Hagernesh
fd4c4d630f fix(warehouse): disable Receive-At-Warehouse once booking is received
The Warehouse Information card kept the receive button active after the booking
already had an inventory record. Disable it (relabel "Received At Warehouse",
add a tooltip) when an inventory item exists.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 07:54:23 +00:00
Hagernesh
b71a53c4a9 fix(warehouse): show booking reference instead of UUID in inventory table
The inventory table's Booking column rendered a truncated bookingId UUID; use
the bookingReference already attached to each row (fall back to the short UUID
only when absent). Keep the UUID in the tooltip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 07:54:23 +00:00
Stephanos A
6b84f22a91 Fix seat class name assignment to ensure consistency with fare engine resolution 2026-07-15 10:48:36 +03:00
Stephanos A
b4992546d1 Build issue resolution 2026-07-15 10:43:19 +03:00
Stephanos A
9347f932a1 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 10:28:14 +03:00
Stephanos A
e2529b9317 Payment amount for non ETB and exchange fixes 2026-07-15 10:27:17 +03:00
Marshal
9be7f356f0 enhance train scheduling logic to exclude cancelled trains and refine window filtering 2026-07-15 07:07:10 +00:00
Roba Boru
6a9227b0f6 Extend seat hold time if booking created 2026-07-15 09:15:49 +03:00
Roba Boru
658b8d0077 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-15 08:13:39 +03:00
Roba Boru
64b362ff51 Fix expired seat 2026-07-15 08:13:23 +03:00
Abubeker Yasin
89ae06a5a8 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 00:45:39 +03:00
Abubeker Yasin
f8658d63b8 feat: ( currency ) add multiple from currency 2026-07-15 00:45:24 +03:00
Stephanos A
c0b99b50a9 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 00:40:08 +03:00
Stephanos A
25fdf88a77 Booking currency updates, audit logging updates 2026-07-15 00:39:53 +03:00
Roba Boru
ae2db7feb4 remove fare from seat selection summary 2026-07-14 22:59:46 +03:00
Roba Boru
effc9cefe2 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-14 22:51:43 +03:00
Roba Boru
7dc130d0ad Show seat left on booking result 2026-07-14 22:51:26 +03:00
Stephanos A
5aa1892e19 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-14 22:44:07 +03:00
Stephanos A
d92d1cdaa4 Segment price override enabled 2026-07-14 22:43:57 +03:00
Roba Boru
36ecbbe6d0 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-14 21:58:02 +03:00
Roba Boru
89b99b0a08 Fix seat label 2026-07-14 21:57:34 +03:00
Abubeker Yasin
0d29a940a6 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-14 21:26:36 +03:00
Abubeker Yasin
43aecf8376 Update page.tsx 2026-07-14 21:25:27 +03:00
Roba Boru
18d38891a4 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-14 21:22:23 +03:00
Roba Boru
660c611a1c Fix route datetime on lookup page 2026-07-14 21:22:04 +03:00
Roba Boru
c2a7d99480 Merge branch 'dev' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-14 21:10:16 +03:00
Abubeker Yasin
9d93e5c300 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-14 21:10:02 +03:00
Abubeker Yasin
7d64c91915 feat: ( auth ) restore sign in/register UI in nav bar, sidebar, and auth-check 2026-07-14 21:09:49 +03:00
Stephanos A
05ff0c2595 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-14 20:58:36 +03:00