app = $app; $this->db = $db; $this->id_cab = Param::Int("CabID", (int) $session->get('APP_INV')['CABANGID']); $this->id_agen = (int) $session->get('APP_PPOB')['API_AGENID']; $this->mode_detail = Param::Get("mode_detail", ""); $this->tgl_from = Param::Get("Tgl_From", tgl_dmy()); $this->tgl_to = Param::Get("Tgl_To", tgl_dmy()); $this->no_tx = Param::Get("No_TX", ""); $this->ppob = new PPOBClient($app); } public function table_tx() { $ajson = []; if (in_array($this->mode_detail, ["reproc","delete"])) { $adetail = $this->db->fetchRow("SELECT * FROM ppob_tx WHERE No_TX=?", [$this->no_tx]) ?? []; if ($this->mode_detail === "delete") { if (count($adetail) > 0 && (int) $adetail['Status'] === 0) { $this->db->runQuery("DELETE FROM ppob_tx WHERE No_TX=? AND Status=0 LIMIT 1", [$this->no_tx]); $ajson[] = ['type'=>"msg", 'mode'=>"info", 'wait'=>2000, 'value'=>"Proses Hapus sukses !"]; } else { $ajson[] = ['type'=>"msg", 'mode'=>"error", 'wait'=>2000, 'value'=>"Ada masalah dalam Proses Hapus !"]; } } else if ($this->mode_detail === "reproc") { if (count($adetail) > 0 && (int) $adetail['Proses'] === 0) { // PROSES API TRIFONIA PULSA $appob = $this->ppob->TopUp($adetail['Kode'], $adetail['Tujuan'], $adetail['No_TX'], $adetail['No_HP']); if (count($appob) > 0) { $ajson[] = ['type'=>"msg", 'mode'=>"info", 'wait'=>2000, 'value'=>$appob['Message']]; } } else { $ajson[] = ['type'=>"msg", 'mode'=>"error", 'wait'=>2000, 'value'=>"Ada masalah dalam Proses !"]; } } } $saldo_ppob = (float) $this->db->fetchField("SELECT API_SALDO FROM ppob_config WHERE API_AGENID=?", [$this->id_agen]) ?? 0; $cari = Param::Get("Cari_TX", ""); $tsql = 'CabID=?'; $asql = [$this->id_cab]; if (empty($cari)) { $tgl_from = tgl_sql2str($this->tgl_from); $tgl_to = tgl_sql2str($this->tgl_to); $tsql .= " AND (Tgl_TX BETWEEN ? AND ?)"; array_push($asql, $tgl_from, $tgl_to); } else { $tsql .= " AND CONCAT(No_TX,DATE_FORMAT(Tgl_TX,'%d-%m-%Y'),Tujuan,No_HP) LIKE ?"; $asql[] = '%' . $cari . '%'; } $obj = new Table($this->app); $obj->set_table("(SELECT *,CONCAT(DATE_FORMAT(DateStamp,'%d-%m-%Y %H:%i:%s'),' - ',Kode,'
',Tujuan,'',IF(No_HP='','',CONCAT('
HP : ',No_HP,''))) Info_TX FROM ppob_tx WHERE ".$tsql.") T LEFT JOIN (SELECT ProdukID, KateID FROM ppob_produk) P ON (P.ProdukID=T.ProdukID)", "T.*,IFNULL(P.KateID,0) KateID", "", $asql); $obj->set_footer("SUM(Harga_Jual) Harga_Jual"); $obj->add_field("No_TX", "No. TX", "c"); $obj->add_field("KateID", "Kate", "c", "App\Utils\PPOBClient::Icon_Kate"); $obj->add_field("Info_TX", "Informasi Transaksi", "l"); $obj->add_field("Harga_Jual", "Harga", "r", "rupiah", "rupiah"); $obj->add_field("Proses", "P", "c", "checkbox"); $obj->add_field("Status", "Status", "c", "App\Utils\PPOBClient::Badge_Status"); $obj->set_field_order("No_TX", "D"); $obj->add_row_btn("printer", "Cetak Nota", "PPOBTXJS.nota_print", "Proses", 1); $obj->add_row_btn("arrow-left-right", "Proses Ulang", "PPOBTXJS.nota_reproc", "Proses", 0); $obj->add_row_btn("clipboard", "Detail", "PPOBTXJS.nota_detail", "Proses", 1); if ($this->app->user()->is_level(1)) $obj->add_row_btn("trash", "Hapus", "PPOBTXJS.nota_delete", "Status", 0); $obj->set_func_btn("PPOBTXJS.saldo_ppob", 'Saldo Rp. '.rupiah($saldo_ppob)); $ajson[] = $obj->db_table("divDetailTabel"); $this->app->json($ajson); } public function form_tx() { $ainfo = $this->db->fetchRow("SELECT T.*,DATE_FORMAT(T.DateStamp,'%d-%m-%Y %H:%i:%s') Tgl_TX1,IFNULL(P.KateID,0) KateID,P.Nama_Produk FROM (SELECT * FROM ppob_tx WHERE No_TX=? LIMIT 1) T LEFT JOIN ppob_produk P ON (P.ProdukID=T.ProdukID)", [$this->no_tx]) ?? []; $atoken = $this->ppob->SN_PLN($ainfo['SN']); $ajson['html'] = '
'; if ((int) $ainfo['Status'] === 4) { $ajson['html'] .= '

'; if ((int) $ainfo['KateID'] === 5) { $ajson['html'] .= '
'; } else { $ajson['html'] .= '
'; } } $this->app->json($ajson); } public function form_saldo() { $asaldo = $this->ppob->Balance(); $ajson['Saldo'] = (count($asaldo) > 0 && (int) $asaldo['Status'] === 4) ? rupiah($asaldo['Saldo']) : 0; $this->app->json($ajson); } public function index() { $hari_ini = tgl_dmy(); $this->app->json(['html' => '
 
' ]); } }