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

class ControllerAnggota extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        //validasi jika user belum login
        check_not_login();
        if ($this->session->userdata('level') != 3) {
            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->library('Phpmailer_library');
        $this->load->model('bagian_keuangan/insert_model');
        $this->load->model('bagian_keuangan/select_model');
        $this->load->model('bagian_keuangan/update_model');
        $this->set_timezone();
    }
    public function set_timezone()
    {
        date_default_timezone_set("Asia/Jakarta");
    }
    public function index()
    {
        // NOtifikasi
        $notif            = $this->notifikasi->notif_keuangan();
        $data_login       = $this->userlogin->user_login('isloggedin');
        $data_id_login    = $this->session->userdata('isloggedin');
        // End Notifikasi
        $login_id                  = $data_id_login;
        $data_login_karyawan       = $this->db->get_where('sistem_login', ['id' => $login_id])->row_array();
        $date_role_level           = $this->db->get_where('sistem_role_level', ['id' => $data_login_karyawan['role_id']])->row_array();
        $data_identitas            = $this->db->get_where('sistem_identitas', ['login_id' => $data_login_karyawan['id']])->row_array();
        $data_alamat               = $this->db->get_where('sistem_alamat', ['id' => $data_identitas['alamat_id']])->row_array();
        $data_kotkab               = $this->select_model->vd_kotkab();
        // echo '<pre>';
        // var_dump($login_id);
        // die; 
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'            => 'identitas/profile',
            'page'              => 'index',
            'judul'             => 'Data Identitas Saya || Bagian Keuangan',
            'data_id_login'     => $data_id_login,
            'data_login'        => $data_login,
            'notif'             => $notif,
            'data_kota'         => $data_kotkab,
            // Data Login      
            'login'             => $data_login_karyawan,
            'role_level'        => $date_role_level,
            'identitas'         => $data_identitas,
            'alamat'            => $data_alamat
        );
        $this->load->view('keuangan/index', $data);
    }
    // Daftar Anggota Koperasi
    public function anggota_koperasi()
    {
        $notif                 = $this->notifikasi->notif_keuangan();
        // Data Login
        $data_login            = $this->userlogin->user_login();
        $data_id_login         = $this->session->userdata('isloggedin');
        // Cek Kabupaten / Kota 
        $data_kotkab           = $this->select_model->vd_kotkab();
        // Query SQL Data atau isi data page
        $data_anggota_koperasi = $this->select_model->vd_anggotaKoeprasi();
        $anggota_aktif         = count($this->select_model->vd_anggotaKoeprasiAktif());
        $anggota_pasif         = count($this->select_model->vd_anggotaKoeprasiPasif());
        $kartu_keluarga        = $this->db->get_where('anggota_keluarga')->result();
        // echo '<pre>';
        // var_dump($data_anggota_koperasi);
        // die;
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder' => 'anggota',
            'page'   => 'index',
            'judul'  => 'Kelola Data Anggota Koperasi || Bagian Keuangan',
            // Isi data
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            'notif'               => $notif,
            'data_kota'           => $data_kotkab,
            // Data isian konten
            'anggota_koperasi'    => $data_anggota_koperasi,
            'kk'                  => $kartu_keluarga,
            'jml_aktif'           => $anggota_aktif,
            'jml_pasif'           => $anggota_pasif
        );
        $this->load->view('keuangan/index', $data);
    }
    // Daftar Anggota Karyawan
    public function karyawan()
    {
        $notif                 = $this->notifikasi->notif_keuangan();
        // Data Login
        $data_login            = $this->userlogin->user_login();
        $data_id_login         = $this->session->userdata('isloggedin');
        // Cek Kabupaten / Kota
        // Query SQL Data atau isi data page
        $data_anggota_karyawan = $this->select_model->vd_anggotaKaryawan();
        $data_karyawan         = $this->select_model->vd_KaryawanAktifKerja();
        // echo '<pre>';
        // var_dump($data_anggota_karyawan);
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder' => 'karyawan',
            'page'   => 'index',
            'judul'  => 'Daftar Anggota Karyawan || Bagian Keuangan',
            // Isi data
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            'notif'               => $notif,
            // Data isian konten
            'anggota_karyawan'    => $data_anggota_karyawan,
            'karyawan_aktif'      => $data_karyawan
        );
        $this->load->view('keuangan/index', $data);
    }
    public function detail()
    {
        redirect('keuangan');
    }
    // Cek Identitas Anggota Koperasi
    public function anggota($id)
    {
        // NOtifikasi
        $notif            = $this->notifikasi->notif_keuangan();
        $data_login       = $this->userlogin->user_login('isloggedin');
        $data_id_login    = $this->session->userdata('isloggedin');
        // End Notifikasi
        $id_anggota                = $this->encrypt->decode($id);
        $data_identitas             = $this->select_model->getDataIdentitasAnggota($id_anggota);
        $data_kotkab               = $this->select_model->vd_kotkab();
        // Produk Aktif
        $produk_arisanheboh_aktif  = $this->select_model->getDataProdukAHA($id_anggota);
        $produk_arisanheboh_pasif  = $this->select_model->getDataProdukAHP($id_anggota);
        $produk_arisanmotor_aktif  = $this->select_model->getDataProdukAMA($id_anggota);
        $produk_arisanmotor_pasif  = $this->select_model->getDataProdukAMP($id_anggota);
        $jml_heboh_aktif           = count($produk_arisanheboh_aktif);
        $jml_motor_aktif           = count($produk_arisanmotor_aktif);
        $jml_heboh_pasif           = count($produk_arisanheboh_pasif);
        $jml_motor_pasif           = count($produk_arisanmotor_pasif);
        // Koperasi
        // Aktif
        $produk_arisan_aktif       = $this->select_model->vd_produkKoperasiAktif($id_anggota);
        $jml_produk_arisan_aktif   = count($produk_arisan_aktif);
        // Tidak Aktif
        $produk_arisan_selesai       = $this->select_model->vd_produkKoperasiSelesai($id_anggota);
        $jml_produk_arisan_selesai   = count($produk_arisan_selesai);
        // Produk Tabungan
        $produk_tabungan             = $this->db->get_where('p_simpanan', ['anggota_id' => $id_anggota])->result();
        // Jaminan
        $jaminan                   = $this->select_model->vd_jaminanPinjaman();
        // Bagian Nomor HP
        $data_nomor_cadangan       = $this->db->get_where('anggota_hp_cadangan', ['anggota_id' => $id_anggota])->result();
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'            => 'identitas/anggota',
            'page'              => 'index',
            'judul'             => 'Data Identitas Anggota Koperasi || Bagian Keuangan',
            'data_id_login'     => $data_id_login,
            'data_login'        => $data_login,
            'notif'             => $notif,
            'data_kota'         => $data_kotkab,
            // Isi data
            'data_anggota'      => $data_identitas,
            'heboh_aktif'       => $jml_heboh_aktif,
            'motor_aktif'       => $jml_motor_aktif,
            'heboh_pasif'       => $jml_heboh_pasif,
            'motor_pasif'       => $jml_motor_pasif,
            'a_arisanheboh'     => $produk_arisanheboh_aktif,
            'a_arisanmotor'     => $produk_arisanmotor_aktif,
            'p_arisanheboh'     => $produk_arisanheboh_pasif,
            'p_arisanmotor'     => $produk_arisanmotor_pasif,
            'anggota_id'        => $id_anggota,
            'nomor_cadangan'    => $data_nomor_cadangan,
            // Bagian Koperasi
            'pinjaman_aktif'       => $produk_arisan_aktif,
            'jml_pinjaman_aktif'   => $jml_produk_arisan_aktif,
            'pinjaman_selesai'     => $produk_arisan_selesai,
            'jml_pinjaman_selesai' => $jml_produk_arisan_selesai,
            // Jaminan
            'jaminan_pinjaman'     => $jaminan,
            'tabungan'             => $produk_tabungan
        );
        $this->load->view('keuangan/index', $data);
    }
    // Cek Identitas Anggota Karyawan
    public function karyawan_detail($id)
    {
        // NOtifikasi
        $notif            = $this->notifikasi->notif_keuangan();
        $data_login       = $this->userlogin->user_login('isloggedin');
        $data_id_login    = $this->session->userdata('isloggedin');
        // End Notifikasi
        $login_id                  = $this->encrypt->decode($id);
        $data_login_karyawan       = $this->db->get_where('sistem_login', ['id' => $login_id])->row_array();
        $date_role_level           = $this->db->get_where('sistem_role_level', ['id' => $data_login_karyawan['role_id']])->row_array();
        $data_identitas            = $this->db->get_where('sistem_identitas', ['login_id' => $data_login_karyawan['id']])->row_array();
        $data_alamat               = $this->db->get_where('sistem_alamat', ['id' => $data_identitas['alamat_id']])->row_array();
        $data_kotkab               = $this->select_model->vd_kotkab();
        // Data KPI
        $data_kpi                  = $this->db->get_where('k_hasil', ['login_id' => $login_id])->result();
        // Data Gaji Karyawan
        $data_gaji                 = $this->db->get_where('k_gaji', ['login_id' => $login_id])->result();
        $tampil_tahun              = $this->select_model->getDataTahunTransaksi();
        // Data Review Konsumen
        $data_review           = $this->db->get_where('k_rkonsumen', ['login_id' => $login_id])->result();
        // echo '<pre>';
        // var_dump($login_id);
        // die;
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'            => 'identitas/karyawan',
            'page'              => 'index',
            'judul'             => 'Data Identitas Anggota Karyawan || Bagian Manager',
            'data_id_login'     => $data_id_login,
            'data_login'        => $data_login,
            'notif'             => $notif,
            'data_kota'         => $data_kotkab,
            // Data Login      
            'tampil_tahun'      => $tampil_tahun,
            'login'             => $data_login_karyawan,
            'role_level'        => $date_role_level,
            'identitas'         => $data_identitas,
            'alamat'            => $data_alamat,
            'kpi'               => $data_kpi,
            'gaji'              => $data_gaji,
            'reviews'           => $data_review
        );
        $this->load->view('keuangan/index', $data);
    }
    // Gaji Detail
    public function gaji_detail($id)
    {
        $notif = $this->notifikasi->notif_keuangan();
        // Data Login
        $data_login                   = $this->userlogin->user_login();
        $data_id_login                = $this->session->userdata('isloggedin');
        // Query SQL Data atau isi data page
        // Data gaji
        $gaji_id = $this->encrypt->decode($id);
        $data_gaji = $this->db->get_where('k_gaji', ['id' => $gaji_id])->row_array();
        $detail_gaji = $this->db->get_where('k_dgaji', ['gaji_id' => $gaji_id])->result();
        $identitas_karyawan = $this->db->get_where('sistem_login', ['id' => $data_gaji['login_id']])->row_array();
        $detail_identitas = $this->db->get_where('sistem_identitas', ['login_id' => $data_gaji['login_id']])->row_array();
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'              => 'kas/gaji_detail/',
            'page'                => 'index',
            'judul'               => 'Detail Gaji Karyawan || Bagian Keuangan',
            'notif'               => $notif,
            // Isi data
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            // Data isian konten
            'identitas'           => $identitas_karyawan,
            'gaji'                => $data_gaji,
            'detail_gaji'         => $detail_gaji,
            'detail_identitas'    => $detail_identitas
        );
        $this->load->view('keuangan/index', $data);
    }
    public function crud_gaji()
    {
        // Tambah Gaji Baru Bulan Ini
        if (isset($_POST['tambahGajiBaru'])) {
            $bulan = date('m', strtotime(date('Y-m-d')));
            $tahun = date('Y', strtotime(date('Y-m-d')));
            $login_id   = htmlspecialchars($this->input->post('login_id'));
            $data_gaji = $this->db->get_where('k_gaji', ['MONTH(tgl_gaji)' => $bulan, 'YEAR(tgl_gaji)' => $tahun, 'login_id' => $login_id])->row_array();
            if (htmlspecialchars($this->input->post('gaji_pokok')) == 1) :
                $gaji_pokok = htmlspecialchars($this->input->post('gaji_lama'));
            else:
                $gaji_pokok = htmlspecialchars($this->input->post('gaji_pokok_baru'));
            endif;
            $data_disiplin = $this->db->get_where('k_disiplin', ['MONTH(tgl_laporan)' => $bulan, 'YEAR(tgl_laporan)' => $tahun, 'login_id' => $login_id])->row_array();
            if ($data_disiplin == null) :
                $inputan_disiplin = array(
                    'login_id'      => $login_id,
                    'tgl_laporan'   => date('Y-m-d'),
                    'absensi_menit' => htmlspecialchars($this->input->post('total_kerja'))
                );
                $this->db->insert('k_disiplin', $inputan_disiplin);
                $disiplin  = $this->db->get_where('k_disiplin', ['MONTH(tgl_laporan)' => $bulan, 'YEAR(tgl_laporan)' => $tahun, 'login_id' => $login_id])->row_array();
            else:
                $update_disiplin = array(
                    'absensi_menit' => htmlspecialchars($this->input->post('total_kerja')),
                    'updated_at'    => date('Y-m-d H:i:s')
                );
                $this->db->where('id', $data_disiplin['id']);
                $this->db->update('k_disiplin', $update_disiplin);
                $disiplin  = $this->db->get_where('k_disiplin', ['MONTH(tgl_laporan)' => $bulan, 'YEAR(tgl_laporan)' => $tahun, 'login_id' => $login_id])->row_array();
            endif;
            if ($data_gaji == null) :
                // Cek Disiplin ID
                $inputan_gaji_baru = array(
                    'login_id'      => $login_id,
                    'disiplin_id'   => $disiplin['id'],
                    'tgl_gaji'      => date('Y-m-d'),
                    'gaji_pokok'    => $gaji_pokok,
                    'ttl_bonus'     => 0,
                    'ttl_potongan'  => 0,
                    'ttl_gaji'      => 0,
                    'metode'        => htmlspecialchars($this->input->post('metode_bayar')),
                    'sts_gaji'      => 'PROSES'
                );
                $this->db->insert('k_gaji', $inputan_gaji_baru);
                $data_gaji_baru = $this->db->get_where('k_gaji', ['MONTH(tgl_gaji)' => $bulan, 'YEAR(tgl_gaji)' => $tahun, 'login_id' => $login_id])->row_array();
                $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil, Silahkan Masukkan Data Gaji!</div>');
                redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($data_gaji_baru['id']));
            else:
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gaji Bulan Ini Sudah Ada, Silahkan Masuk Ke Detail Gaji!</div>');
                redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($data_gaji['id']));
            endif;
        };
        // Update data gaji pokok Karyawan
        if (isset($_POST['updateGajiPokok'])) {
            $login_id = htmlspecialchars($this->input->post('login_id'));
            $gaji_pokok = htmlspecialchars($this->input->post('gaji_pokok'));
            $gaji_id = htmlspecialchars($this->input->post('gaji_id'));
            $inputan = array(
                'sb' => $gaji_pokok
            );
            $this->db->where('login_id', $login_id);
            $this->db->update('sistem_identitas', $inputan);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data gaji pokok!</div>');
            redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($gaji_id));
        };
        // Tambah Detail Gaji Karyawan
        if (isset($_POST['simpanKetGaji'])) {
            // Data Inputan
            $data_inputan = array(
                'gaji_id'  => htmlspecialchars($this->input->post('gaji_id')),
                'ket_gaji' => htmlspecialchars($this->input->post('ket_gaji')),
                'nominal'  => htmlspecialchars($this->input->post('nominal_transaksi')),
                'status'   => htmlspecialchars($this->input->post('jenis_gaji'))
            );
            $this->db->insert('k_dgaji', $data_inputan);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data gaji pokok!</div>');
            redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($data_inputan['gaji_id']));
        };
        // Ubah data detail gaji Karyawan
        if (isset($_POST['updateDetailGaji'])) {
            // Data Inputan
            $gaji_id  = htmlspecialchars($this->input->post('gaji_id'));
            $data_inputan = array(
                'ket_gaji' => htmlspecialchars($this->input->post('ket_gaji')),
                'nominal'  => htmlspecialchars($this->input->post('nominal_transaksi')),
                'status'   => htmlspecialchars($this->input->post('jenis_gaji'))
            );
            $this->db->where('id', htmlspecialchars($this->input->post('detail_id')));
            $this->db->update('k_dgaji', $data_inputan);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data gaji pokok!</div>');
            redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($gaji_id));
        };
        // Hapus data detail gaji Karyawan
        if (isset($_POST['deleteDetailGaji'])) {
            // Data Inputan
            $gaji_id  = htmlspecialchars($this->input->post('gaji_id'));
            $this->db->where('id', htmlspecialchars($this->input->post('detail_id')));
            $this->db->delete('k_dgaji');
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data gaji pokok!</div>');
            redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($gaji_id));
        };
        // Gaji Selesai Proses
        if (isset($_POST['gajiSelesai'])) {
            // Data Inputan
            $gaji_id         = htmlspecialchars($this->input->post('gaji_id'));
            $data_gaji_lama  = $this->db->get_where('k_gaji', ['id' => $gaji_id])->row_array();
            $identitas  = $this->db->get_where('sistem_identitas', ['login_id' => $data_gaji_lama['login_id']])->row_array();
            $login      = $this->db->get_where('sistem_login', ['id' => $data_gaji_lama['login_id']])->row_array();
            $role_level = $this->db->get_where('sistem_role_level', ['id' => $login['role_id']])->row_array();
            if ($identitas['sb'] <= '1000000') :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gaji Pokok Belum Di Setting!</div>');
                redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($gaji_id));
            endif;
            $gaji_bonus     = $this->select_model->vd_bonusGajiKaryawan($gaji_id);
            $gaji_potongan  = $this->select_model->vd_potonganGajiKaryawan($gaji_id);
            $data_selesai = array(
                'gaji_pokok'    => $identitas['sb'],
                'ttl_bonus'     => $gaji_bonus['bonus'],
                'ttl_potongan'  => $gaji_potongan['potongan'],
                'ttl_gaji'      => ($identitas['sb'] + $gaji_bonus['bonus']) - $gaji_potongan['potongan'],
                'sts_gaji'      => 'SELESAI',
                'updated_at'    => date('Y-m-d H:i:s')
            );
            $this->db->where('id', $gaji_id);
            $this->db->update('k_gaji', $data_selesai);
            $data_gaji  = $this->db->get_where('k_gaji', ['id' => $gaji_id])->row_array();
            $cetak_slip = $this->_slipGajiKaryawan($gaji_id, $login, $identitas, $role_level, $data_gaji, $data_selesai);
            $this->_kirimSlipEmail($gaji_id, $login, $cetak_slip);
            $this->insert_model->simpanDataTransaksiOperasionalGaji($data_selesai, $identitas, $data_gaji);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data gaji pokok!</div>');
            redirect('keuangan/identitas/detail_gaji/' . $this->encrypt->encode($gaji_id));
        };
    }
    public function crud()
    {
        if (isset($_POST['simpanAnggoKoperasi'])) {
            $data_inputan       = $this->_dataInputanAnggotaKoperasi();
            $this->_cekKTPAnggota($data_inputan);
            $this->_validasiComboBox($data_inputan);
            $this->_validasiNomorHPTambah($data_inputan);
            $alamat_id          = $this->_cekDataAlamat($data_inputan);
            if ($data_inputan['nomor_kk'] == null) :
                $this->insert_model->tambahAnggotaKoperasiBaru($data_inputan, $alamat_id);
            else :
                // Tambah Anggota dengan Nomor KK
                $this->insert_model->tambahAnggotaKoperasiBaruKK($data_inputan, $alamat_id);
                $cek_anggota = $this->db->get_where('anggota', ['nik' => $data_inputan['nik']])->row_array();
                $this->insert_model->uploadKKBaru($data_inputan, $cek_anggota);
            endif;
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil menambahkan anggota koperasi baru!</div>');
            redirect('keuangan/sistem/anggota');
        }
        if (isset($_POST['updateDataAnggota'])) {
            // Data Inputan
            $data_inputan = $this->_dataInputanIdentitas();
            $cek_alamat   = $this->_dataAlamatAnggota($data_inputan);
            $this->_validasiNomorHP($data_inputan);
            $this->update_model->updateDataAnggota($data_inputan, $cek_alamat);
            $this->update_model->updateDataAnggotaKK($data_inputan, $cek_alamat);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data anggota!</div>');
            redirect('keuangan/identitas/anggota/' . $this->encrypt->encode($data_inputan['id_anggota']));
        };
    }
    // Coba Kirim Email
    private function _kirimSlipEmail($gaji_id, $login, $cetak_slip)
    {
        // Data Gaji
        $data_gaji = $this->db->get_where('k_gaji', ['id' => $gaji_id])->row_array();
        // Periode Gaji
        $bulan     = $this->mycustom->bulanIndo(date('m', strtotime($data_gaji['tgl_gaji'])));
        $tahun     = date('Y', strtotime($data_gaji['tgl_gaji']));
        $periode   = $bulan . ' ' . $tahun;
        // PHPMailer object
        $mail = $this->phpmailer_library->load();
        $sett_mail = $this->db->get_where('sistem_mail', ['id' => 1])->row_array();
        // SMTP configuration
        $mail->isSMTP();
        $mail->Host     = $sett_mail['host_mail'];
        $mail->SMTPAuth = true;
        $mail->Username = $sett_mail['user_mail'];
        $mail->Password = $this->encrypt->decode($sett_mail['pass_mail']);
        $mail->SMTPSecure = 'ssl';
        $mail->Port     = 465;

        $mail->setFrom($sett_mail['user_mail'], $sett_mail['ket_mail']);
        $mail->addReplyTo('dev.binaartha@gmail.com', 'Slip Gaji Karyawan');

        // Add a recipient
        $mail->addAddress($login['email']);
        // Email subject
        $mail->Subject = 'Slip Gaji Karyawan';
        // Set email format to HTML
        $mail->isHTML(true);
        // Email body content
        $mailContent = 'Yth, Bpk/Ibu ' . $login['nm_panggilan'] . ', bersama email ini, kami sampaikan Slip Gaji Karyawan periode ' . $periode . '. <br><br> Silahkan untuk membuka Slip Gaji dengan password Anda.<br><br>
        Password Anda adalah 8 digit tanggal lahir anda dalam format YYYYMMDD, dimana : <br>
            <p>- YYYY : Tahun Kelahiran Anda</p>
            <p>- MM : Bulan Kelahiran Anda</p>
            <p>- DD : Tanggal Kelahiran Anda</p><br>
            Contoh : Tanggal lahir <b>01 Febuari 1980</b>, Maka password : <b>19800201</b><br><br><br>
            Terimakasih,<br><br><br>
            Hormat Kami,<br>
            KSP Bina Artha Prima';
        $mail->Body = $mailContent;
        $url = 'https://siap.kspbinaartha.com/assets/slip_gaji/' . $cetak_slip['nama_file'];
        $mail->addStringAttachment(
            file_get_contents($url),
            'slip_gaji_' . $cetak_slip['nama_file']
        );
    }
    private function _slipGajiKaryawan($gaji_id, $login, $identitas, $role_level, $data_gaji, $data_selesai)
    {
        $data_bonus     = $this->db->get_where('k_dgaji', ['gaji_id' => $gaji_id, 'status' => 'TAMBAH'])->result();
        $data_potongan  = $this->db->get_where('k_dgaji', ['gaji_id' => $gaji_id, 'status' => 'POTONG'])->result();
        $data_netral    = $this->db->get_where('k_dgaji', ['gaji_id' => $gaji_id, 'status' => 'NETRAL'])->result();
        // End data nota
        $data = array(
            // Data Identitas Karyawan
            'login'      => $login,
            'identitas'  => $identitas,
            'role_level' => $role_level,
            'data_gaji'  => $data_gaji,
            // Data isi konten
            'bonus'    => $data_bonus,
            'potongan' => $data_potongan,
            'netral'   => $data_netral,
            'selesai'  => $data_selesai
        );
        // filename dari pdf ketika didownload
        $file_pdf = date('Y', strtotime(date('Y-m-d'))) . date('m', strtotime(date('Y-m-d'))) . $data_gaji['login_id'] . '.pdf';
        // setting paper
        $paper = 'A4';
        //orientasi paper potrait / landscape
        $orientation = "potrait";
        // $this->load->view('nota/nota_bayar_arisan_petugas', $data);
        $lokasi_file = 'assets/slip_gaji/';
        $html = $this->load->view('document/nota/slip_gaji', $data, true);
        $passpdf = date('Y', strtotime($identitas['tgl_lahir'])) . date('m', strtotime($identitas['tgl_lahir'])) . date('d', strtotime($identitas['tgl_lahir']));
        $this->pdfgenerator->generate_gaji($html, $file_pdf, $paper, $lokasi_file, $orientation, $passpdf);
        $data_dokumen = array(
            'lokasi'    => $lokasi_file,
            'nama_file' => $file_pdf,
            'password'  => $passpdf
        );
        return $data_dokumen;
    }
    public function crud_karyawan()
    {
        // Karyawan Lain
        if (isset($_POST['updateDataKaryawan'])) {
            $data_inputan = $this->_dataInputanIdentitasKaryawan();
            $this->_cekKtpKaryawan($data_inputan);
            $this->_cekEmailKaryawan($data_inputan);
            $this->_cekNomorHPKaryawan($data_inputan);
            $alamat = $this->db->get_where('sistem_alamat', ['nm_desa' => $data_inputan['nm_desa'], 'nm_kecamatan' => $data_inputan['nm_kecamatan'], 'kot_kab' => $data_inputan['kot_kab']])->row_array();
            $alamat_id = $alamat['id'];
            // Cek Identitas Karyawan
            $cek_identitas = $this->db->get_where('sistem_identitas', ['login_id' => $data_inputan['login_id']])->row_array();
            if ($cek_identitas > 0) :
                $this->update_model->updateDataKaryawanLama($data_inputan, $alamat_id);
            else :
                $this->insert_model->tambahDataIdentitasKaryawan($data_inputan, $alamat_id);
            endif;
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data karyawan koperasi!</div>');
            redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
        }
        if (isset($_POST['blokirDataKaryawan'])) {
            $data_inputan = $this->_dataInputanIdentitasKaryawan();
            $this->update_model->blokirDataKaryawan($data_inputan);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil blokir data karyawan koperasi!</div>');
            redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
        }
        if (isset($_POST['aktifDataKaryawan'])) {
            $data_inputan = $this->_dataInputanIdentitasKaryawan();
            $this->update_model->aktifDataKaryawan($data_inputan);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil aktifasi data karyawan koperasi!</div>');
            redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
        }
        // Identitas Diri sendiri
        if (isset($_POST['updateDataDiriSendiri'])) {
            $data_inputan = $this->_dataInputanIdentitasKaryawan();
            $this->_cekKtpKaryawan($data_inputan);
            $this->_cekEmailKaryawan($data_inputan);
            $this->_cekNomorHPKaryawan($data_inputan);
            $alamat = $this->db->get_where('sistem_alamat', ['nm_desa' => $data_inputan['nm_desa'], 'nm_kecamatan' => $data_inputan['nm_kecamatan'], 'kot_kab' => $data_inputan['kot_kab']])->row_array();
            $alamat_id = $alamat['id'];
            // Cek Identitas Karyawan
            $cek_identitas = $this->db->get_where('sistem_identitas', ['login_id' => $data_inputan['login_id']])->row_array();
            if ($cek_identitas > 0) :
                $this->update_model->updateDataKaryawanLama($data_inputan, $alamat_id);
            else :
                $this->insert_model->tambahDataIdentitasKaryawan($data_inputan, $alamat_id);
            endif;
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil merubah data karyawan koperasi!</div>');
            redirect('keuangan/identitas/myprofile');
        }
    }
    // Ajak Cek NIK Anggota
    public function data_anggota()
    {
        $nik               = $this->input->post('nik');
        $identitas_anggota = $this->select_model->getDataAnggota($nik);
        if ($identitas_anggota > 0) :
            $data_ada = array(
                'nm_anggota'     => $identitas_anggota['nm_anggota'],
                'jk'             => $identitas_anggota['jk'],
                'alamat_lengkap' => $identitas_anggota['alamat_lengkap'],
                'kota_kabupaten' => '<option value="' . $identitas_anggota['kot_kab'] . '">' . $identitas_anggota['kot_kab']  . '</option>',
                'kecamatan_baru' => '<option value="' . $identitas_anggota['nm_kecamatan'] . '">' . $identitas_anggota['nm_kecamatan']  . '</option>',
                'dk_ds'          => '<option value="' . $identitas_anggota['nm_desa'] . '">' . $identitas_anggota['nm_desa']  . '</option>',
                'nm_rt'          => $identitas_anggota['nm_rt'],
                'nm_rw'          => $identitas_anggota['nm_rw'],
                'tempat_lahir'   => $identitas_anggota['tempat_lahir'],
                'tgl_lahir'      => $identitas_anggota['tgl_lahir'],
                'no_hp'          => $identitas_anggota['no_hp'],
                'pekerjaan'      => $identitas_anggota['pekerjaan'],
                'suami_istri'    => $identitas_anggota['suami_istri'],
                'foto_ktplama'   => $identitas_anggota['foto_ktp']
            );
            echo json_encode($data_ada);
        else :
            $data_new = array(
                'nm_anggota' => '',
                'jk' => 'ok',
                'alamat_lengkap' => '',
                'kode_pos' => '',
                'nm_rt' => 'ok',
                'nm_rw' => 'ok',
                'tempat_lahir' => '',
                'tgl_lahir' =>  '',
                'no_hp' =>  '',
                'pekerjaan' =>  '',
                'suami_istri' =>  '',
                'foto_ktplama' =>  ''
            );
            echo json_encode($data_new);
        endif;
    }
    // Ajak Cek Nomor Urut Anggota
    public function cek_pemenang()
    {
        $nomor_urut = $this->input->post('nomor_urut');
        $jadwal_id  = $this->input->post('jadwal_id');
        $arisan_id  = $this->input->post('arisan_id');
        $cek_bayar = $this->select_model->cariAnggotaSudahBayar($nomor_urut, $arisan_id, $jadwal_id);
        if ($cek_bayar > 0) :
            $data_new = array(
                'stts_anggota' => $cek_bayar['kd_undian'] . ' - ' . $cek_bayar['nm_anggota'] . ' - ' . $cek_bayar['no_hp']
            );
            echo json_encode($data_new);
        else :
            $data_new = array(
                'stts_anggota' => 'Belum Bayar / Sudah Menang / Mengundurkan Diri'
            );
            echo json_encode($data_new);
        endif;
    }
    public function cek_keluarga()
    {
        $nik = $this->input->post('nik');
        $identitas_anggota = $this->select_model->getDataAnggota($nik);
        if ($identitas_anggota > 0) :
            echo json_encode($identitas_anggota);
        else :
            $data_new = array(
                'nm_anggota' => '',
                'no_hp' =>  ''
            );
            echo json_encode($data_new);
        endif;
    }
    public function cek_keluarga_nohp()
    {
        $no_hp = $this->input->post('no_hp');
        $identitas_anggota = $this->select_model->getDataAnggotaNoHp($no_hp);
        if ($identitas_anggota > 0) :
            echo json_encode($identitas_anggota);
        else :
            $data_new = array(
                'nm_anggota' => '',
                'nik' =>  ''
            );
            echo json_encode($data_new);
        endif;
    }
    public function cek_arisan()
    {
        $nik                 = $this->input->post('nik');
        $hitung_inputan      = strlen($nik);
        $cek_nomor           = substr($nik, 1, 1);
        $regist_arisan       = $this->input->post('regist_arisan');
        $cek_jadwal          = $this->db->get_where('p_arisan_jadwal', ['regist_arisan' => $regist_arisan, 'status_undian' => 'BELUM'])->row_array();
        $jadwal_id           = $cek_jadwal['id'];
        if ($hitung_inputan == 16) :
            $identitas_anggota   = $this->select_model->getDataAnggota($nik);
            $anggota_id          = $identitas_anggota['id_anggota'];
            $cek_arisan          = $this->select_model->getDataArisanAnggota($anggota_id, $regist_arisan, $jadwal_id);
            $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
            $ttl_tagihan         = count($cek_arisan);
            $iuran               = $data_arisan['tagihan_iuran'];
            $ttl_bayar           = $ttl_tagihan * $iuran;
            if ($identitas_anggota > 0) :
                $data_ajax = array(
                    'ttl_bayar'     => $ttl_bayar,
                    'ttl_tagihan'   => $ttl_tagihan,
                    'iuran_bulanan' => $iuran,
                    'id_anggota'    => $anggota_id
                );
                echo json_encode($data_ajax);
            else :
                $data_ajax = array(
                    'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                    'ttl_tagihan'   => 'Tidak Terdaftar',
                    'iuran_bulanan' => 'Dalam Kelompok Arisan'
                );
                echo json_encode($data_ajax);
            endif;
        else :
            if ($cek_nomor == 8) :
                $identitas_anggota   = $this->select_model->getDataAnggotaNomorHP($nik); // Menampilkan data anggota dengan Nomor HP
                $anggota_id          = $identitas_anggota['id_anggota'];
                $cek_arisan          = $this->select_model->getDataArisanAnggota($anggota_id, $regist_arisan, $jadwal_id);
                $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
                $ttl_tagihan         = count($cek_arisan);
                $iuran               = $data_arisan['tagihan_iuran'];
                $ttl_bayar           = $ttl_tagihan * $iuran;
                if ($identitas_anggota > 0) :
                    $data_ajax = array(
                        'ttl_bayar'     => $ttl_bayar,
                        'ttl_tagihan'   => $ttl_tagihan,
                        'iuran_bulanan' => $iuran,
                        'id_anggota'    => $anggota_id
                    );
                    echo json_encode($data_ajax);
                else :
                    $data_ajax = array(
                        'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                        'ttl_tagihan'   => 'Tidak Terdaftar',
                        'iuran_bulanan' => 'Dalam Kelompok Arisan'
                    );
                    echo json_encode($data_ajax);
                endif;
            else :
                $identitas_anggota   = $this->select_model->getDataAnggotaNoUndian($nik); // Menampilkan data anggota dengan Nomor Undian
                $anggota_id          = $identitas_anggota['id_anggota'];
                $cek_arisan          = $this->select_model->getDataArisanAnggota($anggota_id, $regist_arisan, $jadwal_id);
                $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
                $ttl_tagihan         = count($cek_arisan);
                $iuran               = $data_arisan['tagihan_iuran'];
                $ttl_bayar           = $ttl_tagihan * $iuran;
                if ($identitas_anggota > 0) :
                    $data_ajax = array(
                        'ttl_bayar'     => $ttl_bayar,
                        'ttl_tagihan'   => $ttl_tagihan,
                        'iuran_bulanan' => $iuran,
                        'id_anggota'    => $anggota_id
                    );
                    echo json_encode($data_ajax);
                else :
                    $data_ajax = array(
                        'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                        'ttl_tagihan'   => 'Tidak Terdaftar',
                        'iuran_bulanan' => 'Dalam Kelompok Arisan'
                    );
                    echo json_encode($data_ajax);
                endif;
            endif;
        endif;
    }
    public function cek_arisan_kasir()
    {
        $nik                 = $this->input->post('nik');
        $hitung_inputan      = strlen($nik);
        $cek_nomor           = substr($nik, 1, 1);
        if ($hitung_inputan == 16) :
            $regist_arisan       = $this->input->post('regist_arisan');
            $identitas_anggota   = $this->select_model->getDataAnggota($nik);
            $id_anggota          = $identitas_anggota['id_anggota'];
            $cek_arisan          = $this->select_model->getDataArisanAnggota($id_anggota, $regist_arisan);
            $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
            $ttl_tagihan         = count($cek_arisan);
            $iuran               = $data_arisan['tagihan_iuran'];
            $ttl_bayar           = $ttl_tagihan * $iuran;
            if ($identitas_anggota > 0) :
                $data_ajax = array(
                    'ttl_bayar'     => $ttl_bayar,
                    'ttl_tagihan'   => $ttl_tagihan,
                    'iuran_bulanan' => $iuran,
                    'id_anggota'    => $id_anggota
                );
                echo json_encode($data_ajax);
            else :
                $data_ajax = array(
                    'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                    'ttl_tagihan'   => 'Tidak Terdaftar',
                    'iuran_bulanan' => 'Dalam Kelompok Arisan'
                );
                echo json_encode($data_ajax);
            endif;
        else :
            if ($cek_nomor == 8) :
                $regist_arisan       = $this->input->post('regist_arisan');
                $identitas_anggota   = $this->select_model->getDataAnggotaNomorHP($nik); // Menampilkan data anggota dengan Nomor HP
                $id_anggota          = $identitas_anggota['id_anggota'];
                $cek_arisan          = $this->select_model->getDataArisanAnggota($id_anggota, $regist_arisan);
                $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
                $ttl_tagihan         = count($cek_arisan);
                $iuran               = $data_arisan['tagihan_iuran'];
                $ttl_bayar           = $ttl_tagihan * $iuran;
                if ($identitas_anggota > 0) :
                    $data_ajax = array(
                        'ttl_bayar'     => $ttl_bayar,
                        'ttl_tagihan'   => $ttl_tagihan,
                        'iuran_bulanan' => $iuran,
                        'id_anggota'    => $id_anggota
                    );
                    echo json_encode($data_ajax);
                else :
                    $data_ajax = array(
                        'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                        'ttl_tagihan'   => 'Tidak Terdaftar',
                        'iuran_bulanan' => 'Dalam Kelompok Arisan'
                    );
                    echo json_encode($data_ajax);
                endif;
            else :
                $regist_arisan       = $this->input->post('regist_arisan');
                $identitas_anggota   = $this->select_model->getDataAnggotaNoUndian($nik); // Menampilkan data anggota dengan Nomor Undian
                $id_anggota          = $identitas_anggota['id_anggota'];
                $cek_arisan          = $this->select_model->getDataArisanAnggota($id_anggota, $regist_arisan);
                $data_arisan         = $this->select_model->getDataArisanIdentitas($regist_arisan);
                $ttl_tagihan         = count($cek_arisan);
                $iuran               = $data_arisan['tagihan_iuran'];
                $ttl_bayar           = $ttl_tagihan * $iuran;
                if ($identitas_anggota > 0) :
                    $data_ajax = array(
                        'ttl_bayar'     => $ttl_bayar,
                        'ttl_tagihan'   => $ttl_tagihan,
                        'iuran_bulanan' => $iuran,
                        'id_anggota'    => $id_anggota
                    );
                    echo json_encode($data_ajax);
                else :
                    $data_ajax = array(
                        'ttl_bayar'     => 'NIK / NO Regist / Anggota',
                        'ttl_tagihan'   => 'Tidak Terdaftar',
                        'iuran_bulanan' => 'Dalam Kelompok Arisan'
                    );
                    echo json_encode($data_ajax);
                endif;
            endif;
        endif;
    }
    // Data Inputan identitas Anggota
    private function _dataInputanIdentitas()
    {
        $data_inputan = array(
            'id_anggota'     => htmlspecialchars($this->input->post('id_anggota')),
            'nik'            => htmlspecialchars($this->input->post('nik')),
            'nm_anggota'     => htmlspecialchars($this->input->post('nm_anggota')),
            'jk'             => htmlspecialchars($this->input->post('jk')),
            'alamat_lengkap' => htmlspecialchars($this->input->post('alamat_lengkap')),
            'kot_kab'        => htmlspecialchars($this->input->post('kota_kabupaten')),
            'nm_kecamatan'   => htmlspecialchars($this->input->post('kecamatan_baru')),
            'nm_desa'        => htmlspecialchars($this->input->post('dk_ds')),
            'nm_rt'          => htmlspecialchars($this->input->post('nm_rt')),
            'nm_rw'          => htmlspecialchars($this->input->post('nm_rw')),
            'tempat_lahir'   => htmlspecialchars($this->input->post('tempat_lahir')),
            'tgl_lahir'      => htmlspecialchars($this->input->post('tgl_lahir')),
            'no_hp'          => htmlspecialchars($this->input->post('no_hp')),
            'no_hp_baru'     => htmlspecialchars($this->input->post('no_hp')),
            'no_hp_lama'     => htmlspecialchars($this->input->post('no_hp_lama')),
            'pekerjaan'      => htmlspecialchars($this->input->post('pekerjaan')),
            'suami_istri'    => htmlspecialchars($this->input->post('suami_istri')),
            'foto_ktp_old'   => htmlspecialchars($this->input->post('foto_ktp_old')),
            'foto_kk_old'    => htmlspecialchars($this->input->post('foto_kk_old'))
        );
        return $data_inputan;
    }
    // Data Inputan identitas Karyawan
    private function _dataInputanIdentitasKaryawan()
    {
        $data_inputan = array(
            'login_id'       => htmlspecialchars($this->input->post('login_id')),
            'nik'            => htmlspecialchars($this->input->post('nik')),
            'nik_lama'       => htmlspecialchars($this->input->post('nik_lama')),
            'nm_panggilan'   => htmlspecialchars($this->input->post('nm_panggilan')),
            'jk'             => htmlspecialchars($this->input->post('jk')),
            'kot_kab'        => htmlspecialchars($this->input->post('kota_kabupaten')),
            'nm_kecamatan'   => htmlspecialchars($this->input->post('kecamatan_baru')),
            'nm_desa'        => htmlspecialchars($this->input->post('dk_ds')),
            'tempat_lahir'   => htmlspecialchars($this->input->post('tempat_lahir')),
            'tgl_lahir'      => htmlspecialchars($this->input->post('tgl_lahir')),
            'no_hp_baru'     => htmlspecialchars($this->input->post('no_hp')),
            'no_hp_lama'     => htmlspecialchars($this->input->post('no_hp_lama')),
            'email_baru'     => htmlspecialchars($this->input->post('email_baru')),
            'email_lama'     => htmlspecialchars($this->input->post('email_lama')),
            'tgl_gabung'     => htmlspecialchars($this->input->post('tgl_gabung')),
            'foto_ktp_old'   => htmlspecialchars($this->input->post('foto_ktp_old'))
        );
        return $data_inputan;
    }
    // Cek alamat anggota
    private function _dataAlamatAnggota($data_inputan)
    {
        $cek_alamat = $this->db->get_where('sistem_alamat', ['kot_kab' => $data_inputan['kot_kab'], 'nm_kecamatan' => $data_inputan['nm_kecamatan'], 'nm_desa' => $data_inputan['nm_desa']])->row_array();
        if ($cek_alamat > 0) :
            $alamat_id = $cek_alamat['id'];
            return $alamat_id;
        else :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Alamat Tidak di Temukan!</div>');
            redirect('arisan/identitas/anggota/' . $this->encrypt->encode($data_inputan['id_anggota']));
        endif;
    }
    private function _dataInputanAnggotaKoperasi()
    {
        if (htmlspecialchars($this->input->post('status_hubungan')) == 0) :
            $suami_istri = 'BELUM MENIKAH';
        elseif (htmlspecialchars($this->input->post('status_hubungan')) == 1) :
            $suami_istri = htmlspecialchars($this->input->post('suami_istri'));
        elseif (htmlspecialchars($this->input->post('status_hubungan')) == 2) :
            $suami_istri = 'DUDA/JANDA';
        endif;
        $data_inputan = array(
            'nik'            => htmlspecialchars($this->input->post('nik_anggota')),
            'nomor_kk'       => htmlspecialchars($this->input->post('nomor_kk')),
            'nm_anggota'     => htmlspecialchars($this->input->post('nm_anggota')),
            'jk'             => htmlspecialchars($this->input->post('jk')),
            'alamat_lengkap' => htmlspecialchars($this->input->post('alamat_lengkap')),
            'kode_pos'       => htmlspecialchars($this->input->post('kode_pos')),
            'nm_rt'          => htmlspecialchars($this->input->post('nm_rt')),
            'nm_rw'          => htmlspecialchars($this->input->post('nm_rw')),
            'nm_desa'        => htmlspecialchars($this->input->post('dk_ds')),
            'nm_kecamatan'   => htmlspecialchars($this->input->post('kecamatan_baru')),
            'kot_kab'        => htmlspecialchars($this->input->post('kota_kabupaten')),
            'tempat_lahir'   => htmlspecialchars($this->input->post('tempat_lahir')),
            'tgl_lahir'      => htmlspecialchars($this->input->post('tgl_lahir')),
            'no_hp'          => htmlspecialchars($this->input->post('no_hp')),
            'pekerjaan'      => htmlspecialchars($this->input->post('pekerjaan')),
            'suami_istri'    => $suami_istri,
            'foto_ktp'       => htmlspecialchars($this->input->post('foto_ktp'))
        );
        return $data_inputan;
    }
    // Validasi KTP
    private function _cekKTPAnggota($data_inputan)
    {
        $nik = $data_inputan['nik'];
        // Cek Apakah 16 karakter
        $hitung_nik      = strlen($nik);
        if ($hitung_nik != 16) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">NIK Harus 16 Karakter!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
        // Apakah NIK sudah terdaftar
        $cek_nik = $this->db->get_where('anggota', ['nik' => $nik])->row_array();
        if ($cek_nik > 0) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">NIK Sudah Terdaftar2!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
    }
    private function _cekKtpKaryawan($data_inputan)
    {
        if ($data_inputan['nik'] != $data_inputan['nik_lama']) :
            $nik = $data_inputan['nik'];
            // Cek Apakah 16 karakter
            $hitung_nik      = strlen($nik);
            if ($hitung_nik != 16) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">NIK Harus 16 Karakter!</div>');
                redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
            endif;
            // Apakah NIK sudah terdaftar
            $cek_nik = $this->db->get_where('sistem_identitas', ['nik' => $nik])->row_array();
            if ($cek_nik > 0) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">NIK Sudah Terdaftar!</div>');
                redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
            endif;
        endif;
    }
    // Validasi Inputan Combo Box
    private function _validasiComboBox($data_inputan)
    {
        if ($data_inputan['jk'] == 'ok') :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Jenis Kelamin Harus Di Isi!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
        if ($data_inputan['nm_rt'] == 'ok') :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Kolom RT Harus Diisi!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
        if ($data_inputan['nm_rw'] == 'ok') :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Kolom RW Harus Diisi!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
        if ($data_inputan['kot_kab'] == 'PILIH') :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Kolom Kabupaten atau Kota Harus Diisi!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
    }
    private function _cekEmailKaryawan($data_inputan)
    {
        if ($data_inputan['email_baru'] != $data_inputan['email_lama']) :
            $cek_email = $this->db->get_where('sistem_login', ['email' => $data_inputan['email_baru']])->row_array();
            if ($cek_email > 0) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Alamat Email Sudah Di Gunakan Karyawan Lain!</div>');
                redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
            endif;
        endif;
    }
    private function _cekNomorHPKaryawan($data_inputan)
    {
        if ($data_inputan['no_hp_baru'] != $data_inputan['no_hp_lama']) :
            $cek_email = $this->db->get_where('sistem_login', ['no_hp' => $data_inputan['no_hp_baru']])->row_array();
            if ($cek_email > 0) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor HP Sudah Di Gunakan Karyawan Lain!</div>');
                redirect('keuangan/identitas/karyawan/' . $this->encrypt->encode($data_inputan['login_id']));
            endif;
        endif;
    }
    private function _validasiNomorHP($data_inputan)
    {
        if ($data_inputan['no_hp_baru'] != $data_inputan['no_hp_lama']) :
            $cek_nomor = $this->db->get_where('anggota', ['no_hp' => $data_inputan['no_hp']])->row_array();
            if ($cek_nomor > 0) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor HP Sudah Di Gunakan Anggota Lain!</div>');
                redirect('keuangan/identitas/anggota/' . $this->encrypt->encode($data_inputan['id_anggota']));
            endif;
            $cek_nomor_cadangan = $this->db->get_where('anggota_hp_cadangan', ['no_hp' => $data_inputan['no_hp']])->row_array();
            if ($cek_nomor_cadangan > 0) :
                $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor HP Sudah Di Gunakan Anggota Lain!</div>');
                redirect('keuangan/identitas/anggota/' . $this->encrypt->encode($data_inputan['id_anggota']));
            endif;
        endif;
    }
    private function _validasiNomorHPTambah($data_inputan)
    {
        $cek_nomor = $this->db->get_where('anggota', ['no_hp' => $data_inputan['no_hp']])->row_array();
        if ($cek_nomor > 0) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor HP Sudah Di Gunakan Anggota Lain!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
        $cek_nomor_cadangan = $this->db->get_where('anggota_hp_cadangan', ['no_hp' => $data_inputan['no_hp']])->row_array();
        if ($cek_nomor_cadangan > 0) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor HP Sudah Di Gunakan Anggota Lain!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
    }
    // Mencari ID alamat database Heboh
    private function _cekDataAlamat($data_inputan)
    {
        $cek_alamat = $this->db->get_where('sistem_alamat', ['nm_desa' => $data_inputan['nm_desa'], 'nm_kecamatan' => $data_inputan['nm_kecamatan'], 'kot_kab' => $data_inputan['kot_kab']])->row_array();
        if ($cek_alamat > 0) :
            $alamat_id = $cek_alamat['id'];
            return $alamat_id;
        else :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Alamat Tidak Ada!</div>');
            redirect('keuangan/sistem/anggota');
        endif;
    }
}

/* End of file ControllerAnggota.php and path \application\controllers\arisan\ControllerAnggota.php */