diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-25 11:48:21 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-25 11:48:21 +0000 |
| commit | 6160e8bd61360ada9e8e0574671c38292eaba9e7 (patch) | |
| tree | 57857b8cd7f1b858deb68622d69feba11fda20a8 /lib/basic-contract/status-detail | |
| parent | 6fcb8eda80c5ccac7eb985d3efb2aaafa0711988 (diff) | |
(임수민) 준법/gtc 코멘트 수정
Diffstat (limited to 'lib/basic-contract/status-detail')
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx | 46 | ||||
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contracts-detail-table.tsx | 35 |
2 files changed, 44 insertions, 37 deletions
diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx index d03d0720..047866f7 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx @@ -172,25 +172,8 @@ export function getDetailColumns({ <Mail className="mr-2 h-4 w-4" /> 재발송 </DropdownMenuItem> - <DropdownMenuItem onClick={async () => { - // 준법서약 템플릿인 경우 compliance 응답 페이지로 이동 - if (contract.templateName?.includes('준법')) { - try { - const response = await getComplianceResponseByBasicContractId(contract.id); - - if (response) { - router.push(`/evcp/compliance/${response.templateId}/responses/${response.id}`); - } else { - toast.error("준법서약 응답을 찾을 수 없습니다."); - setRowAction({ type: "view", row }); - } - } catch (error) { - console.error("Error fetching compliance response:", error); - toast.error("응답 정보를 가져오는데 실패했습니다."); - } - } else { - setRowAction({ type: "view", row }); - } + <DropdownMenuItem onClick={() => { + setRowAction({ type: "view", row }); }}> <FileText className="mr-2 h-4 w-4" /> 상세 정보 @@ -327,19 +310,20 @@ export function getDetailColumns({ const handleOpenGTC = (e: React.MouseEvent) => { e.stopPropagation() - // gtcDocumentId가 있으면 그걸 사용, 없으면 templateId 사용 - const documentIdToUse = contractGtcData?.gtcDocumentId || contract.templateId - - if (documentIdToUse && contract.vendorId) { - const gtcUrl = `/evcp/basic-contract/vendor-gtc/${documentIdToUse}?vendorId=${contract.vendorId}&vendorName=${encodeURIComponent(contract.vendorName || '')}&contractId=${contract.id}&templateId=${contract.templateId}` - window.open(gtcUrl, '_blank') - } else { - console.error('GTC 페이지를 열 수 없습니다:', { - gtcDocumentId: contractGtcData?.gtcDocumentId, - templateId: contract.templateId, - vendorId: contract.vendorId - }) + // 상세보기와 동일하게 contract.id를 경로 파라미터로 사용 + const params = new URLSearchParams(); + if (contract.templateId) { + params.set("templateId", contract.templateId.toString()); + } + if (contract.vendorId) { + params.set("vendorId", contract.vendorId.toString()); + } + if (contract.vendorName) { + params.set("vendorName", contract.vendorName); } + const query = params.toString(); + const gtcUrl = `/evcp/basic-contract/vendor-gtc/${contract.id}${query ? `?${query}` : ""}`; + window.open(gtcUrl, '_blank'); } return ( 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 a2e1c5e4..9c5da894 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx @@ -235,13 +235,36 @@ type RedFlagResolutionState = { // GTC 템플릿인 경우 GTC 협의 페이지로 이동 const contract = rowAction.row.original; if (contract.templateName?.includes('GTC')) { - const contractGtcData = gtcData[contract.id]; - if (contractGtcData?.gtcDocumentId) { - const gtcUrl = `/evcp/basic-contract/vendor-gtc/${contractGtcData.gtcDocumentId}?vendorId=${contract.vendorId}&vendorName=${encodeURIComponent(contract.vendorName || '')}&contractId=${contract.id}&templateId=${contract.templateId}`; - router.push(gtcUrl); - } else { - toast.error("GTC 문서 정보를 찾을 수 없습니다."); + // GTC 템플릿인 경우 GTC 협의 페이지로 이동 + // 준법과 동일하게 contract.id를 경로 파라미터로 사용 + const params = new URLSearchParams(); + if (contract.templateId) { + params.set("templateId", contract.templateId.toString()); } + if (contract.vendorId) { + params.set("vendorId", contract.vendorId.toString()); + } + if (contract.vendorName) { + params.set("vendorName", contract.vendorName); + } + const query = params.toString(); + const gtcUrl = `/evcp/basic-contract/vendor-gtc/${contract.id}${query ? `?${query}` : ""}`; + router.push(gtcUrl); + } else if (contract.templateName?.includes('준법')) { + // 준법 템플릿인 경우 준법 코멘트 페이지로 이동 + const params = new URLSearchParams(); + if (contract.templateId) { + params.set("templateId", contract.templateId.toString()); + } + if (contract.vendorId) { + params.set("vendorId", contract.vendorId.toString()); + } + if (contract.vendorName) { + params.set("vendorName", contract.vendorName); + } + const query = params.toString(); + const complianceUrl = `/evcp/basic-contract/compliance-comments/${contract.id}${query ? `?${query}` : ""}`; + router.push(complianceUrl); } else { // 일반 계약서인 경우: 상세 정보를 보여주는 기능 // 현재는 준비 중이지만, 향후 다이얼로그나 시트를 열 수 있음 |
