summaryrefslogtreecommitdiff
path: root/lib/soap
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-04 10:03:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-04 10:03:32 +0000
commit47fb72704161b4b58a27c7f5c679fc44618de9a1 (patch)
treeaf4fe1517352784d1876c164171f6dba2e40403a /lib/soap
parent1a034c7f6f50e443bc9f97c3d84bfb0a819af6ce (diff)
(최겸) 구매 견적 내 RFQ Cancel/Delete, 연동제 적용, MRC Type 개발
Diffstat (limited to 'lib/soap')
-rw-r--r--lib/soap/ecc/send/delete-rfq.ts (renamed from lib/soap/ecc/send/cancel-rfq.ts)64
1 files changed, 32 insertions, 32 deletions
diff --git a/lib/soap/ecc/send/cancel-rfq.ts b/lib/soap/ecc/send/delete-rfq.ts
index aeba6dd6..f7e945fe 100644
--- a/lib/soap/ecc/send/cancel-rfq.ts
+++ b/lib/soap/ecc/send/delete-rfq.ts
@@ -2,17 +2,17 @@
import { sendSoapXml, type SoapSendConfig, type SoapLogInfo, type SoapSendResult } from "@/lib/soap/sender";
-// ECC RFQ 취소 엔드포인트 (WSDL에 명시된 P2038_D 사용)
+// ECC RFQ 삭제 엔드포인트 (WSDL에 명시된 P2038_D 사용)
const ECC_CANCEL_RFQ_ENDPOINT = "http://shii8dvddb01.hec.serp.shi.samsung.net:50000/sap/xi/engine?type=entry&version=3.0&Sender.Service=P2038_Q&Interface=http%3A%2F%2Fshi.samsung.co.kr%2FP2_MM%2FMMM%5EP2MM3016_SO";
-// RFQ 취소 요청 데이터 타입
+// RFQ 삭제 요청 데이터 타입
export interface CancelRFQRequest {
T_ANFNR: Array<{
ANFNR: string; // RFQ Number (M)
}>;
}
-// RFQ 취소 응답 데이터 타입 (참고용)
+// RFQ 삭제 응답 데이터 타입 (참고용)
export interface CancelRFQResponse {
EV_TYPE?: string; // 응답 타입 (S: 성공, E: 에러)
EV_MESSAGE?: string; // 응답 메시지
@@ -48,7 +48,7 @@ function validateCancelRFQData(rfqData: CancelRFQRequest): { isValid: boolean; e
};
}
-// ECC로 RFQ 취소 SOAP XML 전송하는 함수
+// ECC로 RFQ 삭제 SOAP XML 전송하는 함수
async function sendCancelRFQToECC(rfqData: CancelRFQRequest): Promise<SoapSendResult> {
try {
// 데이터 검증
@@ -68,7 +68,7 @@ async function sendCancelRFQToECC(rfqData: CancelRFQRequest): Promise<SoapSendRe
endpoint: ECC_CANCEL_RFQ_ENDPOINT,
envelope: soapBodyContent,
soapAction: 'http://sap.com/xi/WebService/soap1.1',
- timeout: 30000, // RFQ 취소는 30초 타임아웃
+ timeout: 30000, // RFQ 삭제는 30초 타임아웃
retryCount: 3,
retryDelay: 1000,
namespace: 'http://shi.samsung.co.kr/P2_MM/MMM', // ECC MM 모듈 네임스페이스
@@ -83,7 +83,7 @@ async function sendCancelRFQToECC(rfqData: CancelRFQRequest): Promise<SoapSendRe
};
const rfqNumbers = rfqData.T_ANFNR.map(item => item.ANFNR).join(', ');
- console.log(`📤 RFQ 취소 요청 전송 시작 - RFQ Numbers: ${rfqNumbers}`);
+ console.log(`📤 RFQ 삭제 요청 전송 시작 - RFQ Numbers: ${rfqNumbers}`);
console.log(`🔍 취소 대상 RFQ ${rfqData.T_ANFNR.length}개`);
console.log(`🌐 엔드포인트: ${ECC_CANCEL_RFQ_ENDPOINT}`);
console.log(`📋 네임스페이스: ${config.namespace}`);
@@ -93,15 +93,15 @@ async function sendCancelRFQToECC(rfqData: CancelRFQRequest): Promise<SoapSendRe
const result = await sendSoapXml(config, logInfo);
if (result.success) {
- console.log(`✅ RFQ 취소 요청 전송 성공 - RFQ Numbers: ${rfqNumbers}`);
+ console.log(`✅ RFQ 삭제 요청 전송 성공 - RFQ Numbers: ${rfqNumbers}`);
} else {
- console.error(`❌ RFQ 취소 요청 전송 실패 - RFQ Numbers: ${rfqNumbers}, 오류: ${result.message}`);
+ console.error(`❌ RFQ 삭제 요청 전송 실패 - RFQ Numbers: ${rfqNumbers}, 오류: ${result.message}`);
}
return result;
} catch (error) {
- console.error('❌ RFQ 취소 전송 중 오류 발생:', error);
+ console.error('❌ RFQ 삭제 전송 중 오류 발생:', error);
return {
success: false,
message: error instanceof Error ? error.message : 'Unknown error'
@@ -110,10 +110,10 @@ async function sendCancelRFQToECC(rfqData: CancelRFQRequest): Promise<SoapSendRe
}
// ========================================
-// 메인 RFQ 취소 서버 액션 함수들
+// 메인 RFQ 삭제 서버 액션 함수들
// ========================================
-// 단일 RFQ 취소 요청 처리
+// 단일 RFQ 삭제 요청 처리
export async function cancelRFQ(rfqNumber: string): Promise<{
success: boolean;
message: string;
@@ -125,7 +125,7 @@ export async function cancelRFQ(rfqNumber: string): Promise<{
rfqNumber?: string;
}> {
try {
- console.log(`🚀 RFQ 취소 요청 시작 - RFQ Number: ${rfqNumber}`);
+ console.log(`🚀 RFQ 삭제 요청 시작 - RFQ Number: ${rfqNumber}`);
const rfqData: CancelRFQRequest = {
T_ANFNR: [{
@@ -137,7 +137,7 @@ export async function cancelRFQ(rfqNumber: string): Promise<{
return {
success: result.success,
- message: result.success ? 'RFQ 취소 요청이 성공적으로 전송되었습니다.' : result.message,
+ message: result.success ? 'RFQ 삭제 요청이 성공적으로 전송되었습니다.' : result.message,
responseData: result.responseText,
statusCode: result.statusCode,
headers: result.headers,
@@ -147,7 +147,7 @@ export async function cancelRFQ(rfqNumber: string): Promise<{
};
} catch (error) {
- console.error('❌ RFQ 취소 요청 처리 실패:', error);
+ console.error('❌ RFQ 삭제 요청 처리 실패:', error);
return {
success: false,
message: error instanceof Error ? error.message : 'Unknown error'
@@ -162,7 +162,7 @@ export async function cancelMultipleRFQs(rfqNumbers: string[]): Promise<{
results?: Array<{ rfqNumber: string; success: boolean; error?: string }>;
}> {
try {
- console.log(`🚀 배치 RFQ 취소 요청 시작: ${rfqNumbers.length}개`);
+ console.log(`🚀 배치 RFQ 삭제 요청 시작: ${rfqNumbers.length}개`);
// 모든 RFQ를 하나의 요청으로 처리
const rfqData: CancelRFQRequest = {
@@ -181,18 +181,18 @@ export async function cancelMultipleRFQs(rfqNumbers: string[]): Promise<{
const successCount = result.success ? rfqNumbers.length : 0;
const failCount = rfqNumbers.length - successCount;
- console.log(`🎉 배치 RFQ 취소 완료: 성공 ${successCount}개, 실패 ${failCount}개`);
+ console.log(`🎉 배치 RFQ 삭제 완료: 성공 ${successCount}개, 실패 ${failCount}개`);
return {
success: result.success,
message: result.success
- ? `배치 RFQ 취소 성공: ${successCount}개`
- : `배치 RFQ 취소 실패: ${result.message}`,
+ ? `배치 RFQ 삭제 성공: ${successCount}개`
+ : `배치 RFQ 삭제 실패: ${result.message}`,
results
};
} catch (error) {
- console.error('❌ 배치 RFQ 취소 중 전체 오류 발생:', error);
+ console.error('❌ 배치 RFQ 삭제 중 전체 오류 발생:', error);
return {
success: false,
message: error instanceof Error ? error.message : 'Unknown error'
@@ -200,20 +200,20 @@ export async function cancelMultipleRFQs(rfqNumbers: string[]): Promise<{
}
}
-// 개별 처리 방식의 배치 RFQ 취소 (각각 따로 전송)
+// 개별 처리 방식의 배치 RFQ 삭제 (각각 따로 전송)
export async function cancelMultipleRFQsIndividually(rfqNumbers: string[]): Promise<{
success: boolean;
message: string;
results?: Array<{ rfqNumber: string; success: boolean; error?: string }>;
}> {
try {
- console.log(`🚀 개별 RFQ 취소 요청 시작: ${rfqNumbers.length}개`);
+ console.log(`🚀 개별 RFQ 삭제 요청 시작: ${rfqNumbers.length}개`);
const results: Array<{ rfqNumber: string; success: boolean; error?: string }> = [];
for (const rfqNumber of rfqNumbers) {
try {
- console.log(`📤 RFQ 취소 처리 중: ${rfqNumber}`);
+ console.log(`📤 RFQ 삭제 처리 중: ${rfqNumber}`);
const rfqData: CancelRFQRequest = {
T_ANFNR: [{ ANFNR: rfqNumber }]
@@ -222,13 +222,13 @@ export async function cancelMultipleRFQsIndividually(rfqNumbers: string[]): Prom
const result = await sendCancelRFQToECC(rfqData);
if (result.success) {
- console.log(`✅ RFQ 취소 성공: ${rfqNumber}`);
+ console.log(`✅ RFQ 삭제 성공: ${rfqNumber}`);
results.push({
rfqNumber,
success: true
});
} else {
- console.error(`❌ RFQ 취소 실패: ${rfqNumber}, 오류: ${result.message}`);
+ console.error(`❌ RFQ 삭제 실패: ${rfqNumber}, 오류: ${result.message}`);
results.push({
rfqNumber,
success: false,
@@ -242,7 +242,7 @@ export async function cancelMultipleRFQsIndividually(rfqNumbers: string[]): Prom
}
} catch (error) {
- console.error(`❌ RFQ 취소 처리 실패: ${rfqNumber}`, error);
+ console.error(`❌ RFQ 삭제 처리 실패: ${rfqNumber}`, error);
results.push({
rfqNumber,
success: false,
@@ -254,16 +254,16 @@ export async function cancelMultipleRFQsIndividually(rfqNumbers: string[]): Prom
const successCount = results.filter(r => r.success).length;
const failCount = results.length - successCount;
- console.log(`🎉 개별 RFQ 취소 완료: 성공 ${successCount}개, 실패 ${failCount}개`);
+ console.log(`🎉 개별 RFQ 삭제 완료: 성공 ${successCount}개, 실패 ${failCount}개`);
return {
success: failCount === 0,
- message: `개별 RFQ 취소 완료: 성공 ${successCount}개, 실패 ${failCount}개`,
+ message: `개별 RFQ 삭제 완료: 성공 ${successCount}개, 실패 ${failCount}개`,
results
};
} catch (error) {
- console.error('❌ 개별 RFQ 취소 중 전체 오류 발생:', error);
+ console.error('❌ 개별 RFQ 삭제 중 전체 오류 발생:', error);
return {
success: false,
message: error instanceof Error ? error.message : 'Unknown error'
@@ -271,7 +271,7 @@ export async function cancelMultipleRFQsIndividually(rfqNumbers: string[]): Prom
}
}
-// 테스트용 RFQ 취소 함수 (샘플 데이터 포함)
+// 테스트용 RFQ 삭제 함수 (샘플 데이터 포함)
export async function cancelTestRFQ(): Promise<{
success: boolean;
message: string;
@@ -279,7 +279,7 @@ export async function cancelTestRFQ(): Promise<{
testData?: CancelRFQRequest;
}> {
try {
- console.log('🧪 테스트용 RFQ 취소 시작');
+ console.log('🧪 테스트용 RFQ 삭제 시작');
// 테스트용 샘플 데이터 생성
const testRFQData: CancelRFQRequest = {
@@ -292,13 +292,13 @@ export async function cancelTestRFQ(): Promise<{
return {
success: result.success,
- message: result.success ? '테스트 RFQ 취소가 성공적으로 전송되었습니다.' : result.message,
+ message: result.success ? '테스트 RFQ 삭제가 성공적으로 전송되었습니다.' : result.message,
responseData: result.responseText,
testData: testRFQData
};
} catch (error) {
- console.error('❌ 테스트 RFQ 취소 실패:', error);
+ console.error('❌ 테스트 RFQ 삭제 실패:', error);
return {
success: false,
message: error instanceof Error ? error.message : 'Unknown error'