刪除學生請假紀錄
對應程式: enter_logs/holiday/admin/delete_holiday.php

業務功能
管理員後台頁面,供有權限的工作人員刪除特定請假紀錄(例如錯誤申請),刪除前需輸入原因,並將資料備份至 holiday_logs_deleted 表,避免系統結算時計入請假時數。
頁面操作
- 校區篩選:同其他後台頁面,
school_areaGET 參數必須有效,否則顯示提示 - Step 1 — 勾選紀錄:從資料表列出近 800 天請假列表,供勾選要刪除的項目(可多選);相鄰不同
log_datetime的列以粗線分組 - Step 2 — 輸入刪除原因:點選「刪除」後顯示中間確認表單,列出勾選的紀錄 ID,需輸入刪除原因(必填,JS 驗證非空)
- Step 3 — 確認刪除:提交後執行刪除並顯示成功訊息;也可連結至 view_deleted_holiday.php 確認
處理邏輯
Step 2 POST(goto=step2):
- 取得
$_POST['log_id']陣列 - 呼叫
AIA_Holiday::get_holiday_logs_by_log_ids($log_id)驗證資料存在,不存在則die - 顯示帶有
str_log_id(id 以逗號合併)及goto=step3的確認表單
Step 3 POST(goto=step3):
- 呼叫
AIA_Holiday::get_holiday_logs_by_log_ids($a, ['return_type'=>'ARR'])取得原始資料 $wpdb->insert(TBL_HOLIDAY_LOGS_DELETED, array_merge($row, $ary_info_for_deleted_table_default)):備份每筆到刪除資料表(加入deleted_time、who_deleted、deleted_reason)- insert 成功後呼叫
AIA_Holiday::delete_by_log_id($row['holiday_log_id']):$wpdb->delete(TBL_HOLIDAY_LOGS, ['holiday_log_id'=>$id]) die('已刪除 ... 回列表頁')
備註
- 存取權限由
admin/inc.php的$REVIEW_HOLIDAY_USERS白名單管理 - 刪除是「軟刪除 + 備份」:原始資料移至
holiday_logs_deleted,可在 view_deleted_holiday.php 查閱 - 刪除後無法在此頁還原;若需還原需手動操作資料庫
使用的 Functions
| Function | 定義於 |
|---|---|
AIA_Holiday_UI::setup_CSS() | enter_logs/holiday/admin/inc.php |
AIA_Holiday_UI::display_nav() | enter_logs/holiday/admin/inc.php |
AIA_Holiday_UI::display_school_area_ui() | enter_logs/holiday/admin/inc.php |
AIA_Holiday_UI::display_initial_log_table($type) | enter_logs/holiday/admin/inc.php |
AIA_Holiday_UI::display_review_result_text($review_result) | enter_logs/holiday/admin/inc.php |
AIA_Holiday_UI::display_reason_textarea($s) | enter_logs/holiday/admin/inc.php |
AIA_Holiday::is_valid_school_area_querystring() | enter_logs/holiday/admin/inc.php |
AIA_Holiday::get_holiday_logs_by_log_ids($log_id, $conf) | enter_logs/holiday/admin/inc.php |
AIA_Holiday::get_all_holidays_one_by_one($school_area) | enter_logs/holiday/admin/inc.php |
AIA_Holiday::delete_by_log_id($log_id) | enter_logs/holiday/admin/inc.php |
now() | wp-config.php |
wp_get_current_user() | WordPress core |
$wpdb->insert/delete | WordPress core |
使用的常數
| Constant | 值 | 定義於 |
|---|---|---|
TBL_HOLIDAY_LOGS | "holiday_logs" | enter_logs/inc.php |
TBL_HOLIDAY_LOGS_DELETED | "holiday_logs_deleted" | enter_logs/inc.php |