From ee57cc221ff2edafd3c0f12a181214c602ed257e Mon Sep 17 00:00:00 2001 From: dujinkim Date: Tue, 22 Jul 2025 02:57:00 +0000 Subject: (대표님, 최겸) 이메일 템플릿, 벤더데이터 변경사항 대응, 기술영업 변경요구사항 구현 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ship/import-from-dolce-button.tsx | 86 +++++++++++----------- 1 file changed, 43 insertions(+), 43 deletions(-) (limited to 'lib/vendor-document-list/ship/import-from-dolce-button.tsx') diff --git a/lib/vendor-document-list/ship/import-from-dolce-button.tsx b/lib/vendor-document-list/ship/import-from-dolce-button.tsx index d4728d22..de9e63bc 100644 --- a/lib/vendor-document-list/ship/import-from-dolce-button.tsx +++ b/lib/vendor-document-list/ship/import-from-dolce-button.tsx @@ -72,7 +72,7 @@ export function ImportFromDOLCEButton({ setVendorContractIds(contractIds) } catch (error) { console.error('Failed to fetch vendor contracts:', error) - toast.error('계약 정보를 가져오는데 실패했습니다.') + toast.error('Failed to fetch contract information.') } finally { setLoadingVendorContracts(false) } @@ -142,7 +142,7 @@ export function ImportFromDOLCEButton({ } catch (error) { console.error('Failed to fetch import statuses:', error) - toast.error('상태를 확인할 수 없습니다. 프로젝트 설정을 확인해주세요.') + toast.error('Unable to check status. Please verify project settings.') } finally { setStatusLoading(false) } @@ -230,16 +230,16 @@ export function ImportFromDOLCEButton({ if (totalResult.success) { toast.success( - `DOLCE 가져오기 완료`, + `DOLCE import completed`, { - description: `신규 ${totalResult.newCount}건, 업데이트 ${totalResult.updatedCount}건, 건너뜀 ${totalResult.skippedCount}건 (${contractIds.length}개 계약)` + description: `New ${totalResult.newCount}, Updated ${totalResult.updatedCount}, Skipped ${totalResult.skippedCount} (${contractIds.length} contracts)` } ) } else { toast.error( - `DOLCE 가져오기 부분 실패`, + `DOLCE import partially failed`, { - description: '일부 계약에서 가져오기에 실패했습니다.' + description: 'Some contracts failed to import.' } ) } @@ -252,34 +252,34 @@ export function ImportFromDOLCEButton({ setImportProgress(0) setIsImporting(false) - toast.error('DOLCE 가져오기 실패', { - description: error instanceof Error ? error.message : '알 수 없는 오류가 발생했습니다.' + toast.error('DOLCE import failed', { + description: error instanceof Error ? error.message : 'An unknown error occurred.' }) } } const getStatusBadge = () => { if (loadingVendorContracts) { - return 계약 정보 로딩 중... + return Loading contract information... } if (statusLoading) { - return DOLCE 연결 확인 중... + return Checking DOLCE connection... } if (importStatusMap.size === 0) { - return DOLCE 연결 오류 + return DOLCE Connection Error } if (!totalStats.importEnabled) { - return DOLCE 가져오기 비활성화 + return DOLCE Import Disabled } if (totalStats.newDocuments > 0 || totalStats.updatedDocuments > 0) { return ( - 업데이트 가능 ({contractIds.length}개 계약) + Updates Available ({contractIds.length} contracts) ) } @@ -287,7 +287,7 @@ export function ImportFromDOLCEButton({ return ( - DOLCE와 동기화됨 + Synchronized with DOLCE ) } @@ -316,7 +316,7 @@ export function ImportFromDOLCEButton({ ) : ( )} - DOLCE에서 가져오기 + Import from DOLCE {totalStats.newDocuments + totalStats.updatedDocuments > 0 && (
-

DOLCE 가져오기 상태

+

DOLCE Import Status

- 현재 상태 + Current Status {getStatusBadge()}
@@ -342,15 +342,15 @@ export function ImportFromDOLCEButton({ {/* 계약 소스 표시 */} {allDocuments.length === 0 && vendorContractIds.length > 0 && (
- 문서가 없어서 전체 계약에서 가져오기를 진행합니다. + No documents found, importing from all contracts.
)} {/* 다중 계약 정보 표시 */} {contractIds.length > 1 && (
-
대상 계약
-
{contractIds.length}개 계약
+
Target Contracts
+
{contractIds.length} contracts
Contract IDs: {contractIds.join(', ')}
@@ -363,25 +363,25 @@ export function ImportFromDOLCEButton({
-
신규 문서
-
{totalStats.newDocuments || 0}건
+
New Documents
+
{totalStats.newDocuments || 0}
-
업데이트
-
{totalStats.updatedDocuments || 0}건
+
Updates
+
{totalStats.updatedDocuments || 0}
-
DOLCE 전체 문서 (B3/B4/B5)
-
{totalStats.availableDocuments || 0}건
+
Total DOLCE Documents (B3/B4/B5)
+
{totalStats.availableDocuments || 0}
{/* 각 계약별 세부 정보 (펼치기/접기 가능) */} {contractIds.length > 1 && (
- 계약별 세부 정보 + Details by Contract
{contractIds.map(contractId => { @@ -391,10 +391,10 @@ export function ImportFromDOLCEButton({
Contract {contractId}
{status ? (
- 신규 {status.newDocuments}건, 업데이트 {status.updatedDocuments}건 + New {status.newDocuments}, Updates {status.updatedDocuments}
) : ( -
상태 확인 실패
+
Status check failed
)}
) @@ -417,12 +417,12 @@ export function ImportFromDOLCEButton({ {isImporting ? ( <> - 가져오는 중... + Importing... ) : ( <> - 지금 가져오기 + Import Now )} @@ -448,10 +448,10 @@ export function ImportFromDOLCEButton({ - DOLCE에서 문서 목록 가져오기 + Import Document List from DOLCE - 삼성중공업 DOLCE 시스템에서 최신 문서 목록을 가져옵니다. - {contractIds.length > 1 && ` (${contractIds.length}개 계약 대상)`} + Import the latest document list from Samsung Heavy Industries DOLCE system. + {contractIds.length > 1 && ` (${contractIds.length} contracts targeted)`} @@ -459,20 +459,20 @@ export function ImportFromDOLCEButton({ {totalStats && (
- 가져올 항목 + Items to Import - {totalStats.newDocuments + totalStats.updatedDocuments}건 + {totalStats.newDocuments + totalStats.updatedDocuments}
- 신규 문서와 업데이트된 문서가 포함됩니다. (B3, B4, B5) + Includes new and updated documents (B3, B4, B5).
- B4 문서의 경우 GTTPreDwg, GTTWorkingDwg 이슈 스테이지가 자동 생성됩니다. + For B4 documents, GTTPreDwg and GTTWorkingDwg issue stages will be auto-generated. {contractIds.length > 1 && ( <>
- {contractIds.length}개 계약에서 순차적으로 가져옵니다. + Will import sequentially from {contractIds.length} contracts. )}
@@ -480,7 +480,7 @@ export function ImportFromDOLCEButton({ {isImporting && (
- 진행률 + Progress {importProgress}%
@@ -495,7 +495,7 @@ export function ImportFromDOLCEButton({ onClick={() => setIsDialogOpen(false)} disabled={isImporting} > - 취소 + Cancel -- cgit v1.2.3