prepare("SELECT id, title FROM `{$table}` WHERE status = 1 ORDER BY id"); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if (empty($result)) { $stmt = $pdo->prepare("SELECT id, title FROM `{$table}` ORDER BY id"); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); } return $result; } catch (PDOException $e) { return array(); } } function getNameById($id, $data) { foreach ($data as $item) { if ($item['id'] == $id) return $item['title']; } return ''; } // แปลงวันที่ 'YYYY/MM/DD' → '26 มี.ค. 69' function thaiDateShort($dateRaw) { if (empty($dateRaw) || $dateRaw == '0000/00/00') return ''; $parts = explode('/', $dateRaw); if (count($parts) !== 3) return ''; $y = intval($parts[0]); $m = intval($parts[1]); $d = intval($parts[2]); if ($m < 1 || $m > 12) return ''; $months = array('','ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'); // แปลง ค.ศ. เป็น พ.ศ. if ($y < 2400) { $y += 543; } $thaiYear = substr((string)$y, -2); return $d . ' ' . $months[$m] . ' ' . $thaiYear; } // ดึงข้อมูลประเภทต่างๆ $prefixData = getTypeData('prefix', $pdo); $genderData = getTypeData('typeSex', $pdo); $occupationData2 = getTypeData('typeOccupation', $pdo); $statusData = getTypeData('typeStatus', $pdo); $serviceTypeData = getTypeData('typeService', $pdo); $educationData = getTypeData('typeEducational', $pdo); $occuIssueData = getTypeData('typeEduOccupation', $pdo); $socialData = getTypeData('typesocialSspects', $pdo); $giveHelpData = getTypeData('typeGiveHelp', $pdo); $appointmentData = getTypeData('typeAppointment', $pdo); try { $stmt = $pdo->prepare("SELECT id, title FROM typeServiceSuccess ORDER BY id"); $stmt->execute(); $serviceSuccessData = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $serviceSuccessData = array(); } // 🌟 3. สร้างเงื่อนไขกรองข้อมูลให้ตรงกับ Dashboard 🌟 $where_conditions = array("1=1"); $params = array(); // กรองตามสิทธิ์ if (!$is_admin && $user_school_id !== '' && $user_school_id !== '0') { if ($current_user_type === 1) { $where_conditions[] = "ic.schoolID LIKE ?"; $params[] = substr($user_school_id, 0, 4) . '%'; } else if ($current_user_type === 2) { $where_conditions[] = "ic.schoolID LIKE ?"; $params[] = substr($user_school_id, 0, 6) . '%'; } else { $where_conditions[] = "ic.schoolID LIKE ?"; $params[] = $user_school_id . '%'; } } // กรองตามวันที่ if (!empty($start_date)) { $where_conditions[] = "ics.service_request_date >= ?"; $params[] = $start_date; } if (!empty($end_date)) { $where_conditions[] = "ics.service_request_date <= ?"; $params[] = $end_date; } // กรองตามการค้นหาข้อความ (จังหวัด, อำเภอ, ชื่อสถานศึกษา) if (!empty($search_term)) { $where_conditions[] = "(s.firstname LIKE ? OR s.province LIKE ? OR s.amphur LIKE ?)"; $search_param = '%' . $search_term . '%'; $params[] = $search_param; $params[] = $search_param; $params[] = $search_param; } $where_clause = implode(' AND ', $where_conditions); // ดึงข้อมูลผู้รับบริการ try { $stmt = $pdo->prepare(" SELECT ic.id, ic.province, ic.district, ic.prefix_id, ic.first_name, ic.last_name, YEAR(ic.birth_date) AS birth_year, MONTH(ic.birth_date) AS birth_month, DAY(ic.birth_date) AS birth_day, ic.gender_id, ic.nationality, ic.occupation_id, ic.marital_status_id, ic.service_type_id, ics.service_request_number, DATE_FORMAT(ics.service_request_date, '%Y/%m/%d') AS service_request_date_raw, ics.service_request_details, ics.education_issues, ics.education_other, ics.career_issues, ics.career_other, ics.personal_issues, ics.personal_other, ics.referral_services, ics.referral_other, ics.service_success_id, ics.service_failure_reason, ics.recommendations, ics.follow_up_id, DATE_FORMAT(ics.follow_up_date, '%Y/%m/%d') AS follow_up_date_raw, ics.counselor_first_name, ics.counselor_last_name, ics.counselor_position, COALESCE(u.schoolName, ics.counselor_organization) AS counselor_organization, ics.counselor_phone FROM individual_counseling ic LEFT JOIN individual_counseling_service ics ON ic.id = ics.individual_counseling_id LEFT JOIN users u ON u.schoolID = ics.counselor_organization LEFT JOIN school s ON ic.schoolID = s.schoolID WHERE {$where_clause} ORDER BY ic.id ASC, ics.service_request_number ASC "); $stmt->execute($params); $records = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $records = array(); } // ===== ส่งออก Excel ===== if ($isExport) { $filename = 'รายงานรายบุคคล_' . date('Ymd_His') . '.xls'; header('Content-Type: application/vnd.ms-excel; charset=utf-8'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Cache-Control: max-age=0'); echo "\xEF\xBB\xBF"; // UTF-8 BOM echo ''; echo ''; echo ''; $totalCols = 15 + (count($educationData)+1) + (count($occuIssueData)+1) + (count($socialData)+1) + 3 + (count($giveHelpData)+1) + 2 + 5; // หัวรายงาน echo ''; // ช่วงวันที่ค้นหา if (!empty($start_date) || !empty($end_date) || !empty($search_term)) { $filter_text = "เงื่อนไขการค้นหา: "; if (!empty($start_date) && !empty($end_date)) { $filter_text .= thaiDateShort(str_replace('-', '/', $start_date)) . ' - ' . thaiDateShort(str_replace('-', '/', $end_date)); } elseif (!empty($start_date)) { $filter_text .= "ตั้งแต่ " . thaiDateShort(str_replace('-', '/', $start_date)); } elseif (!empty($end_date)) { $filter_text .= "ถึงวันที่ " . thaiDateShort(str_replace('-', '/', $end_date)); } if (!empty($search_term)) { $filter_text .= " | ค้นหา: " . htmlspecialchars($search_term); } echo ''; } else { echo ''; } echo ''; // Header row 1 echo ''; echo ''; echo ''; echo ''; echo ''; if ($current_user_type == 9) { echo ''; echo ''; echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // Header row 2 echo ''; foreach ($educationData as $item) echo ''; echo ''; foreach ($occuIssueData as $item) echo ''; echo ''; foreach ($socialData as $item) echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($giveHelpData as $item) echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if (empty($records)) { echo ''; } else { // Data rows $seq = 1; foreach ($records as $row) { $eduIssues = json_decode($row['education_issues'] ?? '[]', true) ?: []; $careerIssues = json_decode($row['career_issues'] ?? '[]', true) ?: []; $personalIssues = json_decode($row['personal_issues'] ?? '[]', true) ?: []; $referrals = json_decode($row['referral_services'] ?? '[]', true) ?: []; $age = ''; if (!empty($row['birth_year'])) { $y = intval($row['birth_year']); if ($y > 2400) { $y -= 543; } // แปลง พ.ศ. เป็น ค.ศ. กันพลาด $server_year = intval(date('Y')); if ($server_year > 2400) { $server_year -= 543; } $age = $server_year - $y; if ($age < 0) $age = 0; } $serviceDate = thaiDateShort($row['service_request_date_raw'] ?? ''); $followUpDate = thaiDateShort($row['follow_up_date_raw'] ?? ''); echo ''; echo ''; echo ''; echo ''; echo ''; if ($current_user_type == 9) { echo ''; echo ''; echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($educationData as $item) echo ''; echo ''; foreach ($occuIssueData as $item) echo ''; echo ''; foreach ($socialData as $item) echo ''; echo ''; echo ''; echo ''; echo ''; foreach ($giveHelpData as $item) echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $phone = trim($row['counselor_phone'] ?? ''); echo ''; echo ''; } } echo '
ผลการให้บริการแนะแนวและให้คำปรึกษา รายบุคคล
' . $filter_text . ' (พบ ' . count($records) . ' รายการ)
ข้อมูลทั้งหมด (พบ ' . count($records) . ' รายการ)
ลำดับที่วันที่ขอรับบริการจังหวัดอำเภอคำนำหน้าชื่อชื่อสกุลอายุเพศสัญชาติประกอบอาชีพสถานภาพประเภทผู้รับบริการครั้งที่ขอรับบริการรายละเอียดที่ขอรับบริการด้านการศึกษาด้านอาชีพด้านสังคมและส่วนตัวสรุปผลการให้บริการให้ความช่วยเหลือ/ส่งต่อ/ประสาน หน่วยงานหรือเครือข่ายภายนอกนัดหมายติดตามผู้ปฏิบัติหน้าที่ให้คำปรึกษา
' . htmlspecialchars($item['title']) . 'อื่นๆ (ด้านการศึกษา)' . htmlspecialchars($item['title']) . 'อื่นๆ (ด้านอาชีพ)' . htmlspecialchars($item['title']) . 'อื่นๆ (ด้านสังคม)สิ่งที่ดำเนินการหรือข้อแนะนำความสำเร็จในการให้บริการเหตุผลไม่สำเร็จ' . htmlspecialchars($item['title']) . 'อื่นๆ (การส่งต่อ)ประเภทนัดหมายวันที่นัดหมายชื่อผู้ให้คำปรึกษาสกุลตำแหน่งหน่วยงานเบอร์โทรศัพท์
ไม่พบข้อมูลที่ตรงกับเงื่อนไขการค้นหา
' . $seq++ . '' . htmlspecialchars($serviceDate) . '' . htmlspecialchars($row['province'] ?? '') . '' . htmlspecialchars($row['district'] ?? '') . '' . htmlspecialchars(getNameById($row['prefix_id'], $prefixData)) . '' . htmlspecialchars($row['first_name'] ?? '') . '' . htmlspecialchars($row['last_name'] ?? '') . '' . $age . '' . htmlspecialchars(getNameById($row['gender_id'], $genderData)) . '' . htmlspecialchars($row['nationality'] ?? '') . '' . htmlspecialchars(getNameById($row['occupation_id'], $occupationData2)) . '' . htmlspecialchars(getNameById($row['marital_status_id'], $statusData)) . '' . htmlspecialchars(getNameById($row['service_type_id'], $serviceTypeData)) . '' . htmlspecialchars($row['service_request_number'] ?? '') . '' . htmlspecialchars($row['service_request_details'] ?? '') . '' . (in_array($item['id'], $eduIssues) ? '1' : '') . '' . htmlspecialchars(trim($row['education_other'] ?? '')) . '' . (in_array($item['id'], $careerIssues) ? '1' : '') . '' . htmlspecialchars(trim($row['career_other'] ?? '')) . '' . (in_array($item['id'], $personalIssues) ? '1' : '') . '' . htmlspecialchars(trim($row['personal_other'] ?? '')) . '' . htmlspecialchars($row['recommendations'] ?? '') . '' . htmlspecialchars(getNameById($row['service_success_id'], $serviceSuccessData)) . '' . htmlspecialchars($row['service_failure_reason'] ?? '') . '' . (in_array($item['id'], $referrals) ? '1' : '') . '' . htmlspecialchars(trim($row['referral_other'] ?? '')) . '' . htmlspecialchars(getNameById($row['follow_up_id'], $appointmentData)) . '' . htmlspecialchars($followUpDate) . '' . htmlspecialchars($row['counselor_first_name'] ?? '') . '' . htmlspecialchars($row['counselor_last_name'] ?? '') . '' . htmlspecialchars($row['counselor_position'] ?? '') . '' . htmlspecialchars($row['counselor_organization'] ?? '') . '' . "\t" . htmlspecialchars($phone) . '
'; exit(); } ?> รายงานรายบุคคลและวิเคราะห์ประเด็นการขอรับบริการ

ผลการให้บริการแนะแนวและให้คำปรึกษา รายบุคคล

เงื่อนไขการค้นหา: ตั้งแต่ ถึงวันที่ | ค้นหา: (พบ รายการ)
2400) { $y -= 543; } $server_year = intval(date('Y')); if ($server_year > 2400) { $server_year -= 543; } $age = $server_year - $y; if ($age < 0) $age = 0; } $serviceDate = thaiDateShort($row['service_request_date_raw'] ?? ''); $followDate = thaiDateShort($row['follow_up_date_raw'] ?? ''); ?>
ลำดับที่ วันที่ขอรับบริการ จังหวัด อำเภอ คำนำหน้าชื่อ ชื่อ สกุล อายุ เพศ สัญชาติ ประกอบอาชีพ สถานภาพ ประเภทผู้รับบริการ ครั้งที่ขอรับบริการ รายละเอียดที่ขอรับบริการ ด้านการศึกษา ด้านอาชีพ ด้านสังคมและส่วนตัว สรุปผลการให้บริการ ให้ความช่วยเหลือ/ส่งต่อ/ประสาน หน่วยงานหรือเครือข่ายภายนอก นัดหมายติดตาม ผู้ปฏิบัติหน้าที่ให้คำปรึกษา
อื่นๆ (ด้านการศึกษา) อื่นๆ (ด้านอาชีพ) อื่นๆ (ด้านสังคม) สิ่งที่ดำเนินการหรือข้อแนะนำ ความสำเร็จในการให้บริการ เหตุผลไม่สำเร็จ อื่นๆ (การส่งต่อ) ประเภทนัดหมาย วันที่นัดหมาย ชื่อผู้ให้คำปรึกษา สกุล ตำแหน่ง หน่วยงาน เบอร์โทรศัพท์
ไม่พบข้อมูลที่ตรงกับเงื่อนไขการค้นหา
✓' : ''; ?> ✓' : ''; ?> ✓' : ''; ?> ✓' : ''; ?>