Commit Graph

3223 Commits

Author SHA1 Message Date
marshal
ca109d88d2 Merge pull request #1128 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-05 23:05:39 +03:00
Marshal
1b5f364294 feat(fleet): add permanent delete option to FleetRecordActions 2026-08-05 20:05:05 +00:00
Hagernesh
1f4d659ffb Last mile confirmation request , approval, payment Feature 2026-08-05 20:01:48 +00:00
Marshal
1a37b62f24 clarify replayed CBE payment failure msg 2026-08-05 15:14:41 +00:00
Nathnael Wondisha
37d0cc966a Merge pull request #1124 from Tria-plc/freight/nati-2
Audit log and presistent cbe pnr
2026-08-05 17:23:54 +03:00
Nathnael
2133d6a574 fix: fitler out the client side request 2026-08-05 14:23:00 +00:00
Marshal
f7d7bab702 add log for payment 2026-08-05 14:19:45 +00:00
Nathnael
595c165820 feat: implement audit logs 2026-08-05 14:17:00 +00:00
Marshal
b5eeb7c3a3 fix issue 2026-08-05 14:01:01 +00:00
Nathnael
d5622ed360 chore: install auditlog pkg 2026-08-05 13:39:45 +00:00
Nathnael
4f08b370e1 Merge branch 'dev' into freight/nati-2 2026-08-05 13:27:10 +00:00
Nathnael
8476a6a00e fix: the fayda and etrade syncing 2026-08-05 13:06:56 +00:00
Marshal
b7dcc1bf0a feat(billing): add PAYMENT_PROCESSING invoice status on payment success redirect (all except CBE bill) 2026-08-05 12:59:37 +00:00
marshal
26837d5a7d Merge pull request #1120 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-05 13:08:23 +03:00
Marshal
ceabe163e7 fix issue 2026-08-05 09:46:39 +00:00
ghost2023
1515667158 fixup 2026-08-05 11:39:45 +03:00
ghost2023
41f2fd8333 fix: extension ensure 2026-08-05 11:10:52 +03:00
ghost2023
97eca6bed9 chore: squash the freight migration 2026-08-05 10:46:02 +03:00
ghost2023
eb0f071d89 Merge branch 'dev' into fixes 2026-08-05 10:29:58 +03:00
marshal
2445e2a1e5 Merge pull request #1115 from Tria-plc/freight_feature/usermanagement
always-on calendar, currency cards
2026-08-05 10:27:18 +03:00
Marshal
49c453b82a always-on calendar, currency cards 2026-08-05 07:26:41 +00:00
ghost2023
321f3612ec refactor(freight-api): split migration histories between IAM and freight 2026-08-05 10:26:25 +03:00
Marshal
15c43789d3 always-on calendar, currency cards 2026-08-05 07:12:27 +00:00
marshal
724079663b Merge pull request #1114 from Tria-plc/freight_feature/usermanagement
always-on calendar, currency cards
2026-08-05 10:05:45 +03:00
Marshal
2f576fd1de always-on calendar, currency cards 2026-08-05 07:03:39 +00:00
marshal
772c5245b0 Merge pull request #1113 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-04 20:31:16 +03:00
ghost2023
9485e7e9cf fix: exchange moduel regsiter 2026-08-04 17:49:37 +03:00
ghost2023
969f626d4a Merge branch 'dev' into fixes 2026-08-04 17:38:13 +03:00
ghost2023
f75b681a0e fix(freight-portal): add /callback route for Fayda redirects 2026-08-04 17:37:41 +03:00
Marshal
5d68a3f7b7 add permanent purge functionality for wagons and routes
- Implemented a  method in  to permanently delete wagons without history.
- Added corresponding permissions for hard delete actions in .
- Updated the UI components to include purge actions, ensuring they are only available to users with the appropriate permissions.
- Created modals for confirming permanent deletions in  and .
- Enhanced API services to handle purge requests for locomotives, wagons, and routes.
- Added tests for the purge functionality in both  and  services to ensure proper behavior and error handling.
2026-08-04 14:07:16 +00:00
Marshal
8cf49aa1cc enhance contract document rendering with detailed cargo information
- Updated ContractDocumentViewModelBuilder to include cargoTypeName, containerType, and cargoSummary in the schedule.
- Modified contract dynamic template tests to validate the new cargo fields.
- Enhanced contract renderer service tests to reflect changes in cargo data structure.
- Updated contract view model interface to include new cargo-related fields.
- Improved dynamic template rendering to display cargo type and container type.
- Refactored exchange settings controller and service to streamline error handling and feed status management.
- Introduced article HTML conversion functions to support Quill editor integration for structured article editing.
- Added tests for article HTML conversion to ensure correct round-trip processing of clauses and bullets.
2026-08-04 13:06:03 +00:00
Marshal
d0040a6851 enhance contract document rendering with detailed cargo information
- Updated ContractDocumentViewModelBuilder to include cargoTypeName, containerType, and cargoSummary in the schedule.
- Modified contract dynamic template tests to validate the new cargo fields.
- Enhanced contract renderer service tests to reflect changes in cargo data structure.
- Updated contract view model interface to include new cargo-related fields.
- Improved dynamic template rendering to display cargo type and container type.
- Refactored exchange settings controller and service to streamline error handling and feed status management.
- Introduced article HTML conversion functions to support Quill editor integration for structured article editing.
- Added tests for article HTML conversion to ensure correct round-trip processing of clauses and bullets.
2026-08-04 13:03:39 +00:00
Nathnael
7393034188 feat(WIP): require the gm for fayda on ethiopian companies 2026-08-04 12:43:25 +00:00
Nathnael
415ae52143 test(integration): boot freight API in-process across parallel shards
The suite drove a containerized freight API, so every code change needed an
image rebuild before a test could see it, and there was no way to attach a
debugger. Files also ran strictly in sequence against one shared database,
which is the root of the warm-stack gotchas the README documents: stowaway
paid bookings climbing back aboard, a short consist on the fifth file.

The freight app now boots inside each vitest worker from dist/, and each
worker owns a whole shard of the topology - its own database, payment API,
gateway mock and broker vhost - so nothing mutable is shared and files run
in parallel. Full suite drops from roughly 20 minutes to 196s at 4 shards.

- main.ts exports createFreightApp() so the harness applies the same prefix,
  pipes, filters and interceptors as production instead of replaying them by
  hand; self-start is guarded by require.main so the Dockerfile CMD still boots
- booking-window tick cadence is env-driven (BOOKING_WINDOW_TICK_CRON), */1 in
  the suite, */10 unchanged in production
- prepare-shards.mjs seeds a template database (boot seeders, then the SQL
  fixtures that depend on them) and clones it per shard; it.mjs re-clones on
  every run, so each run is hermetic
- gateway mock and payment API are generated per shard: the mock keeps modes
  and orders process-global and 20 of 25 specs reset it in beforeAll, and the
  inbound CBE bill query has to reach one specific shard's app
- poll() samples every 250ms instead of 2000ms, keeping the caller's deadline
- authz.it.ts seeds its own invoice; it previously read another spec's leftover
  and returned early, which silently passed on a pristine database

Known: an unlocked MAX(sequence_no)+1 in train-scheduling.service.ts races
under concurrent allocation and leaves a short consist, so 1-3 specs fail
intermittently. Pre-existing and reproduces at the production tick cadence.
2026-08-04 12:43:25 +00:00
Nathnael
3a69b961d4 refactor(freight): move the Fayda callback to /fayda/callback
Namespaces the OAuth landing path in all three places it exists: the API's
ack controller, both web apps' routes, and the redirect_uri env values.
A bare /callback claimed a generic top-level path in every app for one
provider's redirect.

The API side needed care. The ack controller moves to @Controller
('fayda/callback'), and the global-prefix exclusion has to name that exact
path — setGlobalPrefix's exclude is an exact route match, not a subtree, so
excluding "fayda" would have left /fayda/callback served at
/api/fayda/callback and 404ing at the registered redirect_uri, while
reading as though it covered everything under /fayda. Naming the full path
also keeps /api/fayda/verification/* prefixed, which every client calls.

Also drops a stale comment on the portal's callback route describing the
popup that no longer exists, and records why the route is public: behind
RequireAuth the onboarding gate redirects to /portal before the code+state
exchange can run.

NOT verified at runtime — this changes route registration, so boot the API
and confirm GET /fayda/callback answers un-prefixed and
/api/fayda/verification/start still resolves before relying on it.

Deploying this requires registering the new redirect_uri with eSignet
first; FAYDA_WEB_REDIRECT_URI, FAYDA_PORTAL_REDIRECT_URI and any mobile
client must be updated in step or verification breaks with a redirect_uri
mismatch.
2026-08-04 12:43:25 +00:00
Nathnael
53accbc57b feat(freight-portal): verify Fayda via redirect, gate DARS on verification
The verification popup was opened after the /start round-trip, by which
point the click's user activation is spent — iOS Safari blocks it outright,
so mobile customers could never verify. Replace the popup with a full-page
redirect: the panel stashes {subject, returnTo} in sessionStorage and
navigates the tab to eSignet, and /callback completes the code+state
exchange itself before returning the user where they were.

This drops the postMessage listener, the popup-closed poller and the
pop-up-blocked branch. onVerified goes with them: the app boots fresh on
the way back, so the target page refetches rather than being pushed to.

Hide the DARS delegation upload until the PoA is Fayda-verified. The paper
authorises the representative the verification names, so it has nothing to
authorise before one exists — and it has to stop being required while
hidden, or the save blocks on a control the customer cannot see. Freight
forwarders are still held to having a PoA by the step's verification gate
and by the API. This also removes the one thing the redirect could not
carry across: a staged File cannot be serialised to sessionStorage, and
there is now never one pending before verification.

Unsaved text typed since the last step-save is still lost on redirect; the
wizard's per-step persistence covers everything already advanced past.
2026-08-04 12:43:25 +00:00
ghost2023
3a5126670f fix: centralized on rabbitmq for sms 2026-08-04 15:32:49 +03:00
marshal
3a1456263e Merge pull request #1107 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-04 14:40:41 +03:00
Marshal
45216c5624 fix: update payment currency handling to require explicit selection by customer 2026-08-04 11:40:08 +00:00
Marshal
56697d8fc5 implement exchange settings management and fallback rate handling 2026-08-04 11:22:47 +00:00
Hagernesh Tadesse
e55978f1df Merge pull request #1106 from Tria-plc/edrmiles
feat(warehouses): filters, pagination and charts on container returns
2026-08-04 12:56:10 +03:00
Hagernesh
50fab52b1c feat(warehouses): filters, pagination and charts on container returns
Returned-containers list now uses the shared DataTable + useListControls
(search, inclusive date range, status select, pagination) instead of a
hand-rolled table. Adds two charts below the list — returns per day by
truck type and returns by status — driven by the same filtered rows.
Series colors validated for CVD separation and surface contrast.
2026-08-04 09:54:15 +00:00
marshal
5d93017476 Merge pull request #1104 from Tria-plc/freight_feature/usermanagement
add custom contrat templates
2026-08-04 12:51:07 +03:00
Marshal
7c78a815eb add custom contrat templates 2026-08-04 09:48:49 +00:00
Nathnael
f0fd15b139 Merge branch 'dev' into fixes 2026-08-04 09:00:52 +00:00
Nathnael
acd2cfbe8c feat: add drain tail to the payments 2026-08-04 08:59:33 +00:00
marshal
1352b46c33 Merge pull request #1102 from Tria-plc/freight_feature/usermanagement
change ewit images
2026-08-04 11:43:01 +03:00
Marshal
aac1175964 change ewit images 2026-08-04 08:42:15 +00:00
marshal
61c3faa23e Merge pull request #1101 from Tria-plc/freight_feature/usermanagement
allow the custoemr to book while the payment window time
2026-08-04 11:15:02 +03:00
Marshal
2eb752e8c2 allow the custoemr to book while the payment window time 2026-08-04 08:10:00 +00:00