From 6160e8bd61360ada9e8e0574671c38292eaba9e7 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Tue, 25 Nov 2025 11:48:21 +0000 Subject: (임수민) 준법/gtc 코멘트 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vendor-table/basic-contract-sign-dialog.tsx | 63 +++++++++++++--------- 1 file changed, 38 insertions(+), 25 deletions(-) (limited to 'lib/basic-contract/vendor-table/basic-contract-sign-dialog.tsx') diff --git a/lib/basic-contract/vendor-table/basic-contract-sign-dialog.tsx b/lib/basic-contract/vendor-table/basic-contract-sign-dialog.tsx index e5aab10d..407a3c4d 100644 --- a/lib/basic-contract/vendor-table/basic-contract-sign-dialog.tsx +++ b/lib/basic-contract/vendor-table/basic-contract-sign-dialog.tsx @@ -142,13 +142,20 @@ const canCompleteCurrentContract = React.useMemo(() => { // 계약서별 상태 초기화 + // Vendor signed 상태의 계약서도 포함하여 초기화 React.useEffect(() => { if (contracts.length > 0 && contractStatuses.length === 0) { setContractStatuses( - contracts.map(contract => ({ - id: contract.id, - status: 'pending' as const - })) + contracts.map(contract => { + // 이미 서명된 계약서는 vendor_signed 상태로 초기화 + const isSigned = contract.vendorSignedAt || + contract.status === "COMPLETED" || + contract.status === "VENDOR_SIGNED"; + return { + id: contract.id, + status: isSigned ? ('vendor_signed' as const) : ('pending' as const) + }; + }) ); } }, [contracts, contractStatuses.length]); @@ -705,7 +712,7 @@ const canCompleteCurrentContract = React.useMemo(() => {
{filteredContracts.map((contract) => { const contractStatus = contractStatuses.find(status => status.id === contract.id); - const isCompleted = contractStatus?.status === 'completed'; + const isCompleted = contractStatus?.status === 'completed' || contractStatus?.status === 'vendor_signed'; const hasError = contractStatus?.status === 'error'; // 계약서별 완료 상태 확인 @@ -732,7 +739,8 @@ const canCompleteCurrentContract = React.useMemo(() => { !isCompleted && !hasError && "hover:bg-blue-50 hover:border-blue-200" )} onClick={() => handleSelectContract(contract)} - disabled={isCompleted} + // Vendor signed 상태에서도 코멘트를 볼 수 있도록 비활성화하지 않음 + disabled={false} >
{/* 첫 번째 줄: 제목 + 상태 */} @@ -851,7 +859,7 @@ const canCompleteCurrentContract = React.useMemo(() => { {selectedContract.templateName || t("basicContracts.dialog.document")} {/* 현재 계약서 상태 표시 */} - {currentContractStatus?.status === 'completed' ? ( + {(currentContractStatus?.status === 'completed' || currentContractStatus?.status === 'vendor_signed') ? ( {isBuyerMode ? "승인 완료" : "서명 완료"} @@ -931,10 +939,10 @@ const canCompleteCurrentContract = React.useMemo(() => {
{/* 현재 계약서가 완료된 경우 */} - {currentContractStatus?.status === 'completed' ? ( + {currentContractStatus?.status === 'completed' || currentContractStatus?.status === 'vendor_signed' ? (

- 이 계약서는 이미 {isBuyerMode ? "승인이" : "서명이"} 완료되었습니다 + 이 계약서는 이미 {isBuyerMode ? "승인이" : "서명이"} 완료되었습니다. 코멘트를 확인할 수 있습니다.

) : currentContractStatus?.status === 'error' ? (

@@ -1015,22 +1023,27 @@ const canCompleteCurrentContract = React.useMemo(() => { 모든 {isBuyerMode ? "승인" : "서명"} 완료 - ) : currentContractStatus?.status === 'completed' ? ( - // 현재 계약서가 완료된 경우 - + ) : (currentContractStatus?.status === 'completed' || currentContractStatus?.status === 'vendor_signed') ? ( + // 현재 계약서가 완료된 경우 - 코멘트 확인만 가능 +

+ +

+ 서명 완료 - 코멘트 확인 가능 +

+
) : ( // 현재 계약서를 서명해야 하는 경우