<?php

use Google\Service\AndroidPublisher\Timestamp;

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

class Insert_model extends CI_Model
{
    // Menu Kelola Data -> Arisan Heboh
    // Menambahkan data arisan heboh
    function simpanArisanHeboh()
    {
        $tanggal = date('y');
        $nm_kelompok = htmlspecialchars($this->input->post('nm_kelompok'));
        $cek_kelompok = $this->db->get_where('p_arisan', ['produk_id' => 21, 'nm_kelompok' => $nm_kelompok])->row_array();
        if ($cek_kelompok > 0) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Kelompok Sudah Ada!</div>');
        else :
            $total_angka = strlen($nm_kelompok);
            if ($total_angka == 1) :
                $kode_custom = $tanggal . '2100' . htmlspecialchars($this->input->post('nm_kelompok'));
            elseif ($total_angka == 2) :
                $kode_custom = $tanggal . '210' . htmlspecialchars($this->input->post('nm_kelompok'));
            elseif ($total_angka == 3) :
                $kode_custom = $tanggal . '21' . htmlspecialchars($this->input->post('nm_kelompok'));
            endif;
            $data = array(
                'id'               => $kode_custom,
                'produk_id'        => 21,
                'nm_kelompok'      => htmlspecialchars($this->input->post('nm_kelompok')),
                'target_anggota'   => htmlspecialchars($this->input->post('ttl_anggota')),
                'tagihan_iuran'    => htmlspecialchars($this->input->post('tagihan_iuran')),
                'tempo'            => htmlspecialchars($this->input->post('tempo')),
                'hg_standar'       => htmlspecialchars($this->input->post('hg_modal')),
                'hg_target'        => htmlspecialchars($this->input->post('hg_jual')),
                'admin_arisan'     => htmlspecialchars($this->input->post('fee_admin')),
                'status_arisan'    => 'PROSES'
            );
            $this->db->insert('p_arisan', $data);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Arisan Heboh!</div>');
        endif;
    }
    // Menambahkan data anggota arisan heboh
    function daftarAnggotaArisan($data_inputan, $cek_anggota, $buat_regist_undian)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $data = array(
                'regist_arisan' => $data_inputan['regist_arisan'],
                'anggota_id'    => $cek_anggota['id'],
                'regist_undian' => $buat_regist_undian['regist_undian'],
                'no_urut'       => $buat_regist_undian['no_urut'],
                'status'        => 'AKTIF',
                'login_id'      => $data_inputan['login_id']
            );
            // Inputan Tanpa Gambar KTP
            $this->db->insert('p_arisan_anggota', $data);
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            $data_anggota = array(
                'foto_ktp' => $uploadData['file_name']
            );
            $this->db->where('nik', $data_inputan['nik']);
            $this->db->update('anggota', $data_anggota);
            $data = array(
                'regist_arisan' => $data_inputan['regist_arisan'],
                'anggota_id'    => $cek_anggota['id'],
                'regist_undian' => $buat_regist_undian['regist_undian'],
                'no_urut'       => $buat_regist_undian['no_urut'],
                'status'        => 'AKTIF',
                'login_id'      => $data_inputan['login_id']
            );
            // Inputan Dengan Gambar KTP
            $this->db->insert('p_arisan_anggota', $data);
        endif;
    }
    // Menambahkan Nomor HP Cadangan
    function masukNoHPCadangan($data_inputan, $cek_anggota, $buat_regist_undian)
    {
        $data = array(
            'anggota_id' => $cek_anggota['id'],
            'no_hp' => $data_inputan['no_hp'],
            'ket_cadangan' => 'Nomor ' . $cek_anggota['no_hp'] . ' di daftarkan sebagai nomor cadangan Anggota Arisan Heboh ' . $buat_regist_undian['regist_undian']
        );
        $this->db->insert('anggota_hp_cadangan', $data);
    }
    // Tambah Anggota Koperasi dan Arisan Heboh
    // Akses dari Beranda Tambah Anggota Arisan Heboh
    function tambahAnggotaKoperasi($data_inputan, $buat_regist_undian, $alamat_id)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gagal Upload KTP, Silahkan Ulang Kembali!</div>');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            $data_anggota = array(
                'nik'            => $data_inputan['nik'],
                'nm_anggota'     => $data_inputan['nm_anggota'],
                'jk'             => $data_inputan['jk'],
                'alamat_lengkap' => $data_inputan['alamat_lengkap'],
                'nm_rt'          => $data_inputan['nm_rt'],
                'nm_rw'          => $data_inputan['nm_rw'],
                'id_alamat'      => $alamat_id,
                'tempat_lahir'   => $data_inputan['tempat_lahir'],
                'tgl_lahir'      => $data_inputan['tgl_lahir'],
                'no_hp'          => $data_inputan['no_hp'],
                'pekerjaan'      => $data_inputan['pekerjaan'],
                'suami_istri'    => $data_inputan['suami_istri'],
                'foto_ktp'       => $uploadData['file_name']
            );
            $this->db->insert('anggota', $data_anggota);
            $cek_anggota = $this->db->get_where('anggota', ['nik' => $data_inputan['nik']])->row_array();
            $data = array(
                'regist_arisan' => $data_inputan['regist_arisan'],
                'anggota_id'    => $cek_anggota['id'],
                'regist_undian' => $buat_regist_undian['regist_undian'],
                'no_urut'       => $buat_regist_undian['no_urut'],
                'status'        => 'AKTIF',
                'login_id'      => $data_inputan['login_id']
            );
            // Inputan Dengan Gambar KTP
            $this->db->insert('p_arisan_anggota', $data);
            $data = array(
                'anggota_id' => $cek_anggota['id'],
                'no_hp' => $data_inputan['no_hp'],
                'ket_cadangan' => 'Nomor ' . $cek_anggota['no_hp'] . ' di daftarkan sebagai nomor Utama Anggota Arisan Heboh ' . $buat_regist_undian['regist_undian']
            );
            $this->db->insert('anggota_hp_cadangan', $data);
        endif;
    }
    // Menambahkan data Anggota pada Arisan Heboh
    function simpanAnggotaArisanHeboh($alamat_id, $regist_arisan, $undian_arisan)
    {
        // Kode Registrasi Arisan Heboh
        $id_arisan   = htmlspecialchars($this->input->post('id_arisan'));
        // Kode Referal atau orang yang merekomendasikan anggota
        $login_id    = htmlspecialchars($this->input->post('login_id'));
        // Kode Alamat
        $kode_alamat             = $alamat_id;
        $tgl_ini                 = date('Y-m-d H:i:s');
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gagal Upload Foto KTP</div>');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            // Cek Database Anggota Koperasi
            $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
            // Cek Apakah Anggota arisan sudah terdaftar menjadi anggota koperasi
            if ($cek_anggota > 0) :
                // Sudah menjadi anggota koperasi
                // Cek apakah nomor telepon sudah digunakan oleh anggota koperasi yang berbeda
                $cek_nomor_hp = $this->db->get_where('tbl_anggota', ['no_hp' => htmlspecialchars($this->input->post('no_hp'))])->row_array();
                if ($cek_nomor_hp > 0) :
                    // Sudah digunakan oleh anggota lain
                    // Cek apakah anggota tersebut sama dengan anggota arisan?
                    if ($cek_nomor_hp['nik'] == $cek_anggota['nik']) :
                        // Nomor Telepon dan Nik sudah ada
                        // Merubah data anggota yaitu foto KTP diperbarui.
                        $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                        unlink($berkas_lama);
                        $data_tambah_arisan = array(
                            'id_arisan'             => $id_arisan,
                            'id_anggota'            => $cek_anggota['id'],
                            'no_regist'             => $regist_arisan,
                            'no_arisan'             => $undian_arisan,
                            'status'                => 'AKTIF',
                            'login_id'              => $login_id
                        );
                        $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                        $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Heboh!</div>');
                    else :
                        // Nomor telepon sudah digunakan anggota lain
                        $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                        unlink($berkas_lama);
                        $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor Telepon Sudah di Gunakan Anggota Lain!</div>');
                    endif;
                else :
                    // Nomor telepon tidak ada yang menggunakan
                    // Merubah data nomor telepon baru anggota koperasi
                    $hp_cadangan = array(
                        'anggota_id'             => $cek_anggota['id'],
                        'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                        'ket_cadangan'           => 'Nomor Cadangan ' . $regist_arisan
                    );
                    $this->db->insert('tbl_hpcadangan', $hp_cadangan);
                    $data_tambah_arisan = array(
                        'id_arisan'             => $id_arisan,
                        'id_anggota'            => $cek_anggota['id'],
                        'no_regist'             => $regist_arisan,
                        'no_arisan'             => $undian_arisan,
                        'status'                => 'AKTIF',
                        'login_id'              => $login_id
                    );
                    $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                    $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Heboh!</div>');
                endif;
            else :
                // Belum menjadi anggota koperasi maka ditambahkan saja dengan status Calon Anggota Koperasi
                // Cek Nomor Telepon sudah digunakan anggota lain atau belum
                $cek_nomor_hp = $this->db->get_where('tbl_anggota', ['no_hp' => htmlspecialchars($this->input->post('no_hp'))])->row_array();
                if ($cek_nomor_hp > 0) :
                    // Sudah ada yang memakai nomor telepon
                    $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                    unlink($berkas_lama);
                    $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor Telepon Sudah di Gunakan Anggota Lain!</div>');
                else :
                    // Belum ada yang memakai nomor telepon dan berhasil menambahkan anggota koperasi
                    $data_anggota_koperasi = array(
                        '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')),
                        'id_alamat'         => $kode_alamat,
                        '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'       => htmlspecialchars($this->input->post('suami_istri')),
                        'foto_ktp'          => $uploadData['file_name'],
                        'status_anggota'    => 'CALON'
                    );
                    $this->db->insert('tbl_anggota', $data_anggota_koperasi);
                    $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
                    $data_tambah_arisan = array(
                        'id_arisan'             => $id_arisan,
                        'id_anggota'            => $cek_anggota['id'],
                        'no_regist'             => $regist_arisan,
                        'no_arisan'             => $undian_arisan,
                        'status'                => 'AKTIF',
                        'login_id'              => $login_id
                    );
                    $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                    $hp_cadangan = array(
                        'anggota_id'             => $cek_anggota['id'],
                        'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                        'ket_cadangan'           => 'Nomor Cadangan Nomor Registrasi ' . $regist_arisan
                    );
                    $this->db->insert('tbl_hpcadangan', $hp_cadangan);
                    $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Heboh!</div>');
                endif;
            endif;
        endif;
    }
    // Menambahkan data Anggota pada Arisan Heboh
    function DaftarAnggotaArisanHebohBeranda($alamat_id, $buat_noregist_undian)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gagal Upload Foto KTP</div>');
            redirect('arisan');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            // Inputan
            $data_anggota_koperasi = array(
                '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')),
                'id_alamat'         => $alamat_id,
                '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'       => htmlspecialchars($this->input->post('suami_istri')),
                'foto_ktp'          => $uploadData['file_name'],
                'status_anggota'    => 'CALON'
            );
            $this->db->insert('tbl_anggota', $data_anggota_koperasi);
            $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
            $data_tambah_arisan = array(
                'id_arisan'             => htmlspecialchars($this->input->post('id_arisan')),
                'id_anggota'            => $cek_anggota['id'],
                'no_regist'             => $buat_noregist_undian['regist_arisan'],
                'no_arisan'             => $buat_noregist_undian['undian_arisan'],
                'status'                => 'AKTIF',
                'login_id'              => $this->session->userdata('isloggedin')
            );
            $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
            $hp_cadangan = array(
                'anggota_id'             => $cek_anggota['id'],
                'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                'ket_cadangan'           => 'Nomor Cadangan Nomor Registrasi ' . $buat_noregist_undian['regist_arisan']
            );
            $this->db->insert('tbl_hpcadangan', $hp_cadangan);
        endif;
    }
    // Menambahkan data Anggota pada Arisan Motor
    function DaftarAnggotaArisanMotorBeranda($alamat_id, $buat_noregist_undian)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gagal Upload Foto KTP</div>');
            redirect('arisan');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            // Inputan
            $data_anggota_koperasi = array(
                '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')),
                'id_alamat'         => $alamat_id,
                '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'       => htmlspecialchars($this->input->post('suami_istri')),
                'foto_ktp'          => $uploadData['file_name'],
                'status_anggota'    => 'CALON'
            );
            $this->db->insert('tbl_anggota', $data_anggota_koperasi);
            $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
            $data_tambah_arisan = array(
                'id_arisan'             => htmlspecialchars($this->input->post('id_arisan')),
                'id_anggota'            => $cek_anggota['id'],
                'no_regist'             => $buat_noregist_undian['regist_arisan'],
                'no_arisan'             => $buat_noregist_undian['undian_arisan'],
                'status'                => 'AKTIF',
                'login_id'              => $this->session->userdata('isloggedin')
            );
            $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
            $hp_cadangan = array(
                'anggota_id'             => $cek_anggota['id'],
                'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                'ket_cadangan'           => 'Nomor Cadangan Nomor Registrasi ' . $buat_noregist_undian['regist_arisan']
            );
            $this->db->insert('tbl_hpcadangan', $hp_cadangan);
        endif;
    }
    function terimaAnggota($cek_pengajuan, $regist_undian, $no_urut)
    {
        $data_tambah_arisan = array(
            'regist_arisan'         => $cek_pengajuan['regist_arisan'],
            'anggota_id'            => $cek_pengajuan['anggota_id'],
            'regist_undian'         => $regist_undian,
            'no_urut'               => $no_urut,
            'status'                => 'AKTIF',
            'login_id'              => $cek_pengajuan['rekom_id']
        );
        $this->db->insert('p_arisan_anggota', $data_tambah_arisan);
    }
    // Menu Kelola Data -> Arisan Motor
    // Menambahkan data arisan motor
    function simpanArisanMotor($kelompok_berikutnya)
    {
        $tahun = date('y');
        $total_angka = strlen($kelompok_berikutnya);
        if ($total_angka == 1) :
            $regist_arisan = $tahun . '2200' . $kelompok_berikutnya;
        elseif ($total_angka == 2) :
            $regist_arisan = $tahun . '220' . $kelompok_berikutnya;
        elseif ($total_angka == 3) :
            $regist_arisan = $tahun . '22' . $kelompok_berikutnya;
        endif;
        $hg_jual = htmlspecialchars($this->input->post('hg_modal')) + htmlspecialchars($this->input->post('fee_admin')) + htmlspecialchars($this->input->post('dana_kehilangan'));
        $data = array(
            'id'                  => $regist_arisan,
            'produk_id'           => 22,
            'nm_kelompok'         => $kelompok_berikutnya,
            'target_anggota'      => htmlspecialchars($this->input->post('ttl_anggota')),
            'tagihan_iuran'       => htmlspecialchars($this->input->post('tagihan_iuran')),
            'tempo'               => htmlspecialchars($this->input->post('ttl_anggota')),
            'hg_standar'          => htmlspecialchars($this->input->post('hg_modal')),
            'hg_target'           => $hg_jual,
            'admin_arisan'        => htmlspecialchars($this->input->post('fee_admin')),
            'dana_kehilangan'     => htmlspecialchars($this->input->post('dana_kehilangan')),
            'ket_arisan'          => htmlspecialchars($this->input->post('nm_kelompok')),
            'status_arisan'       => 'PROSES'
        );
        $this->db->insert('p_arisan', $data);
        $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Arisan Motor!</div>');
    }
    // Menambahkan data calon anggota koperasi bagian Arisan Motor
    function tambahCalonAnggotaKoperasi($alamat_id)
    {
        $data = array(
            'id'                => '',
            'nik'               => htmlspecialchars($this->input->post('nik_tambah')),
            'nm_anggota'        => htmlspecialchars($this->input->post('nm_anggota')),
            'jk'                => htmlspecialchars($this->input->post('jk')),
            'alamat_lengkap'    => htmlspecialchars($this->input->post('alamat_lengkap')),
            'nm_rt'             => htmlspecialchars($this->input->post('nm_rt')),
            'nm_rw'             => htmlspecialchars($this->input->post('nm_rw')),
            'id_alamat'         => $alamat_id,
            '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'       => htmlspecialchars($this->input->post('suami_istri')),
            'status_anggota'    => 'CALON_ANGGOTA'
        );
        $this->db->insert('anggota', $data);
    }
    function tambahCalonAnggotaKoperasiMotor($alamat_id)
    {
        $data = array(
            'id'                => '',
            'nik'               => htmlspecialchars($this->input->post('nik_tambah')),
            'nm_anggota'        => htmlspecialchars($this->input->post('nm_anggota')),
            'jk'                => htmlspecialchars($this->input->post('jk')),
            'alamat_lengkap'    => htmlspecialchars($this->input->post('alamat_lengkap')),
            'nm_rt'             => htmlspecialchars($this->input->post('tambah_nm_rt')),
            'nm_rw'             => htmlspecialchars($this->input->post('tambah_nm_rw')),
            'id_alamat'         => $alamat_id,
            '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'       => htmlspecialchars($this->input->post('suami_istri')),
            'status_anggota'    => 'CALON_ANGGOTA'
        );
        $this->db->insert('anggota', $data);
    }
    // Menambahkan data anggota pada Arisan Motor Baru (Anggota sudah Terdaftar dalam database)
    function tambahIdentitasKaryawan($data_inputan, $alamat_id)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $data_identitas = array(
                'login_id'     => $data_inputan['karyawan_id'],
                'nik'          => $data_inputan['nik'],
                'jk'           => $data_inputan['jk'],
                'tempat_lahir' => $data_inputan['tempat_lahir'],
                'tgl_lahir'    => $data_inputan['tgl_lahir'],
                'alamat_id'    => $alamat_id,
                'tgl_gabung'   => $data_inputan['tgl_gabung']
            );
            $this->db->insert('sistem_identitas', $data_identitas);
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            $data_identitas = array(
                'login_id'     => $data_inputan['karyawan_id'],
                'nik'          => $data_inputan['nik'],
                'jk'           => $data_inputan['jk'],
                'tempat_lahir' => $data_inputan['tempat_lahir'],
                'tgl_lahir'    => $data_inputan['tgl_lahir'],
                'alamat_id'    => $alamat_id,
                'foto_ktp'     => $uploadData['file_name'],
                'tgl_gabung'   => $data_inputan['tgl_gabung']
            );
            $this->db->insert('sistem_identitas', $data_identitas);
        endif;
    }
    function tambahAnggotaArisanMotor($anggota, $buat_noUndian)
    {
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $data = array(
                'regist_arisan'   => $buat_noUndian['regist_arisan'],
                'anggota_id'      => $anggota['id'],
                'regist_undian'   => $buat_noUndian['regist_undian'],
                'no_urut'         => $buat_noUndian['no_urut'],
                'status'          => 'AKTIF',
                'login_id'        => htmlspecialchars($this->input->post('login_id'))
            );
            $this->db->insert('p_arisan_anggota', $data);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Motor!</div>');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            $data = array(
                'regist_arisan'   => $buat_noUndian['regist_arisan'],
                'anggota_id'      => $anggota['id'],
                'regist_undian'   => $buat_noUndian['regist_undian'],
                'no_urut'         => $buat_noUndian['no_urut'],
                'status'          => 'AKTIF',
                'login_id'        => htmlspecialchars($this->input->post('login_id'))
            );
            $this->db->insert('p_arisan_anggota', $data);
            $berkas_lama = './assets/foto_ktp' . $anggota['foto_ktp'] . '';
            unlink($berkas_lama);
            $data_anggota = array(
                'foto_ktp' => $uploadData['file_name']
            );
            $this->db->where('id', $anggota['id']);
            $this->db->update('anggota', $data_anggota);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Motor!</div>');
        endif;
    }
    // Menambahkan kepala dan anggota keluarga
    function tambahAnggotaKeluargaArisan($data_id)
    {
        $data = array(
            'kepala_id'         => $data_id['kepala_id'],
            'anggota_id'        => $data_id['anggota_id'],
            'status_anggota'    => 'AKTIF'
        );
        $this->db->insert('p_arisan_anggota_keluarga', $data);
    }
    // Tambah Laporan Arisan Heboh
    function tambahLaporanArisanHeboh($laporan, $inputan, $jadwal_arisan_sekarang, $jml_belum_bayar)
    {
        $data_laporan = array(
            'id'                     => $laporan['kd_laporan_arisan'],
            'tgl_laporan'            => date('Y-m-d'),
            'regist_arisan'          => $inputan['regist_arisan'],
            'jadwal_id'              => $jadwal_arisan_sekarang['id'],
            'tgl_undian'             => $jadwal_arisan_sekarang['tgl_undian'],
            'jml_pemenang'           => 1,
            'saldo_awal'             => 0,
            'saldo_masuk'            => $inputan['saldo_masuk_sekarang'],
            'saldo_pemenang'         => $inputan['uang_pemenang'],
            'saldo_akhir'            => $inputan['saldo_masuk_sekarang'] - $inputan['uang_pemenang'],
            'administrasi'           => $inputan['potongan_awal'],
            'status_laporan'         => 'MANAGER',
            'jml_tunggakan'          => $jml_belum_bayar,
            'akum_tunggakan'         => $jml_belum_bayar,
            'pinjam_kantor'          => 0,
            'akum_pinjam_kantor'     => 0,
            'login_id'               => $this->session->userdata('isloggedin')
        );
        $this->db->insert('lap_arisan', $data_laporan);
    }
    // Tambah Laporan Arisan Heboh Lanjutan
    function tambahLaporanArisanHeboh2($laporan, $inputan, $jadwal_arisan_sekarang, $jml_belum_bayar, $data_laporan_kemarin, $dana_masuk_susulan, $fee_admin_lanjutan, $jml_sisa_tunggakan_kemarin)
    {
        $data_laporan = array(
            'id'                     => $laporan['kd_laporan_arisan'],
            'tgl_laporan'            => date('Y-m-d'),
            'regist_arisan'          => $inputan['regist_arisan'],
            'jadwal_id'              => $jadwal_arisan_sekarang['id'],
            'tgl_undian'             => $jadwal_arisan_sekarang['tgl_undian'],
            'jml_pemenang'           => 1,
            'saldo_awal'             => $data_laporan_kemarin['saldo_akhir'],
            'saldo_masuk'            => $inputan['saldo_masuk_sekarang'] + $dana_masuk_susulan,
            'saldo_pemenang'         => $inputan['uang_pemenang'],
            'saldo_akhir'            => ($data_laporan_kemarin['saldo_akhir'] + $inputan['saldo_masuk_sekarang'] + $dana_masuk_susulan) - $inputan['uang_pemenang'],
            'administrasi'           => $fee_admin_lanjutan,
            'status_laporan'         => 'MANAGER',
            'jml_tunggakan'          => $jml_belum_bayar,
            'akum_tunggakan'         => $jml_belum_bayar + $jml_sisa_tunggakan_kemarin,
            'pinjam_kantor'          => 0,
            'akum_pinjam_kantor'     => 0,
            'login_id'               => $this->session->userdata('isloggedin')
        );
        $this->db->insert('lap_arisan', $data_laporan);
    }
    // Tambah Pemenang Arisan Heboh
    function tambahPemenangArisanHeboh($laporan, $saldo_diterima, $da_menang)
    {
        $data_pemenang = array(
            'laporan_id'     => $laporan['kd_laporan_arisan'],
            'regist_undian'  => $da_menang['regist_undian'],
            'saldo_diterima' => $saldo_diterima,
            'status'         => 'SELESAI'
        );
        $this->db->insert('lap_arisan_menang', $data_pemenang);
    }
    // Mencatat Anggota Belum Bayar undian bulan ini
    function anggotaArisanHebohNunggak($inputan, $laporan, $da_belum_bayar, $jadwal_arisan_sekarang)
    {
        $data_arisan = $this->db->get_where('p_arisan', ['id' => $inputan['regist_arisan']])->row_array();
        foreach ($da_belum_bayar as $AnggotaAHNunggak) :
            $data = array(
                'laporan_id'        => $laporan['kd_laporan_arisan'],
                'jadwal_id'         => $jadwal_arisan_sekarang['id'],
                'regist_arisan'     => $inputan['regist_arisan'],
                'regist_undian'     => $AnggotaAHNunggak->regist_undian,
                'bayar'             => $data_arisan['tagihan_iuran'],
                'status_tunggakan'  => 'AKTIF'
            );
            $this->db->insert('lap_arisan_nunggak', $data);
        endforeach;
    }
    // Mencatat Omset Arisan Heboh Bulanan
    function tambahPendapatanArisanHeboh($inputan, $data_arisan, $jadwal_arisan_sekarang)
    {
        $tahun = date('y');
        $bulan = date('m');
        $regist_arisan = $inputan['regist_arisan'];
        $file_pdf = $tahun . $bulan . '_' . $regist_arisan;
        $cek_anggota = $this->db->get_where('p_arisan_anggota', ['no_urut' => $inputan['nomor_urut']])->row_array();
        $data_omset = array(
            'id'             => date("YmdHis"),
            'produk_id'      => 21,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['hg_standar'],
            'status_kas'     => 'OMSET',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Pendapatan Arisan Heboh ' . $inputan['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan_sekarang['undian_ke'],
            'invoice_pdf'    => $file_pdf
        );
        $this->db->insert('nota', $data_omset);
        $data_omset20 = array(
            'id'             => date("YmdHis") . 30,
            'produk_id'      => 10,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['hg_standar'],
            'status_kas'     => 'MASUK',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Pendapatan Arisan Heboh ' . $inputan['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan_sekarang['undian_ke'],
            'invoice_pdf'    => $file_pdf
        );
        $this->db->insert('nota', $data_omset20);
        $data_pengeluaran = array(
            'id'             => date("YmdHis") . 10,
            'produk_id'      => 21,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['hg_target'],
            'status_kas'     => 'OPERASIONAL',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Biaya Pemenang Arisan Heboh ' . $inputan['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan_sekarang['undian_ke'],
            'invoice_pdf'    => $file_pdf
        );
        $this->db->insert('nota', $data_pengeluaran);
    }
    // Membuat laporan arisan motor 1 Pemenang
    function tambahLapArisanMotor01($kd_laporan_arisan, $jadwal_arisan, $lelang_tertinggi, $total_iuran, $data_arisan, $ttl_tunggakan)
    {
        $data = array(
            'id' => $kd_laporan_arisan,
            'tgl_laporan' => date('Y-m-d'),
            'regist_arisan' => $jadwal_arisan['regist_arisan'],
            'jadwal_id' => $jadwal_arisan['id'],
            'tgl_undian' => $jadwal_arisan['tgl_undian'],
            'jml_pemenang' => 1,
            'saldo_awal' => 0,
            'saldo_masuk' => $lelang_tertinggi + $total_iuran,
            'saldo_pemenang' => $data_arisan['hg_standar'] - $lelang_tertinggi,
            'saldo_akhir' => ($lelang_tertinggi + $total_iuran) - ($data_arisan['admin_arisan'] + $data_arisan['dana_kehilangan']) - ($data_arisan['hg_standar'] - $lelang_tertinggi),
            'administrasi' => $data_arisan['admin_arisan'],
            'dn_kehilangan' => $data_arisan['dana_kehilangan'],
            'fee_dealer' => htmlspecialchars($this->input->post('fee_dealer')),
            'status_laporan' => 'MANAGER',
            'jml_tunggakan' => $ttl_tunggakan,
            'akum_tunggakan' => $ttl_tunggakan,
            'pinjam_kantor' => 0,
            'akum_pinjam_kantor' => 0,
            'login_id' => $this->session->userdata('isloggedin')
        );
        $this->db->insert('lap_arisan', $data);
    }
    function tambahPemenangArisanMotor01($kd_laporan_arisan, $regist_undian, $data_arisan, $lelang_tertinggi)
    {
        $data = array(
            'laporan_id'     => $kd_laporan_arisan,
            'regist_undian'  => $regist_undian,
            'saldo_diterima' => $data_arisan['hg_standar'] - $lelang_tertinggi,
            'status'         => 'SELESAI'
        );
        $this->db->insert('lap_arisan_menang', $data);
    }
    function tambahPendapatanArisanMotor01($regist_arisan, $regist_undian, $data_arisan, $jadwal_arisan, $lelang_tertinggi)
    {
        $tahun = date('y');
        $bulan = date('m');
        $file_pdf = $tahun . $bulan . '_' . $regist_arisan;
        $cek_anggota = $this->db->get_where('p_arisan_anggota', ['regist_undian' => $regist_undian])->row_array();
        $data_omset = array(
            'id'             => date("YmdHis"),
            'produk_id'      => 22,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['admin_arisan'] + $data_arisan['dana_kehilangan'] + htmlspecialchars($this->input->post('fee_dealer')),
            'status_kas'     => 'OMSET',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Pendapatan Arisan Motor ' . $cek_anggota['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan['undian_ke'] . ' Lelang Ke- ' . $jadwal_arisan['lelang_ke'],
            'invoice_pdf'    => $file_pdf . '.pdf'

        );
        $this->db->insert('nota', $data_omset);
        $data_omset10 = array(
            'id'             => date("YmdHis") . 10,
            'produk_id'      => 10,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['admin_arisan'] + $data_arisan['dana_kehilangan'] + htmlspecialchars($this->input->post('fee_dealer')),
            'status_kas'     => 'MASUK',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Pendapatan Arisan Motor ' . $cek_anggota['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan['undian_ke'] . ' Lelang Ke- ' . $jadwal_arisan['lelang_ke'],
            'invoice_pdf'    => $file_pdf . '.pdf'
        );
        $this->db->insert('nota', $data_omset10);
        $data_operasional = array(
            'id'             => date("YmdHis") . 11,
            'produk_id'      => 22,
            'anggota_id'     => $cek_anggota['anggota_id'],
            'tgl_pembayaran' => date('Y-m-d'),
            'qty_pembayaran' => 1,
            'ttl_bayar'      => $data_arisan['hg_standar'] - $lelang_tertinggi,
            'status_kas'     => 'OPERASIONAL',
            'status_nota'    => 'TERIMA',
            'petugas'        => $this->session->userdata('isloggedin'),
            'kasir'          => $this->session->userdata('isloggedin'),
            'ket_nota'       => 'Biaya Pemenang Arisan Motor ' . $cek_anggota['regist_arisan'] . ' Undian Ke- ' . $jadwal_arisan['undian_ke'] . ' Lelang Ke- ' . $jadwal_arisan['lelang_ke'],
            'invoice_pdf'    => $file_pdf . '.pdf'
        );
        $this->db->insert('nota', $data_operasional);
    }
    // Menambahkan data Anggota pada Arisan Motor
    function simpanAnggotaArisanMotor($alamat_id, $buat_noUndian)
    {
        // Kode Registrasi Arisan Heboh
        $id_arisan   = htmlspecialchars($this->input->post('id_arisan'));
        // Kode Referal atau orang yang merekomendasikan anggota
        $login_id    = htmlspecialchars($this->input->post('login_id'));
        // Kode Alamat
        $kode_alamat             = $alamat_id;
        $config['upload_path']   = './assets/foto_ktp';
        $config['allowed_types'] = 'jpg|jpeg|png';
        $config['encrypt_name']  = true;
        $config['overwrite']     = true;
        $config['quality']       = '50%';
        $config['max_size']      = 10024; // 10MB
        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('foto_ktp')) :
            $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Gagal Upload Foto KTP</div>');
        else :
            $_FILES['file']['name'] = $_FILES['foto_ktp']['name'];
            $_FILES['file']['type'] = $_FILES['foto_ktp']['type'];
            $_FILES['file']['tmp_name'] = $_FILES['foto_ktp']['tmp_name'];
            $_FILES['file']['size'] = $_FILES['foto_ktp']['size'];
            $uploadData = $this->upload->data();
            // Cek Database Anggota Koperasi
            $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
            // Cek Apakah Anggota arisan sudah terdaftar menjadi anggota koperasi
            if ($cek_anggota > 0) :
                // Sudah menjadi anggota koperasi
                // Cek apakah nomor telepon sudah digunakan oleh anggota koperasi yang berbeda
                $cek_nomor_hp = $this->db->get_where('tbl_anggota', ['no_hp' => htmlspecialchars($this->input->post('no_hp'))])->row_array();
                if ($cek_nomor_hp > 0) :
                    // Sudah digunakan oleh anggota lain
                    // Cek apakah anggota tersebut sama dengan anggota arisan?
                    if ($cek_nomor_hp['nik'] == $cek_anggota['nik']) :
                        // Nomor Telepon dan Nik sudah ada
                        // Merubah data anggota yaitu foto KTP diperbarui.
                        $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                        unlink($berkas_lama);
                        $data_tambah_arisan = array(
                            'id_arisan'             => $id_arisan,
                            'id_anggota'            => $cek_anggota['id'],
                            'no_regist'             => $buat_noUndian['regist_arisan'],
                            'no_arisan'             => $buat_noUndian['buat_noUndian'],
                            'status'                => 'AKTIF',
                            'login_id'              => $login_id
                        );
                        $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                        $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Motor!</div>');
                    else :
                        // Nomor telepon sudah digunakan anggota lain
                        $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                        unlink($berkas_lama);
                        $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor Telepon Sudah di Gunakan Anggota Lain!</div>');
                    endif;
                else :
                    // Nomor telepon tidak ada yang menggunakan
                    // Merubah data nomor telepon baru anggota koperasi
                    $hp_cadangan = array(
                        'anggota_id'             => $cek_anggota['id'],
                        'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                        'ket_cadangan'           => 'Nomor Cadangan ' . $regist_arisan
                    );
                    $this->db->insert('tbl_hpcadangan', $hp_cadangan);
                    $data_tambah_arisan = array(
                        'id_arisan'             => $id_arisan,
                        'id_anggota'            => $cek_anggota['id'],
                        'no_regist'             => $regist_arisan,
                        'no_arisan'             => $undian_arisan,
                        'status'                => 'AKTIF',
                        'login_id'              => $login_id
                    );
                    $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                    $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Motor!</div>');
                endif;
            else :
                // Belum menjadi anggota koperasi maka ditambahkan saja dengan status Calon Anggota Koperasi
                // Cek Nomor Telepon sudah digunakan anggota lain atau belum
                $cek_nomor_hp = $this->db->get_where('tbl_anggota', ['no_hp' => htmlspecialchars($this->input->post('no_hp'))])->row_array();
                if ($cek_nomor_hp > 0) :
                    // Sudah ada yang memakai nomor telepon
                    $berkas_lama = './assets/foto_ktp' . $uploadData['file_name'] . '';
                    unlink($berkas_lama);
                    $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nomor Telepon Sudah di Gunakan Anggota Lain!</div>');
                else :
                    // Belum ada yang memakai nomor telepon dan berhasil menambahkan anggota koperasi
                    $data_anggota_koperasi = array(
                        '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')),
                        'id_alamat'         => $kode_alamat,
                        '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'       => htmlspecialchars($this->input->post('suami_istri')),
                        'foto_ktp'          => $uploadData['file_name'],
                        'status_anggota'    => 'CALON'
                    );
                    $this->db->insert('tbl_anggota', $data_anggota_koperasi);
                    $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
                    $data_tambah_arisan = array(
                        'id_arisan'             => $id_arisan,
                        'id_anggota'            => $cek_anggota['id'],
                        'no_regist'             => $regist_arisan,
                        'no_arisan'             => $undian_arisan,
                        'status'                => 'AKTIF',
                        'login_id'              => $login_id
                    );
                    $this->db->insert('tbl_arisan_anggota', $data_tambah_arisan);
                    $hp_cadangan = array(
                        'anggota_id'             => $cek_anggota['id'],
                        'no_hp'                  => htmlspecialchars($this->input->post('no_hp')),
                        'ket_cadangan'           => 'Nomor Cadangan Nomor Registrasi ' . $regist_arisan
                    );
                    $this->db->insert('tbl_hpcadangan', $hp_cadangan);
                    $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Arisan Motor!</div>');
                endif;
            endif;
        endif;
    }
    // Menambahkan data anggota keluarga
    function simpanAnggotaKeluarga()
    {
        $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik'))])->row_array();
        $data = array(
            'id_kepalakeluarga'     => $cek_anggota['id']
        );
        $this->db->insert('tbl_arisan_keluarga', $data);
        $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Keluarga Baru!</div>');
    }
    // Menambahkan data anggota kelompok keluarga
    function simpanDataAnggotaKeluarga()
    {
        $cek_anggota = $this->db->get_where('tbl_anggota', ['nik' => htmlspecialchars($this->input->post('nik_keluarga'))])->row_array();
        $data = array(
            'arisan_keluarga_id' => htmlspecialchars($this->input->post('id_keluarga')),
            'id_anggota'         => $cek_anggota['id'],
            'ket_keluarga'       => 'Saudara/Teman/Yang Bisa Dihubungi'
        );
        $this->db->insert('tbl_arisan_keluarga_detail', $data);
        $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Tambah Anggota Keluarga!</div>');
    }
    // Membuat Laporan Arisan Lelang
    function simpanLaporanLelang($jadwal_id, $id_ariasn, $nomor_urut, $ttl_belum_bayar, $kd_laporan_arisan, $pecah_idArisanKategori)
    {
        // Identitas Arisan
        $data_arisan = $this->db->get_where('tbl_arisan', ['id' => $id_ariasn])->row_array();
        // Identitas JAdwal
        $data_jadwal = $this->db->get_where('tbl_jadwal_undian', ['id' => $jadwal_id])->row_array();
        $data_laporan = array(
            'id'             => $kd_laporan_arisan,
            'regist_arisan'  => $id_ariasn,
            'undian_ke'      => $data_jadwal['undian_ke'],
            'tgl_undian'     => date('Y-m-d'),
            'regist_undian'  => $nomor_urut,
            'saldo_awal'     => htmlspecialchars($this->input->post('saldo_terakhir')),
            'saldo_masuk'    => htmlspecialchars($this->input->post('saldo_masuk')),
            'saldo_pemenang' => $data_arisan['hg_jual'],
            'saldo_akhir'    => htmlspecialchars($this->input->post('saldo_terakhir')) + htmlspecialchars($this->input->post('saldo_masuk')),
            'fee_admin'      => $data_arisan['fee_admin'],
            'dn_kehilangan'  => $data_arisan['dana_kehilangan'],
            'fee_dealer'     => htmlspecialchars($this->input->post('fee_dealer')),
            'status_laporan' => 'MANAGER',
            'jml_tunggakan'  => $ttl_belum_bayar
        );
        $this->db->insert('tbl_lap_arisan', $data_laporan);
        if ($pecah_idArisanKategori == 21) :
            $produk_history = 'Arisan Heboh';
            $kas_id = 1;
        else :
            $produk_history = 'Arisan Motor';
            $kas_id = 2;
        endif;
        $data_action = array(
            'sistem_id'  => $this->session->userdata('isloggedin'),
            'keterangan' => 'Menambahkan Laporan ' . $produk_history . ' dengan kode laporan : ' . $kd_laporan_arisan
        );
        $this->db->insert('action_history', $data_action);
        $data_kas = array(
            'id' => date("YmdHis"),
            'kas_id' => $kas_id,
            'tgl_transaksi' => date('Y-m-d'),
            'status' => 'MASUK',
            'ket_transaksi' => 'Profit dari ' . $produk_history . ' dengan kode Arisan ' . $id_ariasn . ' dan kode laporan : ' . $kd_laporan_arisan,
            'ttl_transaksi' => $data_arisan['fee_admin'] + $data_arisan['dana_kehilangan'] + htmlspecialchars($this->input->post('fee_dealer'))
        );
        $this->db->insert('kas', $data_kas);
    }
    // Mmebuat Jadwal Undian Motor Bulan Berikutnya
    function BuatDataJadwalBaruMotor($kode_arisan, $undian_selanjutnya, $tgl_undianselanjutnya)
    {
        $data = array(
            'regist_arisan' => $kode_arisan,
            'tgl_undian'    => $tgl_undianselanjutnya,
            'undian_ke'     => $undian_selanjutnya,
            'status_undian' => 'BELUM'
        );
        $this->db->insert('tbl_jadwal_undian', $data);
    }
    function simpanAnggotaReferral($data_inputan)
    {
        $data_login = array(
            'id_role'      => 7,
            'email'        => $data_inputan['email'],
            'username'     => $data_inputan['username'],
            'nm_panggilan' => $data_inputan['nm_anggota'],
            'status_akun'  => 'PASIF'
        );
        $this->db->insert('sistem_login', $data_login);
        $login = $this->db->get_where('sistem_login', ['username' => $data_inputan['username']])->row_array();
        $data_identitas = array(
            'login_id'      => $login['id'],
            'nik'           => $data_inputan['nik'],
            'nm_lengkap'    => $data_inputan['nm_lengkap'],
            'jk'            => $data_inputan['jk'],
            'tempat_lahir'  => $data_inputan['tempat_lahir'],
            'tgl_lahir'     => $data_inputan['tgl_lahir'],
            'alamat'        => $data_inputan['alamat'],
            'no_hp'         => $data_inputan['no_hp']
        );
        $this->db->insert('sistem_identitas', $data_identitas);
    }
}
