diff options
Diffstat (limited to 'lib/vendor-regular-registrations')
7 files changed, 170 insertions, 417 deletions
diff --git a/lib/vendor-regular-registrations/approval-actions.ts b/lib/vendor-regular-registrations/approval-actions.ts index 02c7e412..298591e9 100644 --- a/lib/vendor-regular-registrations/approval-actions.ts +++ b/lib/vendor-regular-registrations/approval-actions.ts @@ -11,6 +11,9 @@ import { withApproval } from '@/lib/approval/approval-workflow'; import { mapRegistrationToTemplateVariables } from './handlers'; import { debugLog, debugError, debugSuccess } from '@/lib/debug-utils'; import type { RegistrationRequestData } from '@/components/vendor-regular-registrations/registration-request-dialog'; +import db from '@/db/db'; +import { eq } from 'drizzle-orm'; +import { vendorRegularRegistrations } from '@/db/schema/vendorRegistrations'; /** * 결재를 거쳐 정규업체 등록을 처리하는 서버 액션 @@ -90,6 +93,17 @@ export async function registerVendorWithApproval(data: { } ); + // 3. 결재 상신 성공 시 상태를 pending_approval로 변경 + if (result.status === 'pending_approval') { + debugLog('[VendorRegistrationApproval] 상태를 pending_approval로 변경'); + await db.update(vendorRegularRegistrations) + .set({ + status: 'pending_approval', + updatedAt: new Date() + }) + .where(eq(vendorRegularRegistrations.id, data.registrationId)); + } + debugSuccess('[VendorRegistrationApproval] 결재 워크플로우 완료', { approvalId: result.approvalId, status: result.status, diff --git a/lib/vendor-regular-registrations/handlers.ts b/lib/vendor-regular-registrations/handlers.ts index 4b21263d..95acde23 100644 --- a/lib/vendor-regular-registrations/handlers.ts +++ b/lib/vendor-regular-registrations/handlers.ts @@ -6,19 +6,20 @@ 'use server'; -import { submitRegistrationRequest } from './service'; +import { sendRegistrationRequestToMDG } from './service'; import { debugLog, debugError, debugSuccess } from '@/lib/debug-utils'; import type { RegistrationRequestData } from '@/components/vendor-regular-registrations/registration-request-dialog'; import db from '@/db/db'; import { eq } from 'drizzle-orm'; import { vendors } from '@/db/schema/vendors'; -import { vendorAdditionalInfo } from '@/db/schema/vendorRegistrations'; +import { vendorAdditionalInfo, vendorRegularRegistrations } from '@/db/schema/vendorRegistrations'; /** - * 정규업체 등록 핸들러 (결재 승인 후 실행됨) - * + * 정규업체 등록 핸들러 (결재 승인 후 MDG 전송 실행) + * + * 결재 승인 후 자동으로 MDG로 정규업체 등록 요청을 전송함 * 이 함수는 직접 호출하지 않고, 결재 워크플로우에서 자동으로 호출됨 - * + * * @param payload - withApproval()에서 전달한 actionPayload */ export async function registerVendorInternal(payload: { @@ -31,28 +32,61 @@ export async function registerVendorInternal(payload: { }); try { - // 실제 정규업체 등록 처리 - debugLog('[VendorRegistrationHandler] submitRegistrationRequest 호출'); - const result = await submitRegistrationRequest( + // 1. MDG로 정규업체 등록 요청 데이터 전송 + debugLog('[VendorRegistrationHandler] sendRegistrationRequestToMDG 호출'); + const mdgResult = await sendRegistrationRequestToMDG( payload.registrationId, payload.requestData ); - if (!result.success) { - debugError('[VendorRegistrationHandler] 정규업체 등록 실패', result.error); - throw new Error(result.error || '정규업체 등록에 실패했습니다.'); + if (!mdgResult.success) { + debugError('[VendorRegistrationHandler] MDG 전송 실패', mdgResult.error); + + // MDG 전송 실패 시 상태를 registration_failed로 변경 + await db.update(vendorRegularRegistrations) + .set({ + status: 'registration_failed', + updatedAt: new Date() + }) + .where(eq(vendorRegularRegistrations.id, payload.registrationId)); + + throw new Error(mdgResult.error || 'MDG 전송에 실패했습니다.'); } + // 3. MDG 전송 성공 시 상태를 registration_completed로 변경 + debugLog('[VendorRegistrationHandler] MDG 전송 성공, 상태를 registration_completed로 변경'); + await db.update(vendorRegularRegistrations) + .set({ + status: 'registration_completed', + updatedAt: new Date() + }) + .where(eq(vendorRegularRegistrations.id, payload.registrationId)); + debugSuccess('[VendorRegistrationHandler] 정규업체 등록 완료', { registrationId: payload.registrationId, + mdgResult: mdgResult }); return { success: true, message: '정규업체 등록이 완료되었습니다.', + mdgResult: mdgResult }; } catch (error) { debugError('[VendorRegistrationHandler] 정규업체 등록 중 에러', error); + + // 에러 발생 시 상태를 registration_failed로 변경 + try { + await db.update(vendorRegularRegistrations) + .set({ + status: 'registration_failed', + updatedAt: new Date() + }) + .where(eq(vendorRegularRegistrations.id, payload.registrationId)); + } catch (updateError) { + debugError('[VendorRegistrationHandler] 상태 업데이트 실패', updateError); + } + throw error; } } diff --git a/lib/vendor-regular-registrations/repository.ts b/lib/vendor-regular-registrations/repository.ts index 6f73b98f..e69e78bf 100644 --- a/lib/vendor-regular-registrations/repository.ts +++ b/lib/vendor-regular-registrations/repository.ts @@ -169,8 +169,7 @@ export async function getVendorRegularRegistrations( const shouldUpdateStatus = allDocumentsSubmitted && allContractsCompleted && safetyQualificationCompleted && additionalInfoCompleted;
// 현재 상태가 조건충족이 아닌데 모든 조건이 충족되면 상태 업데이트
- // 단, 이미 registration_requested 상태라면 자동 업데이트하지 않음
- if (shouldUpdateStatus && registration.status !== "approval_ready" && registration.status !== "registration_requested") {
+ if (shouldUpdateStatus && registration.status !== "approval_ready") {
// 비동기 업데이트 (백그라운드에서 실행)
updateVendorRegularRegistration(registration.id, {
status: "approval_ready"
@@ -236,7 +235,7 @@ export async function createVendorRegularRegistration(data: { .insert(vendorRegularRegistrations)
.values({
vendorId: data.vendorId,
- status: data.status || "audit_pass",
+ status: data.status || "under_review",
potentialCode: data.potentialCode,
majorItems: data.majorItems,
assignedDepartment: data.assignedDepartment,
diff --git a/lib/vendor-regular-registrations/service.ts b/lib/vendor-regular-registrations/service.ts index 372212fc..2a6695fa 100644 --- a/lib/vendor-regular-registrations/service.ts +++ b/lib/vendor-regular-registrations/service.ts @@ -35,13 +35,13 @@ async function updatePendingApprovals() { const threeMonthsAgo = new Date();
threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3);
- // 3개월 이상 정규등록검토 상태인 등록들을 조회
+ // 3개월 이상 조건충족 상태인 등록들을 조회
const outdatedRegistrations = await db
.select()
.from(vendorRegularRegistrations)
.where(
and(
- eq(vendorRegularRegistrations.status, "in_review"),
+ eq(vendorRegularRegistrations.status, "approval_ready"),
lt(vendorRegularRegistrations.updatedAt, threeMonthsAgo)
)
);
@@ -51,12 +51,13 @@ async function updatePendingApprovals() { await db
.update(vendorRegularRegistrations)
.set({
- status: "pending_approval",
+ status: "registration_failed",
updatedAt: new Date(),
+ remarks: "3개월 이상 조건충족 상태로 장기미등록으로 변경",
})
.where(
and(
- eq(vendorRegularRegistrations.status, "in_review"),
+ eq(vendorRegularRegistrations.status, "approval_ready"),
lt(vendorRegularRegistrations.updatedAt, threeMonthsAgo)
)
);
@@ -141,152 +142,6 @@ export async function getCurrentUserInfo() { };
}
-export async function createVendorRegistration(data: {
- vendorId: number;
- status?: string;
- potentialCode?: string;
- majorItems?: Record<string, unknown>[];
- assignedDepartment?: string;
- assignedDepartmentCode?: string;
- assignedUser?: string;
- assignedUserCode?: string;
- remarks?: string;
-}) {
- try {
- const majorItemsJson = data.majorItems ? JSON.stringify(data.majorItems) : undefined;
-
- const registration = await createVendorRegularRegistration({
- ...data,
- status: data.status || "under_review", // 기본 상태를 '검토중'으로 설정
- majorItems: majorItemsJson,
- });
-
- // 캐시 무효화
- revalidateTag("vendor-regular-registrations");
-
- return { success: true, data: registration };
- } catch (error) {
- console.error("Error in createVendorRegistration:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록을 생성하는 중 오류가 발생했습니다.",
- };
- }
-}
-
-export async function updateVendorRegistration(
- id: number,
- data: Partial<{
- status: string;
- potentialCode: string;
- majorItems: Record<string, unknown>[];
- registrationRequestDate: string;
- assignedDepartment: string;
- assignedDepartmentCode: string;
- assignedUser: string;
- assignedUserCode: string;
- remarks: string;
- }>
-) {
- try {
- const updateData: Partial<{
- status: string;
- potentialCode: string;
- majorItems: string;
- registrationRequestDate: string;
- assignedDepartment: string;
- assignedDepartmentCode: string;
- assignedUser: string;
- assignedUserCode: string;
- remarks: string;
- }> = {};
-
- // majorItems를 제외한 다른 필드들을 복사
- Object.keys(data).forEach(key => {
- if (key !== 'majorItems') {
- updateData[key as keyof typeof updateData] = data[key as keyof typeof data] as never;
- }
- });
-
- if (data.majorItems) {
- updateData.majorItems = JSON.stringify(data.majorItems);
- }
-
- const registration = await updateVendorRegularRegistration(id, updateData);
-
- // 캐시 무효화
- revalidateTag("vendor-regular-registrations");
-
- return { success: true, data: registration };
- } catch (error) {
- console.error("Error in updateVendorRegistration:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록을 수정하는 중 오류가 발생했습니다.",
- };
- }
-}
-
-export async function fetchVendorRegistrationById(id: number) {
- try {
- const registration = await getVendorRegularRegistrationById(id);
- return { success: true, data: registration };
- } catch (error) {
- console.error("Error in fetchVendorRegistrationById:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록 정보를 가져오는 중 오류가 발생했습니다.",
- };
- }
-}
-
-
-
-export async function requestRegularRegistration(registrationId: number) {
- try {
- // 정규업체 등록 요청 처리
- const now = new Date().toISOString().split('T')[0];
-
- const registration = await updateVendorRegularRegistration(registrationId, {
- status: "in_review",
- registrationRequestDate: now,
- });
-
- // 캐시 무효화
- revalidateTag("vendor-regular-registrations");
-
- return { success: true, message: "정규업체 등록 요청이 완료되었습니다.", data: registration };
- } catch (error) {
- console.error("Error in requestRegularRegistration:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록 요청 중 오류가 발생했습니다.",
- };
- }
-}
-
-export async function approveRegularRegistration(registrationId: number) {
- try {
- // 정규업체 등록 승인 처리
- const registration = await updateVendorRegularRegistration(registrationId, {
- status: "approval_ready",
- });
-
- // 캐시 무효화
- revalidateTag("vendor-regular-registrations");
-
- return { success: true, message: "정규업체 등록이 승인되었습니다.", data: registration };
- } catch (error) {
- console.error("Error in approveRegularRegistration:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록 승인 중 오류가 발생했습니다.",
- };
- }
-}
-
-
-
// 누락계약요청 이메일 발송
export async function sendMissingContractRequestEmails(vendorIds: number[]) {
try {
@@ -530,90 +385,6 @@ export async function skipLegalReview(vendorIds: number[], skipReason: string) { }
}
-// 안전적격성평가 Skip 기능 (삭제됨 - 개별 입력으로 대체)
-/*
-export async function skipSafetyQualification(vendorIds: number[], skipReason: string) {
- try {
- const session = await getServerSession(authOptions);
- if (!session?.user) {
- return { success: false, error: "로그인이 필요합니다." };
- }
-
- let successCount = 0;
- let errorCount = 0;
-
- for (const vendorId of vendorIds) {
- try {
- // 해당 벤더의 registration 찾기 또는 생성
- const vendorList = await db
- .select({ id: vendors.id })
- .from(vendors)
- .where(eq(vendors.id, vendorId));
-
- if (vendorList.length === 0) {
- errorCount++;
- continue;
- }
-
- // registration 조회
- const existingRegistrations = await db
- .select()
- .from(vendorRegularRegistrations)
- .where(eq(vendorRegularRegistrations.vendorId, vendorId));
-
- let registrationId;
- if (existingRegistrations.length === 0) {
- // 새로 생성
- const newRegistration = await createVendorRegularRegistration({
- vendorId: vendorId,
- status: "audit_pass",
- remarks: `안전적격성평가 Skip: ${skipReason}`,
- });
- registrationId = newRegistration.id;
- } else {
- // 기존 registration 업데이트
- registrationId = existingRegistrations[0].id;
- const currentRemarks = existingRegistrations[0].remarks || "";
- const newRemarks = currentRemarks
- ? `${currentRemarks}\n안전적격성평가 Skip: ${skipReason}`
- : `안전적격성평가 Skip: ${skipReason}`;
-
- await updateVendorRegularRegistration(registrationId, {
- remarks: newRemarks,
- });
- }
-
- // 안전적격성평가 상태를 완료로 처리 (계약 동의 현황은 이제 실시간으로 조회하므로 별도 처리 불필요)
- // updateContractAgreement 함수는 제거되었으므로 계약 동의 현황은 basic_contract와 vendor_pq_submissions에서 실시간으로 조회됩니다.
-
- successCount++;
- } catch (error) {
- console.error(`Failed to skip safety qualification for vendor ${vendorId}:`, error);
- errorCount++;
- }
- }
-
- if (errorCount > 0) {
- return {
- success: false,
- error: `${successCount}개 업체 처리 성공, ${errorCount}개 업체 처리 실패`,
- };
- }
-
- return {
- success: true,
- message: `${successCount}개 업체의 안전적격성평가를 Skip 처리했습니다.`,
- };
- } catch (error) {
- console.error("Error skipping safety qualification:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "안전적격성평가 Skip 처리 중 오류가 발생했습니다.",
- };
- }
-}
-*/
-
// 주요품목 업데이트
export async function updateMajorItems(
registrationId: number,
@@ -1045,52 +816,6 @@ export async function updateSafetyQualification( }
}
-// GTC Skip 처리
-export async function updateGtcSkip(
- registrationId: number,
- skipReason: string
-) {
- try {
- const session = await getServerSession(authOptions);
- if (!session?.user) {
- return { success: false, error: "로그인이 필요합니다." };
- }
-
- // 현재 비고 가져오기
- const existingRegistration = await getVendorRegularRegistrationById(registrationId);
- if (!existingRegistration) {
- return { success: false, error: "등록 정보를 찾을 수 없습니다." };
- }
-
- const currentRemarks = existingRegistration.remarks || "";
- const newRemarks = currentRemarks
- ? `${currentRemarks}\nGTC Skip: ${skipReason}`
- : `GTC Skip: ${skipReason}`;
-
- const result = await updateVendorRegularRegistration(registrationId, {
- gtcSkipped: true,
- remarks: newRemarks,
- });
-
- if (!result) {
- return { success: false, error: "등록 정보를 찾을 수 없습니다." };
- }
-
- // 캐시 무효화
- revalidateTag("vendor-regular-registrations");
-
- return {
- success: true,
- message: "GTC Skip이 처리되었습니다.",
- };
- } catch (error) {
- console.error("Error updating GTC skip:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "GTC Skip 처리 중 오류가 발생했습니다.",
- };
- }
-}
// 정규업체 등록 요청을 위한 상세 데이터 조회
export async function fetchRegistrationRequestData(registrationId: number) {
@@ -1166,108 +891,108 @@ export async function fetchRegistrationRequestData(registrationId: number) { }
// 정규업체 등록 요청 서버 액션
-export async function submitRegistrationRequest(
- registrationId: number,
- requestData: RegistrationRequestData
-) {
- try {
- const session = await getServerSession(authOptions);
- if (!session?.user) {
- return { success: false, error: "인증이 필요합니다." };
- }
-
- // 현재 등록 정보 조회
- const registration = await db
- .select()
- .from(vendorRegularRegistrations)
- .where(eq(vendorRegularRegistrations.id, registrationId))
- .limit(1);
-
- if (!registration[0]) {
- return { success: false, error: "등록 정보를 찾을 수 없습니다." };
- }
-
- // 조건충족 상태인지 확인
- console.log("📋 업데이트 전 현재 데이터:", {
- registrationId,
- currentStatus: registration[0].status,
- currentRemarks: registration[0].remarks,
- currentUpdatedAt: registration[0].updatedAt
- });
-
- if (registration[0].status !== "approval_ready") {
- return { success: false, error: "조건충족 상태가 아닙니다." };
- }
-
- // 정규업체 등록 요청 데이터를 JSON으로 저장
- const registrationRequestData = {
- requestDate: new Date(),
- requestedBy: session.user.id,
- requestedByName: session.user.name,
- requestData: requestData,
- status: "requested" // 요청됨
- };
-
- // 트랜잭션으로 상태 변경
- const updateResult = await db.transaction(async (tx) => {
- return await tx
- .update(vendorRegularRegistrations)
- .set({
- status: "registration_requested",
- remarks: `정규업체 등록 요청됨 - ${new Date().toISOString()}\n요청자: ${session.user.name}`,
- updatedAt: new Date(),
- })
- .where(eq(vendorRegularRegistrations.id, registrationId));
- });
-
- console.log("🔄 업데이트 결과:", {
- registrationId,
- updateResult,
- statusToSet: "registration_requested"
- });
-
-
-
- // MDG 인터페이스 연동
- const mdgResult = await sendRegistrationRequestToMDG(registrationId, requestData);
+// export async function submitRegistrationRequest(
+// registrationId: number,
+// requestData: RegistrationRequestData
+// ) {
+// try {
+// const session = await getServerSession(authOptions);
+// if (!session?.user) {
+// return { success: false, error: "인증이 필요합니다." };
+// }
+
+// // 현재 등록 정보 조회
+// const registration = await db
+// .select()
+// .from(vendorRegularRegistrations)
+// .where(eq(vendorRegularRegistrations.id, registrationId))
+// .limit(1);
+
+// if (!registration[0]) {
+// return { success: false, error: "등록 정보를 찾을 수 없습니다." };
+// }
+
+// // 조건충족 상태인지 확인
+// console.log("📋 업데이트 전 현재 데이터:", {
+// registrationId,
+// currentStatus: registration[0].status,
+// currentRemarks: registration[0].remarks,
+// currentUpdatedAt: registration[0].updatedAt
+// });
+
+// if (registration[0].status !== "approval_ready") {
+// return { success: false, error: "조건충족 상태가 아닙니다." };
+// }
+
+// // 정규업체 등록 요청 데이터를 JSON으로 저장
+// const registrationRequestData = {
+// requestDate: new Date(),
+// requestedBy: session.user.id,
+// requestedByName: session.user.name,
+// requestData: requestData,
+// status: "requested" // 요청됨
+// };
+
+// // 트랜잭션으로 상태 변경
+// const updateResult = await db.transaction(async (tx) => {
+// return await tx
+// .update(vendorRegularRegistrations)
+// .set({
+// status: "registration_requested",
+// remarks: `정규업체 등록 요청됨 - ${new Date().toISOString()}\n요청자: ${session.user.name}`,
+// updatedAt: new Date(),
+// })
+// .where(eq(vendorRegularRegistrations.id, registrationId));
+// });
+
+// console.log("🔄 업데이트 결과:", {
+// registrationId,
+// updateResult,
+// statusToSet: "registration_requested"
+// });
+
+
+
+// // MDG 인터페이스 연동
+// const mdgResult = await sendRegistrationRequestToMDG(registrationId, requestData);
- if (!mdgResult.success) {
- console.error('❌ MDG 송신 실패:', mdgResult.error);
- // MDG 송신 실패해도 등록 요청은 성공으로 처리 (재시도 가능하도록)
- } else {
- console.log('✅ MDG 송신 성공:', mdgResult.message);
- }
-
- // Knox 결재 연동은 별도의 결재 워크플로우에서 처리됩니다.
- // UI에서 registerVendorWithApproval()을 호출하여 결재 프로세스를 시작합니다.
-
- console.log("✅ 정규업체 등록 요청 데이터:", {
- registrationId,
- companyName: requestData.companyNameKor,
- businessNumber: requestData.businessNumber,
- representative: requestData.representativeNameKor,
- requestedBy: session.user.name,
- requestDate: new Date().toISOString()
- });
-
- // 캐시 무효화 - 더 강력한 무효화
- revalidateTag("vendor-regular-registrations");
- revalidateTag(`vendor-regular-registration-${registrationId}`);
- revalidateTag("vendor-registration-status");
-
- return {
- success: true,
- message: `정규업체 등록 요청이 성공적으로 제출되었습니다.\n${mdgResult.success ? 'MDG 인터페이스 연동이 완료되었습니다.' : 'MDG 인터페이스 연동에 실패했습니다. (재시도 가능)'}\n결재 승인 후 정규업체 등록이 완료됩니다.`
- };
-
- } catch (error) {
- console.error("정규업체 등록 요청 오류:", error);
- return {
- success: false,
- error: error instanceof Error ? error.message : "정규업체 등록 요청 중 오류가 발생했습니다."
- };
- }
-}
+// if (!mdgResult.success) {
+// console.error('❌ MDG 송신 실패:', mdgResult.error);
+// // MDG 송신 실패해도 등록 요청은 성공으로 처리 (재시도 가능하도록)
+// } else {
+// console.log('✅ MDG 송신 성공:', mdgResult.message);
+// }
+
+// // Knox 결재 연동은 별도의 결재 워크플로우에서 처리됩니다.
+// // UI에서 registerVendorWithApproval()을 호출하여 결재 프로세스를 시작합니다.
+
+// console.log("✅ 정규업체 등록 요청 데이터:", {
+// registrationId,
+// companyName: requestData.companyNameKor,
+// businessNumber: requestData.businessNumber,
+// representative: requestData.representativeNameKor,
+// requestedBy: session.user.name,
+// requestDate: new Date().toISOString()
+// });
+
+// // 캐시 무효화 - 더 강력한 무효화
+// revalidateTag("vendor-regular-registrations");
+// revalidateTag(`vendor-regular-registration-${registrationId}`);
+// revalidateTag("vendor-registration-status");
+
+// return {
+// success: true,
+// message: `정규업체 등록 요청이 성공적으로 제출되었습니다.\n${mdgResult.success ? 'MDG 인터페이스 연동이 완료되었습니다.' : 'MDG 인터페이스 연동에 실패했습니다. (재시도 가능)'}\n결재 승인 후 정규업체 등록이 완료됩니다.`
+// };
+
+// } catch (error) {
+// console.error("정규업체 등록 요청 오류:", error);
+// return {
+// success: false,
+// error: error instanceof Error ? error.message : "정규업체 등록 요청 중 오류가 발생했습니다."
+// };
+// }
+// }
// MDG로 정규업체 등록 요청 데이터를 보내는 함수
export async function sendRegistrationRequestToMDG(
diff --git a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-columns.tsx b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-columns.tsx index c823bc9d..b6f9289f 100644 --- a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-columns.tsx +++ b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-columns.tsx @@ -6,7 +6,7 @@ import { Badge } from "@/components/ui/badge" import { format } from "date-fns"
import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header"
-import type { VendorRegularRegistration } from "@/config/vendorRegularRegistrationsColumnsConfig"
+import { VendorRegularRegistration, statusLabels, statusColors } from "@/config/vendorRegularRegistrationsColumnsConfig"
import { DocumentStatusDialog } from "@/components/vendor-regular-registrations/document-status-dialog"
import { Button } from "@/components/ui/button"
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"
@@ -16,23 +16,6 @@ import { useState } from "react" import { SafetyQualificationUpdateDialog } from "./safety-qualification-update-dialog"
import { MajorItemsUpdateDialog } from "./major-items-update-dialog"
-
-const statusLabels = {
- under_review: "검토중",
- approval_ready: "조건충족",
- in_review: "정규등록검토",
- completed: "등록완료",
- pending_approval: "장기미등록",
-}
-
-const statusColors = {
- under_review: "bg-blue-100 text-blue-800",
- approval_ready: "bg-emerald-100 text-emerald-800",
- in_review: "bg-orange-100 text-orange-800",
- completed: "bg-green-100 text-green-800",
- pending_approval: "bg-red-100 text-red-800",
-}
-
export function getColumns(): ColumnDef<VendorRegularRegistration>[] {
return [
diff --git a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-toolbar-actions.tsx b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-toolbar-actions.tsx index d88cd7b7..f40a41f7 100644 --- a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-toolbar-actions.tsx +++ b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table-toolbar-actions.tsx @@ -6,11 +6,10 @@ import { toast } from "sonner" import { Button } from "@/components/ui/button"
import { Mail, FileWarning, Scale, FileText } from "lucide-react"
import type { VendorRegularRegistration } from "@/config/vendorRegularRegistrationsColumnsConfig"
-import {
+import {
sendMissingContractRequestEmails,
sendAdditionalInfoRequestEmails,
- skipLegalReview,
- submitRegistrationRequest
+ skipLegalReview
} from "../service"
import { useState } from "react"
import { SkipReasonDialog } from "@/components/vendor-regular-registrations/skip-reason-dialog"
diff --git a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table.tsx b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table.tsx index 8b477dba..c1229b42 100644 --- a/lib/vendor-regular-registrations/table/vendor-regular-registrations-table.tsx +++ b/lib/vendor-regular-registrations/table/vendor-regular-registrations-table.tsx @@ -61,7 +61,6 @@ export function VendorRegularRegistrationsTable({ promises }: VendorRegularRegis { label: "CP검토", value: "cp_review" },
{ label: "CP완료", value: "cp_finished" },
{ label: "조건충족", value: "approval_ready" },
- { label: "정규등록검토", value: "in_review" },
{ label: "장기미등록", value: "pending_approval" },
]
},
|
