Files
dnssash/adm/consultant_manage/ajax_generate_schedule.php
T
2026-06-11 18:47:38 +09:00

83 lines
2.6 KiB
PHP

<?php
/**
* 스케줄 생성 AJAX 처리
*/
include_once('./_common.php');
// 관리자 권한 확인
if (!$is_admin) {
die(json_encode(['success' => false, 'message' => '권한이 없습니다.']));
}
// 설치 확인
if (!is_consultant_installed()) {
die(json_encode(['success' => false, 'message' => '상담 예약 시스템이 설치되지 않았습니다.']));
}
$action = $_POST['action'] ?? '';
$year = (int) ($_POST['year'] ?? date('Y'));
$month = (int) ($_POST['month'] ?? date('n'));
require_once('classes/ScheduleGenerator.class.php');
try {
$generator = new ScheduleGenerator();
switch ($action) {
case 'generate_month':
$result = $generator->generateMonth($year, $month);
if ($result) {
echo json_encode([
'success' => true,
'message' => "{$year}{$month}월 스케줄이 생성되었습니다."
]);
} else {
echo json_encode([
'success' => false,
'message' => '스케줄 생성에 실패했습니다.'
]);
}
break;
case 'check_conflicts':
$conflicts = $generator->checkScheduleConflicts($year, $month);
echo json_encode([
'success' => true,
'conflicts' => $conflicts,
'message' => count($conflicts) > 0 ?
count($conflicts) . '개의 충돌이 발견되었습니다.' :
'충돌이 없습니다.'
]);
break;
case 'regenerate_next_month':
$nextMonth = date('n') == 12 ? 1 : date('n') + 1;
$nextYear = date('n') == 12 ? date('Y') + 1 : date('Y');
$result = $generator->generateMonth($nextYear, $nextMonth);
if ($result) {
echo json_encode([
'success' => true,
'message' => "다음 달({$nextYear}{$nextMonth}월) 스케줄이 재생성되었습니다."
]);
} else {
echo json_encode([
'success' => false,
'message' => '다음 달 스케줄 재생성에 실패했습니다.'
]);
}
break;
default:
echo json_encode(['success' => false, 'message' => '잘못된 요청입니다.']);
break;
}
} catch (Exception $e) {
echo json_encode([
'success' => false,
'message' => '오류가 발생했습니다: ' . $e->getMessage()
]);
}
?>