diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-17 07:06:52 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-17 07:06:52 +0000 |
| commit | 1532c1bf4a3236ce9056f33e51ddfebeff79ed5a (patch) | |
| tree | c3f3c43d0f73c4b7df4e34e9b1aa308604c562c9 /components/bidding | |
| parent | a5be73b70e7d8e6be1724252e6923c664c3771f4 (diff) | |
(최겸) 구매 피드백 처리
Diffstat (limited to 'components/bidding')
| -rw-r--r-- | components/bidding/create/bidding-create-dialog.tsx | 12 | ||||
| -rw-r--r-- | components/bidding/manage/bidding-basic-info-editor.tsx | 6 | ||||
| -rw-r--r-- | components/bidding/manage/bidding-schedule-editor.tsx | 7 |
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 ? ( |
