<?php

namespace App\Controllers;

class Cuti extends BaseController
{
    protected $db;

    public function __construct()
    {
        $this->db = \Config\Database::connect();
        date_default_timezone_set('Asia/Jakarta');
    }

    public function index()
    {
        $data = [
            'title'        => 'Data Cuti Pegawai',
            // Ambil data cuti yang sudah diinput
            'list_cuti'    => $this->db->table('pengajuan_cuti')
                ->select('pengajuan_cuti.*, pegawai.nama_lengkap, pegawai.nip, master_cuti.nama_cuti')
                ->join('pegawai', 'pegawai.id_pegawai = pengajuan_cuti.pegawai_id')
                ->join('master_cuti', 'master_cuti.id_cuti = pengajuan_cuti.cuti_id')
                ->orderBy('id_pengajuan', 'DESC')->get()->getResult(),
            // Ambil daftar pegawai untuk pilihan dropdown
            'pegawai'      => $this->db->table('pegawai')->select('id_pegawai, nama_lengkap, nip')->get()->getResult(),
            // Ambil jenis cuti
            'jenis_cuti'   => $this->db->table('master_cuti')->get()->getResult()
        ];
        return view('admin/cuti_view', $data);
    }

    public function simpan()
    {
        // 1. Ambil file dari form
        $fileBerkas = $this->request->getFile('berkas');
        $namaBerkas = null;

        // 2. Cek apakah ada file yang diupload
        if ($fileBerkas && $fileBerkas->isValid() && !$fileBerkas->hasMoved()) {
            // Validasi file (PDF, JPG, PNG) max 2MB
            if ($fileBerkas->getSizeByUnit('mb') < 2) {
                $namaBerkas = $fileBerkas->getRandomName(); // Nama file unik
                $fileBerkas->move('uploads/cuti/', $namaBerkas); // Pindahkan ke folder public/uploads/cuti/
            }
        }

        $data = [
            'pegawai_id'  => $this->request->getPost('pegawai_id'),
            'cuti_id'     => $this->request->getPost('cuti_id'),
            'tgl_mulai'   => $this->request->getPost('tgl_mulai'),
            'tgl_selesai' => $this->request->getPost('tgl_selesai'),
            'jumlah_hari' => $this->request->getPost('jumlah_hari'),
            'alasan'      => $this->request->getPost('alasan'),
            'berkas'      => $namaBerkas, // Simpan nama file ke database
            'status'      => 'disetujui'
        ];

        $this->db->table('pengajuan_cuti')->insert($data);
        return redirect()->to(base_url('cuti'))->with('success', 'Data cuti dan berkas berhasil disimpan');
    }

    public function hapus($id)
    {
        $this->db->table('pengajuan_cuti')->where('id_pengajuan', $id)->delete();
        return redirect()->to(base_url('cuti'))->with('success', 'Data cuti berhasil dihapus');
    }
}
