刪除學生請假紀錄

對應程式: enter_logs/holiday/admin/delete_holiday.php

03-刪除學生請假紀錄

業務功能

管理員後台頁面,供有權限的工作人員刪除特定請假紀錄(例如錯誤申請),刪除前需輸入原因,並將資料備份至 holiday_logs_deleted 表,避免系統結算時計入請假時數。

頁面操作

  • 校區篩選:同其他後台頁面,school_area GET 參數必須有效,否則顯示提示
  • 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

  1. 呼叫 AIA_Holiday::get_holiday_logs_by_log_ids($a, ['return_type'=>'ARR']) 取得原始資料
  2. $wpdb->insert(TBL_HOLIDAY_LOGS_DELETED, array_merge($row, $ary_info_for_deleted_table_default)):備份每筆到刪除資料表(加入 deleted_timewho_deleteddeleted_reason
  3. insert 成功後呼叫 AIA_Holiday::delete_by_log_id($row['holiday_log_id'])$wpdb->delete(TBL_HOLIDAY_LOGS, ['holiday_log_id'=>$id])
  4. 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/deleteWordPress core

使用的常數

Constant定義於
TBL_HOLIDAY_LOGS"holiday_logs"enter_logs/inc.php
TBL_HOLIDAY_LOGS_DELETED"holiday_logs_deleted"enter_logs/inc.php