mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-08 00:45:41 +00:00
Implement intercity document handling and rejection notes for contracts
This commit is contained in:
@@ -409,6 +409,10 @@ export default function ContractDetailPage() {
|
||||
|
||||
const canSign = contract.status === "CONTRACT_READY";
|
||||
const customsPath = contract.customsClearingEnabled;
|
||||
// Intercity (DOMESTIC) has no customs — the document gate collects the
|
||||
// admin-configured intercity set, reviewed by Operations.
|
||||
const isIntercity = contract.tradeDirection === "DOMESTIC";
|
||||
const docNoun = isIntercity ? "intercity documents" : "clearance documents";
|
||||
// Only the NON-customs (Path A) customer books himself — once the contract is
|
||||
// executed after self-clearance. Customs (Path B) bookings are created by
|
||||
// Global Logistics on the customer's behalf, so the customer gets no booking
|
||||
@@ -586,8 +590,8 @@ export default function ContractDetailPage() {
|
||||
onClick={clearanceModal.open}
|
||||
>
|
||||
{contract.status === "CLEARANCE_UNDER_REVIEW"
|
||||
? "Manage clearance documents"
|
||||
: "Upload clearance documents"}
|
||||
? `Manage ${docNoun}`
|
||||
: `Upload ${docNoun}`}
|
||||
</Button>
|
||||
)}
|
||||
</Group>
|
||||
@@ -852,7 +856,9 @@ export default function ContractDetailPage() {
|
||||
<Text fw={700} fz={15} c={INK}>
|
||||
{customsPath
|
||||
? "Customs clearance shipment"
|
||||
: "Customs clearance required"}
|
||||
: isIntercity
|
||||
? "Intercity documents required"
|
||||
: "Customs clearance required"}
|
||||
</Text>
|
||||
</Group>
|
||||
<Text fz={13} c="dimmed">
|
||||
@@ -862,11 +868,17 @@ export default function ContractDetailPage() {
|
||||
: contract.status === "CLEARANCE_UNDER_REVIEW"
|
||||
? "Global Logistics is reviewing your clearance documents. Re-upload any queried documents to proceed."
|
||||
: "Your documents are cleared. You can now create a shipment booking under this contract."
|
||||
: contract.status === "AWAITING_CLEARANCE_DOCUMENTS"
|
||||
? "This service does not include EDR customs clearance. Clear the cargo yourself and upload your clearance documents so the Operations team can review them before you book a shipment."
|
||||
: contract.status === "CLEARANCE_UNDER_REVIEW"
|
||||
? "The Operations team is reviewing your clearance documents. Re-upload any queried documents to proceed."
|
||||
: "Your clearance documents are approved. You can now create a shipment booking under this contract."}
|
||||
: isIntercity
|
||||
? contract.status === "AWAITING_CLEARANCE_DOCUMENTS"
|
||||
? "Upload the required intercity documents so the Operations team can review them before you book a shipment."
|
||||
: contract.status === "CLEARANCE_UNDER_REVIEW"
|
||||
? "The Operations team is reviewing your intercity documents. Re-upload any queried documents to proceed."
|
||||
: "Your intercity documents are approved. You can now create a shipment booking under this contract."
|
||||
: contract.status === "AWAITING_CLEARANCE_DOCUMENTS"
|
||||
? "This service does not include EDR customs clearance. Clear the cargo yourself and upload your clearance documents so the Operations team can review them before you book a shipment."
|
||||
: contract.status === "CLEARANCE_UNDER_REVIEW"
|
||||
? "The Operations team is reviewing your clearance documents. Re-upload any queried documents to proceed."
|
||||
: "Your clearance documents are approved. You can now create a shipment booking under this contract."}
|
||||
</Text>
|
||||
{contract.status !== "CLEARANCE_READY_FOR_BOOKING" && (
|
||||
<Button
|
||||
@@ -1581,7 +1593,7 @@ export default function ContractDetailPage() {
|
||||
onClose={clearanceModal.close}
|
||||
title={
|
||||
<Text fw={700} fz={16}>
|
||||
Clearance documents
|
||||
{isIntercity ? "Intercity documents" : "Clearance documents"}
|
||||
</Text>
|
||||
}
|
||||
size="xl"
|
||||
|
||||
@@ -254,6 +254,14 @@ export function ContractStepBanner({ contract }: ContractStepBannerProps) {
|
||||
</Text>
|
||||
</Group>
|
||||
)}
|
||||
{contract.status === "REJECTED" && contract.latestRejectionNote && (
|
||||
<Text
|
||||
fz={12.5}
|
||||
style={{ color: "#B42318", whiteSpace: "pre-wrap", width: "100%" }}
|
||||
>
|
||||
Reason: {contract.latestRejectionNote}
|
||||
</Text>
|
||||
)}
|
||||
{expirySoon && (
|
||||
<Group gap={6} wrap="nowrap" align="center">
|
||||
<AlertTriangle size={14} color="#9A6700" />
|
||||
|
||||
Reference in New Issue
Block a user