<?php
require_once __DIR__ . '/vendor/autoload.php';

// Koneksi ke database
include "config.php";

// Path untuk logo
$possible_logo_paths = [
    __DIR__ . '/../assets/img/logo.png',
    __DIR__ . '/../../assets/img/logo.png',
    $_SERVER['DOCUMENT_ROOT'] . '/assets/img/logo.png',
    'assets/img/logo.png',
    '../assets/img/logo.png',
    '../../assets/img/logo.png',
    '../../../assets/img/logo.png'
];

$logo_base64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';

foreach ($possible_logo_paths as $logo_path) {
    if (file_exists($logo_path)) {
        $logo_data = file_get_contents($logo_path);
        if ($logo_data !== false) {
            $logo_base64 = 'data:' . mime_content_type($logo_path) . ';base64,' . base64_encode($logo_data);
            break;
        }
    }
}

// Ambil parameter dari form
$kode_kelas = $_POST['kode_kelas'];

// Ambil informasi kelas
$queryKelas = "SELECT * FROM ctkpoin_kelas WHERE kode_kelas = '" . mysqli_real_escape_string($conn, $kode_kelas) . "'";
$resultKelas = mysqli_query($conn, $queryKelas);
$kelasData = mysqli_fetch_assoc($resultKelas);

// Query untuk mendapatkan semua siswa dalam kelas
$querySiswa = "SELECT DISTINCT nama_siswa 
               FROM ctkpoin_pelanggaran_siswa 
               WHERE kode_kelas = '" . mysqli_real_escape_string($conn, $kode_kelas) . "'
               ORDER BY nama_siswa";

$resultSiswa = mysqli_query($conn, $querySiswa);
$jumlahSiswa = mysqli_num_rows($resultSiswa);

// Create mPDF instance dengan pengaturan khusus
$mpdf = new \Mpdf\Mpdf([
    'mode' => 'utf-8',
    'format' => 'A4',
    'margin_left' => 15,
    'margin_right' => 15,
    'margin_top' => 20,
    'margin_bottom' => 25,
    'margin_header' => 10,
    'margin_footer' => 10,
    'default_font_size' => 11,
    'default_font' => 'Arial'
]);

// CSS untuk PDF - SAMA seperti cetak_pdf.php
$css = '
<style>
    @page {
        margin-left: 15mm;
        margin-right: 15mm;
        margin-top: 5mm;
        margin-bottom: 0mm;
    }
    body { 
        font-family: Arial, sans-serif; 
        font-size: 12px; 
    }
    .logo-container {
        text-align: center;
        margin-bottom: 10px;
    }
    .logo-sekolah {
        width: 80px;
        height: auto;
        display: inline-block;
    }
    .header { 
        text-align: center; 
        margin-bottom: 20px; 
        border-bottom: 2px solid #333; 
        padding-bottom: 10px; 
    }
    .header h1 { 
        font-size: 18px; 
        margin: 5px 0; 
        color: #333;
    }
    .header h2 { 
        font-size: 14px; 
        margin: 5px 0; 
        color: #666; 
        font-weight: normal;
    }
    .header h3 { 
        font-size: 12px; 
        margin: 3px 0; 
        color: #444; 
        font-weight: normal; 
    }
    .kelas-header {
        text-align: center;
        background-color: #f8f9fa;
        padding: 10px;
        margin: 15px 0;
        border-radius: 5px;
        border: 1px solid #dee2e6;
    }
    .kelas-header h4 {
        font-size: 16px;
        margin: 0;
        color: #333;
    }
    .siswa-info { 
        margin: 15px 0; 
    }
    .siswa-info table { 
        width: 100%; 
        border-collapse: collapse; 
    }
    .siswa-info td { 
        padding: 5px; 
        vertical-align: top; 
    }
    .table { 
        width: 100%; 
        border-collapse: collapse; 
        margin: 15px 0; 
    }
    .table th { 
        background-color: #f2f2f2; 
        border: 1px solid #ddd; 
        padding: 8px; 
        text-align: left; 
        font-size: 11px; 
        font-weight: bold; 
    }
    .table td { 
        border: 1px solid #ddd; 
        padding: 8px; 
        font-size: 11px; 
    }
    .badge { 
        padding: 3px 8px; 
        border-radius: 3px; 
        font-size: 11px; 
        display: inline-block; 
    }
    .badge-danger { 
        background-color: #dc3545; 
        color: white; 
    }
    .badge-warning { 
        background-color: #ffc107; 
        color: black; 
    }
    .badge-info { 
        background-color: #17a2b8; 
        color: white; 
    }
    .summary { 
        margin-top: 20px; 
        padding: 15px; 
        background-color: #f8f9fa; 
        border-radius: 5px; 
        font-size: 12px; 
    }
    .summary h4 { 
        margin-top: 0; 
        margin-bottom: 10px; 
        font-size: 12px; 
    }
    .summary table { 
        width: 100%; 
    }
    .ttd-section { 
        margin-top: 50px; 
        margin-left: 400px;
    }
    .ttd-container { 
        display: flex; 
        justify-content: space-between; 
    }
    .ttd-right { 
        text-align: left; 
        width: 300px; 
    }
    .ttd-place { 
        margin-top: 60px; 
        font-size: 12px; 
    }
    .ttd-name { 
        margin-top: 80px; 
        font-weight: bold; 
        text-decoration: underline; 
        font-size: 12px;
    }
    .ttd-nip { 
        margin-top: 3px; 
        font-size: 12px; 
    }
    .text-center { 
        text-align: center; 
    }
    .logo-sekolah {
        position: absolute;
        top: 0;
        right: 0;
        width: 250px;
        height: auto;
    }
    .page-break {
        page-break-before: always;
    }
    .footer {
        text-align:center; 
        font-size:11px; 
        color:#666;
        margin-top: 10px;
        border-top: 0.5px solid #ddd;
        padding-top: 5px;
    }
    .page-number {
        position: absolute;
        bottom: 10px;
        right: 15mm;
        font-size: 10px;
        color: #666;
    }
</style>';

$mpdf = new \Mpdf\Mpdf([
    'margin_bottom' => 15, // jarak footer dari bawah (mm)
]);

$footer = '
<div style="text-align:center; font-size:11px; color:#666;">
    <hr style="border: 0.5px solid #ddd; margin: 10px 0;">
    © 2025 SMA Negeri 1 Bantaran — Dicetak oleh Sistem e-Poin
</div>';


// Set judul dokumen
$mpdf->SetTitle('Laporan Pelanggaran Kelas - ' . ($kelasData['nama_kelas'] ?? ''));
$mpdf->SetAuthor('Sistem E-Poin Sekolah');

// Tambahkan halaman sampul/cover
$coverPage = $css . '
<div style="text-align: center; margin-top: 100px;">
    <div style="text-align: right; margin-bottom: 30px;">
        <img src="' . $logo_base64 . '" width="250" />
    </div>
    <h1 style="font-size: 24px; color: #333; margin-bottom: 10px;">LAPORAN PELANGGARAN SISWA</h1>
    <h2 style="font-size: 18px; color: #666; margin-bottom: 5px;">SISTEM E-POIN SEKOLAH</h2>
    <h3 style="font-size: 16px; color: #444; margin-bottom: 30px;">LAPORAN PER KELAS</h3>
    
    <div style="margin: 40px auto; width: 80%; background-color: #f8f9fa; padding: 20px; border-radius: 10px; text-align: left;">
        <h4 style="font-size: 18px; color: #333; margin-bottom: 15px;">' . ($kelasData['nama_kelas'] ?? 'Kelas') . '</h4>
        <table style="width: 100%; font-size: 14px;">
            <tr>
                <td width="120"><strong>Wali Kelas</strong></td>
                <td width="10">:</td>
                <td>' . ($kelasData['wali_kelas'] ?? '-') . '</td>
            </tr>
            <tr>
                <td><strong>Jumlah Siswa</strong></td>
                <td>:</td>
                <td>' . $jumlahSiswa . ' siswa</td>
            </tr>
            <tr>
                <td><strong>Tanggal Cetak</strong></td>
                <td>:</td>
                <td>' . date('d F Y') . '</td>
            </tr>
        </table>
    </div>
    
    <div style="margin-top: 100px;">
        <p style="font-size: 14px; color: #666;">SMA Negeri 1 Bantaran</p>
        <p style="font-size: 12px; color: #888;">' . date('Y') . '</p>
    </div>
</div>';

$mpdf->WriteHTML($coverPage);
$mpdf->AddPage();

// Loop untuk setiap siswa
$counter = 0;
while ($siswa = mysqli_fetch_assoc($resultSiswa)) {
    $counter++;
    
    // Query data pelanggaran untuk siswa ini
    $query = "SELECT 
                ps.id_pelanggaran,
                ps.nama_siswa,
                ps.jenis_kelamin,
                ps.tanggal,
                ps.pelanggaran,
                ps.poin,
                ps.keterangan,
                k.nama_kelas,
                k.wali_kelas,
                k.nip as nip_wali_kelas,
                ta.tahun_ajaran,
                ta.semester
              FROM ctkpoin_pelanggaran_siswa ps
              JOIN ctkpoin_kelas k ON ps.kode_kelas = k.kode_kelas
              JOIN ctkpoin_tahun_ajaran ta ON ps.kode_tahun_ajaran = ta.kode_tahun_ajaran
              WHERE ps.nama_siswa = '" . mysqli_real_escape_string($conn, $siswa['nama_siswa']) . "'
              AND ps.kode_kelas = '" . mysqli_real_escape_string($conn, $kode_kelas) . "'
              ORDER BY ps.tanggal DESC, ps.id_pelanggaran DESC";

    $result = mysqli_query($conn, $query);
    
    // Hitung total poin untuk siswa ini
    $totalPoin = 0;
    $jumlahPelanggaran = 0;
    $dataRows = [];
    
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $dataRows[] = $row;
            $totalPoin += $row['poin'];
            $jumlahPelanggaran++;
        }
        $firstRow = $dataRows[0];
    } else {
        $firstRow = null;
    }
    
    // Header untuk setiap siswa (sama seperti cetak_pdf.php)
    $header = $css . '
    <div style="text-align: right; margin-top: 2px;">
        <img src="' . $logo_base64 . '" width="250" />
    </div>
    <div class="header" style="margin-top: 30px;">
        <h1>LAPORAN PELANGGARAN SISWA</h1>
        <h2>SISTEM E-POIN SEKOLAH</h2>';
    
    // Tambahkan tahun ajaran
    if ($firstRow && isset($firstRow['tahun_ajaran']) && isset($firstRow['semester'])) {
        $header .= '<h3>Tahun Ajaran: ' . htmlspecialchars($firstRow['tahun_ajaran']) . '<br> Semester ' . htmlspecialchars($firstRow['semester']) . '</h3>';
    } else {
        $queryTahunDefault = "SELECT tahun_ajaran, semester FROM tahun_ajaran ORDER BY tahun_ajaran DESC LIMIT 1";
        $resultTahunDefault = mysqli_query($conn, $queryTahunDefault);
        if ($resultTahunDefault && mysqli_num_rows($resultTahunDefault) > 0) {
            $tahunDefault = mysqli_fetch_assoc($resultTahunDefault);
            $header .= '<h3>Tahun Ajaran: ' . htmlspecialchars($tahunDefault['tahun_ajaran']) . ' - ' . htmlspecialchars($tahunDefault['semester']) . '</h3>';
        } else {
            $header .= '<h3>Tahun Ajaran: 2025/2026 - Semester Ganjil</h3>';
        }
    }
    
    $header .= '</div>';
    
    // Info kelas di bagian atas
     $kelasInfo = '
  ';
    
    // Siswa info
    $siswaInfo = '';
    if ($firstRow) {
        $siswaInfo = '
        <div class="siswa-info">
            <table>
                <tr>
                    <td width="100"><strong>Nama Siswa</strong></td>
                    <td width="10">:</td>
                    <td width="250">' . htmlspecialchars($siswa['nama_siswa']) . '</td>
                    <td width="80"><strong>Kelas</strong></td>
                    <td width="10">:</td>
                    <td width="50">' . (isset($firstRow['nama_kelas']) ? htmlspecialchars($firstRow['nama_kelas']) : '-') . '</td>
                </tr>
                <tr>
                    <td><strong>Jenis Kelamin</strong></td>
                    <td>:</td>
                    <td>' . (isset($firstRow['jenis_kelamin']) ? htmlspecialchars($firstRow['jenis_kelamin']) : '-') . '</td>
                    <td><strong>Wali Kelas</strong></td>
                    <td>:</td>
                    <td>' . (isset($firstRow['wali_kelas']) ? htmlspecialchars($firstRow['wali_kelas']) : '-') . '</td>
                </tr>
            </table>
        </div>';
    } else {
        $siswaInfo = '
        <div class="siswa-info">
            <table>
                <tr>
                    <td width="100"><strong>Nama Siswa</strong></td>
                    <td width="10">:</td>
                    <td width="250">' . htmlspecialchars($siswa['nama_siswa']) . '</td>
                    <td width="80"><strong>Kelas</strong></td>
                    <td width="10">:</td>
                    <td width="50">' . ($kelasData['nama_kelas'] ?? '-') . '</td>
                </tr>
                <tr>
                    <td><strong>Jenis Kelamin</strong></td>
                    <td>:</td>
                    <td>-</td>
                    <td><strong>Wali Kelas</strong></td>
                    <td>:</td>
                    <td>' . ($kelasData['wali_kelas'] ?? '-') . '</td>
                </tr>
            </table>
        </div>';
    }
    
    // Table header
    $tableHeader = '
    <div class="table-responsive">
        <table class="table">
            <thead>
                <tr>
                    <th width="30" class="text-center">No</th>
                    <th width="80" class="text-center">Tanggal</th>
                    <th>Jenis Pelanggaran</th>
                    <th width="50" class="text-center">Poin</th>
                    <th>Keterangan</th>
                </tr>
            </thead>
            <tbody>';
    
    // Table rows
    $tableRows = '';
    $no = 1;
    
    if (!empty($dataRows)) {
        foreach ($dataRows as $row) {
            $poinClass = '';
            if ($row['poin'] >= 10) {
                $poinClass = 'badge-danger';
            } elseif ($row['poin'] >= 5) {
                $poinClass = 'badge-warning';
            } else {
                $poinClass = 'badge-info';
            }
            
            $tableRows .= '
            <tr>
                <td class="text-center">' . $no++ . '</td>
                <td class="text-center">' . date('d-m-Y', strtotime($row['tanggal'])) . '</td>
                <td>' . htmlspecialchars($row['pelanggaran']) . '</td>
                <td class="text-center"><span class="badge ' . $poinClass . '">' . $row['poin'] . '</span></td>
                <td>' . htmlspecialchars($row['keterangan']) . '</td>
            </tr>';
        }
    } else {
        $tableRows .= '
        <tr>
            <td colspan="5" class="text-center" style="padding: 20px;">
                Tidak ada data pelanggaran untuk siswa ini
            </td>
        </tr>';
    }
    
    // Table footer
    $tableFooter = '
            </tbody>
        </table>
    </div>';
    
    // Summary
    $summary = '';
    $rataRata = 0;
    if ($jumlahPelanggaran > 0) {
        $rataRata = round($totalPoin / $jumlahPelanggaran, 2);
    }
    
    $summary = '
    <div class="summary">
        <h4>RINGKASAN</h4>
        <table>
            <tr>
                <td width="180"><strong>Total Pelanggaran</strong></td>
                <td width="10">:</td>
                <td>' . $jumlahPelanggaran . ' kali</td>
            </tr>
            <tr>
                <td><strong>Total Poin Pelanggaran</strong></td>
                    <td>:</td>
                <td>' . $totalPoin . ' poin</td>
            </tr>
            <tr>
                <td><strong>Rata-rata Poin per Pelanggaran</strong></td>
                <td>:</td>
                <td>' . $rataRata . ' poin</td>
            </tr>
        </table>
    </div>';
    
    // Tanda tangan
    $ttd = '';
    if ($firstRow && isset($firstRow['wali_kelas']) && !empty($firstRow['wali_kelas'])) {
        $nip_wali = isset($firstRow['nip_wali_kelas']) ? $firstRow['nip_wali_kelas'] : '-';
        $nama_kelas = isset($firstRow['nama_kelas']) ? $firstRow['nama_kelas'] : '';
        
        $ttd = '
        <div class="ttd-section">
            <div class="ttd-container">
                <div></div>
                <div class="ttd-right">
                    <div>Probolinggo, 19 Desember 2025</div>
                    <div>Wali Kelas ' . htmlspecialchars($nama_kelas) . '</div>
                    <div class="ttd-name">' . htmlspecialchars($firstRow['wali_kelas']) . '</div>
                    <div class="ttd-nip">NIP: ' . htmlspecialchars($nip_wali) . '</div>
                </div>
            </div>
        </div>';
    } else {
        $nama_kelas = $kelasData['nama_kelas'] ?? '';
        $wali_kelas = $kelasData['wali_kelas'] ?? '';
        $ttd = '
        <div class="ttd-section">
            <div class="ttd-container">
                <div></div>
                <div class="ttd-right">
                    <div>Probolinggo, 19 Desember 2025</div>
                    <div>Wali Kelas ' . htmlspecialchars($nama_kelas) . '</div>
                    <div class="ttd-place" style="margin-top: 80px;">___________________________</div>
                    <div class="ttd-nip" style="margin-top: 5px;">NIP: .............................</div>
                </div>
            </div>
        </div>';
    }


    
    // Tulis konten ke PDF untuk setiap siswa
    $mpdf->WriteHTML($header);
    $mpdf->WriteHTML($kelasInfo);
    $mpdf->WriteHTML($siswaInfo);
    $mpdf->WriteHTML($tableHeader);
    $mpdf->WriteHTML($tableRows);
    $mpdf->WriteHTML($tableFooter);
    $mpdf->WriteHTML($summary);
    $mpdf->WriteHTML($ttd);
    $mpdf->SetHTMLFooter($footer);
    
    
    // Tambahkan halaman baru untuk siswa berikutnya (kecuali siswa terakhir)
    if ($counter < $jumlahSiswa) {
        $mpdf->AddPage();
    }
}

// Output PDF
$filename = 'Laporan_Pelanggaran_Kelas_' . (isset($kelasData['nama_kelas']) ? str_replace(' ', '_', $kelasData['nama_kelas']) : '') . '_' . date('Ymd_His') . '.pdf';
$mpdf->Output($filename, 'I');

// Tutup koneksi
mysqli_close($conn);
?>