diff options
Diffstat (limited to 'lib/rfq-last/vendor')
| -rw-r--r-- | lib/rfq-last/vendor/vendor-detail-dialog.tsx | 184 |
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"> |
