Commit Graph

852 Commits

Author SHA1 Message Date
Hagernesh
2e22b72e27 feat(warehouse): assemble dashboard cockpit + server-side throughput series
- WarehouseDashboardPage now composes the ops KPI strip, lifecycle cards, flow
  charts, zone-occupancy heatmap and demurrage/accrual exceptions into one
  control-tower view; drop the redundant lifecycle donut.
- New GET /warehouse-inventory/throughput (date_trunc time series) replaces the
  client-side buildTrend that downloaded the entire inventory list to bucket it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 12:27:53 +00:00
marshal
7700aa6358 Merge pull request #701 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-15 13:32:37 +03:00
Marshal
c71a0043d6 implement wagon maintenance feature: add functionality to detach wagons and move them to maintenance status 2026-07-15 10:32:09 +00:00
Marshal
11771e5f92 remove reopen delay minutes from global rules and update related types
- Removed the  field from  and related components.
- Updated  to reflect the removal of the reopen delay input field.
- Modified  to include new train number fields:  and .
- Added  interface to manage active schedules with trade direction.
- Introduced  interface to track wagon shortages in bookings.
- Updated  logic to ensure consistent UI state representation.
- Created migrations to drop the  column and add  and  columns to the  table.
- Added tests for the new booking window display logic and wagon planning functionality.
2026-07-15 09:13:02 +00:00
Marshal
9be7f356f0 enhance train scheduling logic to exclude cancelled trains and refine window filtering 2026-07-15 07:07:10 +00:00
Hagernesh
7e934b3433 feat(warehouse,last-mile): truck load size rule, dedup last-mile, driver-required + arrival prefill
Truck loading:
- loadTruck enforces max 2 containers / one 40ft (two 20ft) and auto-marks an
  assigned truck arrived on load; container-items payload + modal expose
  container size with a client-side selection cap.
- Show "#x containers pending assignment" in the portal truck card and the
  backoffice container modal.

Last-mile:
- create() is idempotent — return the existing record for a booking instead of
  inserting a duplicate delivery row (fixed the same booking showing twice in
  Assign-Mile).
- setVehicles/update reject a truck with no assigned driver; the Assign toast
  now surfaces the reason.
- New GET /last-mile/booking/:id/arrival-trucks returns assigned EDR trucks with
  driver details; ReleaseOrderModal fetches and auto-fills them so an assigned
  EDR truck no longer reads as "not assigned yet".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 14:16:45 +00:00
Marshal
5cffe2860c fix train builder and consolidation 2026-07-14 13:49:39 +00:00
Marshal
01459bd73c train 2026-07-14 13:11:38 +00:00
Marshal
b5a97d344a train 2026-07-14 13:10:00 +00:00
Hagernesh
65f6015c5e feat(warehouse): guard warehouse/inventory/fee endpoints with RBAC permissions
Apply JwtGuard + FreightPermissionGuard (via @BookingStaff) to 83 staff
endpoints across the 8 warehouse controllers, using existing
edr_freight_app:warehouse* permissions: warehouses/yards/zones,
inventory receive/move/load/unload/dispatch/gate-pass/release/deliver/inspect
(incl. import & export queues), allocation + fee rules (demurrage/storage/
double-handling), accrual dashboard + acknowledge, and fee invoices.

Customer-portal endpoints (booking-scoped documents, approve-delivery,
portal fee-invoice view/document/receipt/pay-online) are intentionally left
unguarded — they need a customer-ownership guard, not staff permissions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 12:54:41 +00:00
Hagernesh
a367306565 feat(warehouse): accrual acknowledge/snooze + zone weight fix, handover signer, portal delivery
Accrual dashboard:
- warehouse_accrual_acks table (migration 2140) + acknowledge/unacknowledge
  endpoints; dashboard rows carry acknowledged/snoozeUntil, acked items sink
  and are skipped by the alert cron. Row menu: mark reviewed / snooze 3d / 7d /
  un-acknowledge; acked rows dimmed with a "Reviewed" badge.
- Fix zone weight occupancy: normalise inventory kg vs zone-capacity tonnes.

Handover (rode along, shared files):
- Require signer full name on delivery handover (signature optional);
  migration 2130 adds signer_name.

Portal delivery/docs (rode along, shared files):
- Approve-delivery name capture, booking-scoped GRN/release docs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 12:54:41 +00:00
Hagernesh
d9fe79e160 accrual dashboard for port and terminal or warehouse related documents 2026-07-14 12:54:40 +00:00
Hagernesh
a542a13893 wAREHOUSE kPI strips 2026-07-14 12:54:40 +00:00
marshal
f7f311660b Merge pull request #672 from Tria-plc/freight_feature/usermanagement
train
2026-07-14 14:09:18 +03:00
Marshal
6d0cf50b4d train 2026-07-14 11:06:49 +00:00
marshal
42f948b835 Merge pull request #659 from Tria-plc/freight_feature/usermanagement
enhance contract clearance and train scheduling logic; add filters fo…
2026-07-14 09:54:00 +03:00
Marshal
957a185a4d enhance contract clearance and train scheduling logic; add filters for clearance documents and improve booking validation 2026-07-13 21:40:10 +00:00
Hagernesh
4e8d35a7fb Warehouse zone occupancy heatmap
Visualize live per-zone occupancy on the warehouse detail page.
2026-07-13 12:09:43 +00:00
marshal
1034756bab Merge pull request #647 from Tria-plc/freight_feature/usermanagement
update train scheduling logic to clear trainScheduleId when unassigni…
2026-07-13 14:48:06 +03:00
Marshal
3fe4ea72ac update train scheduling logic to clear trainScheduleId when unassigning bookings 2026-07-13 11:47:27 +00:00
marshal
19fc480cc1 Merge pull request #646 from Tria-plc/freight_feature/usermanagement
improve group window
2026-07-13 14:08:10 +03:00
Marshal
9e748d6291 improve group window 2026-07-13 11:07:14 +00:00
Hagernesh
f655289eec :Merge branch 'dev' of github.com:Tria-plc/edr-platform into uienhancement
Please enter a commit message to explain why this merge is necessary,
:qa!
2026-07-13 09:57:21 +00:00
Hagernesh
ae30441f07 Truck assignment for Export before loading and import after arrival 2026-07-13 09:53:33 +00:00
marshal
43cd0223aa Merge pull request #642 from Tria-plc/freight_feature/usermanagement
add wagon allocation snapshot to train schedules
2026-07-13 11:57:24 +03:00
Marshal
a4ccdb1173 add wagon allocation snapshot to train schedules 2026-07-13 08:56:06 +00:00
marshal
2e87e60776 Merge pull request #641 from Tria-plc/freight_feature/usermanagement
enhance booking and contract management features
2026-07-13 09:44:36 +03:00
Marshal
95b17b2729 enhance booking and contract management features
- Added support for comma-separated ops-clearance lifecycle statuses in contracts service.
- Display reference number in Upcoming Windows section if available.
- Updated badge label for document requirements in constants.
- Improved logic for identifying phased bookings in BookingClearanceWorkflowBanner.
- Introduced tabs in ReadonlyBookingView for better organization of booking details.
- Enhanced KeyFactsStrip to reflect the general nature of drawdown bookings.
- Updated status titles and descriptions for clarity in StatusHero and constants.
- Added contractKind field to IBooking interface for better identification of booking types.
- Created DocumentsTab component to manage and display all relevant documents for bookings.
2026-07-13 06:43:17 +00:00
marshal
3c3a7595a2 Merge pull request #640 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-13 08:13:01 +03:00
Marshal
e7e5b93ffc add customs clearing filter and enhance clearance documents page for non-customs contracts 2026-07-12 14:14:21 +00:00
Marshal
84ba56f7d0 implement batch board notification system for schedule changes and updates 2026-07-12 12:01:05 +00:00
Marshal
4b7f6d2548 enhance contract and booking services with server-side search and validation improvements
- Added  parameter to  and  for server-side free-text search on contract reference, company name, and booking details.
- Introduced new validation errors in  for container clashes and space issues when creating bookings.
- Implemented paginated dropdown settings retrieval in .
- Updated  to fetch active yards using a new method that handles pagination.
- Enhanced  with a  method to fetch all records by walking through pages.
- Refactored  to support filtering and pagination in schedule listings.
- Improved  to return a paginated list of facilities.
- Updated UI components in  and  to utilize debounced search inputs for better performance.
- Added alerts in  to inform users about booking constraints related to splits and capacity.
- Enhanced  to display notifications for split bookings and capacity usage.
2026-07-12 10:51:31 +00:00
Hagernesh
da44752c70 SELECT BOX 2026-07-11 08:30:39 +00:00
Hagernesh
eec3d1863a Cleaned warehouse related UI and made all 15 pages consisitent 2026-07-11 08:30:39 +00:00
marshal
d70e67ae4f Merge pull request #616 from Tria-plc/freight_feature/usermanagement
Freight feature/usermanagement
2026-07-11 09:42:56 +03:00
yaschalew
2b64d835dc Merge branch 'dev' of github.com:Tria-plc/edr-platform into freight/feature/user_management_UI 2026-07-11 08:35:09 +03:00
Marshal
dd87c2a722 wagon work space, container validation 2026-07-10 23:29:28 +00:00
Marshal
5d8658b5d6 fix contrat,wagon allocation wehn a booking is split 2026-07-10 22:27:58 +00:00
Marshal
1121e9ce82 Implement clearance-first booking flow and completion process for customs contracts 2026-07-10 21:51:59 +00:00
Marshal
9ed473c309 Implement clearance-first booking flow and completion process for customs contracts 2026-07-10 18:56:39 +00:00
marshal
415e3ea2ef Merge pull request #608 from Tria-plc/freight_feature/usermanagement
general contrat
2026-07-10 21:00:01 +03:00
Marshal
b50075dc83 general contrat 2026-07-10 17:57:27 +00:00
natib21
15fc21a6c9 gps 2026-07-10 15:23:49 +00:00
Nathnael
625b33733d Merge branch 'dev' into freight/feat/fixes-v1 2026-07-10 12:22:41 +00:00
marshal
c6d79253fb Merge pull request #600 from Tria-plc/freight_feature/usermanagement
update booking logic for train schedules and customs contracts
2026-07-10 15:14:27 +03:00
Marshal
a58650bdfb update booking logic for train schedules and customs contracts 2026-07-10 12:13:08 +00:00
Nathnael
f737e401b3 fix: the issue in the sheets file 2026-07-10 12:10:17 +00:00
Hagernesh
267ccbca12 Merge branch 'dev' of github.com:Tria-plc/edr-platform into Truckdetantion 2026-07-10 11:39:14 +00:00
Hagernesh
9d147fbe26 fix(warehouses): truck-arrival crash on duplicate containers; auto-GRN on import unload
Truck Arrival died with "[@mantine/core] Duplicate options are not supported"
when a booking carried the same container number on two container lines (the
unit uniqueness is per line, not per booking):
- bookingContainerWeights now GROUPs BY container number (MAX weight)
- the weighing modal dedupes both the containers MultiSelect and the
  assigned-trucks Select defensively, so bad data degrades instead of
  crashing the whole page

Import GRN is now issued automatically when the arrived train is unloaded:
autoUnloadArrivedBookings stamps GRN-IMPORT-<date>-<booking> on both the
create and update paths (never overwrites an existing GRN). The per-row GRN
button in the import queue lights up with no extra clicks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 11:13:21 +00:00
Hagernesh
00875dd2f4 fix(billing): fallback PDF paginates long tables instead of truncating
The marshalling manifest cut off at one page ("... 10 more row(s) not
shown") because the fallback drew rows only until it hit the bottom band.
Now the table flows across as many pages as it needs:

- page 1 keeps the full header + summary tiles; continuation pages get a slim
  "(continued — page N)" header and a re-drawn table header
- the verification notice and signature lines stay pinned to the final page,
  moving to a fresh page when rows run too deep for the bottom band
- the copy watermark repeats on every page of its copy
- a 12-page safety cap keeps the old truncation note as a last resort

Verified by standalone render: 50-row manifest -> 2 pages, all 50 rows, no
truncation; 5-row doc stays 1 page; two-copy freight order still renders 2
watermarked pages.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 11:13:21 +00:00