- Created CustomersPage component to display a list of companies with search and pagination features.
- Added mock data for companies, including various statuses and profiles.
- Implemented a service layer to simulate API calls for fetching company data, bookings, documents, and payments.
- Defined TypeScript types for company and related entities to ensure type safety.
- Integrated Mantine components for UI consistency and improved user experience.
Warehouse updates
Warehouse_updates includes the warehouse operations improvements for import and export workflows.
Main updates:
- Added Import and Export separation for warehouse receive operations.
- Added Export Receive Queue based on paid booking references.
- Added multi-select support for export paid bookings/items.
- Added Select All and Unselect All behavior for warehouse operation tables.
- Added bulk receive flow for selected export bookings/items.
- Preserved existing warehouse actions after receiving, including View, Movement, Inspect, Store, Reserve, and Dispatch.
- Added Export Ready To Load flow after inspection is passed.
- Added Auto Load button for export items that are already READY_FOR_LOADING.
- Ensured Auto Load only processes eligible export items and does not change train schedule logic.
- Added Import Arrive Queue for arrived import trains.
- Added Auto Unload flow for arrived import train bookings/items.
- Added Import Unloaded Queue with booking, customer, arrival, container, and cargo details.
- Added bulk Mark Selected as Inspected flow while keeping individual Inspect / Report action.
- Added Last Mile action visibility for import bookings/items that requested last-mile service.
- Kept import storage as a manual action only when customer pickup or last-mile does not happen.
- Preserved existing warehouse APIs and reused existing configuration where possible.
Workflow covered:
EXPORT:
Paid booking reference
→ Receive Selected
→ Manual/Bulk Inspection
→ Ready To Load
→ Auto Load
→ Loaded
→ Dispatch Queue
IMPORT:
Arrived train
→ Auto Unload Arrived Bookings
→ Unloaded Queue
→ Manual/Bulk Inspection
→ Pickup Ready
→ Customer Pickup / Last Mile / Store if needed
Important:
- Train schedule logic was not changed.
- Rescheduling logic was not changed.
- Wagon assignment logic was not changed.
- Existing warehouse row actions were preserved.
- 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>
- 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.