126 lines
5.2 KiB
PHP
126 lines
5.2 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
PHP Class : /Controller/Ppob/TopupController
|
|
Description : Transaksi Topup Saldo PPOB
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : October 6th, 2017.
|
|
Last Modified : September 16th, 2026.
|
|
|
|
(c) 3FONIA Software; WWW.3FONIA.COM.
|
|
|
|
*******************************************************************/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Controller\Ppob;
|
|
|
|
use App\Utils\PPOBClient;
|
|
use flight\Engine;
|
|
use flight\database\SimplePdo;
|
|
use Webapp\Web\Form;
|
|
use Webapp\Web\Param;
|
|
use Webapp\Web\Table;
|
|
|
|
class TopupController {
|
|
|
|
private string $mode_detail;
|
|
private PPOBClient $ppob;
|
|
protected Engine $app;
|
|
protected SimplePdo $db;
|
|
|
|
public function __construct(Engine $app, SimplePdo $db) {
|
|
$this->app = $app;
|
|
$this->db = $db;
|
|
$this->mode_detail = Param::Get("mode_detail", "");
|
|
$this->ppob = new PPOBClient($app);
|
|
}
|
|
|
|
public function table_detail() {
|
|
$ajson = [];
|
|
if ($this->mode_detail === "insert") {
|
|
// PROSES API TRIFONIA PULSA
|
|
$appob = $this->ppob->Depo(Param::Get("Bank", ""), Param::Float("Jumlah", 0));
|
|
if (count($appob)>0 && (int) $appob['Status'] === 4) {
|
|
$ajson[] = ['type'=>"msg", 'mode'=>"info", 'wait'=>2000, 'value'=>$appob['Message']];
|
|
} else {
|
|
$ajson[] = ['type'=>"msg", 'mode'=>"error", 'wait'=>2000, 'value'=>$appob['Message']];
|
|
}
|
|
}
|
|
|
|
$cari = Param::Get("Cari_Topup", "");
|
|
$tsql = ''; $asql = [];
|
|
if (!empty($cari)) {
|
|
$tsql = "CONCAT(No_Depo,DATE_FORMAT(Tgl_Depo,'%d-%m-%Y')) LIKE ?";
|
|
$asql[] = '%' . $cari . '%';
|
|
}
|
|
|
|
$obj = new Table($this->app);
|
|
$obj->set_table("ppob_depo", "*,IF(Proses=1,2,IF(DATEDIFF(Tgl_Exp,NOW())<0,1,0)) IX", $tsql, $asql);
|
|
$obj->add_field("No_Depo", "Nomor", "c");
|
|
$obj->add_field("Tgl_Depo", "Tanggal", "c", "sqltgl", "", "val-tgl");
|
|
$obj->add_field("Tgl_Exp", "Expire", "c", "sqltgl", "", "val-tgl");
|
|
$obj->add_field("Jumlah", "Jumlah", "r", "rupiah");
|
|
$obj->add_field("Bank", "Bank", "l");
|
|
$obj->add_field("Proses", "P", "c", "checkbox");
|
|
$obj->add_field("Catatan", "Catatan", "hid", "App\Utils\PPOBClient::makeWAText");
|
|
$obj->set_field_order("No_Depo", "D");
|
|
$obj->set_row_color("IX", "1", "rdanger");
|
|
$obj->set_row_color("IX", "2", "rsuccess");
|
|
$obj->add_row_btn("clipboard", "Informasi", "TopupJS.tx_info");
|
|
$ajson[] = $obj->db_table("divDetailTabel");
|
|
$this->app->json($ajson);
|
|
}
|
|
|
|
public function form_topup() {
|
|
$atabel = [ 'Tgl_Depo'=>tgl_ymd(), 'Bank'=>"BCA", 'Jumlah'=>0 ];
|
|
|
|
$form = new Form($this->app);
|
|
$ttgl = $form->datebox("_", "Tgl_Depo", $atabel['Tgl_Depo'], true, false);
|
|
$tbank = $form->radio("_", "Bank", $atabel['Bank'], true, false, ['BCA'=>"BCA",'BNI'=>"BNI",'Mandiri'=>"Mandiri",'BRI'=>"BRI"]);
|
|
$tjumlah = $form->textbox("_", "Jumlah", $atabel['Jumlah'], true, true, "double");
|
|
|
|
$ajson['html'] = '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="Tgl_Depo">Tanggal</label>
|
|
<div class="col-sm-4 col-lg-6">'.$ttgl.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="Bank">Nama Bank</label>
|
|
<div class="col col-form-label">'.$tbank.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-3 col-form-label" for="Jumlah">Jumlah Topup</label>
|
|
<div class="col-sm-4 col-lg-6">'.$tjumlah.'</div>
|
|
</div>';
|
|
$this->app->json($ajson);
|
|
}
|
|
|
|
public function index() {
|
|
$this->app->json(['html' => '
|
|
<div class="fade-in">
|
|
<div class="card"><div class="card-body">
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link active" id="tx-tab" data-bs-toggle="tab" data-bs-target="#tx" type="button" role="tab" aria-controls="tx" aria-selected="true"><i class="bi-database me-2"></i>Topup Saldo PPOB</button>
|
|
</li>
|
|
<li class="nav-item ms-auto w-50">
|
|
<div class="input-group"><input class="form-control" id="Cari_Topup" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info shadow-none" type="button" id="butSearch">Cari</button><button class="btn btn-secondary shadow-none" type="button" id="butAll">Semua</button></div>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="btn btn-primary mb-1 ms-2" id="butTambah" type="button"><i class="bi-plus-lg me-2"></i>Tambah</button>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content border border-top-0 p-3">
|
|
<div class="tab-pane fade active show" id="tx" role="tabpanel" aria-labelledby="tx-tab">
|
|
<div id="divDetailTabel"> </div>
|
|
</div>
|
|
</div>
|
|
</div></div>
|
|
</div>'
|
|
]);
|
|
}
|
|
|
|
}
|