<?php

namespace App\Controllers;

class Kelulusan extends BaseController
{
    protected $db;

    public function __construct()
    {
        $this->db = \Config\Database::connect();
    }

    public function index()
    {
        // Tampilan awal: slider disembunyikan (false)
        $data = [
            'title' => 'Cek Kelulusan - SMKN 1 Sukalarang',
            'hasil' => null,
            'show_slider' => false 
        ];
        return view('kelulusan/index', $data);
    }

    public function cek()
    {
        // 1. Ambil pengaturan status pengumuman
        $status = $this->db->table('kelulusan_pengaturan')->where('id', 1)->get()->getRowArray();
        $nisn = $this->request->getPost('nisn');

        // 2. Jika Pengumuman Belum Aktif (is_active = 0)
        if ($status['is_active'] == 0) {
            $pesan_random = [
                "Satu langkah lagi menuju masa depan, tapi sabar ya, gerbangnya belum dibuka.",
                "Coba cek lagi NISN-nya, yakin udah bener? Kalau pas diklik muncul 'Anda Kurang Beruntung' gimana?",
                "Lagi proses pengecekan dosa-dosa selama sekolah nih, semoga nggak berpengaruh ke hasil ya!",
                "Bayangin kalau temen sekelas lulus semua, cuma kamu yang lanjut 'semester 7', berani nggak?",
                "Duh, datanya kok merah ya? Eh, tenang... itu cuma warna background-nya aja kok (mungkin).",
                "Sabar ya, bestie. Pintunya belum dibuka, mending jajan seblak dulu.",
                "Gimana kalau pas buka hasil, tulisannya: 'Maaf, silakan hubungi guru BK segera'?"
            ];

            // Pilih satu pesan secara acak untuk ditampilkan pertama kali
            $pilih_pesan = $pesan_random[array_rand($pesan_random)];
            
            return view('kelulusan/index', [
                'title' => 'Sistem Belum Aktif - SMKN 1 Sukalarang',
                'hasil' => null,
                'error' => $pilih_pesan,
                'show_slider' => true // Tampilkan slider karena sudah ada aksi klik
            ]);
        }

        // 3. Jika Pengumuman Aktif, Cari Data Siswa
        $siswa = $this->db->table('kelulusan')->where('nisn', $nisn)->get()->getRowArray();

        $data = [
            'title' => 'Hasil Kelulusan - ' . ($siswa['nama_siswa'] ?? 'Tidak Ditemukan'),
            'hasil' => $siswa,
            'nisn'  => $nisn,
            'show_slider' => true // Tampilkan slider (pesan motivasi) setelah pencarian
        ];

        return view('kelulusan/index', $data);
    }
    public function verifikasi_download()
    {
        // 1. Ambil data dari form modal
        $nisn_raw = $this->request->getPost('nisn');
        $tgl_lahir = $this->request->getPost('tgl_lahir');
        $nama_ibu = trim($this->request->getPost('nama_ibu'));

        // 2. Bersihkan NISN dari tanda kutip tunggal agar tidak error 400
        $nisn = str_replace("'", "", $nisn_raw);

        // 3. Cek kecocokan data di database
        $siswa = $this->db->table('kelulusan')
                    ->where([
                        'nisn' => $nisn,
                        'tanggal_lahir' => $tgl_lahir
                    ])
                    ->where('LOWER(nama_ibu)', strtolower($nama_ibu))
                    ->get()->getRowArray();

        if ($siswa) {
            // JIKA COCOK: Arahkan ke fungsi cetak dengan NISN yang sudah bersih
            return redirect()->to(base_url('kelulusan/cetak/' . $nisn));
        } else {
            // JIKA SALAH: Balikkan ke halaman sebelumnya dengan pesan error
            return redirect()->back()->withInput()->with('error_verifikasi', 'Data tidak cocok! Periksa kembali Tanggal Lahir dan Nama Ibu Kandung.');
        }
    }

    public function cetak($nisn_raw)
    {
        // 1. Bersihkan parameter NISN dari tanda kutip di URL[cite: 5]
        $nisn = str_replace("'", "", $nisn_raw);

        // 2. Ambil data siswa dari database
        $siswa = $this->db->table('kelulusan')->where('nisn', $nisn)->get()->getRowArray();

        if (!$siswa) {
            return "Data tidak ditemukan. Silakan hubungi admin sekolah.";
        }
    echo "
    <!DOCTYPE html>
    <html>
    <head>
        <title>SKL - ".$siswa['nama_siswa']."</title>
        <style>
            body { font-family: 'Times New Roman', Times, serif; padding: 20px; color: #000; }
            .container { width: 800px; margin: auto; padding: 30px; border: 1px solid #eee; }
            
            /* Kop Surat */
            .header-table { width: 100%; border-bottom: 3px solid #000; margin-bottom: 5px; }
            .logo-prov { width: 80px; }
            .header-text { text-align: center; }
            .header-text h3, .header-text h4, .header-text p { margin: 0; padding: 1px; }
            .line-double { border-bottom: 1px solid #000; margin-top: 2px; margin-bottom: 20px; }

            .judul-surat { text-align: center; text-decoration: underline; font-weight: bold; font-size: 18px; margin-bottom: 5px; }
            .nomor-surat { text-align: center; margin-bottom: 20px; }
            
            .pembuka { text-align: justify; margin-bottom: 15px; }
            .pembuka ol { margin-left: -20px; }

            .data-siswa { margin-left: 30px; margin-bottom: 20px; }
            .data-siswa td { padding: 3px 0; vertical-align: top; }

            .footer-table { width: 100%; margin-top: 30px; }
            .ttd-box { float: right; width: 300px; text-align: center; }
            .stempel-img { width: 150px; position: absolute; margin-left: -120px; margin-top: -10px; opacity: 0.8; }
            .ttd-img { width: 200px; margin: 10px 0; }

            .catatan { margin-top: 50px; font-size: 12px; border-top: 1px solid #000; padding-top: 10px; }

            @media print {
                .btn-print { display: none; }
                body { padding: 0; }
                .container { border: none; }
            }
            .btn-print { position: fixed; top: 20px; right: 20px; padding: 10px 20px; background: #27ae60; color: #fff; border: none; border-radius: 5px; cursor: pointer; }
        </style>
    </head>
    <body>
        <button class='btn-print' onclick='window.print()'>Download / Cetak SKL</button>

        <div class='container'>
            <table class='header-table'>
                <tr>
                    <td><img src='".base_url('assets/img/logo-jabar.png')."' class='logo-prov'></td>
                    <td class='header-text'>
                        <h4>PEMERINTAH DAERAH PROVINSI JAWA BARAT</h4>
                        <h4>DINAS PENDIDIKAN</h4>
                        <h4>CABANG DINAS PENDIDIKAN WILAYAH V</h4>
                        <h3>SEKOLAH MENENGAH KEJURUAN NEGERI 1 SUKALARANG</h3>
                        <p style='font-size: 12px;'>Jalan Raya Sukabumi-Cianjur Km.12 Nomor.55 Telepon : (0266) 261 333</p>
                        <p style='font-size: 12px;'>Website : smkn1sukalarang.sch.id E-mail: info@smkn1sukalarang.sch.id</p>
                        <p style='font-weight: bold;'>KABUPATEN SUKABUMI - 43191</p>
                    </td>
                </tr>
            </table>
            <div class='line-double'></div>

            <div class='judul-surat'>SURAT KETERANGAN LULUS</div>
            <div class='nomor-surat'>Nomor : 0270/PK.05.02/SMKN1SUKALARANG</div>

            <div class='pembuka'>
                Kepala Sekolah SMK Negeri 1 Sukalarang Tahun Pelajaran 2025/2026, dengan berdasarkan :
                <ol>
                    <li>Penyelesaian seluruh program pembelajaran pada kurikulum merdeka</li>
                    <li>Kriteria kelulusan dari satuan pendidikan sesuai dengan peraturan perundang-undangan</li>
                    <li>Rapat Pleno Dewan Guru tentang Penetapan Kelulusan pada tanggal 4 Mei 2026</li>
                </ol>
                Menerangkan bahwa :
            </div>

            <table class='data-siswa'>
                <tr><td width='250'>Nama</td><td width='20'>:</td><td><strong>".strtoupper($siswa['nama_siswa'])."</strong></td></tr>
                <tr><td>Tempat dan Tanggal Lahir</td><td>:</td><td>".$siswa['tempat_lahir'].", ".date('d F Y', strtotime($siswa['tanggal_lahir']))."</td></tr>
                <tr><td>Nama Orang Tua</td><td>:</td><td>".$siswa['nama_ibu']."</td></tr>
                <tr><td>Nomor Induk Siswa</td><td>:</td><td>".$siswa['nis']."</td></tr>
                <tr><td>Nomor Induk Siswa Nasional</td><td>:</td><td>".$siswa['nisn']."</td></tr>
                <tr><td>Peminatan/Mapel Pilihan</td><td>:</td><td>".$siswa['jurusan']."</td></tr>
                <tr><td>Dinyatakan</td><td>:</td><td><strong>".strtoupper($siswa['status'])."</strong></td></tr>
                <tr><td>Dengan Rata-rata Nilai*)</td><td>:</td><td><strong>".$siswa['rata_rata_nilai']."</strong></td></tr>
            </table>

            <p>Demikian surat keterangan ini dibuat untuk digunakan sebagaimana mestinya.</p>

            <div class='footer-table'>
                <div class='ttd-box'>
                    Sukabumi, 4 Mei 2026<br>
                    Kepala sekolah,<br>
                    <img src='".base_url('assets/img/ttd-kepsek.png')."' class='ttd-img'><br>
                    <strong>Mulyadi, S.Pd., M.T</strong><br>
                    NIP. 197106052005011014
                </div>
            </div>

            <div style='clear:both;'></div>

            <div class='catatan'>
                Catatan :<br>
                Surat ini berlaku hingga ijazah asli diterbitkan.<br>
                *) rata-rata nilai peserta didik yang sama dengan nilai yang akan ditulis dalam Transkrip Nilai Ijazah
            </div>
        </div>
    </body>
    </html>
    ";
}
}