'error', 'message' => 'ไม่สามารถดำเนินการได้'); // ตรวจสอบการเข้าสู่ระบบ $username = isset($_SESSION['username']) ? $_SESSION['username'] : ''; $schoolID = isset($_SESSION['schoolID']) ? $_SESSION['schoolID'] : ''; if (empty($username) || empty($schoolID)) { $res['message'] = 'กรุณาเข้าสู่ระบบใหม่'; echo json_encode($res); exit; } switch($action) { case 'add': $person_id = isset($_POST['person_id']) ? intval($_POST['person_id']) : 0; // ตรวจสอบว่าบุคคลนี้เป็นของผู้ใช้คนนี้ try { $stmt = $pdo->prepare("SELECT id FROM individual_counseling WHERE id = ? AND username = ? AND schoolID = ?"); $stmt->execute(array($person_id, $username, $schoolID)); if (!$stmt->fetch()) { $res['message'] = 'ไม่พบข้อมูลบุคคล หรือไม่มีสิทธิ์เข้าถึง'; echo json_encode($res); exit; } } catch (PDOException $e) { $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); echo json_encode($res); exit; } // เก็บข้อมูลจากฟอร์ม $service_request_number = isset($_POST['service_request_number']) ? intval($_POST['service_request_number']) : 1; $service_request_date = isset($_POST['service_request_date']) ? trim($_POST['service_request_date']) : ''; $service_request_details = isset($_POST['service_request_details']) ? trim($_POST['service_request_details']) : ''; $recommendations = isset($_POST['recommendations']) ? trim($_POST['recommendations']) : ''; // จัดการข้อมูล JSON $education_issues = isset($_POST['education_issues']) ? $_POST['education_issues'] : array(); $career_issues = isset($_POST['career_issues']) ? $_POST['career_issues'] : array(); $personal_issues = isset($_POST['personal_issues']) ? $_POST['personal_issues'] : array(); $referral_services = isset($_POST['referral_services']) ? $_POST['referral_services'] : array(); $referral_services_sub = isset($_POST['referral_services_sub']) ? $_POST['referral_services_sub'] : array(); // รวม sub-services เข้ากับ main services พร้อม prefix 'sub_' foreach ($referral_services_sub as $sub_id) { $referral_services[] = 'sub_' . $sub_id; } // เก็บข้อมูล "อื่นๆ" แยกต่างหาก $education_other = isset($_POST['education_other']) ? trim($_POST['education_other']) : ''; $career_other = isset($_POST['career_other']) ? trim($_POST['career_other']) : ''; $personal_other = isset($_POST['personal_other']) ? trim($_POST['personal_other']) : ''; $referral_other = isset($_POST['referral_other']) ? trim($_POST['referral_other']) : ''; $service_success_id = isset($_POST['service_success']) ? intval($_POST['service_success']) : null; $service_failure_reason = isset($_POST['service_failure_reason']) ? trim($_POST['service_failure_reason']) : ''; $follow_up_id = isset($_POST['follow_up']) ? intval($_POST['follow_up']) : null; $follow_up_date = isset($_POST['follow_up_date']) ? trim($_POST['follow_up_date']) : ''; // ข้อมูลผู้ปฏิบัติหน้าที่ให้คำปรึกษา $counselor_first_name = isset($_POST['counselor_first_name']) ? trim($_POST['counselor_first_name']) : ''; $counselor_last_name = isset($_POST['counselor_last_name']) ? trim($_POST['counselor_last_name']) : ''; $counselor_position = isset($_POST['counselor_position']) ? trim($_POST['counselor_position']) : ''; $counselor_organization = isset($_POST['counselor_organization']) ? trim($_POST['counselor_organization']) : ''; $counselor_phone = isset($_POST['counselor_phone']) ? trim($_POST['counselor_phone']) : ''; // Validation if (empty($service_request_date)) { $res['message'] = 'กรุณาระบุวันที่ขอรับบริการ'; echo json_encode($res); exit; } if (empty($service_request_details)) { $res['message'] = 'กรุณาระบุรายละเอียดการขอรับบริการ'; echo json_encode($res); exit; } if (empty($counselor_first_name)) { $res['message'] = 'กรุณากรอกชื่อผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_last_name)) { $res['message'] = 'กรุณากรอกนามสกุลผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_position)) { $res['message'] = 'กรุณากรอกตำแหน่งผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_organization)) { $res['message'] = 'กรุณากรอกหน่วยงานผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_phone)) { $res['message'] = 'กรุณากรอกเบอร์โทรศัพท์ผู้ให้คำปรึกษา'; echo json_encode($res); exit; } // เพิ่มการ debug สำหรับการตรวจสอบข้อผิดพลาด $debug_info = array( 'person_id' => $person_id, 'service_request_date' => $service_request_date, 'education_issues_count' => count($education_issues), 'career_issues_count' => count($career_issues), 'personal_issues_count' => count($personal_issues), 'referral_services_count' => count($referral_services) ); error_log('individual_service_ajax.php - Add action debug: ' . json_encode($debug_info)); try { $stmt = $pdo->prepare("INSERT INTO individual_counseling_service (individual_counseling_id, service_request_number, service_request_date, service_request_details, education_issues, education_other, career_issues, career_other, personal_issues, personal_other, service_success_id, service_failure_reason, follow_up_id, follow_up_date, referral_services, referral_other, recommendations, counselor_first_name, counselor_last_name, counselor_position, counselor_organization, counselor_phone, username, schoolID, leader, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())"); $result = $stmt->execute(array( $person_id, $service_request_number, $service_request_date, $service_request_details, json_encode($education_issues), $education_other, json_encode($career_issues), $career_other, json_encode($personal_issues), $personal_other, $service_success_id, $service_failure_reason, $follow_up_id, empty($follow_up_date) ? null : $follow_up_date, json_encode($referral_services), $referral_other, $recommendations, $counselor_first_name, $counselor_last_name, $counselor_position, $counselor_organization, $counselor_phone, $username, $schoolID, isset($_SESSION['leader']) ? $_SESSION['leader'] : '' )); if ($result) { $res['status'] = 'success'; $res['message'] = 'บันทึกการให้บริการเรียบร้อย'; $res['id'] = $pdo->lastInsertId(); } } catch (PDOException $e) { error_log('individual_service_ajax.php - Add error: ' . $e->getMessage()); $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); } break; case 'update': $person_id = isset($_POST['person_id']) ? intval($_POST['person_id']) : 0; $service_id = isset($_POST['service_id']) ? intval($_POST['service_id']) : 0; // ตรวจสอบสิทธิ์ try { $stmt = $pdo->prepare("SELECT isr.id FROM individual_counseling_service isr INNER JOIN individual_counseling ic ON isr.individual_counseling_id = ic.id WHERE isr.id = ? AND isr.individual_counseling_id = ? AND ic.username = ? AND ic.schoolID = ?"); $stmt->execute(array($service_id, $person_id, $username, $schoolID)); if (!$stmt->fetch()) { $res['message'] = 'ไม่พบข้อมูลการให้บริการ หรือไม่มีสิทธิ์เข้าถึง'; echo json_encode($res); exit; } } catch (PDOException $e) { $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); echo json_encode($res); exit; } // เก็บข้อมูลจากฟอร์ม (เหมือน add case) $service_request_number = isset($_POST['service_request_number']) ? intval($_POST['service_request_number']) : 1; $service_request_date = isset($_POST['service_request_date']) ? trim($_POST['service_request_date']) : ''; $service_request_details = isset($_POST['service_request_details']) ? trim($_POST['service_request_details']) : ''; $recommendations = isset($_POST['recommendations']) ? trim($_POST['recommendations']) : ''; $education_issues = isset($_POST['education_issues']) ? $_POST['education_issues'] : array(); $career_issues = isset($_POST['career_issues']) ? $_POST['career_issues'] : array(); $personal_issues = isset($_POST['personal_issues']) ? $_POST['personal_issues'] : array(); $referral_services = isset($_POST['referral_services']) ? $_POST['referral_services'] : array(); $referral_services_sub = isset($_POST['referral_services_sub']) ? $_POST['referral_services_sub'] : array(); // รวม sub-services เข้ากับ main services พร้อม prefix 'sub_' foreach ($referral_services_sub as $sub_id) { $referral_services[] = 'sub_' . $sub_id; } // เก็บข้อมูล "อื่นๆ" แยกต่างหาก $education_other = isset($_POST['education_other']) ? trim($_POST['education_other']) : ''; $career_other = isset($_POST['career_other']) ? trim($_POST['career_other']) : ''; $personal_other = isset($_POST['personal_other']) ? trim($_POST['personal_other']) : ''; $referral_other = isset($_POST['referral_other']) ? trim($_POST['referral_other']) : ''; $service_success_id = isset($_POST['service_success']) ? intval($_POST['service_success']) : null; $service_failure_reason = isset($_POST['service_failure_reason']) ? trim($_POST['service_failure_reason']) : ''; $follow_up_id = isset($_POST['follow_up']) ? intval($_POST['follow_up']) : null; $follow_up_date = isset($_POST['follow_up_date']) ? trim($_POST['follow_up_date']) : ''; // ข้อมูลผู้ปฏิบัติหน้าที่ให้คำปรึกษา $counselor_first_name = isset($_POST['counselor_first_name']) ? trim($_POST['counselor_first_name']) : ''; $counselor_last_name = isset($_POST['counselor_last_name']) ? trim($_POST['counselor_last_name']) : ''; $counselor_position = isset($_POST['counselor_position']) ? trim($_POST['counselor_position']) : ''; $counselor_organization = isset($_POST['counselor_organization']) ? trim($_POST['counselor_organization']) : ''; $counselor_phone = isset($_POST['counselor_phone']) ? trim($_POST['counselor_phone']) : ''; // Validation if (empty($service_request_date)) { $res['message'] = 'กรุณาระบุวันที่ขอรับบริการ'; echo json_encode($res); exit; } if (empty($service_request_details)) { $res['message'] = 'กรุณาระบุรายละเอียดการขอรับบริการ'; echo json_encode($res); exit; } if (empty($counselor_first_name)) { $res['message'] = 'กรุณากรอกชื่อผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_last_name)) { $res['message'] = 'กรุณากรอกนามสกุลผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_position)) { $res['message'] = 'กรุณากรอกตำแหน่งผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_organization)) { $res['message'] = 'กรุณากรอกหน่วยงานผู้ให้คำปรึกษา'; echo json_encode($res); exit; } if (empty($counselor_phone)) { $res['message'] = 'กรุณากรอกเบอร์โทรศัพท์ผู้ให้คำปรึกษา'; echo json_encode($res); exit; } try { $stmt = $pdo->prepare("UPDATE individual_counseling_service SET service_request_number = ?, service_request_date = ?, service_request_details = ?, education_issues = ?, education_other = ?, career_issues = ?, career_other = ?, personal_issues = ?, personal_other = ?, service_success_id = ?, service_failure_reason = ?, follow_up_id = ?, follow_up_date = ?, referral_services = ?, referral_other = ?, recommendations = ?, counselor_first_name = ?, counselor_last_name = ?, counselor_position = ?, counselor_organization = ?, counselor_phone = ?, username = ?, schoolID = ?, leader = ?, updated_at = NOW() WHERE id = ?"); $result = $stmt->execute(array( $service_request_number, $service_request_date, $service_request_details, json_encode($education_issues), $education_other, json_encode($career_issues), $career_other, json_encode($personal_issues), $personal_other, $service_success_id, $service_failure_reason, $follow_up_id, empty($follow_up_date) ? null : $follow_up_date, json_encode($referral_services), $referral_other, $recommendations, $counselor_first_name, $counselor_last_name, $counselor_position, $counselor_organization, $counselor_phone, $username, $schoolID, isset($_SESSION['leader']) ? $_SESSION['leader'] : '', $service_id )); if ($result) { $res['status'] = 'success'; $res['message'] = 'อัปเดตการให้บริการเรียบร้อย'; } } catch (PDOException $e) { $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); } break; case 'delete': $service_id = isset($_POST['service_id']) ? intval($_POST['service_id']) : 0; // ตรวจสอบสิทธิ์ try { $stmt = $pdo->prepare("SELECT isr.id FROM individual_counseling_service isr INNER JOIN individual_counseling ic ON isr.individual_counseling_id = ic.id WHERE isr.id = ? AND ic.username = ? AND ic.schoolID = ?"); $stmt->execute(array($service_id, $username, $schoolID)); if (!$stmt->fetch()) { $res['message'] = 'ไม่พบข้อมูลการให้บริการ หรือไม่มีสิทธิ์เข้าถึง'; echo json_encode($res); exit; } } catch (PDOException $e) { $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); echo json_encode($res); exit; } try { $stmt = $pdo->prepare("DELETE FROM individual_counseling_service WHERE id = ?"); $result = $stmt->execute(array($service_id)); if ($result) { $res['status'] = 'success'; $res['message'] = 'ลบการให้บริการเรียบร้อย'; } } catch (PDOException $e) { $res['message'] = 'เกิดข้อผิดพลาด: ' . $e->getMessage(); } break; default: $res['message'] = 'การดำเนินการไม่ถูกต้อง'; break; } echo json_encode($res); ?>