From ae211e5b9d9bf8e1566b78a85ec4522360833ea9 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Thu, 4 Dec 2025 11:42:01 +0000 Subject: (임수민) 준법문의 버튼 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic-contract-detail-table-toolbar-actions.tsx | 21 ++++++++++++++++++--- .../status-detail/basic-contracts-detail-table.tsx | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx b/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx index 3e7caee1..8f945bbd 100644 --- a/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx +++ b/lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx @@ -36,6 +36,7 @@ interface RedFlagResolutionState { interface BasicContractDetailTableToolbarActionsProps { table: Table gtcData?: Record + agreementCommentData?: Record redFlagData?: Record redFlagResolutionData?: Record isComplianceTemplate?: boolean @@ -44,6 +45,7 @@ interface BasicContractDetailTableToolbarActionsProps { export function BasicContractDetailTableToolbarActions({ table, gtcData = {}, + agreementCommentData = {}, redFlagData = {}, redFlagResolutionData = {}, isComplianceTemplate = false @@ -128,23 +130,36 @@ export function BasicContractDetailTableToolbarActions({ // 준법문의 버튼 활성화 가능 여부 // 1. 협력업체 서명 완료 (vendorSignedAt 있음) - // 2. 협의 완료 (negotiationCompletedAt 있음) + // 2. 협의 완료됨 (negotiationCompletedAt 있음) OR 협의 없음 (코멘트 없음) // 3. 레드플래그 해소됨 (redFlagResolutionData에서 resolved 상태) // 4. 이미 준법문의 요청되지 않음 (complianceReviewRequestedAt 없음) const canRequestComplianceInquiry = hasSelectedRows && selectedRows.some(row => { const contract = row.original; - // 필수 조건 확인: 준법서약 템플릿, 최종승인 미완료, 협력업체 서명 완료, 협의 완료, 준법문의 미요청 + // 필수 조건 확인: 준법서약 템플릿, 최종승인 미완료, 협력업체 서명 완료, 준법문의 미요청 if ( !isComplianceTemplate || contract.completedAt || !contract.vendorSignedAt || - !contract.negotiationCompletedAt || contract.complianceReviewRequestedAt ) { return false; } + // 협의 완료 확인 + // 협의 완료된 경우 → 가능 + if (contract.negotiationCompletedAt) { + // 협의 완료됨, 레드플래그만 확인하면 됨 + } else { + // 협의 완료되지 않은 경우: 코멘트가 없으면 협의 없음으로 간주하여 가능 + const commentData = agreementCommentData[contract.id]; + if (commentData && commentData.hasComments) { + // 코멘트가 있으면 협의 중이므로 불가 + return false; + } + // 코멘트가 없으면 협의 없음으로 간주하여 가능 + } + // 레드플래그 해소 확인 const resolution = redFlagResolutionData[contract.id]; // 레드플래그가 있는 경우, 해소되어야 함 diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx index cface6b3..c6fe1cdd 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx @@ -241,6 +241,7 @@ type RedFlagResolutionState = {