<?php
defined('BASEPATH') or exit('No direct script access allowed');

class ControllerDataProgress extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        //validasi jika user belum login
        check_not_login();
        if ($this->session->userdata('level') != 1) {
            redirect();
        }
        $this->set_timezone();
        $this->load->library('encrypt');
        $this->load->library('form_validation');
        $this->load->library('Mycustom');
        $this->load->library('pdfgenerator');
        $this->load->library('Notifikasi');
        $this->load->model('bagian_owner/insert_model');
        $this->load->model('bagian_owner/select_model');
        $this->load->model('bagian_owner/update_model');
    }
    public function set_timezone()
    {
        date_default_timezone_set("Asia/Jakarta");
    }
    public function index()
    {
        $notif                 = $this->notifikasi->notif_owner();
        // Data Login
        $data_login            = $this->userlogin->user_login(); // Menampilkan siapa yang login
        $data_id_login         = $this->session->userdata('isloggedin'); // Menampilkan data session
        // Data Isian Konten
        // Query SQL Data atau isi data page
        // Menampilkan saldo pertama koperasi 
        $data_table          = $this->db->get_where('p_koperasi_progres', ['kontrak_id' => 0])->result();
        $jml_data            = count($data_table);
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'              => 'database/koperasi/progress',
            'page'                => 'index',
            'judul'               => 'Kelola Database Bagian Koperasi Progress Pinjaman || Bagian Pengurus',
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            'notif'               => $notif,
            // Isi data
            'jml_data'            => $jml_data,
            'data_table'          => $data_table
        );
        $this->load->view('owner/index', $data);
    }
    // Crud
    public function crud()
    {
        // Cek Filter
        if (isset($_POST['cari_nota'])) :
            $this->_dataNomorNIK();
        endif;
        if (isset($_POST['updateDatabaseTerbaru'])) :
            $this->_cekDataTanggalSesuai();
            $data = array(
                'tgl_pengajuan' => htmlspecialchars($this->input->post('tgl_pengajuan')),
                'tgl_konfirmasi' => htmlspecialchars($this->input->post('tgl_konfirmasi')),
                'tgl_realisasi' => htmlspecialchars($this->input->post('tgl_realisasi'))
            );
            $this->db->where('kontrak_id', htmlspecialchars($this->input->post('kontrak_id')));
            $this->db->update('p_koperasi_progres', $data);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Merubah Data!</div>');
            redirect('owner/database/koperasi/progress');
        endif;
        if (isset($_POST['deleteDatabaseTerbaru'])) :
            // Hapus Berkas
            $this->_hapusBerkas();
            $this->db->where('kontrak_id', htmlspecialchars($this->input->post('kontrak_id')));
            $this->db->delete('p_koperasi_progres');
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Hapus Data!</div>');
            redirect('owner/database/koperasi/progress');
        endif;
    }
    // Melihat data Nota berdasarkan Nomor Nota
    private function _dataNomorNIK()
    {
        $kontrak_id            = htmlspecialchars($this->input->post('kontrak_id'));
        $notif                 = $this->notifikasi->notif_owner();
        // Data Login
        $data_login            = $this->userlogin->user_login(); // Menampilkan siapa yang login
        $data_id_login         = $this->session->userdata('isloggedin'); // Menampilkan data session
        // Data Isian Konten
        // Query SQL Data atau isi data page
        // Menampilkan saldo pertama koperasi 
        $data_table          = $this->db->get_where('p_koperasi_progres', ['kontrak_id' => $kontrak_id])->result();
        $jml_data            = count($data_table);
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'              => 'database/koperasi/progress',
            'page'                => 'index',
            'judul'               => 'Kelola Database Bagian Koperasi Progress Pinjaman || Bagian Pengurus',
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            'notif'               => $notif,
            // Isi data
            'jml_data'            => $jml_data,
            'data_table'          => $data_table
        );
        $this->load->view('owner/index', $data);
    }
    // Cek kesesuaian data
    private function _cekDataTanggalSesuai()
    {
        $tgl_pengajuan  = htmlspecialchars($this->input->post('tgl_pengajuan'));
        $tgl_konfirmasi = htmlspecialchars($this->input->post('tgl_konfirmasi'));
        $tgl_realisasi  = htmlspecialchars($this->input->post('tgl_realisasi'));
        // Cek Data Tanggal Pengajuan
        if ($tgl_pengajuan > $tgl_konfirmasi) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Pengajuan Lebih Besar Dari Pada Tanggal Konfirmasi!</div>');
            redirect('owner/database/koperasi/progress');
        elseif ($tgl_pengajuan > $tgl_realisasi) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Pengajuan Lebih Besar Dari Pada Tanggal Realisasi!</div>');
            redirect('owner/database/koperasi/progress');
        endif;
        // Cek Data Tanggal Konfirmasi
        if ($tgl_konfirmasi < $tgl_pengajuan) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Konfirmasi Lebih Kecil Dari Pada Tanggal Pengajuan!</div>');
            redirect('owner/database/koperasi/progress');
        elseif ($tgl_konfirmasi > $tgl_realisasi) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Konfirmasi Lebih Besar Dari Pada Tanggal Realisasi!</div>');
            redirect('owner/database/koperasi/progress');
        endif;
        // Cek Data Tanggal Realisasi
        if ($tgl_realisasi < $tgl_pengajuan) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Realisasi Lebih Kecil Dari Pada Tanggal Pengajuan!</div>');
            redirect('owner/database/koperasi/progress');
        elseif ($tgl_realisasi < $tgl_konfirmasi) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Tanggal Realisasi Lebih Kecil Dari Pada Tanggal Konfirmasi!</div>');
            redirect('owner/database/koperasi/progress');
        endif;
    }
    // Hapus Berkas
    private function _hapusBerkas()
    {
        $data_progress = $this->db->get_where('p_koperasi_progres', ['kontrak_id' => htmlspecialchars($this->input->post('kontrak_id'))])->row_array();
        $bulan         = date('m', strtotime($data_progress['tgl_realisasi']));
        $tahun         = date('m', strtotime($data_progress['tgl_realisasi']));
        $doc_kontrak         = $data_progress['doc_kontrak'];
        $bukti_terima        = $data_progress['bukti_terima'];
        $berkas_kontrak = './assets/doc_kontrak/' . $tahun . '/' . $bulan . '/' . $doc_kontrak;
        unlink($berkas_kontrak);
        $berkas_terima  = './assets/invoice/kas_umum/' . $tahun . '/' . $bulan . '/' . $bukti_terima;
        unlink($berkas_terima);
        $berkas_omset  = './assets/invoice/kas_umum/' . $tahun . '/' . $bulan . '/bukti_omset_pencairan_' . $data_progress['kontrak_id'] . '.pdf';
        unlink($berkas_omset);
    }
}

/* End of file ControllerDataProgress.php and path \application\controllers\owner\database\koperasi\ControllerDataProgress.php */