Hagernesh
040ba6d495
feat(warehouse): Batch 9 — Import Unloaded Queue + bulk destination inspection
...
- bulkMarkInspected: UNLOADED added to eligible statuses; IMPORT passed items now advance to
READY_FOR_PICKUP (pickup ready) instead of READY_FOR_LOADING (export unchanged)
- GET /warehouse-inventory/import/unloaded-queue: UNLOADED import items with the inspection-screen
columns (booking, customer, arrival, container, cargo type, weight, train schedule, inspection
status, pickup option, last-mile, current status); route-derived import filter
- Dedicated ImportUnloadedQueueTab replaces the Batch 8 workbench reuse: full spec columns,
Select All / Unselect All / selected count / Mark Selected as Inspected, plus per-row
Inspect / Report (InspectionReportModal) for damage / image / weight-loss detail
- Verified: import item UNLOADED → bulk inspect → READY_FOR_PICKUP (PASSED), drops out of queue
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-21 14:15:22 +00:00
Hagernesh
8b28a7c430
feat(warehouse): Batch 8 — Import Auto Unload Arrived Bookings (→ UNLOADED)
...
- New UNLOADED inventory status (train-arrival landing state) + transitions + unloaded_at column
(idempotent migration 1791000000003) + INVENTORY_UNLOADED activity type
- POST /warehouse-inventory/import/auto-unload-arrived-bookings { scheduleId }: validates ARRIVED
IMPORT train, unloads all eligible assigned bookings (IN_TRANSIT/ARRIVED_AT_*) into UNLOADED,
records unloadedAt + activity. Does NOT store and does NOT inspect. Reuses allocation + inventory
plumbing. Returns { unloadedCount, skippedCount, failedCount, results }.
- Arrive Queue "Auto Unload Arrived Bookings" button now calls the new endpoint (was per-booking loop)
- Import → Unloaded Queue tab: lists UNLOADED items via InventoryWorkbench (existing actions preserved:
Inspect/Store/Move/History) + a Last Mile action shown ONLY when booking requested door delivery
- Batch8TestDataSeeder: sets seed import train bookings to IN_TRANSIT (unload-eligible)
- Verified: auto-unload → 1 UNLOADED (unloadedAt set, not stored, not inspected); ineligible skipped;
idempotent re-run skips already-unloaded
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-21 12:57:29 +00:00
Hagernesh
35c3341baf
feat(warehouse): Batch 7 — Import Arrive Queue (arrived import trains, read-only)
...
- SchedulingReadFacade: importArriveQueue() + importTrainDetail() — read-only SELECTs only,
direction derived from origin/destination station countries (route-based), so EXPORT/DOMESTIC
trains are excluded. Per-train booking/container/cargo counts.
- GET /warehouse-inventory/import/arrive-queue + /import/trains/:scheduleId/items
- Import tab restructured into sub-tabs: Arrive Queue (implemented) / Unloaded Queue /
Dispatch Queue (placeholders for next batch)
- ImportArriveQueueTab: train table (schedule id, train #, route, origin, destination, arrival,
bookings/containers/cargoes, status) with Open (expandable assigned-items detail) + Auto Unload
(reuses existing per-booking unload endpoint over the train's bookings)
- Batch7TestDataSeeder: 1 arrived IMPORT train (SEED-IMP-001) + 1 arrived EXPORT train
(SEED-EXP-001, proves exclusion); idempotent
- Train schedule service logic untouched (facade is SELECT-only)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-21 11:15:31 +00:00
Dagimassefa
e6d3e2401b
feat(backoffice): integrate IAM user management with host auth adapter and freight theming
2026-06-21 12:16:48 +03:00
Dagimassefa
8111606e89
switch user management to package implmentation
2026-06-21 12:11:35 +03:00
marshal
dd07442b92
feat: switch API base URL to localhost for development and fix shipping line ID handling in booking form
...
- Changed API_BASE_URL from production to localhost in both backoffice and portal configurations.
- Updated booking form to use shipping line ID instead of name throughout the flow.
- Fixed Step1ContractType to set shipping line ID when loading existing booking.
- Updated Step4Route to key shipping line options by ID as required by API.
- Enhanced Step8Review to display shipping line name by
2026-06-21 09:38:57 +03:00
Hagernesh
a8bc5b19de
feat(warehouse): fetch all PAID bookings in one call, classified IMPORT/EXPORT by route
...
- eligibleBookings(direction?) now returns all import+export bookings when direction omitted
(DOMESTIC excluded); per-direction filter preserved for backward compatibility
- GET /warehouse-inventory/eligible-bookings (no query) returns the combined set
- Frontend: single shared useEligibleBookings() query; both Receive tabs filter client-side
by route-derived direction, so only one HTTP request fires
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-20 20:15:26 +00:00
Hagernesh
0ab508e377
feat(warehouse): Batch 6 — Export Loaded queue + Dispatch Queue with bulk dispatch
...
- GET /warehouse-inventory/loaded-export: EXPORT+LOADED items (route-derived direction)
- POST /warehouse-inventory/bulk-dispatch-export: reuses existing dispatch() transition
(LOADED → DISPATCHED, capacity freed, movement/activity logged); skips non-LOADED/non-EXPORT
- Extracted shared exportInventoryByStatus() helper (readyToLoadExport now delegates to it)
- Frontend LoadedExportTab serves both Loaded (read-only) and Dispatch Queue (dispatchable)
sub-tabs with Dispatch / Dispatch Selected / Dispatch All + per-row Dispatch
- Replaces "Loaded" and "Dispatch Queue — coming in the next batch" placeholders
- Train/schedule flow (DISPATCHED → IN_TRANSIT) unchanged
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-20 20:04:18 +00:00
Hagernesh
806fc4a8ca
feat(warehouse): Batch 5 — Export Ready To Load queue + Auto Load Ready Items
...
- GET /warehouse-inventory/ready-to-load-export: EXPORT+PASSED+READY_FOR_LOADING items
with booking details (customer, container, cargo type, route, inspection status)
- Direction filtering via deriveTradeDirection (route-based, not stored field)
- Frontend ReadyToLoadTab: full table (checkbox, booking ref/id, customer, container,
cargo type, weight, route, inspection status, current status) with selection
- Auto Load Ready Items button reuses existing POST /load-passed-export endpoint
- Replaces "Ready To Load — coming in the next batch" placeholder in Export sub-tabs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-20 18:03:11 +00:00
Hagernesh
50c6381341
feat(warehouse): Batch 3+4 — export receive-selected label + bulk-mark-inspected workflow
...
- BulkReceiveModal: Receive Selected shows "received at facility" for EXPORT
- Export inspection: POST /warehouse-inventory/bulk-mark-inspected reuses WarehouseInspectionService.create
- EXPORT items advance to READY_FOR_LOADING after inspection PASSED
- InventoryWorkbench: selection state + "Mark Selected as Inspected" bulk button
- WarehouseInventoryTable: optional Checkbox column for bulk selection
- Route-based direction in eligibleBookings, bulkReceive, getBookingDirection
- New BulkInspectDto; service + controller wired
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-20 17:52:01 +00:00
natib21
a3f9eabfdd
add checkbox
2026-06-20 14:25:31 +00:00
natib21
db5e1568df
add checkbox
2026-06-20 14:19:02 +00:00
natib21
b28cf6ae91
fix slip
2026-06-20 14:00:34 +00:00
natib21
cb93576500
fix slip
2026-06-20 13:45:02 +00:00
natib21
2c13b3a60b
fix slip
2026-06-20 13:40:58 +00:00
natib21
7f389a4f42
fix slip
2026-06-20 13:38:01 +00:00
natib21
3a86a63215
fix slip
2026-06-20 13:31:29 +00:00
natib21
35b057da1d
fix
2026-06-20 13:25:32 +00:00
natib21
7dedd3ea6f
last mile
2026-06-20 13:14:39 +00:00
natib21
6462ea8ad1
last mile
2026-06-20 13:08:35 +00:00
natib21
b3f3faad72
last mile
2026-06-20 13:05:00 +00:00
natib21
4e926c0d39
last mile
2026-06-20 12:46:02 +00:00
natib21
28dd7f9c72
last mile
2026-06-20 12:36:13 +00:00
Nathnael
3dfb8d99ba
style: finish revamp of the warehouse page
2026-06-20 10:45:22 +00:00
Nathnael
b7b03db945
style: warehouse revamp
2026-06-20 10:30:31 +00:00
Hagernesh
b7a831b063
feat(warehouse): route-based receive direction + Export Receive Queue (Batch 2)
...
- Direction derived from route via existing deriveTradeDirection (eligible-bookings,
bulk receive guard, getBookingDirection) instead of stored trade_direction
- Export tab sub-tabs (Receive Queue + Ready-to-Load/Loaded/Dispatch placeholders)
- Receive Queue: full column set + per-row Receive; eligible-bookings adds customerId
- create/update warehouse: map DB errors to 400; dashboard: distinct per-status colors
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 10:26:50 +00:00
Nathnael
138ac5b47d
style:wip dashboard ui revamp
2026-06-20 10:20:38 +00:00
natib21
b47fb2c475
fix data table
2026-06-20 09:54:05 +00:00
natib21
f620547b56
fix data table
2026-06-20 09:42:55 +00:00
natib21
963392edb3
fix data table
2026-06-20 09:38:12 +00:00
natib21
abccdffc38
fix data table
2026-06-20 09:33:04 +00:00
natib21
4de2c512f3
fix data table
2026-06-20 09:26:56 +00:00
Nathnael
e4955c75de
style: revamp the backaoffice shell
2026-06-20 09:25:23 +00:00
natib21
739442c9bc
fix data table
2026-06-20 09:19:08 +00:00
natib21
f312a79ca8
fix data table
2026-06-20 09:17:03 +00:00
natib21
926e72ad74
fix data table
2026-06-20 09:15:18 +00:00
natib21
b6e0a34ea8
fix data table
2026-06-20 09:13:27 +00:00
natib21
3793d2004f
fix data table
2026-06-20 09:04:01 +00:00
hagiye
a8cdbdf386
Warehouse Enhancemendt
2026-06-20 11:49:22 +03:00
natib21
baa37968c8
fix data tables
2026-06-20 08:33:04 +00:00
Hagernesh
0005b2edb3
feat(warehouse): Receive Import/Export tabs with bulk receive + load-passed-export
...
- Backend: GET eligible-bookings?direction, POST receive-bulk, POST load-passed-export
(reuse autoUnload/autoLoad patterns; no train-schedule/wagon logic changed)
- Frontend: ReceiveInventoryModal split into Import/Export tabs with eligible PAID
bookings table, select-all/bulk receive, and Load Passed Export Items button
- Single-booking receive and all existing inventory row actions preserved
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 08:29:59 +00:00
natib21
d7a3a057ce
fix data tables
2026-06-20 08:26:38 +00:00
natib21
cde5525ed9
fix data table
2026-06-20 08:01:22 +00:00
natib21
21884b674e
fix data table
2026-06-20 07:57:49 +00:00
natib21
555ff9d897
fix data table
2026-06-20 07:55:41 +00:00
natib21
97feb7b66b
fix data table
2026-06-20 07:53:23 +00:00
natib21
6c640f3dc7
fix data table
2026-06-20 07:48:11 +00:00
natib21
c71acce6b5
fix data table
2026-06-20 07:46:45 +00:00
natib21
3d81318fc5
fix data table
2026-06-20 07:44:34 +00:00
natib21
fcd112cc29
fix data table
2026-06-20 07:40:47 +00:00