summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/basic-contract/status-detail/basic-contract-detail-table-toolbar-actions.tsx94
1 files 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="준법문의 링크로 이동"
>
<FileText className="size-4" aria-hidden="true" />
<span className="hidden sm:inline">
@@ -776,11 +698,7 @@ export function BasicContractDetailTableToolbarActions({
onClick={handleRequestLegalReview}
className="gap-2"
disabled={!canRequestLegalReview || loading}
- title={
- !canRequestLegalReview
- ? "협력업체 서명 완료 및 협의 완료가 필요합니다"
- : "법무검토 요청 링크 선택"
- }
+ title="법무검토 요청 링크 선택"
>
<FileText className="size-4" aria-hidden="true" />
<span className="hidden sm:inline">