Commit Graph

2383 Commits

Author SHA1 Message Date
Nathnael
318af79962 feat: setup posthog 2026-07-16 08:52:29 +00:00
Nathnael
6dde17fa4d fix: premature payable invoice 2026-07-16 08:38:49 +00:00
Nathnael
5f6d8f9294 fix: cache invalidation 2026-07-16 07:17:22 +00:00
Nathnael
08faf56c4f fix: payment autopay on the payment init added for testing 2026-07-16 06:43:30 +00:00
Stephanos A.
bfc8477721 Merge pull request #722 from Tria-plc/alpha
Alpha
2026-07-16 08:47:56 +03:00
Stephanos A
3bc492ea83 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-16 08:41:53 +03:00
Stephanos A
b2b31f30bb Generate ticket, dashboard, excess luggage rate updates 2026-07-16 08:41:35 +03: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
Abubeker Yasin
70724ac3df Merge pull request #718 from Tria-plc/alpha
Alpha
2026-07-15 23:26:28 +03: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
Abubeker Yasin
d0a3fb3ca3 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 23:14:19 +03:00
Abubeker Yasin
7725b0d5d4 Update payments.service.ts 2026-07-15 23:14:05 +03:00
Roba Boru
230fdfb852 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-15 22:03:48 +03:00
Roba Boru
63accc8bd3 Fix booking detail for roundtrip 2026-07-15 22:03:29 +03:00
Abubeker Yasin
458f27c1b1 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-15 21:33:17 +03:00
Roba Boru
be7b829845 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-15 21:29:35 +03:00
Roba Boru
f185da2163 Update seatmap for blocked seats 2026-07-15 21:28:35 +03:00
Abubeker Yasin
9cf71e7e7a feat: ( payment ) add waafi webhook log 2026-07-15 21:23:10 +03:00
Stephanos A
2d2fcfbda9 Seat block issue resolution 2026-07-15 21:11:23 +03:00
Abubeker Yasin
2ffb2f9f60 remove auth 2026-07-15 20:05:55 +03:00
Roba Boru
be46744417 Merge branch 'alpha' of https://github.com/Tria-plc/edr-platform into alpha 2026-07-15 19:56:22 +03:00
Stephanos A
8bda06b226 Currency issue resolution 2026-07-15 19:50:32 +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
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
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