fix(tksupport): 전사 휴가 차감 시 관리계정·미입사자 제외

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-25 08:55:14 +09:00
parent a40c1e0f18
commit 66db012754

View File

@@ -61,21 +61,25 @@ const companyHolidayModel = {
}
const typeId = types[0].id;
// 3. 활성 사원 연차 차감 (잔여일 무관 일괄 적용)
// 3. 활성 사원 연차 차감 (관리계정 제외, 입사일 이후 휴가만 적용)
const [result] = await conn.query(`
UPDATE sp_vacation_balances SET used_days = used_days + 1, updated_at = NOW()
WHERE vacation_type_id = ? AND year = YEAR(?) AND balance_type = 'AUTO'
AND user_id IN (SELECT user_id FROM sso_users WHERE is_active = 1)
`, [typeId, holiday.holiday_date]);
AND user_id IN (
SELECT user_id FROM sso_users
WHERE is_active = 1 AND hire_date IS NOT NULL AND hire_date <= ?
)
`, [typeId, holiday.holiday_date, holiday.holiday_date]);
// 4. 차감 완료 표시
await conn.query(
'UPDATE company_holidays SET deduction_applied_at = NOW() WHERE id = ?', [holidayId]
);
// 5. balance 없는 사원 수 체크 (경고용)
// 5. balance 없는 사원 수 체크 (경고용, 관리계정·미입사자 제외)
const [activeUsers] = await conn.query(
'SELECT COUNT(*) as cnt FROM sso_users WHERE is_active = 1'
'SELECT COUNT(*) as cnt FROM sso_users WHERE is_active = 1 AND hire_date IS NOT NULL AND hire_date <= ?',
[holiday.holiday_date]
);
const missing = activeUsers[0].cnt - result.affectedRows;