import { state } from '../../core/state'; import { SoftwareAsset } from '../../core/excelHandler'; import { openModal, closeModals } from './BaseModal'; import { openSwUserModal } from './SWUserModal'; import { createIcons, History, Plus, X, Save, Edit2, RotateCcw, Calendar } from 'lucide'; import { CORP_LIST } from './SharedData'; import { generateOptionsHTML, setFieldValue, getFieldValue, setEditLock, applyDateMask } from './ModalUtils'; let currentSwAsset: SoftwareAsset | null = null; let isEditMode = false; const SW_MODAL_HTML = `
`; function applySwTypeUI(type: string) { const cloudFields = document.querySelectorAll('.cloud-only'); const swFields = document.querySelectorAll('.sw-standard-field'); const userSection = document.getElementById('sw-user-section'); const keyGroup = document.getElementById('sw-license-key-group'); const typeGroup = document.getElementById('sw-license-type-group'); const expiryGroup = document.getElementById('sw-expiry-group'); if (type === '클라우드') { cloudFields.forEach(el => (el as HTMLElement).style.display = 'flex'); swFields.forEach(el => (el as HTMLElement).style.display = 'none'); if (userSection) userSection.style.display = 'none'; } else { cloudFields.forEach(el => (el as HTMLElement).style.display = 'none'); swFields.forEach(el => (el as HTMLElement).style.display = 'flex'); if (userSection) userSection.style.display = 'block'; if (type === '구독SW') { if (keyGroup) keyGroup.style.display = 'none'; if (typeGroup) typeGroup.style.display = 'flex'; if (expiryGroup) expiryGroup.style.display = 'flex'; } else { if (keyGroup) keyGroup.style.display = 'flex'; if (typeGroup) typeGroup.style.display = 'none'; if (expiryGroup) expiryGroup.style.display = 'flex'; } } } function fillSwFormData(asset: SoftwareAsset) { setFieldValue('sw-asset-id', asset.id); setFieldValue('sw-asset-type', asset.type); setFieldValue('sw-분야', asset.분야 || '업무공통'); setFieldValue('sw-법인', asset.법인); setFieldValue('sw-자산번호', asset.자산번호 || ''); setFieldValue('sw-부서', asset.부서 || ''); setFieldValue('sw-제품명', asset.제품명); setFieldValue('sw-수량', asset.수량); setFieldValue('sw-금액', asset.금액); setFieldValue('sw-구매일', asset.구매일 || ''); setFieldValue('sw-시작일', asset.시작일 || ''); setFieldValue('sw-납품업체', asset.납품업체 || ''); setFieldValue('sw-비고', asset.비고 || ''); if (asset.type === '클라우드') { setFieldValue('sw-플랫폼명', (asset as any).플랫폼명 || ''); setFieldValue('sw-계정명', (asset as any).계정명 || ''); setFieldValue('sw-결제수단', (asset as any).결제수단 || ''); setFieldValue('sw-연결카드번호', (asset as any).연결카드번호 || ''); setFieldValue('sw-결제일', (asset as any).결제일 || ''); setFieldValue('sw-당월청구액', (asset as any).당월청구액 || ''); } else if (asset.type === '구독SW') { setFieldValue('sw-라이선스유형', (asset as any).라이선스유형 || ''); setFieldValue('sw-만료일', (asset as any).만료일 || ''); } else { setFieldValue('sw-라이선스키', (asset as any).라이선스키 || ''); } renderUserSummary(asset.id); renderSwHistory(asset.id); } function renderUserSummary(swId: string) { const container = document.getElementById('sw-assigned-users-summary'); if (!container) return; const userMapping = state.masterData.swUsers.find(u => u.sw_id === swId); if (!userMapping || !userMapping.userData || userMapping.userData.length === 0) { container.innerHTML = '