feat(tkuser): 부서 관리 개선 — 상위부서 제거, hard delete, 휴가 부서별 그룹
- 상위부서(parent_id) 필드 UI/API 전체 제거 - 부서 비활성화(soft delete) → 진짜 삭제(hard delete) 전환 (트랜잭션) - 소속 인원 있는 부서 삭제 시 department_id=NULL 처리 - 편집 모달에서 활성/비활성 필드 제거 - 휴가 발생 입력 작업자 select를 부서별 optgroup으로 표시 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -77,13 +77,25 @@ async function loadWorkers() {
|
||||
return;
|
||||
}
|
||||
|
||||
// 개별 입력 탭 - 작업자 셀렉트 박스
|
||||
// 개별 입력 탭 - 작업자 셀렉트 박스 (부서별 그룹)
|
||||
const selectWorker = document.getElementById('individualWorker');
|
||||
const byDept = {};
|
||||
workers.forEach(worker => {
|
||||
const option = document.createElement('option');
|
||||
option.value = worker.user_id;
|
||||
option.textContent = `${worker.worker_name} (${worker.employment_status === 'employed' ? '재직' : '퇴사'})`;
|
||||
selectWorker.appendChild(option);
|
||||
const dept = worker.department_name || '부서 미지정';
|
||||
if (!byDept[dept]) byDept[dept] = [];
|
||||
byDept[dept].push(worker);
|
||||
});
|
||||
|
||||
Object.keys(byDept).sort().forEach(dept => {
|
||||
const group = document.createElement('optgroup');
|
||||
group.label = dept;
|
||||
byDept[dept].forEach(worker => {
|
||||
const option = document.createElement('option');
|
||||
option.value = worker.user_id;
|
||||
option.textContent = `${worker.worker_name} (${worker.employment_status === 'employed' ? '재직' : '퇴사'})`;
|
||||
group.appendChild(option);
|
||||
});
|
||||
selectWorker.appendChild(group);
|
||||
});
|
||||
console.log(`Loaded ${workers.length} workers successfully`);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user