diff options
Diffstat (limited to 'lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx')
| -rw-r--r-- | lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx | 22 |
1 files changed, 21 insertions, 1 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 9a140b27..c6f82fc8 100644 --- a/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx +++ b/lib/basic-contract/status-detail/basic-contracts-detail-columns.tsx @@ -30,6 +30,7 @@ import { BasicContractView } from "@/db/schema" import { downloadFile, quickPreview } from "@/lib/file-download" import { toast } from "sonner" import { useRouter } from "next/navigation" +import { getComplianceResponseByBasicContractId } from "@/lib/compliance/services" interface GetColumnsProps { setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<BasicContractView> | null>> @@ -151,7 +152,26 @@ export function getDetailColumns({ <Mail className="mr-2 h-4 w-4" /> 재발송 </DropdownMenuItem> - <DropdownMenuItem onClick={() => setRowAction({ type: "view", row })}> + <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 }); + } + }}> <FileText className="mr-2 h-4 w-4" /> 상세 정보 </DropdownMenuItem> |
