diff --git a/negodata/backend/services/quotation/queries.py b/negodata/backend/services/quotation/queries.py index 1d5ea0f..5216303 100644 --- a/negodata/backend/services/quotation/queries.py +++ b/negodata/backend/services/quotation/queries.py @@ -188,6 +188,7 @@ class QueriesMixin: end_time=r.end_time, reject_reason=r.reject_reason, reject_price=r.reject_price, + contract_price=r.contract_price, reject_delivery_type=r.reject_delivery_type, email_sent_at=r.email_sent_at, custom=r.custom, diff --git a/negodata/front/src/features/quotations/components/QuotationDetailSheet/ResultSummaryBand.tsx b/negodata/front/src/features/quotations/components/QuotationDetailSheet/ResultSummaryBand.tsx index 804b497..b36e9bc 100644 --- a/negodata/front/src/features/quotations/components/QuotationDetailSheet/ResultSummaryBand.tsx +++ b/negodata/front/src/features/quotations/components/QuotationDetailSheet/ResultSummaryBand.tsx @@ -9,6 +9,7 @@ import { awardPrice, buildQuotationResult, ceilingPriceOf, + contractPrice, is1v1, sessionStatusLabel, CHAIN_ROUND_STATE_LABEL, @@ -47,11 +48,13 @@ export function ResultSummaryBand({ const showManualBadge = quotation.award_type === AwardType.MANUAL; const reason = awardMeta(quotation)?.reason ?? ''; - // 가격을 제출한 협력사만 점으로. 낙찰자는 강조. + // 가격을 제출한 협력사만 점으로. 낙찰자는 강조하고, 낙찰자 값은 확정 계약가(직접 낙찰이면 계약가)를 쓴다 + // — 제출가(거부가 등)로 찍으면 레일 낙찰가와 어긋난다. const bids: SpectrumBid[] = sessionViews.flatMap((s) => { - const value = awardPrice(s); + const isWinner = winnerId != null && s.supplier_id === winnerId; + const value = isWinner ? contractPrice(s) : awardPrice(s); if (value == null) return []; - return [{ name: s.supplier_name, value, isWinner: winnerId != null && s.supplier_id === winnerId }]; + return [{ name: s.supplier_name, value, isWinner }]; }); return (