<?php

function tixid($ref_id, $rc, $status, $sn)
{
    $ci = &get_instance();
    $ci->load->helper('fcm');

    //TIXID
    if (strtok($ref_id, "-") == "TIXID") {

        //KATEGORI TRANSAKSI
        $trx_transaksi_kategori =  $ci->config->item('transaksi_tixid');

        //PANGGIL TRANSAKSI
        $tixid = $ci->db->query("SELECT * FROM tbl_trx_tixid WHERE trx_tixid_kode='$ref_id'");
        if ($tixid->num_rows() > 0) {
            foreach ($tixid->result() as $row) {
                $trx_tixid_user_kode = $row->trx_tixid_user_kode;
                $trx_tixid_nomor = $row->trx_tixid_nomor;
                $trx_tixid_nama = $row->trx_tixid_nama;
                $trx_tixid_admin = $row->trx_tixid_admin;
                $trx_tixid_total = $row->trx_tixid_harga + $row->trx_tixid_admin;
                $trx_tixid_poin = $row->trx_tixid_poin;
                $trx_tixid_tanggal = $row->trx_tixid_tanggal;
                $trx_tixid_rc = $row->trx_tixid_rc;
            }

            //TRANSAKSI BERHASIL
            if ($rc == '00') {
                //JIKA TRANSAKSI MASIH PENDING
                if ($trx_tixid_rc == '03') {
                    //UPDATE tbl_trx_tixid
                    $ci->db->query("UPDATE tbl_trx_tixid set 
                        trx_tixid_rc='$rc',
                        trx_tixid_status='$status',
                        trx_tixid_notasi='',
                        trx_tixid_sn='$sn'
                        where
                        trx_tixid_kode='$ref_id' and
                        trx_tixid_user_kode='$trx_tixid_user_kode'");

                    //UPDATE STATUS tbl_trx_transaksi
                    $ci->db->query("UPDATE tbl_trx_transaksi set 
                        trx_transaksi_notasi='',
                        trx_transaksi_rc='$rc', 
                        trx_transaksi_status='$status'
                        where
                        trx_transaksi_kode='$ref_id' and
                        trx_transaksi_user_kode='$trx_tixid_user_kode'");


                    //INSERT KE tbl_trx_pendapatan
                    $ci->db->query("insert into tbl_trx_pendapatan (
                        trx_pendapatan_kode, 
                        trx_pendapatan_user_kode, 
                        trx_pendapatan_kategori, 
                        trx_pendapatan_jumlah, 
                        trx_pendapatan_tanggal) values (
                        '$ref_id', 
                        '$trx_tixid_user_kode', 
                        '$trx_transaksi_kategori',
                        '$trx_tixid_admin', 
                        '$trx_tixid_tanggal')");


                    //INSERT KE tbl_trx_poin
                    $ci->db->query("insert into tbl_trx_poin (
                        trx_poin_kode, 
                        trx_poin_user_kode, 
                        trx_poin_nama, 
                        trx_poin_keterangan, 
                        trx_poin_jumlah,
                        trx_poin_tanggal) values (
                        '$ref_id', 
                        '$trx_tixid_user_kode', 
                        '$trx_transaksi_kategori',
                        'Poin dari transaksi tixid', 
                        '$trx_tixid_poin', 
                        '$trx_tixid_tanggal')");

                    //UPDATE tbl_mst_poin
                    $ci->db->query("UPDATE tbl_mst_poin set 
                        mst_poin_jumlah=mst_poin_jumlah + '$trx_tixid_poin'
                        where
                        mst_poin_user_kode='$trx_tixid_user_kode'");


                    //PANGGIL USER
                    $user = $ci->db->query("SELECT * FROM tbl_mst_user WHERE mst_user_kode='$trx_tixid_user_kode'");
                    if ($user->num_rows() > 0) {
                        foreach ($user->result() as $row) {
                            $mst_user_firebase = $row->mst_user_firebase;
                            $mst_user_upline = $row->mst_user_upline;
                        }

                        //PANGGIL UPLINE
                        $upline = $ci->db->query("SELECT * FROM tbl_mst_user WHERE mst_user_kode='$mst_user_upline'");
                        if ($upline->num_rows() > 0) {
                            foreach ($upline->result() as $row) {
                                $mst_user_referal_bonus = $row->mst_user_referal_bonus;
                            }

                            //CEK UPLINE
                            if (strlen($mst_user_upline) > 0) {
                                //UPLINE BONUS
                                //INSERT KE tbl_trx_poin
                                $ci->db->query("insert into tbl_trx_poin (
                                          trx_poin_kode, 
                                          trx_poin_user_kode, 
                                          trx_poin_nama, 
                                          trx_poin_keterangan, 
                                          trx_poin_jumlah,
                                          trx_poin_tanggal) values (
                                          '$ref_id', 
                                          '$mst_user_upline', 
                                          'Downline',
                                          'Bonus dari transaksi downline', 
                                          '$mst_user_referal_bonus', 
                                          '$trx_tixid_tanggal')");

                                //UPDATE tbl_mst_poin
                                $ci->db->query("UPDATE tbl_mst_poin set 
                                          mst_poin_jumlah=mst_poin_jumlah + '$mst_user_referal_bonus'
                                          where
                                          mst_poin_user_kode='$mst_user_upline'");
                            }
                        }

                        //KIRIM NOTIFIKASI
                        $title = "Arifah Pulsa";
                        $body =  "Pengisian tixid berhasil ke nomor " . $trx_tixid_nomor . " - " . $trx_tixid_nama;
                        firebase_notification($title, $body, $mst_user_firebase);
                    }
                }
            } else {
                //TRANSAKSI GAGAL
                //JIKA TRANSAKSI MASIH PENDING
                if ($trx_tixid_rc == '03') {
                    //UPDATE tbl_trx_tixid
                    $ci->db->query("UPDATE tbl_trx_tixid set 
                    trx_tixid_rc='$rc',
                    trx_tixid_status='$status',
                    trx_tixid_notasi='Pembelian tixid gagal, saldo kamu telah dikembalikan!',
                    trx_tixid_sn='-'
                    where
                    trx_tixid_kode='$ref_id' and
                    trx_tixid_user_kode='$trx_tixid_user_kode'");

                    //UPDATE STATUS tbl_trx_transaksi
                    $ci->db->query("UPDATE tbl_trx_transaksi set 
                    trx_transaksi_notasi='Pembelian tixid gagal, saldo kamu telah dikembalikan!',
                    trx_transaksi_rc='$rc', 
                    trx_transaksi_status='$status'
                    where
                    trx_transaksi_kode='$ref_id' and
                    trx_transaksi_user_kode='$trx_tixid_user_kode'");


                    //UPDATE tbl_mst_saldo
                    $ci->db->query("UPDATE tbl_mst_saldo set 
                    mst_saldo_jumlah=mst_saldo_jumlah + '$trx_tixid_total'
                    where
                    mst_saldo_user_kode='$trx_tixid_user_kode'");

                    //PANGGIL USER
                    $user = $ci->db->query("SELECT * FROM tbl_mst_user WHERE mst_user_kode='$trx_tixid_user_kode'");
                    if ($user->num_rows() > 0) {
                        foreach ($user->result() as $row) {
                            $mst_user_firebase = $row->mst_user_firebase;
                            $mst_user_referal_bonus = $row->mst_user_referal_bonus;
                            $mst_user_upline = $row->mst_user_upline;
                        }

                        //KIRIM NOTIFIKASI
                        $title = "Arifah Pulsa";
                        $body =  "Pengisian tixid gagal ke nomor " . $trx_tixid_nomor . " - " . $trx_tixid_nama . ". Saldo telah dikembalikan ke akun kamu";
                        firebase_notification($title, $body, $mst_user_firebase);
                    }
                }
            }
        }
    }
}
