Commit Graph

860 Commits

Author SHA1 Message Date
natib21
c8ec0be6b2 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 15:01:51 +00:00
natib21
6ee771c953 fix search 2026-07-17 15:01:30 +00:00
marshal
2e3e5d20dd Merge pull request #771 from Tria-plc/freight_feature/usermanagement
fix
2026-07-17 16:59:36 +03:00
Marshal
6467173c76 fix 2026-07-17 13:57:59 +00:00
natib21
0d98ccb04b fix 2026-07-17 13:10:27 +00:00
Hagernesh Tadesse
41d7a04d2f Merge pull request #768 from Tria-plc/intercity-load-unload
feat(intercity): show intercity cargo across every train
2026-07-17 15:00:15 +03:00
marshal
f690b635eb Merge pull request #767 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-17 14:40:59 +03:00
Marshal
221c49fcda fix issue 2026-07-17 11:38:54 +00:00
Hagernesh
30f48ea37f feat(intercity): show intercity cargo across every train
Intercity bookings never get their own train — they ride whichever import/export
train passes through their corridor — so the work is scattered across other
people's schedules and there was nowhere to see it as a whole. The per-schedule
ride-along panel answers "what can THIS train carry"; this answers "what is
happening to intercity cargo".

Purely additive: the existing ride-along panel and the schedule detail page are
untouched, and loading/unloading still happens there, where the train's position
is confirmed. This is a read-only view that points back to it.

Each row carries both ends' facility status, because a booking whose origin or
destination has no equipment can never be worked there — the operator should see
that while the train is still coming, not when the load is refused. Those
bookings are counted and called out.

New GET /train-scheduling/intercity/bookings; the type is IntercityRideAlongRow,
not IntercityBookingRow, which already means the per-schedule candidate row.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 11:27:40 +00:00
Nathnael
d0411f9da2 feat: add support page to the admin routes 2026-07-17 11:06:44 +00:00
Nathnael
031e5ab292 Merge branch 'dev' into freight/feat/chat-app 2026-07-17 11:01:39 +00:00
Nathnael
f278756d76 feat: add support to freight backoffice 2026-07-17 11:00:09 +00:00
Hagernesh
c3ba9999c5 feat(yards): let staff mark a yard as a load/unload facility
Which yards can handle cargo is data, not a constant — the set grows. The Yards
config screen now carries the flag, so adding a facility is a toggle rather than
a code change. Config-driven, so this is a column plus a form field.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 10:40:16 +00:00
natib21
3376f106b7 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 10:37:46 +00:00
natib21
ef88240365 fix train build 2026-07-17 10:37:20 +00:00
marshal
39a48a2c30 Merge pull request #761 from Tria-plc/freight_feature/usermanagement
fix rate edit
2026-07-17 13:31:08 +03:00
natib21
3bb4c8fb42 fix build num 2026-07-17 10:29:27 +00:00
natib21
8671b982c5 fix null value 2026-07-17 10:18:41 +00:00
Marshal
801872c106 fix rate edit 2026-07-17 10:15:26 +00:00
natib21
a2a20b4222 gti Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 09:47:56 +00:00
natib21
84d5add58e fix four digit 2026-07-17 09:47:37 +00:00
yaschalew10
9ade4b2c83 Merge pull request #757 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 12:37:22 +03:00
Marshal
308df1c61c fix schule issue and contianer type issue 2026-07-17 09:18:26 +00:00
Marshal
7b7e7c3f62 fix schule issue and contianer type issue 2026-07-17 09:16:35 +00:00
natib21
1abf71306e add export/inport number 2026-07-17 09:15:21 +00:00
Nathnael
ef74bc442a fix: prevent the backoffice from approve the user before he submits 2026-07-17 08:54:24 +00:00
natib21
b4118e1bd4 add export/inport number 2026-07-17 08:47:52 +00:00
ghost2023
bd81bbfc2c style: sidebar improvmetn 2026-07-17 11:15:58 +03:00
marshal
1a3fa4bc5a Merge pull request #738 from Tria-plc/freight_feature/usermanagement
fix issue
2026-07-16 16:00:07 +03:00
Marshal
b50adc4666 fix issue 2026-07-16 12:59:28 +00:00
marshal
35a9d25aaa Merge pull request #734 from Tria-plc/freight_feature/usermanagement
fix u=issue
2026-07-16 15:02:40 +03:00
Marshal
e8e12c1363 fix u=issue 2026-07-16 12:02:11 +00:00
Hagernesh
d5182c5d85 feat(last-mile): wire multi-container assignment, bulk drawdown + EDR exit papers
Frontend for the per-truck EDR backend:

- Assign modal takes a container LOAD per truck (MultiSelect, max 2) instead of a
  single container, so a truck can carry one 40ft or two 20ft. Sends
  containerNumbers[]; the API enforces the size rule.
- requiredVehicles is now size-aware: a 40ft fills a truck (1 each), two 20ft
  share one. It previously assumed ceil(containers / 2) regardless of size, so a
  2x40ft booking under-counted the trucks needed.
- Bulk bookings show the drawdown in the assign modal — remaining vs total
  tonnage, what's been hauled, and a "fully hauled" state when it reaches 0.
- New "Truck exit papers" row action opens a per-truck list (plate, containers,
  arrival, exit, net weight) with a per-truck exit-paper download.
- last-mile findAll/findById now load each assignment's containers so the UI can
  hydrate a truck's load.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 09:24:22 +00:00
Nathnael Wondisha
68f6a393a9 Merge pull request #730 from Tria-plc/freight/feat/fixes-v1
Freight/feat/fixes v1
2026-07-16 11:59:01 +03:00
Nathnael
318af79962 feat: setup posthog 2026-07-16 08:52:29 +00:00
Nathnael Wondisha
2db321b37a Merge pull request #724 from Tria-plc/freight/feat/fixes-v1
Freight/feat/fixes v1
2026-07-16 10:59:36 +03:00
yaschalew10
b6d71ccc57 Merge pull request #723 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-16 10:50:34 +03:00
Nathnael
5f6d8f9294 fix: cache invalidation 2026-07-16 07:17:22 +00:00
natib21
312014b678 fix first/last mile 2026-07-16 07:13:24 +00:00
marshal
50d5ce5ad9 Merge pull request #721 from Tria-plc/freight_feature/usermanagement
fix issue
2026-07-16 04:06:52 +03:00
Marshal
fe29b38377 fix issue 2026-07-16 01:05:57 +00:00
marshal
ea22f38adf Merge pull request #720 from Tria-plc/freight_feature/usermanagement
fix issue
2026-07-16 03:34:14 +03:00
Marshal
41fe04652f fix issue 2026-07-16 00:33:31 +00:00
marshal
67bc835458 Merge pull request #719 from Tria-plc/freight_feature/usermanagement
implement empty-container return service: add return quantity handlin…
2026-07-16 02:06:08 +03:00
Marshal
234a74e812 implement empty-container return service: add return quantity handling, update related DTOs, services, and UI components 2026-07-15 22:48:04 +00:00
marshal
e3fccbd24d Merge pull request #717 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-15 23:18:55 +03:00
Marshal
fc44eee25e implement update train details feature: add DTO, service method, and UI modal for editing train name and run numbers 2026-07-15 20:14:39 +00:00
Marshal
d7d9db9c3a changes 2026-07-15 14:27:00 +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