Commit Graph

678 Commits

Author SHA1 Message Date
marshal
c3ba0192a9 Merge pull request #1083 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-03 01:40:20 +03:00
Marshal
f4fd469643 per-user trade-direction access scope 2026-08-02 22:29:58 +00:00
Nathnael Wondisha
62a7e35708 Merge branch 'dev' into staging 2026-08-03 00:24:17 +03:00
Nathnael
6f137a11c3 fix:cbe and cac 2026-08-02 20:37:16 +00:00
Marshal
950bcc0912 configer the stamp 2026-08-02 20:29:09 +00:00
Nathnael
2ead1d0782 fix: cbe not appearing 2026-08-02 20:09:27 +00:00
Marshal
3956c78c54 Enhance internal payment handling and e2e testing setup 2026-08-02 19:17:17 +00:00
Nathnael
ae037fd29d fix: padding 2026-08-02 18:42:38 +00:00
Nathnael
a9e6c0dc6f fix: etrade phone verification 2026-08-02 18:02:20 +00:00
Nathnael
d0cc5c19ee fix 2026-08-02 17:52:20 +00:00
Nathnael Wondisha
12bd6052fc Merge pull request #1072 from Tria-plc/dev
Syncing
2026-08-02 20:16:41 +03:00
ghost2023
7619952b74 fix: etrade loading 2026-08-02 01:39:46 +03:00
ghost2023
e6ce19ad22 style: ui fixes 2026-08-02 01:11:04 +03:00
Marshal
53d8655dc3 Enhance booking and signature functionalities
- Updated MySignaturePage title to Signature
2026-08-01 22:03:18 +00:00
ghost2023
aaf0aa3c92 fix(verifayda): format nested Fayda address objects into strings 2026-08-02 00:11:39 +03:00
Marshal
ea9df9abbe Add a minimal payment mock server for end-to-end testing 2026-08-01 19:58:17 +00:00
Marshal
21fdf144ca Add a minimal payment mock server for end-to-end testing 2026-08-01 18:59:14 +00:00
Marshal
20bb2f274a resolve merge conflict 2026-08-01 12:16:12 +00:00
Marshal
123f925cc1 add Group 9 delivery scenarios for self-haul and last-mile paths
- Implemented G9·S38 tests for customer self-haul truck assignments, ensuring compliance with container limits and truck assignments.
- Added G9·S39 tests for last-mile delivery, self-haul, and yard pickup, verifying independent paths for multiple bookings on the same train.
- Created seed data for Group 1 and Group 2 scenarios, ensuring proper setup for weight and capacity tests.
- Updated booking interface to deprecate  in favor of  for better clarity in allocations.
2026-08-01 12:14:37 +00:00
ghost2023
eae0552aae Merge branch 'staging' into freight/fix/pay 2026-08-01 14:21:28 +03:00
Nathnael Wondisha
7ad1b4dff2 Merge branch 'staging' into dev 2026-08-01 14:06:37 +03:00
ghost2023
42e227569b Merge remote-tracking branch 'origin/staging' into freight/fix/pay
# Conflicts:
#	apps/edr-freight-api/src/modules/billing/billing.service.ts
#	apps/edr-freight-web/portal/src/pages/billing/InvoiceDetailPage.tsx
#	apps/edr-freight-web/portal/src/pages/bookings/BookingDetailPage/components/PaymentMethodModal.tsx
#	pnpm-lock.yaml
2026-08-01 13:09:14 +03:00
marshal
91f3f56e12 Merge pull request #1063 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-01 13:04:33 +03:00
Marshal
3424dacd5f fix issue 2026-08-01 10:03:56 +00:00
Marshal
0d8c63328a add items per wagon map to cargo types and sync bulk rate units
- Implemented  in the  to manage the physical item capacity for each wagon type.
- Added a new migration to create the  column in the  table.
- Introduced  method in  to update rate units when cargo type unit of measure changes.
- Updated booking calculations to consider items per wagon for break-bulk cargo.
- Refactored various components to utilize the new items fit logic and ensure consistent date formatting across the application.
- Added tests for the new display timezone functionality to ensure consistent date/time representation across different user settings.
2026-08-01 09:55:21 +00:00
Hagernesh
1998c74b9e fix(freight-portal): add missing /api prefix to bulk truck upload endpoint
BulkTruckUploadModal hand-built its POST URL and omitted the global
/api prefix every other booking call uses, causing a 404. Added
CUSTOMER_TRUCKS_BULK to URL_CONSTANTS.BOOKINGS and switched the modal
to use it.
2026-08-01 08:42:18 +00:00
Nathnael Wondisha
61e3a300a9 Merge pull request #1058 from Tria-plc/dev
syncing
2026-08-01 10:39:41 +03:00
Nathnael Wondisha
616269a988 Merge branch 'staging' into dev-to-staging 2026-08-01 10:27:47 +03:00
Nathnael
4f81a0bbb8 feat(freight): non-terminal change-request review + unified customer timeline
Backoffice can now "Request changes" on a pending settings change
request without rejecting it outright: a new ChangesRequested status
keeps the row open so the customer's next edit appends into the same
request instead of starting a fresh cycle, and the reviewer's note
persists across that round instead of being cleared on resubmit.

Version History and Review History (previously two separate,
differently-shaped lists) are merged into one chronological timeline
under a new History tab, including document changes shown as a real
previous-vs-current diff (both files openable).

Bug fixes surfaced while wiring this up:
- Replacing a single-file document slot left the old file live
  alongside the new one instead of retiring it (customer settings +
  onboarding uploads).
- The "previous" file in a document diff 404'd once superseded —
  the preview route now also matches soft-deleted records.
- A document replace was recorded twice in the timeline (once at
  upload, once again at change-request approval).
2026-07-31 14:12:30 +00:00
Nathnael
3952e8bbdf feat(freight): add download for the TIN business registration record
Ticket #181 — eTrade auto-fetch already existed; adds a client-side
download of the fetched record (eTrade returns data, not a document)
on the portal onboarding step and the backoffice customer detail page.
2026-07-31 11:45:24 +00:00
Nathnael
83d3fc3b78 feat(freight-portal): show account-status banner on every login
Ticket #422 — surface Pending/Suspended/Approved company status as a
banner, branching AccountReviewBanner on companyStatus instead of only
per-profile review state.
2026-07-31 11:43:07 +00:00
Nathnael
97bfe95ec3 feat(payment): integrate CAC Bank OTP payments into freight flows
CAC Bank is an OTP debit with no redirect and no webhook: initiate SMSes a
code to the payer's mobile, and the charge only settles when that code is
confirmed. The payment service already spoke it (passenger uses it); the
freight side had the enum values but none of the flow.

API:
- PaymentClientService.confirmOtp forwards the code to
  POST /payments/intents/:id/confirm, mapping 400/404 to BadRequest so a
  mistyped code stays retryable instead of surfacing as a gateway failure.
- PaymentService.confirmOtp is keyed by the LOCAL intent id (the invoice's
  paymentId) rather than the domain reference, so the right invoice settles
  when several share a booking. On success billing settles the invoice.
- payInvoice rejects CAC_BANK without payerAccount before calling the
  gateway, and no longer runs the demo auto-settle for a COLLECT_OTP intent
  (it is not paid until the payer confirms).
- POST /billing/my-invoices/:id/confirm — ownership-checked, and since
  warehouse fee invoices are central invoices it covers those too.

Portal:
- useInvoicePayment owns the whole flow (initiate, redirect-or-OTP, confirm)
  and replaces the five near-identical pay mutations at the call sites.
- PaymentMethodModal gains the CAC Bank option, the payer mobile field, and
  the OTP step. Click-outside is disabled there so a stray click cannot drop
  the payer out of a live OTP window.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 08:11:23 +00:00
Abubeker
37855b0a83 feat: ( payment ) implement cbe payment 2026-07-31 07:50:10 +00:00
Nathnael
5a02da91d2 refactor(api): extract self-service attributes for immediate application and poa verification improvement 2026-07-31 07:38:49 +00:00
marshal
5564819b28 Merge pull request #1033 from Tria-plc/freight_feature/usermanagement
add goverment booking
2026-07-31 03:43:36 +03:00
Marshal
65f18b4796 add goverment booking 2026-07-31 00:41:51 +00:00
marshal
ceaf0ba7eb Merge pull request #1025 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-30 16:16:52 +03:00
Marshal
e80aac877f export flow and fix intercity issue 2026-07-30 13:11:35 +00:00
Nathnael Wondisha
349ff436d8 Merge pull request #1024 from Tria-plc/freight/chore/payment-test
fix: support widget peak and onboarding wizard responsivness
2026-07-30 16:10:05 +03:00
Nathnael
bfb4991234 fix: support widget peak and onboarding wizard responsivness 2026-07-30 13:08:51 +00:00
Marshal
22de05fe8e Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight_feature/usermanagement 2026-07-30 11:31:02 +00:00
Marshal
2ca04b8f98 changes export flow 2026-07-30 11:30:34 +00:00
Nathnael
848c0d7768 fix: customer settings fix 2026-07-29 14:30:35 +00:00
Nathnael
aba39b0ec3 Merge branch 'dev' into freight/nati-1 2026-07-29 13:39:20 +00:00
marshal
60f391f246 Merge pull request #1006 from Tria-plc/freight_feature/usermanagement
Add ContractCourtBadge component and integrate into contract pages
2026-07-29 16:37:51 +03:00
Marshal
47c25d3f3a Add ContractCourtBadge component and integrate into contract pages
- Introduced ContractCourtBadge to display the responsible party for contract actions.
- Updated ContractStatusBadge to include new court badge.
- Enhanced ClearanceDocumentsPage with additional filters for trade direction, freight type, and ownership.
- Modified ContractRequestDetailPage and ContractRequestsPage to utilize ContractCourtBadge.
2026-07-29 13:37:17 +00:00
Nathnael
0165a64e76 feat(freight-portal): gate company step on etrade verification 2026-07-29 12:03:45 +00:00
Nathnael
f1431a8353 feat(freight-portal): fayda verify ui, owner/gm split, foreign passport
- FaydaVerifyPanel + /callback popup flow for owner and poa
- general manager is a plain typed role again, offers "same as
  verified owner" copy instead of being fayda-verified itself
- company step gates on owner verification (ethiopian) or typed
  passport number (foreign); poa step gates on poa verification
- settings tabs (company profile, general manager, poa) updated to
  match

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 06:57:27 +00:00
marshal
69f4616480 Merge pull request #1000 from Tria-plc/freight_feature/usermanagement
New Transit Agents admin table (name, valid-from/to, active/suspended…
2026-07-29 08:46:14 +03:00
Marshal
b17a72c280 New Transit Agents admin table (name, valid-from/to, active/suspended, validity badge) — DJ assign step now picks from it, active+valid only. 2026-07-29 05:38:35 +00:00