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

class ControllerArisanMotorKegiatan extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        check_not_login();
        if ($this->session->userdata('level') != 4) {
            redirect();
        }
        $this->set_timezone();
        $this->load->library('encrypt');
        $this->load->library('form_validation');
        $this->load->library('Mycustom');
        $this->load->library('pdfgenerator');
        $this->load->model('notifikasi_arisan');
        $this->load->model('kabag_arisan/insert_model');
        $this->load->model('kabag_arisan/select_model');
        $this->load->model('kabag_arisan/update_model');
    }
    public function set_timezone()
    {
        date_default_timezone_set("Asia/Jakarta");
    }
    public function lelang($id)
    {
        // Notifikasi
        $jml_pengajuan                = count($this->notifikasi_arisan->Notifikasi_pengajuan());
        // End_notifikasi  
        $regist_arisan                = $this->encrypt->decode($id);
        // Kode Inputan ID
        $data_jadwal                  = $this->db->get_where('p_arisan_jadwal', ['regist_arisan' => $regist_arisan, 'status_undian' => 'PROSES'])->row_array();
        if ($data_jadwal < 1) :
            redirect('arisan/operasional/tagihan_motor/' . $this->encrypt->encode($regist_arisan));
        endif;
        $jadwal_id                    = $data_jadwal['id']; // Masih Di pakai
        // Data Login Identitas Karyawan
        $data_id_login                = $this->session->userdata('isloggedin');
        $data_login                   = $this->userlogin->user_login();
        // Data Konten Isi
        $data_arisan                  = $this->db->get_where('p_arisan', ['id' => $regist_arisan])->row_array(); // Menampilkan data arisan sesuai kode arisan  || Masih Di Pakai
        $data_anggota_bayar           = $this->select_model->vd_anggotaArisanMotorSudahBayar($jadwal_id, $regist_arisan); // Menampilkan anggota arisan heboh yang sudah bayar
        $data_anggota_belum_bayar     = $this->select_model->vd_anggotaArisanMotorBelumBayar($jadwal_id, $regist_arisan);  // Menampilkan anggota arisan heboh yang belum bayar
        // Data lampau
        $jadwal_kemarin               = $this->db->get_where('p_arisan_jadwal', ['undian_ke' => ($data_jadwal['undian_ke'] - 1), 'regist_arisan' => $regist_arisan])->row_array();
        $syarat_2unit                 = $data_arisan['hg_standar'] + $data_arisan['dana_kehilangan'];
        if ($jadwal_kemarin > 0) :
            $jadwal_id_kemarin           = $jadwal_kemarin['id'];
            $lelang_bulan_kemarin        = $this->select_model->getDataLapLelangKemarin($regist_arisan, $jadwal_id_kemarin);
            $tunggakan_bulan_lalu        = $this->db->get_where('lap_arisan_nunggak', ['regist_arisan' => $regist_arisan, 'status_tunggakan' => 'LUNAS'])->row_array();
            if ($tunggakan_bulan_lalu > 0) :
                $ttl_anggota_bayar_tunggakan = count($tunggakan_bulan_lalu);
            else:
                $ttl_anggota_bayar_tunggakan = 0;
            endif;
            // Data yang diambil
            $saldo_kelompok_bulan_lalu        = $lelang_bulan_kemarin['saldo_akhir'];
            $saldo_tunggakan_bulan_lalu_bayar = $ttl_anggota_bayar_tunggakan * $data_arisan['tagihan_iuran'];
        // echo '<pre>';
        // var_dump($saldo_kelompok_bulan_lalu);
        // die;
        else :
            $saldo_kelompok_bulan_lalu  = 0;
            $saldo_tunggakan_bulan_lalu_bayar = 0;
        endif;
        $data_lelang_sekarang         = $this->select_model->getData1LelangSekarang($jadwal_id);
        $anggota_lelang_tertinggi     = $data_lelang_sekarang['lelang_tertinggi'];
        $saldo_akhir_bulan_ini        = ((count($data_anggota_bayar) * $data_arisan['tagihan_iuran']) + ($saldo_kelompok_bulan_lalu + $saldo_tunggakan_bulan_lalu_bayar)) - ($data_arisan['admin_arisan'] + $data_arisan['dana_kehilangan']) - ($data_arisan['hg_standar'] - $anggota_lelang_tertinggi);
        // Saldo Masuk ( SM )
        // ((count($data_anggota_bayar) * $data_arisan['tagihan_iuran']) + ($saldo_kelompok_bulan_lalu + $saldo_tunggakan_bulan_lalu_bayar))
        // Dana Administrasi ( DA )
        // ($data_arisan['fee_admin'] + $data_arisan['dana_kehilangan'])
        // Dana Diterima Pemenang ( DP )
        // ($data_arisan['hg_modal'] - $dua_anggota_lelang_tertinggi)
        // Rumus Saldo AKhir = ( SM - DA - DP ) 
        $data_lelang_sekarang2               = $this->select_model->getData2LelangSekarang($jadwal_id);
        $anggota_lelang_tertinggi_nomor2     = $data_lelang_sekarang2['dua_lelang_tertinggi'] - $anggota_lelang_tertinggi;
        // Data Baru
        $anggota_lelang  = $this->select_model->getDataAnggotaLelang($jadwal_id); // Menampilkan data anggota lelang
        $jml_lelang      = count($anggota_lelang);
        $ttl_belum_bayar = count($data_anggota_belum_bayar); // Menampilkan total anggota yang belum bayar
        $saldo_lelang    = $this->select_model->getDataSaldoLelang($jadwal_id); // Menampilkan saldo lelang bulan ini
        $saldo_iuran     = $this->select_model->getDataSaldoIuran($jadwal_id); // Menampilkan saldo lelang bulan ini
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'folder'              => 'operasional/motor/lelang',
            'page'                => 'index',
            'judul'               => 'Proses Lelang Arisan Motor || Bagian Arisan',
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            // Isi dalam Konten 
            'data_arisan'         => $data_arisan,
            'jadwal_arisan'       => $data_jadwal,
            'anggota_bayar'       => $data_anggota_bayar,
            'anggota_belum_bayar' => $data_anggota_belum_bayar,
            'blm_bayar'           => $ttl_belum_bayar,
            'saldo_terakhir'      => $saldo_kelompok_bulan_lalu,
            'anggota_lelang'      => $anggota_lelang,
            'jml_lelang'          => $jml_lelang,
            'saldo_lelang'        => $saldo_lelang,
            'saldo_iuran'         => $saldo_iuran,
            'jml_pengajuan'       => $jml_pengajuan

        );
        $this->load->view('arisan/index', $data);
    }
    public function crud()
    {
        if (isset($_POST['susulanBayar'])) :
            $regist_undian       = htmlspecialchars($this->input->post('regist_undian'));
            $regist_arisan       = htmlspecialchars($this->input->post('arisan_id'));
            $produk_id           = substr($regist_undian, 2, 2);
            $jadwal_id           = htmlspecialchars($this->input->post('jadwal_id'));
            $data_anggota        = $this->db->get_where('p_arisan_anggota', ['regist_undian' => $regist_undian])->row_array();
            $data_arisan         = $this->db->get_where('p_arisan', ['id' => $regist_arisan])->row_array();
            $data_invoice        = $this->select_model->getDataTagihanUrutMotor();
            // // Dari Tunggakan Motor
            // Membuat kode invoice
            $cek_nomor_urut         = substr($data_invoice['id'], 8, 5);
            $no_invoice_selanjutnya = $cek_nomor_urut + 1;
            $total_huruf            = strlen($no_invoice_selanjutnya);
            if ($total_huruf == 1) :
                $nomor_invoice = date('ymd') . $produk_id . '000' . $no_invoice_selanjutnya;
            elseif ($total_huruf == 2) :
                $nomor_invoice = date('ymd') . $produk_id . '00' . $no_invoice_selanjutnya;
            elseif ($total_huruf == 3) :
                $nomor_invoice = date('ymd') . $produk_id . '0' . $no_invoice_selanjutnya;
            else :
                $nomor_invoice = date('ymd') . $produk_id . $no_invoice_selanjutnya;
            endif;
            // Data untuk tabel invoice
            $data_voice = array(
                'id'              => $nomor_invoice,
                'produk_id'       => $produk_id,
                'anggota_id'      => $data_anggota['anggota_id'],
                'tgl_pembayaran'  => date('Y-m-d'),
                'qty_pembayaran'  => 1,
                'ttl_bayar'       => $data_arisan['tagihan_iuran'] * 1,
                'status_kas'      => 'MASUK',
                'status_nota'     => 'PROSES_TUNGGAKAN',
                'ket_nota'        => 'Iuran Arisan ' . $regist_arisan . ' Nomor Undian ' . $regist_undian,
                'petugas'         => $this->session->userdata('isloggedin')
            );
            $this->db->insert('nota', $data_voice);
            // Data untuk detail tabel invoice
            $data_rinci = array(
                'nota_id'       => $nomor_invoice,
                'jadwal_id'     => $jadwal_id,
                'regist_arisan' => $regist_arisan,
                'regist_undian' => $regist_undian,
                'bayar'         => $data_arisan['tagihan_iuran'],
                'status_bayar'  => 'TUNGGAKAN',
            );
            $this->db->insert('p_arisan_nota', $data_rinci);
            // Merubah data tunggakan
            $data_tunggakan = array(
                'status_tunggakan' => 'LUNAS'
            );
            $this->db->where('regist_undian', $regist_undian);
            $this->db->where('jadwal_id', $jadwal_id);
            $this->db->update('lap_arisan_nunggak', $data_tunggakan);
            $this->_cetakTandaTerima($nomor_invoice, $produk_id);
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Bayar Tagihan Arisan Susulan!</div>');
            redirect('arisan/operasional/kegiatan/lelang_motor/proses/' . $this->encrypt->encode($regist_arisan));
        endif;
        if (isset($_POST['simpanAnggotaLelang'])) :
            $jadwal_id     = htmlspecialchars($this->input->post('jadwal_id'));
            $regist_undian = htmlspecialchars($this->input->post('regist_undian'));
            $total_lelang  = htmlspecialchars($this->input->post('total_lelang'));
            $regist_arisan = htmlspecialchars($this->input->post('regist_arisan'));
            // Cek sudah pernah masuk lelang atau belum
            $cek_lelang_anggota = $this->db->get_where('p_arisan_lelang_undian', ['jadwal_id' => $jadwal_id, 'regist_undian' => $regist_undian])->row_array();
            if ($cek_lelang_anggota > 0) :
                if ($total_lelang > $cek_lelang_anggota['total_lelang']) :
                    $data_update = array(
                        'total_lelang' => $total_lelang,
                        'tgl_lelang'   => date('Y-m-d')
                    );
                    $this->db->where('jadwal_id', $jadwal_id);
                    $this->db->where('regist_undian', $regist_undian);
                    $this->db->update('p_arisan_lelang_undian', $data_update);
                    $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Melakukan Bid Lelang!</div>');
                else :
                    $this->session->set_flashdata('pesan_gagal', '<div class="alert alert-danger" id="pesan_gagal" role="alert">Nominal Lelang Lebih Kecil atau sama dengan dari pada nominal awal!</div>');
                endif;
            else :
                $data = array(
                    'jadwal_id'      => $jadwal_id,
                    'regist_undian'  => $regist_undian,
                    'tgl_lelang'     => date('Y-m-d'),
                    'total_lelang'   => $total_lelang,
                    'status_lelang'  => 'AKTIF'
                );
                $this->db->insert('p_arisan_lelang_undian', $data);
                $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Berhasil Melakukan Bid Lelang!</div>');
            endif;
            redirect('arisan/operasional/kegiatan/lelang_motor/proses/' . $this->encrypt->encode($regist_arisan));
        endif;
        // Pemenang Lelang 1
        if (isset($_POST['simpanLaporanLelang'])) {
            // Inputan 1 pemenang
            if (htmlspecialchars($this->input->post('jpa')) == 1) :
                $jpa = 'TUNAI';
            else:
                $jpa = 'MOTOR';
            endif;
            $jadwal_id                = htmlspecialchars($this->input->post('jadwal_id'));
            $regist_arisan            = htmlspecialchars($this->input->post('regist_arisan'));
            $regist_undian            = htmlspecialchars($this->input->post('regist_undian'));
            $lelang_tertinggi         = htmlspecialchars($this->input->post('lelang_tertinggi'));
            // Identitas Jadwal Undian
            $jadwal_arisan = $this->db->get_where('p_arisan_jadwal', ['id' => $jadwal_id])->row_array();
            // Identitas Arisan
            $data_arisan   = $this->db->get_where('p_arisan', ['id' => $regist_arisan])->row_array();
            // Cek Dana Arisan
            $data_iuran = $this->select_model->getTotalIuranArisan($jadwal_id);
            $total_iuran = $data_iuran['ttl_iuran'];
            // Cek Tunggakan
            $data_tunggakan = $this->select_model->vd_anggotaArisanMotorBelumBayar($jadwal_id, $regist_arisan);
            $ttl_tunggakan = count($data_tunggakan);
            // Membuat Kode Laporan
            $produk_id                 = $data_arisan['produk_id'];
            $kelompok_arisan           = $data_arisan['nm_kelompok'];
            $tahun_pembentukan_arisan  = substr($regist_arisan, 0, 2);
            $bln_tahun_lelang          = date('ym'); // Sementara
            $undian_ke                 = $jadwal_arisan['undian_ke'];
            $lelang_ke                 = $jadwal_arisan['lelang_ke'];
            $total_huruf               = strlen($undian_ke);
            if ($total_huruf == 1) :
                $kd_laporan_arisan = 'LAP-' . $produk_id . '/00' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
            elseif ($total_huruf == 2) :
                $kd_laporan_arisan = 'LAP-' . $produk_id . '/0' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
            else :
                $kd_laporan_arisan = 'LAP-' . $produk_id . '/' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
            endif;
            // Untuk 1 Pemenang arisan motor
            if (($undian_ke - 1) == 0) :
                // Laporan awal 1 pemenang
                // Data inputan tabel Laporan
                $this->insert_model->tambahLapArisanMotor01($jpa, $kd_laporan_arisan, $jadwal_arisan, $lelang_tertinggi, $total_iuran, $data_arisan, $ttl_tunggakan);
                // Menambah data detail laporan pemenang
                $this->insert_model->tambahPemenangArisanMotor01($kd_laporan_arisan, $regist_undian, $data_arisan, $lelang_tertinggi);
                // Mengubah status tbl_arisan_anggota
                $this->update_model->ubahDataPemenangMotor01($regist_undian);
                // Mengubah dam membaut jadwal baru arisan motor
                $this->update_model->ubahTambahJadwalMotor01($jadwal_arisan, $data_arisan);
                // Menambahkan omset atau pendapatan arisan motor
                $this->insert_model->tambahPendapatanArisanMotor01($regist_arisan, $regist_undian, $data_arisan, $jadwal_arisan, $lelang_tertinggi);
                // Menambah data tunggakan
                if ($ttl_tunggakan > 0) :
                    foreach ($data_tunggakan as $Anggota_nunggak) :
                        $data_tunggakan = array(
                            'laporan_id'        => $kd_laporan_arisan,
                            'jadwal_id'         => $jadwal_id,
                            'regist_arisan'     => $regist_arisan,
                            'regist_undian'     => $Anggota_nunggak->regist_undian,
                            'bayar'             => $data_arisan['tagihan_iuran'],
                            'status_tunggakan'  => 'AKTIF'
                        );
                        $this->db->insert('lap_arisan_nunggak', $data_tunggakan);
                    endforeach;
                endif;
                $this->_documentLapArisanMotor($kd_laporan_arisan, $lelang_tertinggi);
                $data_lelang = array(
                    'status_lelang' => 'MENANG'
                );
                $this->db->where('regist_undian', $regist_undian);
                $this->db->where('jadwal_id', $jadwal_id);
                $this->db->where('total_lelang', $lelang_tertinggi);
                $this->db->update('p_arisan_lelang_undian', $data_lelang);
            else :
                $data_jadwal_lampau         = $this->db->get_where('p_arisan_jadwal', [
                    'regist_arisan' => $regist_arisan,
                    'undian_ke' => ($jadwal_arisan['undian_ke'] - 1),
                    'lelang_ke' => ($jadwal_arisan['lelang_ke'] - 1)
                ])->row_array();
                // Inputan Laporan selanjutnya 1 pemenang
                $data_laporan_lampau        = $this->db->get_where('lap_arisan', ['jadwal_id' => $data_jadwal_lampau['id']])->row_array();
                // Cek apakah laporan kemarin saldo lelang diatas harga standard
                $data_tunggakan_lampau      = $this->db->get_where('lap_arisan_nunggak', ['regist_arisan' => $regist_arisan, 'status_tunggakan' => 'AKTIF'])->result();
                $jml_sisa_tunggakan_lampau  = count($data_tunggakan_lampau);
                $data_tunggakan_bayar       = $this->db->get_where('lap_arisan_nunggak', ['regist_arisan' => $regist_arisan, 'status_tunggakan' => 'LUNAS'])->result();
                $tunggakan_bayar            = count($data_tunggakan_bayar);
                $dana_masuk_susulan         = ($data_laporan_lampau['akum_tunggakan'] - $jml_sisa_tunggakan_lampau) * $data_arisan['tagihan_iuran'];
                // echo '<pre>';
                // var_dump($data_jadwal_lampau, $data_laporan_lampau['id']);
                // die;
                // Data inputan tabel Laporan
                $this->insert_model->tambahLapArisanMotor01Lanjutan($jpa, $kd_laporan_arisan, $jadwal_arisan, $lelang_tertinggi, $total_iuran, $data_arisan, $ttl_tunggakan, $data_laporan_lampau, $dana_masuk_susulan, $jml_sisa_tunggakan_lampau, $tunggakan_bayar);
                // Menambah data detail laporan pemenang
                $this->insert_model->tambahPemenangArisanMotor01($kd_laporan_arisan, $regist_undian, $data_arisan, $lelang_tertinggi);
                // Mengubah status tbl_arisan_anggota
                $this->update_model->ubahDataPemenangMotor01($regist_undian);
                // Mengubah status jadwal arisan dan Membuat Jadwal Undian Arisan Baru
                $saldo_lelang_sekarang       = $data_laporan_lampau['saldo_lelang'] + $lelang_tertinggi;
                if ($saldo_lelang_sekarang > $data_arisan['hg_standar']) :
                    $this->update_model->ubahTambahJadwalMotor01Lanjutan($jadwal_arisan);
                else:
                    $this->update_model->ubahTambahJadwalMotor01($jadwal_arisan, $data_arisan);
                endif;
                // Menambahkan Omset
                $this->insert_model->tambahPendapatanArisanMotor01($regist_arisan, $regist_undian, $data_arisan, $jadwal_arisan, $lelang_tertinggi);
                // Menambah data tunggakan
                if ($ttl_tunggakan > 0) :
                    foreach ($data_tunggakan as $Anggota_nunggak) :
                        $data_tunggakan = array(
                            'laporan_id'        => $kd_laporan_arisan,
                            'jadwal_id'         => $jadwal_id,
                            'regist_arisan'     => $regist_arisan,
                            'regist_undian'     => $Anggota_nunggak->regist_undian,
                            'bayar'             => $data_arisan['tagihan_iuran'],
                            'status_tunggakan'  => 'AKTIF'
                        );
                        $this->db->insert('lap_arisan_nunggak', $data_tunggakan);
                    endforeach;
                endif;
                // Menghapus data tunggakan
                $this->db->where('regist_arisan', $regist_arisan);
                $this->db->where('status_tunggakan', 'LUNAS');
                $this->db->delete('lap_arisan_nunggak');
                $this->_documentLapArisanMotor($kd_laporan_arisan, $lelang_tertinggi);
                $data_lelang = array(
                    'status_lelang' => 'MENANG'
                );
                $this->db->where('regist_undian', $regist_undian);
                $this->db->where('jadwal_id', $jadwal_id);
                $this->db->where('total_lelang', $lelang_tertinggi);
                $this->db->update('p_arisan_lelang_undian', $data_lelang);
                if ($saldo_lelang_sekarang > $data_arisan['hg_standar']) :
                    $this->_laporanPemenangKe2($kd_laporan_arisan);
                endif;
            endif;
            $this->session->set_flashdata('pesan_berhasil', '<div class="alert alert-success" id="pesan_berhasil" role="alert">Undian dan Lelang Arisan Motor Selesai!</div>');
            redirect('arisan/laporan/laporan_motor/kelompok/' . $this->encrypt->encode($regist_arisan));
        }
    }
    // Bagian Private Function
    // Membuat pemenang 2
    private function _laporanPemenangKe2($kd_laporan_arisan)
    {
        if (htmlspecialchars($this->input->post('jpa')) == 1) :
            $jpa = 'TUNAI';
        else:
            $jpa = 'MOTOR';
        endif;
        $data_laporan_1           = $this->db->get_where('lap_arisan', ['id' => $kd_laporan_arisan])->row_array();
        // Inputan
        $jadwal_id                = htmlspecialchars($this->input->post('jadwal_id'));
        $regist_arisan            = htmlspecialchars($this->input->post('regist_arisan'));
        $lelang_tertinggi         = htmlspecialchars($this->input->post('lelang_tertinggi'));
        // Data jadwal pemenang 2
        $data_jadwal2             = $this->db->get_where('p_arisan_jadwal', ['regist_arisan' => $regist_arisan, 'status_undian' => 'BELUM'])->row_array();
        // Data Identitas Arisan
        $data_arisan              = $this->db->get_where('p_arisan', ['id' => $regist_arisan])->row_array();
        // Membuat Kode Laporan
        $produk_id                 = $data_arisan['produk_id'];
        $kelompok_arisan           = $data_arisan['nm_kelompok'];
        $tahun_pembentukan_arisan  = substr($regist_arisan, 0, 2);
        $bln_tahun_lelang          = date('ym'); // Sementara
        $undian_ke                 = $data_jadwal2['undian_ke'];
        $lelang_ke                 = $data_jadwal2['lelang_ke'];
        $total_huruf               = strlen($undian_ke);
        if ($total_huruf == 1) :
            $kd_laporan_arisan_baru = 'LAP-' . $produk_id . '/00' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
        elseif ($total_huruf == 2) :
            $kd_laporan_arisan_baru = 'LAP-' . $produk_id . '/0' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
        else :
            $kd_laporan_arisan_baru = 'LAP-' . $produk_id . '/' . $kelompok_arisan . '/' . $tahun_pembentukan_arisan . '/' . $bln_tahun_lelang . '/' . $undian_ke . '/' . $lelang_ke;
        endif;
        $data_lelang               = $this->select_model->vd_lelangNomer2($jadwal_id, $lelang_tertinggi);
        // Tambah data laporan arisan motor ke 2
        $this->insert_model->tambahLapArisanMotor02($jpa, $kd_laporan_arisan_baru, $regist_arisan, $data_jadwal2, $data_laporan_1, $data_arisan, $data_lelang);
        // Menambah data detail laporan pemenang
        $this->insert_model->tambahPemenangArisanMotor02($kd_laporan_arisan_baru, $data_lelang, $data_arisan, $data_lelang);
        // Mengubah status tbl_arisan_anggota
        $this->update_model->ubahDataPemenangMotor02($data_lelang);
        // Mengubah status tbl_arisan_anggota
        $this->update_model->ubahTambahJadwalMotor02($data_jadwal2, $data_arisan);
        $this->insert_model->tambahPendapatanArisanMotor02($regist_arisan, $data_lelang, $data_arisan, $data_jadwal2);
        $this->_documentLapArisanMotor2($kd_laporan_arisan_baru, $data_lelang);
        $data_lelang222 = array(
            'status_lelang' => 'MENANG'
        );
        $this->db->where('regist_undian', $data_lelang['regist_undian']);
        $this->db->where('total_lelang', $data_lelang['lelang_tertinggi_2']);
        $this->db->update('p_arisan_lelang_undian', $data_lelang222);
    }
    // Membuat dokument laporan Arisan Motor 1 Pemenang
    private function _documentLapArisanMotor($kd_laporan_arisan, $lelang_tertinggi)
    {
        $data_laporan                = $this->db->get_where('lap_arisan', ['id' => $kd_laporan_arisan])->row_array();
        $data_rinci_laporan_pemenang = $this->select_model->getDataRinciPemenangArisanMotorLaporan($kd_laporan_arisan);
        $regist_arisan               = $data_laporan['regist_arisan'];
        $data_lelang                 = $this->select_model->getDataTotalLelang($regist_arisan);
        $ttl_lelang                  = count($data_lelang);
        $data_arisan                 = $this->db->get_where('p_arisan', ['id' => $data_laporan['regist_arisan']])->row_array();
        $data_jadwal                 = $this->db->get_where('p_arisan_jadwal', ['id' => $data_laporan['jadwal_id']])->row_array();
        $data_petugas                = $this->db->get_where('sistem_login', ['id' => $data_laporan['login_id']])->row_array();
        $jml_anggota                 = count($this->db->get_where('p_arisan_anggota', ['regist_arisan' => $regist_arisan])->result());
        $data = array(
            'judul'            => 'Laporan Arisan Motor ' . $data_arisan['ket_arisan'] . ' Kelompok ' . $data_arisan['nm_kelompok'] . ' - Undian Ke- ' . $data_jadwal['undian_ke'],
            'data_arisan'      => $data_arisan,
            'data_laporan'     => $data_laporan,
            'data_jadwal'      => $data_jadwal,
            'ttl_lelang'       => $ttl_lelang,
            'data_pemenang'    => $data_rinci_laporan_pemenang,
            'lelang_tertinggi' => $lelang_tertinggi,
            'data_petugas'     => $data_petugas,
            'jml_anggota'      => $jml_anggota
        );
        // echo '<pre>';
        // var_dump($data);
        // die;
        $file_pdf = date('ym') . '_' . $regist_arisan;
        $paper = 'A4';
        $orientation = "portrait";
        $html = $this->load->view('document/laporan/arisan/motor/laporan_bulanan_arisan_motor', $data, true);
        $lokasi_file = 'assets/laporan/arisan/motor/';
        $data_edit_laporan = array(
            'document' => $file_pdf . '.pdf'
        );
        $this->db->where('id', $kd_laporan_arisan);
        $this->db->update('lap_arisan', $data_edit_laporan);
        $this->pdfgenerator->generate($html, $file_pdf, $paper, $lokasi_file, $orientation);
    }
    // Membuat dokumen laporan arisan motor 2 pemenang
    private function _documentLapArisanMotor2($kd_laporan_arisan_baru, $data_lelang)
    {
        $data_laporan                = $this->db->get_where('lap_arisan', ['id' => $kd_laporan_arisan_baru])->row_array();
        $data_rinci_laporan_pemenang = $this->select_model->getDataRinciPemenangArisanMotorLaporan($kd_laporan_arisan_baru);
        $regist_arisan               = $data_laporan['regist_arisan'];
        $data_lelang_2               = $this->select_model->getDataTotalLelang($regist_arisan);
        $ttl_lelang                  = count($data_lelang_2);
        $data_arisan                 = $this->db->get_where('p_arisan', ['id' => $data_laporan['regist_arisan']])->row_array();
        $data_jadwal                 = $this->db->get_where('p_arisan_jadwal', ['id' => $data_laporan['jadwal_id']])->row_array();
        $data_petugas                = $this->db->get_where('sistem_login', ['id' => $data_laporan['login_id']])->row_array();
        $jml_anggota                 = count($this->db->get_where('p_arisan_anggota', ['regist_arisan' => $regist_arisan])->result());
        $data = array(
            'judul'            => 'Laporan Arisan Motor ' . $data_arisan['ket_arisan'] . ' Kelompok ' . $data_arisan['nm_kelompok'] . ' - Undian Ke- ' . $data_jadwal['undian_ke'],
            'data_arisan'      => $data_arisan,
            'data_laporan'     => $data_laporan,
            'data_jadwal'      => $data_jadwal,
            'ttl_lelang'       => $ttl_lelang,
            'data_pemenang'    => $data_rinci_laporan_pemenang,
            'lelang_tertinggi' => $data_lelang,
            'data_petugas'     => $data_petugas,
            'jml_anggota'      => $jml_anggota
        );
        // echo '<pre>';
        // var_dump($data);
        // die;
        $file_pdf = date('ym') . '_' . $regist_arisan . '_2';
        $paper = 'A4';
        $orientation = "portrait";
        $html = $this->load->view('document/laporan/arisan/motor/laporan_bulanan_arisan_motor2', $data, true);
        $lokasi_file = 'assets/laporan/arisan/motor/';
        $data_edit_laporan = array(
            'document' => $file_pdf . '.pdf'
        );
        $this->db->where('id', $kd_laporan_arisan_baru);
        $this->db->update('lap_arisan', $data_edit_laporan);
        $this->pdfgenerator->generate_laporan2($html, $file_pdf, $paper, $lokasi_file, $orientation);
    }
    private function _cetakTandaTerima($nomor_invoice, $produk_id)
    {
        $kd_invoice            = $nomor_invoice;
        $data_invoice          = $this->select_model->getDataInvoice($kd_invoice); // DONE
        $data_rinci            = $this->select_model->getDataInvoiceRinci($kd_invoice);
        // Data Login
        $data_login            = $this->userlogin->user_login();
        $data_id_login         = $this->session->userdata('isloggedin');
        // Nama Marketing
        $data_marketing        = $this->select_model->getDataMarketing($kd_invoice);
        $tahun = date('Y');
        $bulan = date('m');
        if ($produk_id == 21) :
            $lokasi_file = 'assets/invoice/arisan_heboh/' . $tahun . '/' . $bulan . '/';
            $nama_produk = 'Arisan Heboh';
        else :
            $lokasi_file = 'assets/invoice/arisan_motor/' . $tahun . '/' . $bulan . '/';
            $nama_produk = 'Arisan Motor';
        endif;
        $data = array(
            // Untuk memanggil halaman sesuai menu
            'title_pdf'           => 'Invoice Pembayaran ' . $nama_produk . '',
            'data_id_login'       => $data_id_login,
            'data_login'          => $data_login,
            // Data isi konten
            'data_invoice'        => $data_invoice,
            'data_rinci'          => $data_rinci,
            'data_marketing'      => $data_marketing
        );
        // $this->load->view('nota/nota_bayar_arisan', $data_halaman);
        // filename dari pdf ketika didownload
        $file_pdf = 'invoice_' . $kd_invoice;
        // setting paper
        $paper = 'A5';
        //orientasi paper potrait / landscape
        $orientation = "landscape";

        // $this->load->view('nota/nota_bayar_arisan_petugas', $data);
        $html = $this->load->view('document/nota/nota_bayar_arisan_petugas', $data, true);
        // run dompdf
        $this->pdfgenerator->generate($html, $file_pdf, $paper, $lokasi_file, $orientation);
        $data_update22     = array(
            'invoice_pdf' => $file_pdf . '.pdf'
        );
        $this->db->where('id', $kd_invoice);
        $this->db->update('nota', $data_update22);
        $nama_file = $file_pdf . '.pdf';
        $this->_notifWABuktiSetorAsli($nama_file, $lokasi_file, $data_invoice);
    }
    // Bagian WA Notif
    // Notifikasi WA Bukti Setor Nomor Saya
    private function _notifWABuktiSetorAsli($nama_file, $lokasi_file, $data_invoice)
    {
        $no_hp               = substr(htmlspecialchars($this->input->post('no_hp')), 0, 1);
        $sett_wa             = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($no_hp == 0) :
            $cek_nomor = '62' . substr(htmlspecialchars($this->input->post('no_hp')), 1, 20);
        else :
            $cek_nomor = htmlspecialchars($this->input->post('no_hp'));
        endif;

        $caption = 'Hei, *_' . $data_invoice['nm_anggota'] . '_*,

Terimakasih sudah melakukan pembayaran iuran Arisan Motor, Ini adalah Pesan Otomatis memberitahu Bukti Setor Pembayaran.
        
*Info :* 085162800600
*_PESAN OTOMATIS ROBIN_*';

        $footer = '*KSP Bina Artha Prima*';
        $data_inputan = array(
            'api_key'    => $sett_wa['api_key'],
            'sender'     => $sett_wa['no_hp'],
            'number'     => $no_hp,
            'media_type' => 'document',
            'caption'    => $caption,
            'footer'     => $footer,
            'url'        => base_url($lokasi_file . $nama_file)
        );
        $curl = curl_init($sett_wa['endpoint_url']);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data_inputan));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_exec($curl);
        curl_close($curl);
    }
}

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