summaryrefslogtreecommitdiff
path: root/components/bidding
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-17 07:06:52 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-17 07:06:52 +0000
commit1532c1bf4a3236ce9056f33e51ddfebeff79ed5a (patch)
treec3f3c43d0f73c4b7df4e34e9b1aa308604c562c9 /components/bidding
parenta5be73b70e7d8e6be1724252e6923c664c3771f4 (diff)
(최겸) 구매 피드백 처리
Diffstat (limited to 'components/bidding')
-rw-r--r--components/bidding/create/bidding-create-dialog.tsx12
-rw-r--r--components/bidding/manage/bidding-basic-info-editor.tsx6
-rw-r--r--components/bidding/manage/bidding-schedule-editor.tsx7
3 files changed, 9 insertions, 16 deletions
diff --git a/components/bidding/create/bidding-create-dialog.tsx b/components/bidding/create/bidding-create-dialog.tsx
index 4ef403c9..30550ca4 100644
--- a/components/bidding/create/bidding-create-dialog.tsx
+++ b/components/bidding/create/bidding-create-dialog.tsx
@@ -43,6 +43,7 @@ import { ProcurementManagerSelector } from '@/components/common/selectors/procur
import type { PurchaseGroupCodeWithUser } from '@/components/common/selectors/purchase-group-code/purchase-group-code-service'
import type { ProcurementManagerWithUser } from '@/components/common/selectors/procurement-manager/procurement-manager-service'
import { createBidding } from '@/lib/bidding/service'
+import { useSession } from 'next-auth/react'
interface BiddingCreateDialogProps {
form: UseFormReturn<CreateBiddingSchema>
@@ -50,6 +51,9 @@ interface BiddingCreateDialogProps {
}
export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProps) {
+ const { data: session } = useSession()
+ const userId = session?.user?.id ? Number(session.user.id) : null;
+
const [isOpen, setIsOpen] = React.useState(false)
const [isSubmitting, setIsSubmitting] = React.useState(false)
@@ -290,7 +294,7 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
},
}
- const result = await createBidding(biddingData, '1') // 실제로는 현재 사용자 ID
+ const result = await createBidding(biddingData, userId?.toString() || '') // 실제로는 현재 사용자 ID
if (result.success) {
toast.success("입찰이 성공적으로 생성되었습니다.")
@@ -1147,9 +1151,6 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
찾아보세요
</label>
</p>
- <p className="text-xs text-gray-500">
- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다
- </p>
</div>
</div>
</div>
@@ -1217,9 +1218,6 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp
찾아보세요
</label>
</p>
- <p className="text-xs text-gray-500">
- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다
- </p>
</div>
</div>
</div>
diff --git a/components/bidding/manage/bidding-basic-info-editor.tsx b/components/bidding/manage/bidding-basic-info-editor.tsx
index a956d73c..2f55d563 100644
--- a/components/bidding/manage/bidding-basic-info-editor.tsx
+++ b/components/bidding/manage/bidding-basic-info-editor.tsx
@@ -1199,9 +1199,6 @@ export function BiddingBasicInfoEditor({ biddingId }: BiddingBasicInfoEditorProp
찾아보세요
</label>
</p>
- <p className="text-xs text-gray-500">
- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다
- </p>
</div>
</div>
</div>
@@ -1334,9 +1331,6 @@ export function BiddingBasicInfoEditor({ biddingId }: BiddingBasicInfoEditorProp
찾아보세요
</label>
</p>
- <p className="text-xs text-gray-500">
- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다
- </p>
</div>
</div>
</div>
diff --git a/components/bidding/manage/bidding-schedule-editor.tsx b/components/bidding/manage/bidding-schedule-editor.tsx
index d64c16c0..ce03c742 100644
--- a/components/bidding/manage/bidding-schedule-editor.tsx
+++ b/components/bidding/manage/bidding-schedule-editor.tsx
@@ -108,7 +108,7 @@ export function BiddingScheduleEditor({ biddingId }: BiddingScheduleEditorProps)
})
const [isLoading, setIsLoading] = React.useState(false)
const [isSubmitting, setIsSubmitting] = React.useState(false)
- const [biddingInfo, setBiddingInfo] = React.useState<{ title: string; projectName?: string } | null>(null)
+ const [biddingInfo, setBiddingInfo] = React.useState<{ title: string; projectName?: string; status: string } | null>(null)
const [isBiddingInvitationDialogOpen, setIsBiddingInvitationDialogOpen] = React.useState(false)
const [selectedVendors, setSelectedVendors] = React.useState<VendorContractRequirement[]>([])
@@ -123,6 +123,7 @@ export function BiddingScheduleEditor({ biddingId }: BiddingScheduleEditorProps)
setBiddingInfo({
title: bidding.title || '',
projectName: bidding.projectName || undefined,
+ status: bidding.status || '',
})
// 날짜를 문자열로 변환하는 헬퍼
@@ -617,7 +618,7 @@ export function BiddingScheduleEditor({ biddingId }: BiddingScheduleEditorProps)
<Button
variant="default"
onClick={() => setIsBiddingInvitationDialogOpen(true)}
- disabled={!biddingInfo}
+ disabled={!biddingInfo || biddingInfo.status !== 'bidding_generated'}
className="min-w-[120px]"
>
<Send className="w-4 h-4 mr-2" />
@@ -626,7 +627,7 @@ export function BiddingScheduleEditor({ biddingId }: BiddingScheduleEditorProps)
<div className="flex gap-4">
<Button
onClick={handleSave}
- disabled={isSubmitting}
+ disabled={isSubmitting || !biddingInfo || biddingInfo.status !== 'bidding_generated'}
className="min-w-[120px]"
>
{isSubmitting ? (