diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/rfq-last/vendor/rfq-vendor-table.tsx | 158 |
1 files changed, 54 insertions, 104 deletions
diff --git a/lib/rfq-last/vendor/rfq-vendor-table.tsx b/lib/rfq-last/vendor/rfq-vendor-table.tsx index efc17171..2ee2cb73 100644 --- a/lib/rfq-last/vendor/rfq-vendor-table.tsx +++ b/lib/rfq-last/vendor/rfq-vendor-table.tsx @@ -463,60 +463,7 @@ export function RfqVendorTable({ return; } - // ๐น attachment_type์ด '๊ตฌ๋งค'์ธ ์ฒจ๋ถํ์ผ์ด ์๋์ง ํ์ธ - const hasPurchaseAttachments = rfqSendData.attachments && - rfqSendData.attachments.some((att: any) => att.attachmentType === '๊ตฌ๋งค'); - - // ๐น '๊ตฌ๋งค' ํ์
์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๊ฒฐ์ฌ ํ๋ก์ธ์ค ์์ - if (hasPurchaseAttachments) { - // Knox EP ID ํ์ธ - if (!session?.user?.epId) { - toast.error("Knox EP ID๊ฐ ์์ต๋๋ค. ์์คํ
๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ธ์."); - setIsLoadingSendData(false); - return; - } - - // ์ฒจ๋ถํ์ผ ์ ๋ณด ๋ณํ - const attachmentsForApproval = rfqSendData.attachments.map((att: any) => ({ - fileName: att.fileName, - fileSize: att.fileSize, - })); - - // ๊ฒฐ์ฌ ๋ฐ์ดํฐ ์์ ์ ์ฅ (์ ์ฒญ์ฌ์ ์
๋ ฅ ์ ) - setApprovalPreviewData({ - vendors: vendorEmailInfos.map(v => ({ - vendorId: v.vendorId, - vendorName: v.vendorName, - vendorCode: v.vendorCode, - vendorCountry: v.vendorCountry, - selectedMainEmail: v.primaryEmail || v.vendorEmail || '', - additionalEmails: [], - customEmails: [], - currency: v.currency, - contractRequirements: { - ndaYn: v.ndaYn || false, - generalGtcYn: v.generalGtcYn || false, - projectGtcYn: v.projectGtcYn || false, - agreementYn: v.agreementYn || false, - }, - isResend: v.sendVersion ? v.sendVersion > 0 : false, - sendVersion: v.sendVersion, - })), - attachments: attachmentsForApproval, - attachmentIds: rfqSendData.attachments.map((att: any) => att.id), - message: undefined, - generatedPdfs: undefined, - hasToSendEmail: true, - }); - - // ์ ์ฒญ์ฌ์ ์
๋ ฅ ๋ค์ด์ผ๋ก๊ทธ ๋จผ์ ์ด๊ธฐ - setShowApplicationReasonDialog(true); - setIsLoadingSendData(false); - return; - } - - // ๐น '๊ตฌ๋งค' ํ์
์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๊ธฐ์กด ๋ก์ง (๋ฐ๋ก ๋ฐ์ก) - // ๋ค์ด์ผ๋ก๊ทธ ๋ฐ์ดํฐ ์ค์ + // ๐น ๊ตฌ๋งค ์ฒจ๋ถํ์ผ ์ ๋ฌด์ ๊ด๊ณ์์ด SendRfqDialog ๋ฐ์ดํฐ ์ค์ setSendDialogData({ rfqInfo: rfqSendData.rfqInfo, attachments: rfqSendData.attachments || [], @@ -655,6 +602,57 @@ export function RfqVendorTable({ hasToSendEmail?: boolean; }) => { try { + // ๐น ๊ตฌ๋งค ์ฒจ๋ถํ์ผ์ด ์๋์ง ํ์ธ + const hasPurchaseAttachments = sendDialogData.attachments && + sendDialogData.attachments.some((att: any) => att.attachmentType === '๊ตฌ๋งค'); + + // ๐น ๊ตฌ๋งค ์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๊ฒฐ์ฌ ํ๋ก์ธ์ค๋ก ๋ถ๊ธฐ + if (hasPurchaseAttachments) { + // Knox EP ID ํ์ธ + if (!session?.user?.epId) { + toast.error("Knox EP ID๊ฐ ์์ต๋๋ค. ์์คํ
๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ธ์."); + return { + success: false, + message: "Knox EP ID๊ฐ ์์ต๋๋ค.", + totalSent: 0, + totalFailed: data.vendors.length, + totalContracts: 0, + totalTbeSessions: 0 + }; + } + + // ์ฒจ๋ถํ์ผ ์ ๋ณด ๋ณํ + const attachmentsForApproval = sendDialogData.attachments.map((att: any) => ({ + fileName: att.fileName, + fileSize: att.fileSize, + })); + + // ๊ฒฐ์ฌ ๋ฐ์ดํฐ ์ ์ฅ + setApprovalPreviewData({ + vendors: data.vendors, + attachments: attachmentsForApproval, + attachmentIds: data.attachments, + message: data.message, + generatedPdfs: data.generatedPdfs, + hasToSendEmail: data.hasToSendEmail, + }); + + // SendRfqDialog ๋ซ๊ณ ์ ์ฒญ์ฌ์ ์
๋ ฅ ๋ค์ด์ผ๋ก๊ทธ ์ด๊ธฐ + setIsSendDialogOpen(false); + setShowApplicationReasonDialog(true); + + // ๊ฒฐ์ฌ ํ๋ก์ธ์ค๋ก ์งํ๋๋ฏ๋ก pending ์ํ ๋ฐํ + return { + success: true, + message: "๊ฒฐ์ฌ ํ๋ก์ธ์ค๋ก ์งํํฉ๋๋ค.", + totalSent: 0, + totalFailed: 0, + totalContracts: 0, + totalTbeSessions: 0 + }; + } + + // ๐น ๊ตฌ๋งค ์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๋ฐ๋ก ๋ฐ์ก // ์๋ฒ ์ก์
ํธ์ถ const result = await sendRfqToVendors({ rfqId, @@ -706,7 +704,7 @@ export function RfqVendorTable({ totalTbeSessions: 0 }; } - }, [rfqId, rfqCode, router]); + }, [rfqId, rfqCode, router, sendDialogData, session]); // vendor status์ ๋ฐ๋ฅธ category ๋ถ๋ฅ ํจ์ const getVendorCategoryFromStatus = React.useCallback((status: string | null): string => { @@ -761,55 +759,7 @@ export function RfqVendorTable({ return; } - // ๐น attachment_type์ด '๊ตฌ๋งค'์ธ ์ฒจ๋ถํ์ผ์ด ์๋์ง ํ์ธ - const hasPurchaseAttachments = rfqSendData.attachments && - rfqSendData.attachments.some((att: any) => att.attachmentType === '๊ตฌ๋งค'); - - // ๐น '๊ตฌ๋งค' ํ์
์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๊ฒฐ์ฌ ํ๋ก์ธ์ค - if (hasPurchaseAttachments) { - if (!session?.user?.epId) { - toast.error("Knox EP ID๊ฐ ์์ต๋๋ค. ์์คํ
๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ธ์."); - setIsLoadingSendData(false); - return; - } - - const attachmentsForApproval = rfqSendData.attachments.map((att: any) => ({ - fileName: att.fileName, - fileSize: att.fileSize, - })); - - setApprovalPreviewData({ - vendors: vendorEmailInfos.map(v => ({ - vendorId: v.vendorId, - vendorName: v.vendorName, - vendorCode: v.vendorCode, - vendorCountry: v.vendorCountry, - selectedMainEmail: v.primaryEmail || v.vendorEmail || '', - additionalEmails: [], - customEmails: [], - currency: v.currency, - contractRequirements: { - ndaYn: v.ndaYn || false, - generalGtcYn: v.generalGtcYn || false, - projectGtcYn: v.projectGtcYn || false, - agreementYn: v.agreementYn || false, - }, - isResend: v.sendVersion ? v.sendVersion > 0 : false, - sendVersion: v.sendVersion, - })), - attachments: attachmentsForApproval, - attachmentIds: rfqSendData.attachments.map((att: any) => att.id), - message: undefined, - generatedPdfs: undefined, - hasToSendEmail: true, - }); - - setShowApplicationReasonDialog(true); - setIsLoadingSendData(false); - return; - } - - // ๐น '๊ตฌ๋งค' ํ์
์ฒจ๋ถํ์ผ์ด ์๋ ๊ฒฝ์ฐ: ๊ธฐ์กด ๋ก์ง + // ๐น ๊ตฌ๋งค ์ฒจ๋ถํ์ผ ์ ๋ฌด์ ๊ด๊ณ์์ด SendRfqDialog ๋ฐ์ดํฐ ์ค์ setSendDialogData({ rfqInfo: rfqSendData.rfqInfo, attachments: rfqSendData.attachments || [], |
