Commit Graph

4122 Commits

Author SHA1 Message Date
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
Hagernesh Tadesse
6790450bf2 Merge pull request #1019 from Tria-plc/edrmiles
feat: add warehouse gate times editor modal for import trucks
2026-07-30 13:06:00 +03:00
Hagernesh
fe04d2edd6 feat: add warehouse gate times editor modal for import trucks
Enable per-truck editing of warehouse gate arrival/departure times
(arrivedAt/departedAt) via modal on Import Trucks page. Accessible via
row action menu for EDR-haulage trucks. Includes backend endpoint
POST /last-mile/:id/warehouse-gate-times and frontend modal with
DateTimePicker inputs.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-30 10:04:32 +00:00
Marshal
b671f07ce6 fix(rule-engine): merge duplicate Sebeta yards, block dupes
Two active Sebeta yards (LEGACY_DEST/'Sebeta' and SEBETA/'sebeta')
split rates and routes across different yard ids, so route-scoped rate
lookups missed. Migration repoints every yard reference to the survivor,
retires the duplicate, and adds partial unique indexes on active label
and code. Service now rejects case-insensitive duplicate labels on
create/update - the old guard only compared generated codes, which
missed labels whose existing code differs (LEGACY_DEST).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 09:25:02 +00:00
Marshal
9241ce01d2 fix(contracts): price base freight from contract lane only
Contract pricing matched base container/bulk rates by type+currency
with no origin/destination filter, so a lane with no configured rate
silently froze another lane's price into the contract snapshot
(CTR-2026-00065: DCT-Sebeta contract froze DCT-GMP rates) and bookings
then billed off it. Now scoped to the contract's first route and a
missing lane rate hard-blocks pricing with a 422, matching the
customs-clearance and booking-side behaviour.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 09:24:37 +00:00
Abubeker Yasin
68e3061619 Merge pull request #1018 from Tria-plc/alpha
Update payment-sync.service.ts
2026-07-30 11:00:29 +03:00
Abubeker Yasin
e4a2c61224 Update payment-sync.service.ts 2026-07-30 10:56:56 +03:00
Hagernesh Tadesse
fd407ba5b9 Merge pull request #1017 from Tria-plc/edrmiles
feat: add truck arrival/departure times to import trucks page
2026-07-30 10:30:08 +03:00
Hagernesh
4cb4d177d9 feat: add truck arrival/departure times to import trucks page
Show per-truck warehouse gate arrival (arrivedAt) and departure
(departedAt) timestamps on the Import Trucks page, enabling staff to see
when each truck entered and exited the warehouse. Times displayed in local
format; EDR and customer trucks both supported.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-30 07:26:58 +00:00
Abubeker Yasin
541f2a11c1 Merge pull request #1016 from Tria-plc/alpha
fix: ( payment ) resolve PaymentsService via ModuleRef in TasksService
2026-07-30 04:58:09 +03:00
Abubeker Yasin
920333bf2a fix: ( payment ) resolve PaymentsService via ModuleRef in TasksService 2026-07-30 04:57:25 +03:00
Abubeker Yasin
6108f0117f Merge pull request #1015 from Tria-plc/alpha
Alpha
2026-07-29 22:11:58 +03:00
Marshal
63604b0cf4 changes 2026-07-29 19:00:32 +00:00
Hagernesh Tadesse
e6c8b8225c Merge pull request #1014 from Tria-plc/edrmiles
implemented import truck page
2026-07-29 17:53:31 +03:00
Hagernesh
a6749df65f implemented import truck page 2026-07-29 14:46:41 +00:00
Nathnael Wondisha
b140a720db Merge pull request #1013 from Tria-plc/freight/fix/auth-separation
Freight/fix/auth separation
2026-07-29 17:37:41 +03:00
Nathnael Wondisha
49fce33832 Merge pull request #1012 from Tria-plc/freight/nati-1
fayda verification and validation
2026-07-29 17:36:43 +03:00
Nathnael
848c0d7768 fix: customer settings fix 2026-07-29 14:30:35 +00:00
Abubeker Yasin
ce878a3777 Merge branch 'alpha' of github.com:Tria-plc/edr-platform into alpha 2026-07-29 17:30:20 +03:00
Abubeker Yasin
d7168a8d77 feat: ( payment ): verify-before-cancel never cancel a paid booking 2026-07-29 17:29:59 +03:00
Hagernesh Tadesse
efae463b0a Merge pull request #1011 from Tria-plc/edrmiles
fix(train-scheduling): marshalling doc 40ft/20ft counts were always 0 no w counts exat numbers
2026-07-29 17:14:30 +03:00
Hagernesh
e2ad024da1 fix(train-scheduling): marshalling doc 40ft/20ft counts were always 0
findByIdWithFullGraph loaded containerItems but not
containerItems.bookingContainer, so item.bookingContainer was always
undefined and the 40ft/20ft/total tallies on the Import/Export
Marshalling Document silently read as 0. Load containerType on both the
item and its bookingContainer, and resolve size from whichever is set.
2026-07-29 14:13:09 +00:00
Abubeker Yasin
66bc0f461c Merge pull request #1010 from Tria-plc/dev
merge
2026-07-29 17:08:25 +03:00
Abubeker Yasin
0551d2dd57 Merge pull request #1009 from Tria-plc/main
Main
2026-07-29 17:05:55 +03:00
Abubeker Yasin
e6ad9008c2 Merge pull request #1008 from Tria-plc/guard-fix
fix : ( ticket ) change kickets.generate to tickets.manage
2026-07-29 16:51:42 +03:00
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