<?php

namespace App\Controllers;

use Core\Controller;
use Core\Database;
use FPDF;

require_once __DIR__ . '/../libraries/fpdf/fpdf.php';

class PDFFormPPLKController extends Controller
{
    public function hasilPDF()
    {
        $nim = $_SESSION['user']['nim'] ?? null;

        if (!$nim) {
            echo "<div class='alert alert-danger'>NIM tidak ditemukan dalam sesi.</div>";
            exit;
        }

        $db = Database::getConnection();

        // Ambil data PPLK
        $stmt = $db->prepare("SELECT * FROM tb_pplk WHERE nim = ?");
        $stmt->execute([$nim]);
        $data = $stmt->fetch();

        if (!$data) {
            echo "<div class='alert alert-warning'>Data PPLK tidak ditemukan.</div>";
            exit;
        }

        // Ambil nama mahasiswa
        $stmt = $db->prepare("SELECT nama FROM tb_mahasiswa WHERE nim = ?");
        $stmt->execute([$nim]);
        $mhs = $stmt->fetch();
        $nama = $mhs['nama'] ?? '-';

        $pdf = new \FPDF();
        $pdf->AddPage();

        // =========================
        // HALAMAN 1 (FORMULIR)
        // =========================
        $this->kopSurat($pdf);
        $pdf->Ln(35);
        $pdf->SetFont('Times', 'B', 14);
        $pdf->Cell(0, 10, 'FORMULIR PENDAFTARAN', 0, 1, 'C');
        $pdf->Cell(0, 10, 'MAHASISWA CALON PESERTA PPLK', 0, 1, 'C');
        $pdf->Cell(0, 10, 'STKIP BABUNNAJAH PANDEGLANG', 0, 1, 'C');
        $pdf->Ln(10);

        $pdf->SetFont('Times', '', 12);
        $pdf->Cell(50, 8, "Nama Lengkap", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['nama'], 0, 1);
        $pdf->Cell(50, 8, "NIM", 0, 0);
        $pdf->Cell(0, 8, ": " . $nim, 0, 1);
        $pdf->Cell(50, 8, "Tempat/Tgl Lahir", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['tmpt_lahir'] . ', ' . $this->formatTanggalIndo($data['tgl_lahir']), 0, 1);
        $pdf->Cell(50, 8, "Program Studi", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['prodi'], 0, 1);
        $pdf->Cell(50, 8, "Semester/Kelas", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['semester'], 0, 1);
        $pdf->Cell(50, 8, "Jenis Kelamin", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['jenis_kelamin'], 0, 1);
        $pdf->Cell(50, 8, "HP/WA", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['no_hp'], 0, 1);
        $pdf->Cell(50, 8, "Alamat Lengkap", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['alamat'], 0, 1);
        $pdf->Cell(50, 8, "Status Pekerjaan", 0, 0);
        $pdf->Cell(0, 8, ": " . $data['status_pekerjaan'], 0, 1);
        $pdf->Cell(50, 8, "Status Pernikahan", 0, 0);
        $pdf->MultiCell(0, 8, ": " . $data['status_perkawinan']);

        $pdf->Ln(10);
        $pdf->MultiCell(0, 8, "Menerangkan bahwa mahasiswa tersebut di atas telah memenuhi syarat Akademis untuk mengikuti PPLK dengan telah menempuh 110 sks.");
        $pdf->Ln(20);

        $pdf->Cell(120, 8, '', 0, 0);
        $pdf->Cell(0, 8, 'Pandeglang, ' . $this->formatTanggalIndo($data['tanggal_daftar']), 0, 1);
        $pdf->Cell(120, 8, 'Petugas Pendaftaran', 0, 0);
        $pdf->Cell(0, 8, 'Mahasiswa YBS', 0, 1);
        $pdf->Ln(25);
        $pdf->Cell(120, 8, '__________________________', 0, 0);
		$pdf->SetFont('Times', 'B', 12);
        $pdf->Cell(0, 8, $nama, 0, 1);

        // =========================
        // HALAMAN 2 (CEKLIS)
        // =========================
        $pdf->AddPage();
        $this->kopSurat($pdf);
        $pdf->Ln(35);
        $pdf->SetFont('Times', 'B', 14);
        $pdf->Cell(0, 10, 'DAFTAR CEKLIS', 0, 1, 'C');
        $pdf->Ln(5);
        $pdf->SetFont('Times', '', 12);
		$pdf->MultiCell(0, 10, "Berikut ini adalah daftar lampiran yang memuat informasi tambahan serta dokumen yang harus dilengkapi. Pastikan untuk memenuhi persyaratan ini sesuai dengan ketentuan yang berlaku untuk ikut serta sebagai peserta PPLK.");
        $pdf->Ln(5); // Jarak akhir halaman

        $checklistItems = [
            "Formulir Pendaftaran PPLK sudah diisi dengan benar.",
            "Fotocopy KTP (Seumur Hidup).",
            "Fotocopy Kartu Tanda Mahasiswa (KTM).",
            "Fotocopy Sertifikat Kuliah Ta'aruf.",
            "Fotocopy Sertifikat Stadium General.",
            "Fotocopy Ijazah KMD (Bagi PGSD)",
            "Fotocopy Sertifikat Field Trip Baduy (Bagi PGSD)",
            "Fotocopy Sertifikat Kunjungan Edukasi",
            "Foto 3x4 2 lembar (Ketentuan di catatan)"
        ];

        foreach ($checklistItems as $item) {
 
			
			$pdf->Cell(10, 9, '', 1, 0, 'C'); // Kotak ceklis
			$pdf->Cell(7, 9, ' ', 0, 0, 'C'); // Spasi
			$pdf->Cell(30, 9, $item, 0, 1, 'L'); // Teks ceklis
			$pdf->Ln(3); // Jarak antar item ceklis
        }
		
		    $pdf->Ln(3);
            $pdf->SetFont('Times', '', 10);
            $pdf->Cell(0, 5, 'Catatan: Untuk Foto Bacground Biru Mengenakan Almet, baju putih, kerudung putih bagi perempuan, berdasi bagi laki-laki,', 0, 1, 'L');
            $pdf->Cell(0, 2, 'dan semua formulir serta persyaratan di masukkan ke dalam map Merah PGPAUD dan map Biru PGSD', 0, 1, 'L');
            $pdf->Ln(3);
			
		$pdf->SetFont('Times', '', 12);
		$pdf->Cell(120, 8, '', 0, 0);
        $pdf->Cell(0, 5, 'Pandeglang, ' . $this->formatTanggalIndo($data['tanggal_daftar']), 0, 1);
        $pdf->Cell(120, 8, ' ', 0, 0);
        $pdf->Cell(0, 8, 'Mahasiswa YBS', 0, 1);
        $pdf->Ln(25);
        $pdf->Cell(120, 8, ' ', 0, 0);
		$pdf->SetFont('Times', 'B', 12);
        $pdf->Cell(0, 8, $nama, 0, 1);

        $pdf->Output('I', 'Formulir-pplk-' . $nim . '.pdf');
    }

    private function formatTanggalIndo($tanggal)
    {
        $bulanIndo = [
            '01' => 'Januari', '02' => 'Februari', '03' => 'Maret', '04' => 'April',
            '05' => 'Mei', '06' => 'Juni', '07' => 'Juli', '08' => 'Agustus',
            '09' => 'September', '10' => 'Oktober', '11' => 'November', '12' => 'Desember'
        ];
        $tgl = date('d', strtotime($tanggal));
        $bln = $bulanIndo[date('m', strtotime($tanggal))];
        $thn = date('Y', strtotime($tanggal));
        return "$tgl $bln $thn";
    }

    private function kopSurat($pdf)
    {
        $pdf->Image('assets/img/kop_surat.jpg', 3, 3, 205);
    }
}
