summaryrefslogtreecommitdiff
path: root/lib/bidding/vendor
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 11:16:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-24 11:16:32 +0000
commita8674e6b91fb4d356c311fad0251878de154da53 (patch)
tree8bdf91ef99b2628f319df37912ccede1e2f5009c /lib/bidding/vendor
parent68160eba15a2c8408329b6e14b94d5e44fa7e3ab (diff)
(최겸) 구매 입찰 수정(폐찰, 낙찰 결재 기능 추가 등)
Diffstat (limited to 'lib/bidding/vendor')
-rw-r--r--lib/bidding/vendor/components/pr-items-pricing-table.tsx8
-rw-r--r--lib/bidding/vendor/partners-bidding-detail.tsx27
-rw-r--r--lib/bidding/vendor/partners-bidding-list-columns.tsx13
3 files changed, 35 insertions, 13 deletions
diff --git a/lib/bidding/vendor/components/pr-items-pricing-table.tsx b/lib/bidding/vendor/components/pr-items-pricing-table.tsx
index efa10af2..22051a13 100644
--- a/lib/bidding/vendor/components/pr-items-pricing-table.tsx
+++ b/lib/bidding/vendor/components/pr-items-pricing-table.tsx
@@ -294,10 +294,10 @@ export function PrItemsPricingTable({
<TableHead>자재내역</TableHead>
<TableHead>수량</TableHead>
<TableHead>단위</TableHead>
- <TableHead>구매단위</TableHead>
+ <TableHead>가격단위</TableHead>
<TableHead>중량</TableHead>
<TableHead>중량단위</TableHead>
- <TableHead>가격단위</TableHead>
+ <TableHead>구매단위</TableHead>
<TableHead>SHI 납품요청일</TableHead>
<TableHead>견적단가</TableHead>
<TableHead>견적금액</TableHead>
@@ -336,12 +336,12 @@ export function PrItemsPricingTable({
{item.quantity ? parseFloat(item.quantity).toLocaleString() : '-'}
</TableCell>
<TableCell>{item.quantityUnit || '-'}</TableCell>
- <TableCell>{item.purchaseUnit || '-'}</TableCell>
+ <TableCell>{item.priceUnit || '-'}</TableCell>
<TableCell className="text-right">
{item.totalWeight ? parseFloat(item.totalWeight).toLocaleString() : '-'}
</TableCell>
<TableCell>{item.weightUnit || '-'}</TableCell>
- <TableCell>{item.priceUnit || '-'}</TableCell>
+ <TableCell>{item.purchaseUnit || '-'}</TableCell>
<TableCell>
{item.requestedDeliveryDate ?
formatDate(item.requestedDeliveryDate, 'KR') : '-'
diff --git a/lib/bidding/vendor/partners-bidding-detail.tsx b/lib/bidding/vendor/partners-bidding-detail.tsx
index 0215bcb6..504fc916 100644
--- a/lib/bidding/vendor/partners-bidding-detail.tsx
+++ b/lib/bidding/vendor/partners-bidding-detail.tsx
@@ -854,7 +854,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
<Label className="text-sm font-medium text-muted-foreground mb-2 block">제출 마감 정보</Label>
{(() => {
const now = new Date()
- const deadline = new Date(biddingDetail.submissionEndDate)
+ const deadline = new Date(biddingDetail.submissionEndDate.toISOString().slice(0, 16).replace('T', ' '))
const isExpired = deadline < now
const timeLeft = deadline.getTime() - now.getTime()
const daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24))
@@ -873,7 +873,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
<Calendar className="w-5 h-5" />
<span className="font-medium">제출 마감일:</span>
<span className="text-lg font-semibold">
- {formatDate(biddingDetail.submissionEndDate, 'KR')}
+ {biddingDetail.submissionEndDate.toISOString().slice(0, 16).replace('T', ' ')}
</span>
</div>
{isExpired ? (
@@ -1025,7 +1025,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
{/* <div>
- <Label className="text-muted-foreground">연동제 적용</Label>
+ <Label className="text-muted-foreground">하도급법 적용여부</Label>
<div className="mt-1 p-3 bg-muted rounded-md">
<p className="font-medium">{biddingConditions.isPriceAdjustmentApplicable ? "적용 가능" : "적용 불가"}</p>
</div>
@@ -1179,7 +1179,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
<CardContent className="space-y-4">
{/* 공통 필드 - 품목등의 명칭 */}
<div className="space-y-2">
- <Label htmlFor="itemName">품목등의 명칭 *</Label>
+ <Label htmlFor="itemName">물품등의 명칭 *</Label>
<Input
id="itemName"
value={priceAdjustmentForm.itemName}
@@ -1205,7 +1205,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
<div className="space-y-2">
- <Label htmlFor="adjustmentRatio">연동 비율 (%) *</Label>
+ <Label htmlFor="adjustmentRatio">반영비율 (%) *</Label>
<Input
id="adjustmentRatio"
type="number"
@@ -1229,7 +1229,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
<div className="space-y-2">
- <Label htmlFor="referenceDate">기준시점 *</Label>
+ <Label htmlFor="referenceDate">원재료 기준 가격의 변동률 산정을 위한 기준시점 *</Label>
<Input
id="referenceDate"
type="date"
@@ -1240,7 +1240,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
<div className="space-y-2">
- <Label htmlFor="comparisonDate">비교시점 *</Label>
+ <Label htmlFor="comparisonDate">원재료 기준 가격의 변동률 산정을 위한 비교시점 *</Label>
<Input
id="comparisonDate"
type="date"
@@ -1251,7 +1251,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
<div className="space-y-2">
- <Label htmlFor="contractorWriter">수탁기업(협력사) 작성자 *</Label>
+ <Label htmlFor="contractorWriter">수탁기업(협력사)작성자 *</Label>
<Input
id="contractorWriter"
value={priceAdjustmentForm.contractorWriter}
@@ -1322,7 +1322,7 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</div>
<div className="space-y-2">
- <Label htmlFor="priceAdjustmentNotes">기타 사항</Label>
+ <Label htmlFor="priceAdjustmentNotes">기타사항</Label>
<Textarea
id="priceAdjustmentNotes"
value={priceAdjustmentForm.notes}
@@ -1376,6 +1376,15 @@ export function PartnersBiddingDetail({ biddingId, companyId }: PartnersBiddingD
</CardContent>
</Card>
)}
+
+ {/* 참고 경고문 */}
+ <div className="text-xs text-red-600 space-y-2 bg-red-50 p-3 rounded-md border border-red-200 mt-4">
+ <p className="font-medium">※ 참고사항</p>
+ <div className="space-y-1">
+ <p>• 납품대금의 10% 이상을 차지하는 주요 원재료가 있는 경우 모든 주요 원재료에 대해서 적용 또는 미적용에 대한 연동표를 작성해야 한다.</p>
+ <p>• 납품대급연동표를 허위로 작성하거나 근거자료를 허위로 제출할 경우 본 계약이 체결되지 않을 수 있으며, 본 계약이 체결되었더라도 계약의 전부 또는 일부를 해제 또는 해지할 수 있다.</p>
+ </div>
+ </div>
</>
)}
diff --git a/lib/bidding/vendor/partners-bidding-list-columns.tsx b/lib/bidding/vendor/partners-bidding-list-columns.tsx
index 63d097c0..8cbddb3d 100644
--- a/lib/bidding/vendor/partners-bidding-list-columns.tsx
+++ b/lib/bidding/vendor/partners-bidding-list-columns.tsx
@@ -169,6 +169,19 @@ export function getPartnersBiddingListColumns({ setRowAction }: PartnersBiddingL
}
const handleView = () => {
+ // 입찰기간 체크 (현 시간 기준으로 입찰기간 시작 전이면 접근 불가)
+ const now = new Date()
+ const startDate = row.original.submissionStartDate ? new Date(row.original.submissionStartDate) : null
+ const endDate = row.original.submissionEndDate ? new Date(row.original.submissionEndDate) : null
+
+ if (startDate && now < startDate) {
+ toast.warning('입찰기간 전 접근 제한', {
+ description: `입찰기간이 아직 시작되지 않았습니다. 입찰 시작일: ${format(startDate, "yyyy-MM-dd HH:mm")}`,
+ duration: 5000,
+ })
+ return
+ }
+
// 사양설명회 체크
if (!checkSpecificationMeeting()) {
return