Commit Graph

3416 Commits

Author SHA1 Message Date
Abubeker Yasin
014b1a6d47 fix: ( fayda ) reject a second booking for the same identity on one departure 2026-08-19 15:28:10 +03:00
Abubeker Yasin
1f38b5a3c6 fix: ( fayda ) block one Fayda identity from verifying multiple passengers 2026-08-19 09:25:51 +03:00
Abubeker Yasin
0eb64ad9a1 feat: ( audit ) resolve the actor from the session and audit all backoffice mutations 2026-08-18 15:13:22 +03:00
Abubeker Yasin
33100a31ae fix: ( backoffice ) accept phone or username in the login identifier field 2026-08-18 11:28:10 +03:00
Abubeker Yasin
a9eac93fa3 fix: ( supplementary-charges ) pay in the selected method's currency, add CAC Bank and CBE 2026-08-18 10:16:59 +03:00
Abubeker Yasin
fa16087a4a fix: ( excess-baggage ) pay in the selected method's currency and record settlement 2026-08-17 15:33:43 +03:00
Abubeker Yasin
41080c1650 feat: ( backoffice ) gate Master Data pages and sidebar on view permissions 2026-08-17 10:22:52 +03:00
Abubeker Yasin
b453b81ff5 feat: ( backoffice ) hide Generate Ticket action without tickets:generate 2026-08-17 09:55:02 +03:00
Abubeker Yasin
b9e000729d fix: ( payments ) restrict force-confirm to tickets:generate permission 2026-08-17 09:47:36 +03:00
Abubeker Yasin
d952792e15 fix: ( portal ) opt out of browser translation to stop booking crash 2026-08-14 16:37:51 +03:00
Abubeker Yasin
449dea78ab feat: ( dashboard ) add booking charts 2026-08-13 23:31:20 +03:00
Abubeker Yasin
62b2080aaf feat: ( reports ) add fleet passenger overview to passengers landing page 2026-08-13 16:20:21 +03:00
Abubeker Yasin
aabf58320a feat: ( reports ) add fleet seat overview to seat status landing page 2026-08-13 15:32:56 +03:00
Abubeker Yasin
1e97f46813 fix: ( notifications ) stop group-booking SMS greeting the wrong passenger 2026-08-13 12:20:27 +03:00
Stephanos A
057d68709b Backoffice build issue resolution 2026-08-12 13:44:52 +03:00
Stephanos A
9d19801535 Overall report and segment tariff override updates 2026-08-12 13:11:24 +03:00
Stephanos A
bd8187578e Overall revenue updates 2026-08-11 15:02:16 +03:00
Abubeker Yasin
dc2078dd28 fix: ( payments ) stop reconcile-before-cancel deferring bookings forever 2026-08-11 11:19:39 +03:00
Abubeker Yasin
8ce6483e26 Merge branch 'dev' into alpha 2026-08-10 14:38:44 +03:00
Abubeker Yasin
18c47ca4a3 recover: ( payment ) recover cancelation fix deleted by malware 2026-08-10 14:25:14 +03:00
Nathnael Wondisha
b91a7e8a8f Merge pull request #1216 from Tria-plc/freight/nati-2
fix
2026-08-10 12:36:29 +03:00
ghost2023
c75ed8f149 fix 2026-08-10 12:35:43 +03:00
Nathnael Wondisha
29d472351f Merge pull request #1213 from Tria-plc/freight/nati-2
Freight/nati 2
2026-08-10 12:33:07 +03:00
ghost2023
d07d35e438 feat: allow owner to represent company as power of attorney 2026-08-10 12:31:13 +03:00
ghost2023
10af12bfc6 fix: theme toggle 2026-08-10 12:00:29 +03:00
Abubeker Yasin
6471c3511a feat: (payment) add eBirr as synchronous API_PURCHASE wallet debit 2026-08-10 11:36:05 +03:00
Abubeker Yasin
78d69eb02b fix: ( malware ) remove malware code 2026-08-10 10:37:47 +03:00
Nathnael Wondisha
b04d308413 Merge pull request #1210 from Tria-plc/freight/nati-2
fixes
2026-08-10 10:07:13 +03:00
Nathnael
84081156f6 fixes 2026-08-10 07:06:02 +00:00
Nathnael Wondisha
826a313c9d Merge pull request #1207 from Tria-plc/freight/nati-2
Freight/nati 2
2026-08-10 09:56:59 +03:00
Nathnael
124c51071b fix: log email and sms 2026-08-10 06:56:07 +00:00
Nathnael
3d53f67156 fix: gm and poa email requirement 2026-08-10 06:46:25 +00:00
marshal
270ca2a141 Merge pull request #1205 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-08-10 00:17:56 +03:00
Marshal
573e777e8f changes 2026-08-09 21:16:52 +00:00
Nathnael Wondisha
f5c37d3374 Merge pull request #1204 from Tria-plc/freight/nati-2
fix: rm the exception
2026-08-09 22:29:56 +03:00
Nathnael
f6dac28ac0 fix: rm the exception 2026-08-09 19:27:47 +00:00
Hagernesh
cde67e4c6a fix(freight): correct direct CAS lines and sync inventory on schedule load
End-to-end testing of the direct truck-to-train flow surfaced two defects
in the carriage acceptance sheet's no-wagon fallback. Container numbers
were read from freight.containers, which only gains rows at allocation,
so a direct booking's declared containers never appeared; they are read
from booking_container_units now, seal numbers included. The weight used
bulkTotalWeightTons alone, which is null for CONTAINER and PER_TON bulk
bookings, printing 0.00 — cargoTotalWeightVgm is the real weight there
and only holds an item count for PER_ITEM break-bulk.

Separately, warehouse cargo can be loaded from the Load-to-Train queue or
from the schedule, but loading from the schedule never advanced
warehouse_inventory. The booking went IN_TRANSIT while its cargo still
read as sitting in the warehouse — the same inconsistency that produced
the spurious dispatch block. loadBooking now moves the inventory to
LOADED in the same transaction, and no-ops for direct bookings.
2026-08-09 16:05:59 +00:00
Nathnael
a47c7f6b7a Merge branch 'dev' into freight/nati-2 2026-08-09 13:44:18 +00:00
Nathnael
f9f4b22a21 fix: video thumbnail 2026-08-09 13:42:28 +00:00
Nathnael
5e0674e2fb fix: poa email 2026-08-09 13:28:45 +00:00
Nathnael
ff9bb4954a fix: the content document 2026-08-09 13:27:05 +00:00
Nathnael
182787e143 fix: gm email 2026-08-09 07:57:45 +00:00
Marshal
aedab1b436 keep cents in CBE bills and prices 2026-08-08 21:09:20 +00:00
Marshal
622c690ed1 keep cents in CBE bills and prices 2026-08-08 20:58:37 +00:00
Marshal
80a14c176b keep cents in CBE bills and prices 2026-08-08 20:45:05 +00:00
Nathnael
e03ccf0f69 fix 2026-08-08 18:09:40 +00:00
Marshal
aad9ebaf78 fix issue 2026-08-08 18:06:47 +00:00
Nathnael Wondisha
12eb07752e Merge pull request #1192 from Tria-plc/freight/nati-2
Freight/nati 2
2026-08-08 20:38:37 +03:00
Nathnael
352c873961 fix: add user email fall back 2026-08-08 15:38:00 +00:00
Hagernesh
337ff6cfe3 feat(freight): support direct truck-to-train export handover
Export cargo reaches a train two ways, but the platform only modelled
one. Direct truck-to-train cargo loads straight onto the wagon, never
enters a warehouse and so never has a GRN — yet assertExportReceivedWithGrn
required one before the carriage acceptance sheet could be issued or the
booking loaded from inside its schedule.

Adds export_handover_mode to freight.bookings (null = WAREHOUSE, so
existing bookings are unaffected) and teaches the shared gate to skip
DIRECT_TO_TRAIN. Both call sites are fixed by that single early return.

For direct bookings the carriage acceptance sheet builds its lines from
the booking's own containers, falling back to the declared bulk tonnage,
and is issuable as soon as the mode is chosen. Direct bookings are also
removed from the warehouse receive queue, since that cargo is never
coming to the shed.

Staff choose the mode from the booking detail page via a new endpoint
reusing bookings:operations. Switching to direct is refused once
warehouse inventory exists, so the two flows cannot cross.

Warehouse-then-train keeps every gate it had.
2026-08-08 15:16:31 +00:00