summaryrefslogtreecommitdiff
path: root/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-02 10:30:58 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-02 10:30:58 +0000
commit581b415e6707d9f1d0d0b667b84c4314461bfe37 (patch)
tree5476543a290ada5c3f29a0cba24ee86fc9c215b2 /lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx
parentd5ddafa4276b0031538261400e431009b0734be9 (diff)
(최겸) 입찰 등록, 협력업체 응찰 기능 개발
Diffstat (limited to 'lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx')
-rw-r--r--lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx153
1 files changed, 123 insertions, 30 deletions
diff --git a/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx b/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx
index a48aadd2..75f53503 100644
--- a/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx
+++ b/lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx
@@ -4,6 +4,8 @@ import * as React from 'react'
import { Button } from '@/components/ui/button'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
+import { Textarea } from '@/components/ui/textarea'
+import { Checkbox } from '@/components/ui/checkbox'
import {
Dialog,
DialogContent,
@@ -50,11 +52,18 @@ export function BiddingDetailVendorEditDialog({
contactPhone: '',
quotationAmount: 0,
currency: 'KRW',
- paymentTerms: '',
- taxConditions: '',
- deliveryDate: '',
awardRatio: 0,
status: 'pending' as const,
+ // 입찰 조건 (companyConditionResponses 기반)
+ paymentTermsResponse: '',
+ taxConditionsResponse: '',
+ proposedContractDeliveryDate: '',
+ priceAdjustmentResponse: false,
+ incotermsResponse: '',
+ proposedShippingPort: '',
+ proposedDestinationPort: '',
+ sparePartResponse: '',
+ additionalProposals: '',
})
// vendor가 변경되면 폼 데이터 업데이트
@@ -68,11 +77,18 @@ export function BiddingDetailVendorEditDialog({
contactPhone: vendor.contactPhone || '',
quotationAmount: vendor.quotationAmount,
currency: vendor.currency,
- paymentTerms: vendor.paymentTerms || '',
- taxConditions: vendor.taxConditions || '',
- deliveryDate: vendor.deliveryDate || '',
awardRatio: vendor.awardRatio || 0,
status: vendor.status,
+ // 입찰 조건 데이터 (vendor에서 가져오거나 기본값)
+ paymentTermsResponse: '',
+ taxConditionsResponse: '',
+ proposedContractDeliveryDate: '',
+ priceAdjustmentResponse: false,
+ incotermsResponse: '',
+ proposedShippingPort: '',
+ proposedDestinationPort: '',
+ sparePartResponse: '',
+ additionalProposals: '',
})
}
}, [vendor])
@@ -220,30 +236,107 @@ export function BiddingDetailVendorEditDialog({
</Select>
</div>
</div>
- <div className="space-y-2">
- <Label htmlFor="edit-paymentTerms">지급조건</Label>
- <Input
- id="edit-paymentTerms"
- value={formData.paymentTerms}
- onChange={(e) => setFormData({ ...formData, paymentTerms: e.target.value })}
- />
- </div>
- <div className="space-y-2">
- <Label htmlFor="edit-taxConditions">세금조건</Label>
- <Input
- id="edit-taxConditions"
- value={formData.taxConditions}
- onChange={(e) => setFormData({ ...formData, taxConditions: e.target.value })}
- />
- </div>
- <div className="space-y-2">
- <Label htmlFor="edit-deliveryDate">납품일</Label>
- <Input
- id="edit-deliveryDate"
- type="date"
- value={formData.deliveryDate}
- onChange={(e) => setFormData({ ...formData, deliveryDate: e.target.value })}
- />
+ {/* 입찰 조건 섹션 */}
+ <div className="col-span-2 pt-4 border-t">
+ <h3 className="text-lg font-medium mb-4">입찰 조건 설정</h3>
+
+ <div className="grid grid-cols-2 gap-4">
+ <div className="space-y-2">
+ <Label htmlFor="edit-paymentTermsResponse">지급조건</Label>
+ <Input
+ id="edit-paymentTermsResponse"
+ value={formData.paymentTermsResponse}
+ onChange={(e) => setFormData({ ...formData, paymentTermsResponse: e.target.value })}
+ placeholder="지급조건을 입력하세요"
+ />
+ </div>
+
+ <div className="space-y-2">
+ <Label htmlFor="edit-taxConditionsResponse">세금조건</Label>
+ <Input
+ id="edit-taxConditionsResponse"
+ value={formData.taxConditionsResponse}
+ onChange={(e) => setFormData({ ...formData, taxConditionsResponse: e.target.value })}
+ placeholder="세금조건을 입력하세요"
+ />
+ </div>
+ </div>
+
+ <div className="grid grid-cols-2 gap-4 mt-4">
+ <div className="space-y-2">
+ <Label htmlFor="edit-incotermsResponse">운송조건 (Incoterms)</Label>
+ <Input
+ id="edit-incotermsResponse"
+ value={formData.incotermsResponse}
+ onChange={(e) => setFormData({ ...formData, incotermsResponse: e.target.value })}
+ placeholder="운송조건을 입력하세요"
+ />
+ </div>
+
+ <div className="space-y-2">
+ <Label htmlFor="edit-proposedContractDeliveryDate">제안 계약납기일</Label>
+ <Input
+ id="edit-proposedContractDeliveryDate"
+ type="date"
+ value={formData.proposedContractDeliveryDate}
+ onChange={(e) => setFormData({ ...formData, proposedContractDeliveryDate: e.target.value })}
+ />
+ </div>
+ </div>
+
+ <div className="grid grid-cols-2 gap-4 mt-4">
+ <div className="space-y-2">
+ <Label htmlFor="edit-proposedShippingPort">제안 선적지</Label>
+ <Input
+ id="edit-proposedShippingPort"
+ value={formData.proposedShippingPort}
+ onChange={(e) => setFormData({ ...formData, proposedShippingPort: e.target.value })}
+ placeholder="선적지를 입력하세요"
+ />
+ </div>
+
+ <div className="space-y-2">
+ <Label htmlFor="edit-proposedDestinationPort">제안 도착지</Label>
+ <Input
+ id="edit-proposedDestinationPort"
+ value={formData.proposedDestinationPort}
+ onChange={(e) => setFormData({ ...formData, proposedDestinationPort: e.target.value })}
+ placeholder="도착지를 입력하세요"
+ />
+ </div>
+ </div>
+
+ <div className="space-y-2 mt-4">
+ <Label htmlFor="edit-sparePartResponse">스페어파트 응답</Label>
+ <Input
+ id="edit-sparePartResponse"
+ value={formData.sparePartResponse}
+ onChange={(e) => setFormData({ ...formData, sparePartResponse: e.target.value })}
+ placeholder="스페어파트 관련 응답을 입력하세요"
+ />
+ </div>
+
+ <div className="space-y-2 mt-4">
+ <Label htmlFor="edit-additionalProposals">추가 제안사항</Label>
+ <Textarea
+ id="edit-additionalProposals"
+ value={formData.additionalProposals}
+ onChange={(e) => setFormData({ ...formData, additionalProposals: e.target.value })}
+ placeholder="추가 제안사항을 입력하세요"
+ rows={3}
+ />
+ </div>
+
+ <div className="flex items-center space-x-2 mt-4">
+ <Checkbox
+ id="edit-priceAdjustmentResponse"
+ checked={formData.priceAdjustmentResponse}
+ onCheckedChange={(checked) =>
+ setFormData({ ...formData, priceAdjustmentResponse: !!checked })
+ }
+ />
+ <Label htmlFor="edit-priceAdjustmentResponse">연동제 적용</Label>
+ </div>
</div>
</div>
<DialogFooter>