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'] = '