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

class WhatAppsNotif
{
    protected $CI;
    protected $db;

    public function __construct()
    {
        $this->CI = &get_instance();
        $this->db = $this->CI->db;
        $this->CI->load->library('encrypt');
        $this->encrypt = $this->CI->encrypt;
        $this->CI->load->library('mycustom');
        $this->mycustom = $this->CI->mycustom;
    }
    // WA Pengjauan Di Tolak
    function notifWADitolak($kontrak_id)
    {
        $kontrak_detail = $this->select_model->nvd_pengajuanPinjaman($kontrak_id);
        $cek_nomor = substr($kontrak_detail['nomor_anggota'], 0, 1);
        if ($cek_nomor == 0) :
            $no_hp = '62' . substr($kontrak_detail['nomor_anggota'], 1, 20);
        else :
            $no_hp = $kontrak_detail['nomor_anggota'];
        endif;
        // echo '<pre>';
        // var_dump($no_hp, $kontrak_detail['nomor_anggota']);
        // die;
        $tgl = date('d', strtotime($kontrak_detail['tgl_konfirmasi'])) . ' ' . $this->mycustom->bulanIndo(date('m', strtotime($kontrak_detail['tgl_konfirmasi']))) . ' ' .  date('Y', strtotime($kontrak_detail['tgl_konfirmasi']));
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 1])->row_array();
        $opt = $this->db->get_where('sistem_option')->row_array();
        $pesan = 'Yth. ' . $kontrak_detail['nm_anggota'] . '

Mohon Maaf, Pengajuan pinjaman sebesar *Rp ' . $kontrak_detail['pokok_pinjaman'] . ',-* di Koperasi Bina Artha Prima Kudus telah ditolak pada tanggal ' . $tgl . ' dengan alasan :  _*' . $kontrak_detail['ket_progress'] . '*_.


*Info Hub:* ' . $opt['cs_koperasi'] . '
*_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,
            'message'    => $pesan,
            'footer'     => $footer
        );
        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $kontrak_id])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $pesan,
            'ket_pesan'    => 'Penolakan Pinjaman ' . $kontrak_id,
            'jml_kirim'    => '1',
            'link_pdf'     => '0',
            'link_reviews' => '0'
        );
        $this->db->insert('logs_wa', $data_logs);
        // End Logs WhatApps Sender
        $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);
    }
    // Bukti Pencairan Dana
    // WA Pengajuan Di terima / Pencairan
    function notifWABuktiSetorAsli($nama_file, $lokasi_file, $data_invoice, $nomor_kontrak)
    {
        $cek_option = $this->db->get_where('sistem_option')->row_array();
        $sett_wa    = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($sett_wa['status'] == 'PASIF') :
            $no_hp = '628159994711';
        else:
            $cek_nomor = substr($data_invoice['no_hp'], 0, 1);
            if ($cek_nomor == 0) :
                $no_hp = '62' . substr($data_invoice['no_hp'], 1, 20);
            else :
                $no_hp = $data_invoice['no_hp'];
            endif;
        endif;
        $link_file = base_url($lokasi_file . $nama_file);

        $caption = 'Yth. ' . $data_invoice['nm_anggota'] . '

Pencairan dana pinjaman anda sudah selesai, mohon untuk pembayaran angsuran sesuai jatuh tempo agar tidak mendapatkan denda keterlambatan, Terimakasih.

*Info Pembayaran Koperasi Bina Artha Prima dapat dilakukan dengan :*
1. Langsung ke Kantor 
2. Diambil Petugas Marketing
3. Via Transfer.

*Daftar Rekening Pembayaran :*
Nama Bank   : BRI
No Rekening : 593101043282536
Atas Nama    : Suwito

Sempatkan waktu anda untuk memberikan kritik dan saran kepada kami :

https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($nomor_kontrak) . '

*Info Hub :* ' . $cek_option['cs_koperasi'] . '
*_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'        => $link_file
        );

        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $nomor_kontrak])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $caption,
            'ket_pesan'    => 'Pencairan Dana ' . $nomor_kontrak,
            'jml_kirim'    => '1',
            'link_pdf'     => $link_file,
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($nomor_kontrak)
        );
        $this->db->insert('logs_wa', $data_logs);
        // End Logs WhatApps Sender

        $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);
    }
    // WA Notifikasi
    // Notifikasi Customer / Pengingat Pembayaran
    function notifikasi($angsuran_id, $data_angsuran, $data_kontrak, $data_anggota)
    {
        $jtp = date('d', strtotime($data_angsuran['tgl_tempo'])) . ' ' . $this->mycustom->bulanIndo(date('m', strtotime($data_angsuran['tgl_tempo']))) . ' ' .  date('Y', strtotime($data_angsuran['tgl_tempo']));
        $opt = $this->db->get_where('sistem_option')->row_array();
        $cek_nomor = substr($data_anggota['no_hp'], 0, 1);
        if ($cek_nomor == 0) :
            $no_hp = '62' . substr($data_anggota['no_hp'], 1, 20);
        else :
            $no_hp = $data_anggota['no_hp'];
        endif;
        $pesan = 'Yth. *_pelanggan setia Koperasi Bina Artha Prima_*, *_' . $data_anggota['nm_anggota'] . '_*

Angsuran *_' . $data_kontrak['id'] . '_* ke ' . $data_angsuran['angs_ke'] . '/' . $data_kontrak['tempo_pinjaman'] . ' sebesar Rp ' . $data_angsuran['bsr_bayar'] . ',- akan jatuh tempo pada *' . $jtp . '*. Silahkan melakukan pembayaran agar tidak terkena denda keterlambatan.
Terimakasih!

*Info Hub :* ' . $opt['cs_koperasi'] . '';

        $body = array(
            "api_key" => $opt['api_koperasi'],
            "receiver" => $no_hp,
            "data" => array("message" => $pesan)
        );
        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $data_kontrak['id']])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $pesan,
            'ket_pesan'    => 'Pembayaran Pinjaman ' . $data_kontrak['id'],
            'jml_kirim'    => '1',
            'link_pdf'     => '0',
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id'])
        );
        $this->db->insert('logs_wa', $data_logs);
        // End Logs WhatApps Sender
        $curl = curl_init();
        curl_setopt_array($curl, [
            CURLOPT_URL => $opt['web_api_pesan'],
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_POSTFIELDS => json_encode($body),
            CURLOPT_HTTPHEADER => [
                "Accept: */*",
                "Content-Type: application/json",
            ],
        ]);

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);
    }
    // Bukti Invoice
    function notifWABuktiInvoice($nama_file, $data_kontrak, $data_angsuran, $lokasi_file, $data_invoice, $cek_option, $data_anggota)
    {
        // WA BARU
        // setting WA
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($sett_wa['status'] == 'PASIF') :
            $no_hp = '628159994711';
        else:
            $cek_nomor = substr($data_anggota['no_hp'], 0, 1);
            if ($cek_nomor == 0) :
                $no_hp = '62' . substr($data_anggota['no_hp'], 1, 20);
            else :
                $no_hp = $data_anggota['no_hp'];
            endif;
        endif;
        $link_file = base_url($lokasi_file . $nama_file);
        // Contoh URL http://localhost/binaartha/assets/slip_gaji/2025016.pdf
        $caption = 'Yth. *_pelanggan setia Koperasi Bina Artha Prima_*

*Terimakasih!*
Pembayaran Tagihan ke- ' . $data_angsuran['angs_ke'] . '/' . $data_kontrak['tempo_pinjaman'] . ' KSP Bina Artha Prima sebesar Rp ' . $data_invoice['ttl_bayar'] . ' untuk nomor kontrak *' . $data_kontrak['id'] . '* Melalui Marketing ' . $data_invoice['nm_panggilan'] . ' sudah kami terima pada ' . date('d-m-Y') . ' Jam ' . date('H:i:s') . '.

Sempatkan waktu anda untuk memberikan kritik dan saran kepada kami :

https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id']) . '

*Info Hub :* ' . $cek_option['cs_koperasi'] . '
*_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'        => $link_file
        );

        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $data_kontrak['id']])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $caption,
            'ket_pesan'    => 'Pembayaran Pinjaman ' . $data_kontrak['id'],
            'jml_kirim'    => '1',
            'link_pdf'     => $link_file,
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id'])
        );
        $this->db->insert('logs_wa', $data_logs);
        // End Logs WhatApps Sender
        $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);
    }
    // Bukti Invoice Lunas
    function NotifLunas($data_kontrak, $cek_option, $data_anggota)
    {
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($sett_wa['status'] == 'PASIF') :
            $no_hp = '628159994711';
        else:
            $cek_nomor = substr($data_anggota['no_hp'], 0, 1);
            if ($cek_nomor == 0) :
                $no_hp = '62' . substr($data_anggota['no_hp'], 1, 20);
            else :
                $no_hp = $data_anggota['no_hp'];
            endif;
        endif;
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 1])->row_array();
        $data_invoice = $this->db->get_where('anggota', ['id' => $data_kontrak['anggota_id']])->row_array();
        $pesan = 'Yth. *_pelanggan setia Koperasi Bina Artha Prima_*, *_' . $data_invoice['nm_anggota'] . '_*

Terimakasih!
Pinjaman anda dengan nomor kontrak *' . $data_kontrak['id'] . '* di KSP Bina Artha Prima dinyatakan *LUNAS* pada ' . date('d-m-Y') . ' Jam ' . date('H:i:s') . '.
Silahkan jika anda ingin mengajukan kembali pinjaman pada kami, bisa menghubungi marketing kami.

Sempatkan waktu anda untuk memberikan kritik dan saran kepada kami :

https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id']) . '

*Info Hub :* ' . $cek_option['cs_koperasi'] . '
*_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,
            'message'    => $pesan,
            'footer'     => $footer
        );

        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $data_kontrak['id']])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $pesan,
            'ket_pesan'    => 'Pelunasan Pinjaman ' . $data_kontrak['id'],
            'jml_kirim'    => '1',
            'link_pdf'     => '0',
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id'])
        );
        $this->db->insert('logs_wa', $data_logs);
        // End Logs WhatApps Sender
        $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);
    }
    // WA Notif Bagian Kasir
    // Setor Kasir
    function notifWABuktiSetorKasir($data_kontrak, $lokasi_file, $cek_option, $data_anggota, $login_sistem)
    {
        // WA BARU
        // setting WA
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($sett_wa['status'] == 'PASIF') :
            $no_hp = '628159994711';
        else:
            $cek_nomor = substr($data_anggota['no_hp'], 0, 1);
            if ($cek_nomor == 0) :
                $no_hp = '62' . substr($data_anggota['no_hp'], 1, 20);
            else :
                $no_hp = $data_anggota['no_hp'];
            endif;
        endif;
        $link_file = base_url($lokasi_file);
        // Contoh URL http://localhost/binaartha/assets/slip_gaji/2025016.pdf
        $caption = 'Yth. *_pelanggan setia Koperasi Bina Artha Prima_*

*Terimakasih!*
Pembayaran Tagihan ke- ' . $data_kontrak['angs_ke'] . '/' . $data_kontrak['tempo_pinjaman'] . ' KSP Bina Artha Prima sebesar Rp ' . $data_kontrak['bsr_bayar'] . ' untuk nomor kontrak *' . $data_kontrak['id'] . '* Melalui Kasir ' . $login_sistem['nm_panggilan'] . ' sudah kami terima pada ' . date('d/m/Y') . ' Jam ' . date('H:i:s') . '.

Sempatkan waktu anda untuk memberikan kritik dan saran kepada kami :

https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id']) . '

*Info Hub :* ' . $cek_option['cs_koperasi'] . '
*_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'        => $link_file
        );
        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $data_kontrak['id']])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $caption,
            'ket_pesan'    => 'Pembayaran Pinjaman ' . $data_kontrak['id'],
            'jml_kirim'    => '1',
            'link_pdf'     => '0',
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id'])
        );
        $this->db->insert('logs_wa', $data_logs);
        $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);
    }
    function notifWABuktiSetorKasirLunas($data_kontrak, $cek_option, $data_anggota)
    {
        // WA BARU
        // setting WA
        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 2])->row_array();
        if ($sett_wa['status'] == 'PASIF') :
            $no_hp = '628159994711';
        else:
            $cek_nomor = substr($data_anggota['no_hp'], 0, 1);
            if ($cek_nomor == 0) :
                $no_hp = '62' . substr($data_anggota['no_hp'], 1, 20);
            else :
                $no_hp = $data_anggota['no_hp'];
            endif;
        endif;
        $data_invoice = $this->db->get_where('anggota', ['id' => $data_kontrak['anggota_id']])->row_array();
        $pesan = 'Yth. *_pelanggan setia Koperasi Bina Artha Prima_*, *_' . $data_invoice['nm_anggota'] . '_*

Terimakasih!
Pinjaman anda dengan nomor kontrak *' . $data_kontrak['id'] . '* di KSP Bina Artha Prima dinyatakan *LUNAS* pada ' . date('d-m-Y') . ' Jam ' . date('H:i:s') . '.
Silahkan jika anda ingin mengajukan kembali pinjaman pada kami, bisa menghubungi marketing kami.


*Info Hub :* ' . $cek_option['cs_koperasi'] . '
*_PESAN OTOMATIS ROBIN_*';

        $sett_wa = $this->db->get_where('sistem_wa', ['id' => 1])->row_array();
        $footer = '*KSP Bina Artha Prima*';
        $data_inputan = array(
            'api_key'    => $sett_wa['api_key'],
            'sender'     => $sett_wa['no_hp'],
            'number'     => $no_hp,
            'message'    => $pesan,
            'footer'     => $footer
        );
        // Logs WhatApps Sender
        $data_invoc = $this->db->get_where('p_koperasi_kontrak', ['id' => $data_kontrak['id']])->row_array();
        $data_logs = array(
            'login_id'     => $data_invoc['login_id'],
            'tgl_kirim'    => date('Y-m-d H:i:s'),
            'no_hp'        => $no_hp,
            'isi_pesan'    => $pesan,
            'ket_pesan'    => 'Pinjaman Lunas ' . $data_kontrak['id'],
            'jml_kirim'    => '1',
            'link_pdf'     => '0',
            'link_reviews' => 'https://kspbinaartha.com/marketing/review_konsumen/' . $this->encrypt->encode($data_kontrak['id'])
        );
        $this->db->insert('logs_wa', $data_logs);
        $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 WhatAppsNotif.php and path \application\libraries\WhatAppsNotif.php */