diff options
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx | 21 | ||||
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contracts-detail-table.tsx | 1 |
2 files changed, 19 insertions, 3 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 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<BasicContractView> gtcData?: Record<number, { gtcDocumentId: number | null; hasComments: boolean }> + agreementCommentData?: Record<number, { hasComments: boolean; commentCount: number }> redFlagData?: Record<number, boolean> redFlagResolutionData?: Record<number, RedFlagResolutionState> 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 = { <BasicContractDetailTableToolbarActions table={table} gtcData={gtcData} + agreementCommentData={agreementCommentData} redFlagData={redFlagData} redFlagResolutionData={redFlagResolutionData} isComplianceTemplate={isComplianceTemplate} |
