Commit Graph

3257 Commits

Author SHA1 Message Date
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
yaschalew10
38de82c37c Merge pull request #770 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 16:11:29 +03:00
natib21
a29689772b Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 13:10:40 +00:00
natib21
0d98ccb04b fix 2026-07-17 13:10:27 +00:00
yaschalew10
8d6ae99d4e Merge pull request #769 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 15:08:18 +03:00
natib21
6f126a2345 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 12:01:39 +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
natib21
30188c1031 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 11:59:13 +00:00
natib21
47780c614a fix 2026-07-17 11:59:00 +00: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
3a697e12f2 changes 2026-07-17 11:40:25 +00:00
Marshal
221c49fcda fix issue 2026-07-17 11:38:54 +00:00
yaschalew10
7817961ef9 Merge pull request #766 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 14:38:44 +03:00
natib21
838ea5efc8 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 11:30:49 +00:00
natib21
149e4105f4 seed vehicle 2026-07-17 11:30:25 +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 Wondisha
4abc2aa7ae Merge pull request #765 from Tria-plc/freight/feat/chat-app
Freight/feat/chat app
2026-07-17 14:12:05 +03:00
Nathnael
d0411f9da2 feat: add support page to the admin routes 2026-07-17 11:06:44 +00:00
yaschalew10
7ab737f887 Merge pull request #764 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 14:05:10 +03:00
natib21
35303ece58 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 11:03:37 +00:00
natib21
57f49a9333 fix 2026-07-17 11:03:23 +00:00
Nathnael
031e5ab292 Merge branch 'dev' into freight/feat/chat-app 2026-07-17 11:01:39 +00:00
Nathnael
e862a228d4 feat: add support to freight portal 2026-07-17 11:00:17 +00:00
Nathnael
f278756d76 feat: add support to freight backoffice 2026-07-17 11:00:09 +00:00
Nathnael
1fd46afaaa fix: added chat to the freight api 2026-07-17 10:59:25 +00:00
Hagernesh Tadesse
ae94cda2bd Merge pull request #763 from Tria-plc/intercity-load-unload
Intercity load unload

Data model — yards.has_facility, yard_facilities, facility_handling_events, resolver, seeder
The gate — intercity load/unload refused where there's no facility
 GRN raised on every facility load/unload; storage only at Indode
Yards config toggle — adding a facility is now a toggle, not a code change
2026-07-17 13:43:19 +03: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
Hagernesh
a73faecbe3 feat(intercity): raise a GRN when a facility loads or unloads cargo
Every facility raises a GRN — the goods changed hands, whether or not anyone
stores them. What differs is what happens next: Indode has a warehouse, so cargo
left there goes through the existing warehouse flow and accrues storage and
demurrage; Sebeta, Modjo, Adama and Dire Dawa only move cargo between train and
truck, so the handling event and its GRN are the whole record.

facility_handling_events carries that record because warehouse_inventory cannot:
its warehouse/yard/zone are NOT NULL, so a facility with equipment but no
warehouse could never have a row there. inventory_id links the storage record
when the facility does keep the cargo, which is what ties an Indode handover to
its demurrage.

generateGrnNumber moves to common/grn.util.ts so a GRN raised at a facility is
indistinguishable from one raised in a warehouse — the two live in different
tables, and a second generator would let the formats drift.

Recording is best-effort: the cargo moved regardless, so paperwork must never
fail the journey.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 10:40:16 +00:00
Hagernesh
a411e0bdd0 feat(intercity): only load/unload where the yard has a facility
Intercity cargo rides a passing train and is handled at the booking's own yards,
so those yards need the equipment to do it — a train stopping somewhere is not
the same as somewhere being able to load it. Loading at an origin or unloading at
a destination without has_facility is now refused, naming the yard.

The check sits inside loadBooking/unloadBooking rather than the intercity
controller wrapper, because recording a checkpoint auto-unloads every booking
destined at that yard (autoUnloadAtYard) and would otherwise route around it.

Import/export are untouched: their cargo is handled at the route's terminal
ports, not at an arbitrary mid-corridor yard, so the gate returns early for
anything that isn't DOMESTIC.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 10:40:16 +00:00
Hagernesh
ce3ef15e7c feat(yards): record which yards can load/unload cargo
Intercity cargo is loaded at its origin yard and unloaded at its destination, but
only some yards have the equipment. EDR's facilities are Indode, Sebeta, Modjo,
Adama and Dire Dawa — and the set grows, so it has to be data.

- yards.has_facility marks a yard as a load/unload point; the new yard_facilities
  record says what it can do. Only Indode stores cargo (has_warehouse), so only it
  accrues storage/demurrage — the rest just move cargo on and off the train.
- facility_handling_events records each load/unload and carries its GRN.
  warehouse_inventory cannot: its warehouse/yard/zone are NOT NULL, so a facility
  without a warehouse could never have a row. inventory_id links to the storage
  record when there is one.
- YardFacilitiesService.facilityForYard is the single resolver the handling flows
  share, so they cannot drift on what a facility is.
- The seeder flags EXISTING yards and creates none. The codes are historical and
  do not read like the facility names — Indode is KALITY ("Gelan Multi Purpose
  Port (Indode)") and Sebeta is LEGACY_DEST — so it maps by code. Creating fresh
  INDODE/SEBETA yards would have split data that routes and bookings already
  reference.

Negad is deliberately absent: NAGAD ("DCT/SGDT") is in Djibouti while
NEGAD_FY_BCC is in Ethiopia and inactive, and which one is the intercity facility
is unsettled.

No behaviour change yet — nothing reads has_facility until the gate lands.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 10:40:16 +00:00
yaschalew10
ebba7a6a37 Merge pull request #762 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 13:38:55 +03: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
yaschalew10
ae49bdedf8 Merge pull request #760 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 13:30:34 +03:00
natib21
b3042225e5 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 10:29:39 +00: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
yaschalew10
88e93652a6 Merge pull request #759 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 13:16:38 +03:00
Marshal
801872c106 fix rate edit 2026-07-17 10:15:26 +00:00
natib21
99f67d6035 Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-17 10:13:46 +00:00
natib21
a9d65e04fc fix number of wagon 2026-07-17 10:12:43 +00:00
yaschalew10
17616af3db Merge pull request #758 from Tria-plc/freight/feature/user_management_UI
Freight/feature/user management UI
2026-07-17 12:51:48 +03: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
28e67d555d Merge pull request #756 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-17 12:21:06 +03:00
Marshal
18311f22f7 Comment out payment event handling for local demos in BillingService 2026-07-17 09:20:36 +00:00
Marshal
308df1c61c fix schule issue and contianer type issue 2026-07-17 09:18:26 +00:00