diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-02 10:30:58 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-09-02 10:30:58 +0000 |
| commit | 581b415e6707d9f1d0d0b667b84c4314461bfe37 (patch) | |
| tree | 5476543a290ada5c3f29a0cba24ee86fc9c215b2 /lib/bidding/detail/table/bidding-detail-vendor-edit-dialog.tsx | |
| parent | d5ddafa4276b0031538261400e431009b0734be9 (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.tsx | 153 |
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> |
