summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx21
-rw-r--r--lib/basic-contract/status-detail/basic-contracts-detail-table.tsx1
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}