summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rfq-last/vendor/rfq-vendor-table.tsx158
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 || [],