Feat: VIP 관리 시스템 개선 - 모달 구조 정리, 만료일 자동 상태 관리

- VIP 리스트 모달을 루프 내 숨겨진 TR에 통합 (Bootstrap 호환성 유지)
- X 아이콘 제거 및 액션 버튼 표시 조건 개선 (status='정상'인 경우만 표시)
- 행 높이 표준화 (60px, align-middle)
- 만료일이 오늘 이전일 경우 상태 자동 '만료' 처리 (AJAX 및 1회성 실행 모드)
- 만료일 설정 페이지 결과 테이블에 상태 변경 정보 추가
This commit is contained in:
2026-02-20 15:38:38 +09:00
parent bd1f111e8d
commit 3afec44da9
3 changed files with 81 additions and 80 deletions

View File

@ -14,7 +14,7 @@ if(!$_SESSION['user_id']) {
}
// 권한 체크 (관리자 이상만 가능)
if($_SESSION['user_lv'] < 2) {
if($_SESSION['user_lv'] < 3) {
die('권한이 없습니다.');
}
@ -56,8 +56,12 @@ if(isset($_POST['ajax_mode'])) {
$vip_date = date("Y-m-d", strtotime($list['last_ent_date'] . " +1 year"));
}
// 만료 여부 확인 (만료일이 오늘 이전이면 상태를 '만료'로 변경)
$today = date('Y-m-d');
$new_status = (strtotime($vip_date) < strtotime($today)) ? '만료' : '정상';
// DB 업데이트
$updateQuery = "UPDATE {$fg['vip_list_table']} SET vip_date='{$vip_date}' WHERE idx='{$list['idx']}'";
$updateQuery = "UPDATE {$fg['vip_list_table']} SET vip_date='{$vip_date}', status='{$new_status}' WHERE idx='{$list['idx']}'";
$update_result = sql_query($updateQuery);
if ($update_result) {
@ -68,7 +72,7 @@ if(isset($_POST['ajax_mode'])) {
// log 기록
$work = "VIP만료일일괄설정";
$work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." 처리자 : ".$_SESSION['user_name'];
$work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." 상태 : ".$new_status." 처리자 : ".$_SESSION['user_name'];
$logUpdate = log_update($work, $work_detail, $_SESSION['user_id'], $datetime);
}
@ -112,8 +116,12 @@ if(isset($_REQUEST['confirm']) && $_REQUEST['confirm'] == 'yes') {
$logic_type = "최종이용일 기준";
}
// 만료 여부 확인 (만료일이 오늘 이전이면 상태를 '만료'로 변경)
$today = date('Y-m-d');
$new_status = (strtotime($vip_date) < strtotime($today)) ? '만료' : '정상';
// DB 업데이트
$updateQuery = "UPDATE {$fg['vip_list_table']} SET vip_date='{$vip_date}' WHERE idx='{$list['idx']}'";
$updateQuery = "UPDATE {$fg['vip_list_table']} SET vip_date='{$vip_date}', status='{$new_status}' WHERE idx='{$list['idx']}'";
$update_result = sql_query($updateQuery);
if ($update_result) {
@ -124,7 +132,9 @@ if(isset($_REQUEST['confirm']) && $_REQUEST['confirm'] == 'yes') {
'old_date' => $list['vip_date'],
'new_date' => $vip_date,
'logic' => $logic_type,
'ent_count' => $ent_count
'ent_count' => $ent_count,
'new_status' => $new_status,
'status_changed' => ($new_status !== $list['status']) ? 'O' : 'X'
);
} else {
$error_count++;
@ -132,7 +142,7 @@ if(isset($_REQUEST['confirm']) && $_REQUEST['confirm'] == 'yes') {
// log 기록
$work = "VIP만료일일괄설정";
$work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." (" . $logic_type . ") 처리자 : ".$_SESSION['user_name'];
$work_detail = "카드번호 : ".$list['vip_card_no']." 만료일 : ".$vip_date." (" . $logic_type . ") 상태 : ".$new_status." 처리자 : ".$_SESSION['user_name'];
$logUpdate = log_update($work, $work_detail, $_SESSION['user_id'], $datetime);
}
@ -186,6 +196,8 @@ if(isset($_REQUEST['confirm']) && $_REQUEST['confirm'] == 'yes') {
<th>신규 만료일</th>
<th>설정 기준</th>
<th>방문횟수</th>
<th>신규 상태</th>
<th>상태변경</th>
</tr>
</thead>
<tbody>
@ -197,6 +209,8 @@ if(isset($_REQUEST['confirm']) && $_REQUEST['confirm'] == 'yes') {
<td><strong><?= $item['new_date'] ?></strong></td>
<td><?= $item['logic'] ?></td>
<td><?= $item['ent_count'] ?></td>
<td><?= $item['new_status'] ?></td>
<td><?= ($item['status_changed'] === 'O') ? '<span class="badge bg-warning">변경됨</span>' : '-' ?></td>
</tr>
<?php } ?>
</tbody>