From 93ac03bdba683b41391a10a0daefd0b8ba711307 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Thu, 4 Dec 2025 12:57:05 +0000 Subject: (임수민) 활성화 조건 제거 준법,법무 요청 버튼 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...basic-contract-detail-table-toolbar-actions.tsx | 94 ++-------------------- 1 file changed, 6 insertions(+), 88 deletions(-) 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 8f945bbd..56857b8d 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 @@ -90,85 +90,11 @@ export function BasicContractDetailTableToolbarActions({ return true; }); - // 법무검토 요청 가능 여부 (준법서약 템플릿이 아닐 때만) - // 1. 협력업체 서명 완료 (vendorSignedAt 있음) - // 2. 협의 완료됨 (negotiationCompletedAt 있음) OR - // 3. 협의 없음 (코멘트 없음, hasComments: false) - // 협의 중 (negotiationCompletedAt 없고 코멘트 있음)은 불가 - const canRequestLegalReview = !isComplianceTemplate && hasSelectedRows && selectedRows.some(row => { - const contract = row.original; - - // 필수 조건 확인: 최종승인 미완료, 법무검토 미요청, 협력업체 서명 완료 - if ( - contract.legalReviewRequestedAt || - contract.completedAt || - !contract.vendorSignedAt - ) { - return false; - } - - // 협의 완료된 경우 → 가능 - if (contract.negotiationCompletedAt) { - return true; - } - - // 협의 완료되지 않은 경우 - // GTC 템플릿인 경우 코멘트 존재 여부 확인 - if (contract.templateName?.includes('GTC')) { - const contractGtcData = gtcData[contract.id]; - // 코멘트가 없으면 가능 (협의 없음) - if (contractGtcData && !contractGtcData.hasComments) { - return true; - } - // 코멘트가 있으면 불가 (협의 중) - return false; - } - - // GTC가 아닌 경우는 협의 완료 여부만 확인 - return false; - }); + // 법무검토 요청 가능 여부: 항상 활성화 + const canRequestLegalReview = !isComplianceTemplate; - // 준법문의 버튼 활성화 가능 여부 - // 1. 협력업체 서명 완료 (vendorSignedAt 있음) - // 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.complianceReviewRequestedAt - ) { - return false; - } - - // 협의 완료 확인 - // 협의 완료된 경우 → 가능 - if (contract.negotiationCompletedAt) { - // 협의 완료됨, 레드플래그만 확인하면 됨 - } else { - // 협의 완료되지 않은 경우: 코멘트가 없으면 협의 없음으로 간주하여 가능 - const commentData = agreementCommentData[contract.id]; - if (commentData && commentData.hasComments) { - // 코멘트가 있으면 협의 중이므로 불가 - return false; - } - // 코멘트가 없으면 협의 없음으로 간주하여 가능 - } - - // 레드플래그 해소 확인 - const resolution = redFlagResolutionData[contract.id]; - // 레드플래그가 있는 경우, 해소되어야 함 - if (redFlagData[contract.id] === true && !resolution?.resolved) { - return false; - } - - return true; - }); + // 준법문의 버튼 활성화 가능 여부: 항상 활성화 + const canRequestComplianceInquiry = isComplianceTemplate; // 필터링된 계약서들 계산 const resendContracts = selectedRows.map(row => row.original) @@ -758,11 +684,7 @@ export function BasicContractDetailTableToolbarActions({ onClick={handleRequestLegalReview} className="gap-2" disabled={!canRequestComplianceInquiry || loading} - title={ - !canRequestComplianceInquiry - ? "협력업체 서명 완료, 협의 완료, 레드플래그 해소가 필요합니다" - : "준법문의 링크로 이동" - } + title="준법문의 링크로 이동" >