summaryrefslogtreecommitdiff
path: root/lib/rfq-last/vendor
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rfq-last/vendor')
-rw-r--r--lib/rfq-last/vendor/vendor-detail-dialog.tsx184
1 files changed, 160 insertions, 24 deletions
diff --git a/lib/rfq-last/vendor/vendor-detail-dialog.tsx b/lib/rfq-last/vendor/vendor-detail-dialog.tsx
index f379b032..181e33c8 100644
--- a/lib/rfq-last/vendor/vendor-detail-dialog.tsx
+++ b/lib/rfq-last/vendor/vendor-detail-dialog.tsx
@@ -463,36 +463,172 @@ export function VendorResponseDetailDialog({
<CardContent>
<div className="grid grid-cols-2 gap-4">
<div className="space-y-3">
- <div className="flex items-center justify-between">
- <span className="text-sm text-muted-foreground">제안 통화</span>
- <Badge variant={response?.pricing?.vendorCurrency === data.currency ? "outline" : "default"}>
- {response?.pricing?.vendorCurrency || data.currency}
- </Badge>
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 통화</span>
+ <div className="flex items-center gap-2">
+ <Badge variant={response?.pricing?.vendorCurrency === data.currency ? "outline" : "default"}>
+ {response?.pricing?.vendorCurrency || data.currency}
+ </Badge>
+ {response?.pricing?.vendorCurrency && response.pricing.vendorCurrency !== data.currency && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response?.pricing?.vendorCurrency &&
+ response.pricing.vendorCurrency !== data.currency &&
+ response?.changeReasons?.currency && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.currency}
+ </p>
+ )}
</div>
- <div className="flex items-center justify-between">
- <span className="text-sm text-muted-foreground">제안 지급조건</span>
- <span className="font-medium">
- {response?.vendorTerms?.paymentTermsCode || data.paymentTermsCode}
- </span>
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 지급조건</span>
+ <div className="flex items-center gap-2">
+ <span className="font-medium">
+ {response?.vendorTerms?.paymentTermsCode || data.paymentTermsCode}
+ </span>
+ {response?.vendorTerms?.paymentTermsCode &&
+ response.vendorTerms.paymentTermsCode !== data.paymentTermsCode && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response?.vendorTerms?.paymentTermsCode &&
+ response.vendorTerms.paymentTermsCode !== data.paymentTermsCode &&
+ response?.changeReasons?.paymentTerms && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.paymentTerms}
+ </p>
+ )}
</div>
- <div className="flex items-center justify-between">
- <span className="text-sm text-muted-foreground">제안 인코텀즈</span>
- <span className="font-medium">
- {response?.vendorTerms?.incotermsCode || data.incotermsCode}
- </span>
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 인코텀즈</span>
+ <div className="flex items-center gap-2">
+ <span className="font-medium">
+ {response?.vendorTerms?.incotermsCode || data.incotermsCode}
+ </span>
+ {response?.vendorTerms?.incotermsCode &&
+ response.vendorTerms.incotermsCode !== data.incotermsCode && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response?.vendorTerms?.incotermsCode &&
+ response.vendorTerms.incotermsCode !== data.incotermsCode &&
+ response?.changeReasons?.incoterms && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.incoterms}
+ </p>
+ )}
</div>
+ {response?.vendorTerms?.taxCode && (
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 세금조건</span>
+ <div className="flex items-center gap-2">
+ <span className="font-medium">{response.vendorTerms.taxCode}</span>
+ {response.vendorTerms.taxCode !== data.taxCode && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response.vendorTerms.taxCode !== data.taxCode &&
+ response?.changeReasons?.tax && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.tax}
+ </p>
+ )}
+ </div>
+ )}
</div>
<div className="space-y-3">
- <div className="flex items-center justify-between">
- <span className="text-sm text-muted-foreground">제안 납기일</span>
- <span className="text-sm">
- {response?.vendorTerms?.deliveryDate
- ? format(new Date(response.vendorTerms.deliveryDate), "yyyy-MM-dd")
- : data.deliveryDate
- ? format(new Date(data.deliveryDate), "yyyy-MM-dd")
- : "-"}
- </span>
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 납기일</span>
+ <div className="flex items-center gap-2">
+ <span className="text-sm">
+ {response?.vendorTerms?.deliveryDate
+ ? format(new Date(response.vendorTerms.deliveryDate), "yyyy-MM-dd")
+ : data.deliveryDate
+ ? format(new Date(data.deliveryDate), "yyyy-MM-dd")
+ : "-"}
+ </span>
+ {response?.vendorTerms?.deliveryDate && data.deliveryDate &&
+ new Date(response.vendorTerms.deliveryDate).getTime() !== new Date(data.deliveryDate).getTime() && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response?.vendorTerms?.deliveryDate && data.deliveryDate &&
+ new Date(response.vendorTerms.deliveryDate).getTime() !== new Date(data.deliveryDate).getTime() &&
+ response?.changeReasons?.deliveryDate && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.deliveryDate}
+ </p>
+ )}
</div>
+ {response?.vendorTerms?.placeOfShipping && (
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 선적지</span>
+ <div className="flex items-center gap-2">
+ <span className="text-sm">{response.vendorTerms.placeOfShipping}</span>
+ {response.vendorTerms.placeOfShipping !== data.placeOfShipping && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response.vendorTerms.placeOfShipping !== data.placeOfShipping &&
+ response?.changeReasons?.shipping && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.shipping}
+ </p>
+ )}
+ </div>
+ )}
+ {response?.vendorTerms?.placeOfDestination && (
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 하역지</span>
+ <div className="flex items-center gap-2">
+ <span className="text-sm">{response.vendorTerms.placeOfDestination}</span>
+ {response.vendorTerms.placeOfDestination !== data.placeOfDestination && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response.vendorTerms.placeOfDestination !== data.placeOfDestination &&
+ response?.changeReasons?.shipping && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ 사유: {response.changeReasons.shipping}
+ </p>
+ )}
+ </div>
+ )}
+ {response?.vendorTerms?.contractDuration && (
+ <div className="space-y-1">
+ <div className="flex items-center justify-between">
+ <span className="text-sm text-muted-foreground">제안 계약기간</span>
+ <div className="flex items-center gap-2">
+ <span className="text-sm">{response.vendorTerms.contractDuration}</span>
+ {response.vendorTerms.contractDuration !== data.contractDuration && (
+ <Badge variant="outline" className="text-xs">변경</Badge>
+ )}
+ </div>
+ </div>
+ {response.vendorTerms.contractDuration !== data.contractDuration && (
+ <p className="text-xs text-muted-foreground text-right pl-4">
+ {response?.changeReasons?.contractDuration
+ ? `사유: ${response.changeReasons.contractDuration}`
+ : "변경 사유 없음"}
+ </p>
+ )}
+ </div>
+ )}
<div className="flex items-center justify-between">
<span className="text-sm text-muted-foreground">총 견적금액</span>
<span className="font-bold text-lg">