<?php

namespace App\Controllers;

use App\Models\Rapor_model;
use Dompdf\Dompdf;
use Dompdf\Options;

class Rapor extends BaseController
{
    public function __construct()
    {
        $this->Rapor_model = new Rapor_model();
    }
    private $Rapor_model;
    public function index()
    {

        // $ceklogin = cekLogin();
        // if ($ceklogin) return $ceklogin;
        // $user = getUserInfo();
        $setting = $this->appSetting();
        $data = [
            // 'nama_user' => $user->nama,
            'setting' => $setting,
            'title' => 'Rapor Akhir'
        ];
        return view('Admin/Rapor/raporakhir', $data);
    }
    public function printRaporx($idsiswa)
    {
        // $ceklogin = cekLogin();
        // if ($ceklogin) return $ceklogin;
        // $user = getUserInfo();
        $tahunpelajaran = $this->appSetting()->tahunpelajaran;
        $siswa = $this->Rapor_model->get_siswa_id($idsiswa, $tahunpelajaran);
        $penilaian = $this->Rapor_model->get_penilaian_id($idsiswa, $tahunpelajaran);
        $eskul = $this->Rapor_model->get_eskul_id($idsiswa, $tahunpelajaran);
        $absensi = $this->Rapor_model->get_absensi_id($idsiswa, $tahunpelajaran);
        //dd($eskul);
        $settings = $this->appSetting();
        $data = [
            // 'nama_user' => $user->nama,
            'siswa' => $siswa,
            'penilaian' => $penilaian,
            'eskul' => $eskul,
            'absensi' => $absensi,
            'settings' => $settings
        ];
        return view('Admin/Rapor/printrapor', $data);
    }
    public function printRapor($idsiswa)
    {

        // Load library DOMPDF
        $tahunpelajaran = $this->appSetting()->tahunpelajaran;
        $siswa = $this->Rapor_model->get_siswa_id($idsiswa, $tahunpelajaran);
        $penilaian = $this->Rapor_model->get_penilaian_id($idsiswa, $tahunpelajaran);
        $eskul = $this->Rapor_model->get_eskul_id($idsiswa, $tahunpelajaran);
        $absensi = $this->Rapor_model->get_absensi_id($idsiswa, $tahunpelajaran);
        $tahun = $this->Rapor_model->get_tahun($tahunpelajaran);
        //dd($eskul);
        $settings = $this->appSetting();
        $data = [
            // 'nama_user' => $user->nama,
            'siswa' => $siswa,
            'penilaian' => $penilaian,
            'eskul' => $eskul,
            'absensi' => $absensi,
            'settings' => $settings,
            'tahun' => $tahun,
        ];
        $dompdf = new Dompdf();

        // Render halaman HTML menjadi PDF
        $html = view('Admin/Rapor/printraporpdf', $data); // Ganti 'pdf_template' dengan nama file view Anda
        $dompdf->loadHtml($html);
        // Atur ukuran kertas secara kustom (F4)
        $dompdf->setPaper(array(0, 0, 609.4488, 935.433), 'portrait'); // Gunakan array dengan nilai (0, 0, lebar, tinggi)

        $dompdf->render();

        // Tampilkan PDF dalam browser
        $dompdf->stream("Rapor-" . $siswa->nama . ".pdf", array("Attachment" => false));

        // Untuk menyimpan PDF ke server, Anda dapat menggunakan kode berikut:
        // $output = $dompdf->output();
        // file_put_contents('path/to/save/file.pdf', $output);
    }
    public function printRaporProjek($idsiswa)
    {

        // Load library DOMPDF
        $tahunpelajaran = $this->appSetting()->tahunpelajaran;
        $siswa = $this->Rapor_model->get_siswa_id($idsiswa, $tahunpelajaran);
        $penilaian = $this->Rapor_model->get_penilaian($idsiswa, $tahunpelajaran);
        $tahun = $this->Rapor_model->get_tahun($tahunpelajaran);
        // echo '<pre>';
        // print_r($penilaian);
        // echo '</pre>';
        //dd($eskul);
        $settings = $this->appSetting();
        $data = [
            // 'nama_user' => $user->nama,
            'siswa' => $siswa,
            'penilaian' => $penilaian,
            'settings' => $settings,
            'tahun' => $tahun,
        ];
        $dompdf = new Dompdf();

        // Render halaman HTML menjadi PDF
        $html = view('Admin/Rapor/printraporprojek', $data); // Ganti 'pdf_template' dengan nama file view Anda
        $dompdf->loadHtml($html);
        // Atur ukuran kertas secara kustom (F4)
        $dompdf->setPaper(array(0, 0, 609.4488, 935.433), 'portrait'); // Gunakan array dengan nilai (0, 0, lebar, tinggi)

        $dompdf->render();
        // Tampilkan PDF dalam browser
        $dompdf->stream("Rapor-" . $siswa->nama . ".pdf", array("Attachment" => false));

        // $output = $dompdf->output();
        // file_put_contents('path/to/save/file.pdf', $output);
    }
    public function printSampulRapor($idsiswa)
    {

        // Load library DOMPDF
        $tahunpelajaran = $this->appSetting()->tahunpelajaran;
        $siswa = $this->Rapor_model->get_siswa_id($idsiswa, $tahunpelajaran);
        $settings = $this->appSetting();
        $data = [
            // 'nama_user' => $user->nama,
            'siswa' => $siswa,
            'settings' => $settings
        ];
        $options = new Options();
        $options->set('isHtml5ParserEnabled', true);
        $options->set('isRemoteEnabled', true);
        $dompdf = new Dompdf($options);

        // Render halaman HTML menjadi PDF
        $html = view('Admin/Rapor/printsampul', $data); // Ganti 'pdf_template' dengan nama file view Anda
        $dompdf->loadHtml($html);
        $dompdf->setPaper(array(0, 0, 609.4488, 935.433), 'portrait'); // Gunakan array dengan nilai (0, 0, lebar, tinggi)
        $dompdf->render();
        $dompdf->stream("Rapor-" . $siswa->nama . ".pdf", array("Attachment" => false));

        // Untuk menyimpan PDF ke server, Anda dapat menggunakan kode berikut:
        // $output = $dompdf->output();
        // file_put_contents('path/to/save/file.pdf', $output);
    }
    public function getData()
    {
        if (cekRoleadmin() == 'admin') {
            $rombel = $this->Rapor_model->get_rombel(null, $this->appSetting()->tahunpelajaran);
        } else {
            $rombel = $this->Rapor_model->get_rombel(session()->get('user_id'), $this->appSetting()->tahunpelajaran);
        }
        $exec = $this->Rapor_model->get_siswa_rombel($rombel, $this->appSetting()->tahunpelajaran);
        $data['data'] = $exec;
        return $this->response->setJSON($data);
    }
    public function getSiswa($id)
    {
        $siswa = $this->Rapor_model->get_projek();
        return $this->response->setJSON($siswa);
    }
}
