summaryrefslogtreecommitdiff
path: root/lib/basic-contract/status-detail
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-25 11:48:21 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-25 11:48:21 +0000
commit6160e8bd61360ada9e8e0574671c38292eaba9e7 (patch)
tree57857b8cd7f1b858deb68622d69feba11fda20a8 /lib/basic-contract/status-detail
parent6fcb8eda80c5ccac7eb985d3efb2aaafa0711988 (diff)
(임수민) 준법/gtc 코멘트 수정
Diffstat (limited to 'lib/basic-contract/status-detail')
-rw-r--r--lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx46
-rw-r--r--lib/basic-contract/status-detail/basic-contracts-detail-table.tsx35
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 {
// 일반 계약서인 경우: 상세 정보를 보여주는 기능
// 현재는 준비 중이지만, 향후 다이얼로그나 시트를 열 수 있음