Commit Graph

3928 Commits

Author SHA1 Message Date
Abubeker Yasin
adc4f7301a fix : ( ticket ) change kickets.generate to tickets.manage 2026-07-29 16:50:56 +03:00
Hagernesh Tadesse
6fae6fe4a1 Merge pull request #1007 from Tria-plc/edrmiles
feat(marshalling-documents): add company column and container summary
2026-07-29 16:48:39 +03:00
Hagernesh
78b5665ea7 feat(marshalling-documents): add company column and container summary
Export and import marshalling documents now include:
- Company name column per cargo allocation row
- Executive summary with container counts (40ft, 20ft, total)
- Total weight already shown, now grouped with container data

Both export and import load list templates enhanced with same structure
for consistency. Container size calculated from booking container data.
2026-07-29 13:47:54 +00:00
Nathnael
aba39b0ec3 Merge branch 'dev' into freight/nati-1 2026-07-29 13:39:20 +00:00
Nathnael
16ef64fae2 feat: expose eTrade registration and fayda birthdate/gender in company profile 2026-07-29 13:38:39 +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
Abubeker Yasin
0d8901630b Merge pull request #1005 from Tria-plc/alpha
fix: ( payments ) allow telebirr checkout to bounce through /go
2026-07-29 14:52:41 +03:00
Abubeker Yasin
9a98d460b5 fix: ( payments ) allow telebirr checkout to bounce through /go 2026-07-29 14:42:30 +03:00
Hagernesh Tadesse
ba1a9b0686 Merge pull request #1004 from Tria-plc/warehouseselection
feat(booking-trucks-tab): show truck-level detention, gate times, ins…
2026-07-29 14:14:33 +03:00
Hagernesh
1b1b0e7ade feat(booking-trucks-tab): show truck-level detention, gate times, inspection status, and cargo costs
Booking detail now has a Trucks tab displaying every EDR or customer truck
assigned to a booking's last mile. Each row shows warehouse-gate times
(arrival/departure) and destination-detention times (arrival/return), with
detention costs and inspection status. Detention rows only for EDR trucks;
customer self-haul shows —. Reuses existing TruckDetentionModal and
FeePreviewModal for edit/view actions.

Backend: arrivalTrucksForBooking() adds lastMileId per truck (direct chain to
detention preview), containerItems() adds inspection_status column to responses.
No new SQL, no migrations, no new endpoints.

Frontend: BookingTrucksPanel.tsx self-fetches all data via existing warehouse +
last-mile services, renders adaptive table with cargo-cost strip above.
Wired into BookingRequestDetailPage.tsx tab bar.
2026-07-29 11:13:20 +00:00
marshal
fe79c2442c Merge pull request #1003 from Tria-plc/freight_feature/usermanagement
fix gl steps
2026-07-29 10:33:03 +03:00
Marshal
f6e363cd6f fix gl steps 2026-07-29 07:32:26 +00:00
Abubeker Yasin
edc6439216 Merge pull request #1002 from Tria-plc/alpha
feat: ( payment ) free method changes, register every payment, confi...
2026-07-29 09:57:28 +03:00
Nathnael
1081b813bb feat(freight-backoffice): show fayda and dars status on customer detail
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 06:57:27 +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
Nathnael
68ef8dc5d7 test(freight-api): cover poa delegation and fayda identity gates
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 06:57:27 +00:00
Nathnael
68f6ec8c5f feat(freight-api): gate poa paper, fayda identity, foreign passport
- dars delegation paper mandatory wherever poa state changes (named,
  removed, forwarder role applied for/approved), not just onboarding
- ethiopian companies verify owner (and poa, once named) via fayda;
  identity, not general manager, is the verified subject
- foreign companies require a typed owner passport number instead,
  independent of an optional fayda verification
- fanNumber removed from client-writable dtos; server-derived only

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 06:57:27 +00:00
Nathnael
dcda8d7d37 feat(freight-api): drop fan claim from fayda verification
esignet userinfo carries no national id number. keep sub/name/email/
phone/address, remove fanClaims config and the hard-fail gate that
would've blocked every real verification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 06:57:27 +00:00
Abubeker Yasin
e76ff5e159 feat: ( payment ) free method changes, register every payment, confirm booking once 2026-07-29 09:55:45 +03:00
marshal
fcbfb72be8 Merge pull request #1001 from Tria-plc/freight_feature/usermanagement
Refactor EdrOrgSeeder
2026-07-29 09:32:49 +03:00
Marshal
dfde6b9021 Refactor EdrOrgSeeder 2026-07-29 06:28:42 +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
mulish77
25bac0af52 Merge pull request #999 from Tria-plc/tests
Fixing the round trip disabling dates
2026-07-28 16:27:22 +03:00
mulish77
804f3bc3d4 Update main.ts 2026-07-28 16:25:30 +03:00
mulish77
9231f89736 Update main.ts 2026-07-28 16:24:21 +03:00
mulish77
6c36e2d0ef Update main.ts 2026-07-28 16:19:53 +03:00
mulish77
0e8c6e0345 Update main.ts 2026-07-28 16:18:07 +03:00
Muluhabt
0dfb0cbe28 Fixing the round trip disabling dates 2026-07-28 16:12:44 +03:00
Nathnael
9c16579f54 fix(backoffice): scope unit-admin role matching to the selected org (EDRFREIGHT-223)
getAdminRoleInfo picked a user's unit_admin role by role key alone —
a unit-admin grant carries only a unitId, no organizationId, so a user
who is unit-admin in one org and (say) org-admin in another had the
wrong unit attached to their row wherever both orgs share the viewer's
admin list. That wrong unitId then flowed into the remove action,
which deletes by exact {userId, roleId, unitId} match — a legitimate
0-match, surfaced as "user_role_not_found", removal silently failing.

Fetches the selected org's unit ids (same pattern as the position-type
form's org→units scoping) and requires the unit-admin grant's unitId
to be one of them before treating it as this org's grant.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 12:36:01 +00:00
Nathnael
f39ae77401 fix(backoffice): map raw IAM error codes to friendly messages (EDRFREIGHT-223, EDRFREIGHT-225)
@tria-plc/iamapi-common throws BadRequestException with a raw,
untranslated code as the message (e.g. "user_role_not_found",
"unit_employee_limit_reached:5") — useErrorHandler's extractMessage
returned that string verbatim, so removing an org/unit admin whose
role row didn't match, or inviting past a unit's employee cap, toasted
the raw backend code instead of an explanation. Adds a small code→i18n
map checked before the raw-message fallback, shared by both the async
and sync error handlers so every caller (org-admin removal, employee
invites, etc.) picks it up for free.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 12:28:11 +00:00
Nathnael
b1cb149c44 feat(backoffice): add organization admin permission assignment page (EDRFREIGHT-242)
There was no UI to assign permissions to the Organization Admin role,
even though the backend's Role→Permission endpoints
(@tria-plc/iamapi-common's role-permissions routes) were already live
and unused. Adds a dedicated page — application picker + the existing
permission checklist — that assigns/reads permissions for the fixed
Organization Admin role, linked from the Organization Admins page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 12:27:44 +00:00
Nathnael
c2375a5306 fix(backoffice): scope copy-permissions-from to the selected unit (EDRFREIGHT-308)
The "Copy Permissions From" dropdown in the position-type form only
filtered candidates by the selected organization's full unit set,
ignoring the form's own "Select Unit" field entirely — so switching
units never re-scoped the list, unlike the equivalent unit filter on
the position-management table.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 12:27:14 +00:00
Nathnael Wondisha
8309483d8f Merge pull request #996 from Tria-plc/freight/fix/auth-separation
feat(auth): add login audience middleware (EDRFREIGHT-415)
2026-07-28 13:52:42 +03:00
marshal
3e828d3a3b Merge pull request #997 from Tria-plc/freight_feature/usermanagement
let customers dispute booking duty/tax advice so GL Ethiopia can re-a…
2026-07-28 13:49:47 +03:00
Marshal
891311d861 let customers dispute booking duty/tax advice so GL Ethiopia can re-advise 2026-07-28 10:48:27 +00:00
Nathnael
e823874d39 feat(auth): add login audience middleware (EDRFREIGHT-415) 2026-07-28 10:46:55 +00:00
mulish77
e108e3624b Merge pull request #995 from Tria-plc/dev
Fixing Cors issues
2026-07-28 13:41:48 +03:00
mulish77
881f7e1e56 Merge pull request #994 from Tria-plc/tests
Fixing cors issue in produciton
2026-07-28 13:37:53 +03:00
Muluhabt
83137ea0ef Fixing cors issue in produciton 2026-07-28 13:37:10 +03:00
Abubeker Yasin
7e1727a7bf Merge pull request #993 from Tria-plc/alpha
fix: ( bookings ) require explicit tickets:generate to issue reservat…
2026-07-28 12:19:47 +03:00
Abubeker Yasin
ed09bfd8b6 fix: ( bookings ) require explicit tickets:generate to issue reservations 2026-07-28 12:18:25 +03:00
marshal
9911d862f7 Merge pull request #992 from Tria-plc/freight_feature/usermanagement
Pre-declaration Djibouti GL assignee request flow
2026-07-28 12:17:50 +03:00
Marshal
e1c831211f Pre-declaration Djibouti GL assignee request flow 2026-07-28 09:01:23 +00:00
mulish77
6a33544e93 Merge pull request #990 from Tria-plc/dev
Issues fix for production
2026-07-28 11:55:15 +03:00
Abubeker Yasin
7276c9881f Merge pull request #991 from Tria-plc/alpha
Alpha
2026-07-28 11:41:33 +03:00
Abubeker Yasin
0d46f3715e fix: ( payments ) bounce D-Money checkout via /go and follow user domain 2026-07-28 11:39:48 +03:00
Abubeker Yasin
686350135d refactor: ( payment ) allow payment change based on platform change 2026-07-28 10:42:02 +03:00