From 1532c1bf4a3236ce9056f33e51ddfebeff79ed5a Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 17 Nov 2025 07:06:52 +0000 Subject: (최겸) 구매 피드백 처리 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pq_new/[vendorId]/[submissionId]/page.tsx | 4 +- .../bidding/create/bidding-create-dialog.tsx | 12 +- .../bidding/manage/bidding-basic-info-editor.tsx | 6 - .../bidding/manage/bidding-schedule-editor.tsx | 7 +- .../document-status-dialog.tsx | 6 +- i18n/locales/en/menu.json | 1 + ...\230\353\242\260 \354\232\224\354\262\255.html" | 2 +- lib/bidding/actions.ts | 6 +- .../bidding-detail-vendor-toolbar-actions.tsx | 4 +- lib/bidding/pre-quote/service.ts | 17 +- lib/bidding/service.ts | 137 +++++--- lib/itb/service.ts | 2 +- .../request-investigation-dialog.tsx | 6 +- lib/pq/service.ts | 7 +- lib/rfq-last/table/rfq-table-columns.tsx | 6 +- lib/rfq-last/table/rfq-table-toolbar-actions.tsx | 4 +- .../editor/quotation-items-table.tsx | 30 +- .../editor/vendor-response-editor.tsx | 5 + lib/rfq-last/vendor/vendor-detail-dialog.tsx | 21 +- lib/users/auth/partners-auth.ts | 2 +- .../table/investigation-result-sheet.tsx | 49 ++- lib/vendor-investigation/validations.ts | 89 +++++- lib/vendor-regular-registrations/repository.ts | 3 +- .../table/request-vendor-investigate-dialog.tsx | 345 --------------------- .../table/vendors-table-toolbar-actions.tsx | 1 - 25 files changed, 279 insertions(+), 493 deletions(-) delete mode 100644 lib/vendors/table/request-vendor-investigate-dialog.tsx diff --git a/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx index c63cf4df..8e3006cc 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/pq_new/[vendorId]/[submissionId]/page.tsx @@ -87,12 +87,12 @@ export default async function PQReviewPage(props: PQReviewPageProps) {
- + */}

{pqSubmission.vendorName} - {typeLabel} 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 @@ -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 찾아보세요

-

- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다 -

@@ -1217,9 +1218,6 @@ export function BiddingCreateDialog({ form, onSuccess }: BiddingCreateDialogProp 찾아보세요

-

- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다 -

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 찾아보세요

-

- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다 -

@@ -1334,9 +1331,6 @@ export function BiddingBasicInfoEditor({ biddingId }: BiddingBasicInfoEditorProp 찾아보세요

-

- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG, JPEG 파일을 업로드할 수 있습니다 -

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([]) @@ -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)