Commit Graph

314 Commits

Author SHA1 Message Date
Marshal
d4c58e7d78 Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 23:56:07 +00:00
Marshal
e0c3044933 feat(train-sets): implement multi-locomotive support for train sets
- Added TrainSetLocomotive entity to link multiple locomotives to a train set.
- Updated TrainSet entity to include a OneToMany relationship with TrainSetLocomotive.
- Modified the train scheduling logic to require at least two locomotives for a train set.
- Enhanced the UI components to support selecting multiple locomotives.
- Introduced new permissions for viewing customs clearance.
- Updated migrations to create the train_set_locomotives table and backfill existing data.
- Implemented utility functions for managing train numbers based on cargo type and direction.
- Added tests for train number utilities to ensure correct functionality.
2026-06-24 23:54:45 +00:00
Marshal
15ab9f906e feat(bookings): enhance booking process with customs clearing and document handling
- Update bookings service to prioritize uploaded documents over profile snapshots.
- Refactor pricing data seeder to remove unused service types and streamline cargo type seeding.
- Add customs clearing information to BookingRouteServiceCard, displaying agent details if applicable.
- Extend BookingDetail type to include customs clearing options.
- Modify NewBookingPage to remove the scheduling step, integrating estimated shipment date into the route step.
- Update StepIndicator to reflect the new step structure.
- Revise document handling in StepDocuments to allow for user uploads while displaying onboarding documents.
- Adjust Step2ServiceType to manage customs clearing agent input based on service type.
- Implement shipment date input in Step4Route for one-time bookings.
- Revise Step8Review to reflect changes in document handling and scheduling.
2026-06-24 23:37:55 +00:00
marshal
49ae46934a fix(freight-api): call acceptBooking after payment completion 2026-06-24 12:16:03 +03:00
marshal
fd4cc8f080 Merge branch 'freight/develop' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 10:58:57 +03:00
natib21
f6ffea2b87 fix return value 2026-06-24 06:38:03 +00:00
marshal
baf12fd38e Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 04:33:15 +03:00
Marshal
d7688fce21 feat(freight-web): polish document clearance, general contracts list and detail UIs 2026-06-24 01:32:40 +00:00
marshal
9bd9ff99d1 Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 03:40:30 +03:00
Marshal
5be181aba8 feat(bookings): enhance operation request flow and add location selection for first/last mile 2026-06-24 00:35:37 +00:00
marshal
5d3aa1b66a Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 03:21:22 +03:00
Marshal
8ef7641048 feat(bookings): add contract validity window and customs clearing features
- Introduced contract validity days, valid from and valid until fields in the booking model.
- Updated booking acceptance logic to enforce validity window constraints.
- Added customs clearing agent and first/last mile pickup/delivery coordinates to the booking model.
- Implemented LocationPicker component for address selection with map integration using Leaflet.
- Enhanced booking review step to display customs clearing agent details.
- Updated API and DTOs to accommodate new booking fields.
- Added migration scripts for database schema changes.
- Implemented tests for booking acceptance and DTO transformations.
2026-06-24 00:21:01 +00:00
marshal
44b46c99e7 Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 02:49:34 +03:00
marshal
0379de8147 Merge branch 'freight_feature/profile' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 02:49:24 +03:00
Marshal
07cd7dc111 feat: enhance booking operations to support freight forwarder variants and improve consolidation handling 2026-06-23 23:48:45 +00:00
Marshal
9d81a2e1ee integrate global logistics staff user into seeder
refactor pricing data seeder to fold surcharge types into rates
update route meta subtitle to remove surcharge types
enhance RuleEngineFormDialog to support conditional field visibility
 remove surcharge types from URL constants and related services
add cargo leaf options query for bulk cargo type selection
update RuleEngineResourcePage to utilize cargo leaf options
modify resources configuration to remove surcharge types
implement migration to fold surcharge types into rates
create utility to derive legacy rate types from new rate structure
2026-06-23 23:15:32 +00:00
Marshal
2b4dfc6490 feat: implement staff price adjustment feature for bookings 2026-06-23 22:54:32 +00:00
marshal
13f0c92821 feat: add showFreeTextBox field to cargo type seeder and improve reference data validation in draft bookings seed 2026-06-24 01:22:53 +03:00
marshal
72df5ce689 Merge branch 'freight/develop' of github.com:Tria-plc/edr-platform into freight_feature/profile 2026-06-24 01:22:31 +03:00
Marshal
6485cbdd71 feat: implement document clearance workflow for bookings
- Added ClearanceCard component to display and manage clearance documents in ReadonlyBookingView.
- Introduced new API endpoints for clearance operations: getClearance, submitClearanceDocuments, and proceedToOperation.
- Created BookingDocumentReview entity and migration for document review status tracking.
- Developed GlClearancePage for Global Logistics to review and manage document submissions.
- Implemented utility functions for determining clearance setting codes based on trade direction and freight type.
- Added tests for booking transition clearance logic and clearance utility functions.
2026-06-23 21:33:34 +00:00
Marshal
080a08229d feat: enhance booking flow with multi-route support and onboarding document integration
- Introduced multi-route functionality in the booking process, allowing users to add additional routes for general contracts.
- Updated the StepDocuments component to display onboarding documents automatically attached to bookings.
- Refactored Step4Route to manage extra routes and quantities dynamically.
- Improved Step8Review to reflect the new onboarding document handling and updated submission readiness checks.
- Added new API endpoints and services for managing contract route lines and rejecting bookings.
- Removed the allowConsolidation field from the booking model as it is now managed by the system.
- Created migrations for the new contract route lines table and updated related entities.
2026-06-23 20:40:48 +00:00
natib21
dbb9870cb6 Merge branch 'freight/feature/vehicle_2' of github.com:Tria-plc/edr-platform into freight/feature/vehicle_2 2026-06-23 15:19:23 +00:00
natib21
448b7fe969 fix last first mile 2026-06-23 15:18:32 +00:00
Marshal
eb85f8d32d refactor booking priority logic and constants; adjust scoring thresholds and remove unused service types 2026-06-23 14:25:54 +00:00
Nathnael
cbbad02b29 fix: type error and other fixes 2026-06-23 13:14:06 +00:00
Marshal
6fd1b68389 enhance company approval workflow and TIN validation; add pending approval handling in booking and onboarding forms 2026-06-23 08:37:15 +00:00
Marshal
1d77f377f3 enhance service filtering and dashboard functionality with company profile support 2026-06-23 07:54:36 +00:00
ghost2023
fab05569d4 fix 2026-06-23 10:03:54 +03:00
Nathnael Wondisha
56968e0709 Merge branch 'freight/develop' into freight/style/ui-sync 2026-06-23 09:51:24 +03:00
Nathnael
a6f3fd5643 feat: finish company profile in the backoffice 2026-06-23 06:45:29 +00:00
marshal
02427f72f1 Merge pull request #243 from Tria-plc/freight_feature/profile
Freight feature/profile
2026-06-22 15:49:25 +03:00
Marshal
ad0043b580 feat: enhance service profile handling for customer companies 2026-06-22 12:11:10 +00:00
Marshal
3e45d694da changes 2026-06-22 11:54:10 +00:00
Marshal
b031ddb204 Merge branch 'freight/develop' of github.com:Tria-plc/edr-platform into freight_feature/priority 2026-06-22 11:43:38 +00:00
Marshal
ff039bd440 feat(bookings): update payment eligibility logic for general contracts and one-time bookings 2026-06-22 11:40:35 +00:00
yaschalew
78692c6b59 Merge branch 'freight/develop' of github.com:Tria-plc/edr-platform into freight/feature/vehicle_2 2026-06-22 14:23:59 +03:00
yaschalew
7f51f24a77 fix conflict 2026-06-22 14:23:43 +03:00
ghost2023
992ba8f55f fix: migration issue 2026-06-22 14:20:17 +03:00
Muluhabt
41c51b7986 Adding local packages 2026-06-22 11:53:17 +03:00
natib21
6b1bbd8e59 last mile 2026-06-22 07:58:56 +00:00
natib21
bee47b231a add column 2026-06-22 07:54:07 +00:00
natib21
00d722fa4f last mile 2026-06-22 07:49:47 +00:00
Hagernesh
0939202c8f Merge freight/develop into Warehouse_updates 2026-06-21 15:41:32 +00:00
Hagernesh
14b6219c9d chore(warehouse): comprehensive demo seeder — populate every queue coherently
WarehouseDemoSeeder creates one coherent WH-DEMO-* dataset so every tab shows data:
- Export Receive (3 PAID export bookings, no inventory)
- Export Ready To Load (3 READY_FOR_LOADING + PASSED)
- Export Loaded/Dispatch (2 LOADED)
- Import Arrive (1 ARRIVED Djibouti→Ethiopia train, 3 IN_TRANSIT bookings)
- Import Unloaded (3 UNLOADED)
- Import Dispatch (3 READY_FOR_PICKUP + PASSED)

Idempotent (sentinel WH-DEMO-RCV-1); dedicated refs so it never collides with SEED-* data.
Verified: all queues populated, dashboard shows 19 items across all 7 statuses.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 15:06:50 +00:00
Hagernesh
41d21edae5 feat(warehouse): Batch 10 — import post-inspection actions (pickup / last-mile / store / dispatch)
- READY_FOR_PICKUP transitions now → DELIVERED (customer pickup) OR DISPATCHED (dispatch out) OR
  STORED (operator-chosen storage) — pickup and dispatch kept separate. No auto-storage.
- GET /warehouse-inventory/import/pickup-ready-queue: READY_FOR_PICKUP import items (shared query
  with the unloaded queue, route-derived import filter)
- WarehouseInventoryTable: PICKUP_READY rows now show explicit Store + Dispatch buttons alongside
  the customer-pickup (release/deliver) next action; reuses the existing advance() dispatcher
- Import → Dispatch Queue tab renders pickup-ready items via InventoryWorkbench (all existing
  actions + modals intact) with Last Mile shown only when door delivery was requested
- Verified: pickup-ready item → Store → STORED; → Dispatch → DISPATCHED

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 14:38:23 +00:00
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
Marshal
dc708a2473 Refactor phone input handling across onboarding and settings forms
- Replaced PhoneInput component with ControlledPhoneField for better integration with react-hook-form.
- Updated validation for phone numbers using isValidPhone function to ensure proper formatting.
- Removed country code handling from forms, simplifying phone number management.
- Introduced new phone field component with consistent styling and behavior.
- Added phone number validation on the backend using class-validator.
- Removed unused phone utility functions and cleaned up related code.
2026-06-21 10:34:40 +00:00
Marshal
171e02cf7f feat(bookings): enhance booking filtering and pagination
- Added createdFrom and createdTo filters to BookingListFilterOptions and FilterBookingDto for date range filtering.
- Updated BookingsService and BookingsRepository to handle pagination metadata in responses.
- Enhanced BookingsController to return pagination metadata when no company is linked.
- Introduced ModeIndicator component to display current operational mode across various pages.
- Added ContainersCard and KeyFactsStrip components for detailed booking views.
- Implemented CargoModeCell, BookingTypeBadge, and PaymentBadge for consistent display of booking attributes.
- Updated MyBookings and ContractsList pages to include new filters and display enhancements.
2026-06-21 07:41:04 +00:00