Update Banyak
This commit is contained in:
+490
-68
@@ -9,6 +9,18 @@ $apikey = $data[0]['apikey_payment_gateway'];
|
||||
$tokenkey = $data[0]['tokenkey_payment_gateway'];
|
||||
$enpoint = $data[0]['url_payment_gateway'];
|
||||
$status = $data[0]['status_payment_gateway'];
|
||||
$jenis = $data[0]['payment_gateway'];
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
SUM(saldo) AS total_saldo,
|
||||
SUM(ditahan) AS total_ditahan,
|
||||
SUM(tersedia) AS total_tersedia
|
||||
FROM v_akumulasi_client_payment
|
||||
WHERE id_data_server IN ($SvId)
|
||||
");
|
||||
$stmt->execute();
|
||||
$saldo = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
?>
|
||||
<!-- Main content -->
|
||||
@@ -29,13 +41,10 @@ $status = $data[0]['status_payment_gateway'];
|
||||
<!-- /.card-header -->
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<center>
|
||||
<h3 class="text-danger">PERHATIAN..!</h3>
|
||||
<p>Untuk mengaktifkan payment gateway anda harus terlebih dahulu mempunyai akun FLIP BUSSINESS</p>
|
||||
<hr>
|
||||
<?php if($status == "ACTIVE"){ ?>
|
||||
<div class="card bg-success">
|
||||
<h5 class="text-light m-1">STATUS : <?php echo $status; ?></h5>
|
||||
@@ -49,36 +58,14 @@ $status = $data[0]['status_payment_gateway'];
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="form-group">
|
||||
<label>Jenis Payment Gateway</label>
|
||||
<select class="form-control" name="jenis">
|
||||
<select class="form-control" name="jenis" id="getSelected">
|
||||
<option value="">Pilih Salah Satu</option>
|
||||
<option value="flip" <?php if($payment_gateway == 'flip'){ echo "selected"; } ?>>Flip Bussiness</option>
|
||||
<option value="paydisini" <?php if($payment_gateway == 'paydisini'){ echo "selected"; } ?>>Default ManjaPro (Paydisini)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>ENDPOINT URL</label>
|
||||
<input class="form-control" type="text" name="enpoint" value="<?php echo $enpoint; ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>API SECRET KEY</label>
|
||||
<div class="input-group">
|
||||
<input type="password" class="form-control password-input" id="password1" name="apikey" value="<?php echo $apikey; ?>">
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text password-toggle" data-target="password1">
|
||||
<span class="fas fa-eye"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>TOKEN VALIDASI</label>
|
||||
<div class="input-group">
|
||||
<input type="password" class="form-control password-input" id="password2" name="tokenkey" value="<?php echo $tokenkey; ?>">
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text password-toggle" data-target="password2">
|
||||
<span class="fas fa-eye"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Paykategori mb-4">
|
||||
|
||||
</div>
|
||||
<input type="submit" class="btn btn-sm btn-primary m-1" name="simpan" value="Simpan Konfigurasi">
|
||||
<?php if($status == "ACTIVE"){ ?>
|
||||
@@ -90,12 +77,152 @@ $status = $data[0]['status_payment_gateway'];
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<?php
|
||||
// echo "<pre>";
|
||||
// print_r($_SERVER);
|
||||
// echo "</pre>";
|
||||
?>
|
||||
<div class="col-md-8">
|
||||
<?php if($jenis == 'paydisini') { ?>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-2">
|
||||
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<center>
|
||||
<p>Akumulasi Keuangan Tagihan Payment Gateway</p>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-info" id="penjualanBox">
|
||||
<div class="inner">
|
||||
<h4><?= 'Rp. ' . number_format($saldo['total_saldo'], 0, ',', '.'); ?></h4>
|
||||
<p><small>Total Penjualan</small></p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-card"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-6">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-danger" id="lunasBox">
|
||||
<div class="inner">
|
||||
<h4><?= 'Rp. ' . number_format($saldo['total_ditahan'], 0, ',', '.'); ?></h4>
|
||||
<p><small>Saldo Ditahan</small></p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-card"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-12">
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-success" id="pendingBox">
|
||||
<div class="inner">
|
||||
<h4><?= 'Rp. ' . number_format($saldo['total_tersedia'], 0, ',', '.'); ?></h4>
|
||||
<p><small>Saldo Tersedia</small></p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-card"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
<center>
|
||||
<p>Riwayat Pencairan Dana</p>
|
||||
</center>
|
||||
</div>
|
||||
<div class="col-md-2 mb-2 text-right">
|
||||
<a type="button" class="btn btn-primary btn-sm m-1" data-toggle="modal" data-target="#ModalPencairan">Pencairan Dana</a>
|
||||
</div>
|
||||
</div>
|
||||
<table id="withdrawTable" class="table table-striped table-bordered" style="zoom: 90%; width: 100%;">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th>Server</th>
|
||||
<th>Dibuat</th>
|
||||
<th>Nominal</th>
|
||||
<th>User</th>
|
||||
<th>Status</th>
|
||||
<th>Diproses</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<hr>
|
||||
<div class="row mt-2">
|
||||
<div class="col-md-10">
|
||||
<center>
|
||||
<p>Riwayat Transaksi</p>
|
||||
</center>
|
||||
</div>
|
||||
<div class="col-md-2 mb-2 text-right">
|
||||
<div class="form-group">
|
||||
<select class="form-control" id="selectStatus">
|
||||
<option value="SUCCESS">SUCCESS</option>
|
||||
<option value="PENDING">PENDING</option>
|
||||
<option value="CANCELED">CANCELED</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table id="transactionTable" class="table table-striped table-bordered" style="width: 100%;">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th>Kode Unik</th>
|
||||
<th>Keterangan</th>
|
||||
<th>Nama</th>
|
||||
<th>Jumlah</th>
|
||||
<th>Saldo</th>
|
||||
<th>Biaya</th>
|
||||
<th>Status</th>
|
||||
<th>Jenis</th>
|
||||
<th>Waktu</th>
|
||||
<th>Waktu</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var table = $('#transactionTable').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"responsive": true,
|
||||
"ajax": {
|
||||
"url": "controller/get_client_payment.php?i=<?= $SvId; ?>&s=" + $('#selectStatus').val(),
|
||||
"type": "POST"
|
||||
},
|
||||
"pageLength": 10,
|
||||
"columns": [
|
||||
{ "data": 0 },
|
||||
{ "data": 1 },
|
||||
{ "data": 2 },
|
||||
{ "data": 3 },
|
||||
{ "data": 4 },
|
||||
{ "data": 5 },
|
||||
{ "data": 6 },
|
||||
{ "data": 7 },
|
||||
{ "data": 8 },
|
||||
{ "data": 9 }
|
||||
],
|
||||
"order": [[1, "desc"]] // urut berdasarkan Dibuat
|
||||
});
|
||||
|
||||
// reload data saat selectStatus berubah
|
||||
$('#selectStatus').on('change', function() {
|
||||
var newStatus = $(this).val();
|
||||
table.ajax.url("controller/get_client_payment.php?i=<?= $SvId; ?>&s=" + newStatus).load();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -108,21 +235,149 @@ $status = $data[0]['status_payment_gateway'];
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!--START Modal WithDrow-->
|
||||
<div class="modal fade" id="ModalPencairan" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="ModalPencairanLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<div class="modal-header bg-primary">
|
||||
<h5 class="modal-title" id="staticBackdropLabel">Pencairan Dana</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="card-body">
|
||||
<?php
|
||||
// ambil data server untuk script
|
||||
$ListServer = new Listdata();
|
||||
$ListServer->set_list("data_server", "WHERE id IN (" . $SvId . ")");
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label>Nama Server</label>
|
||||
<select class="form-control" id="idgetSaldo" name="idgetSaldo">
|
||||
<option value="0">-- PILIH --</option>
|
||||
<?php foreach ($ListServer->get_list() as $value): ?>
|
||||
<option value="<?= htmlspecialchars($value['id']) ?>">
|
||||
<?= htmlspecialchars($value['nama_server']) ?>
|
||||
</option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Saldo</label>
|
||||
<div id="saldoServer" class="mt-2 text-success font-weight-bold" style="font-size: 24px;">Rp. 0</div>
|
||||
</div>
|
||||
<div class="form-group" id="formNominal">
|
||||
<label>Nominal</label>
|
||||
<input type="text" class="form-control rupiah" id="rupiah0" placeholder="Rp. 0" name="nominal" disabled readonly>
|
||||
</div>
|
||||
<i class="text-danger">Dana bisa di cairkan jika Saldo lebih dari Rp 10.000</i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
<input type="submit" name="cairkan" class="btn btn-primary" value="Cairkan">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--END Modal WithDrow-->
|
||||
|
||||
<!--END Modal WithDrow-->
|
||||
<div class="modal fade" id="viewBuktiModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" style="max-width: fit-content; margin: auto;">
|
||||
<div class="modal-content border-0 bg-transparent shadow-none" style="width: auto;">
|
||||
<div class="position-relative d-inline-block">
|
||||
|
||||
<!-- Tombol Close -->
|
||||
<button type="button" class="close text-white position-absolute"
|
||||
data-dismiss="modal" aria-label="Close"
|
||||
style="top: 10px; right: 10px; filter: invert(1); z-index: 10;">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
|
||||
<!-- Gambar dari JS -->
|
||||
<img id="viewBuktiImg" src=""
|
||||
class="img-fluid rounded shadow d-block"
|
||||
alt="Bukti Transaksi" style="max-height: 600px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if (isset($_POST['cairkan'])) {
|
||||
|
||||
$SQLCek = "SELECT nama_server, rekening_bank, rekening_nama, rekening_nomor, rekening_status
|
||||
FROM data_server WHERE id = :idsv";
|
||||
$stmt = $pdo->prepare($SQLCek);
|
||||
$stmt->execute([':idsv' => $_POST['idgetSaldo']]);
|
||||
$rek_data = $stmt->fetch(PDO::FETCH_ASSOC); // ✅ fetch single row
|
||||
|
||||
if (!empty($rek_data['rekening_nama'])) {
|
||||
if ($rek_data['rekening_status'] == 'verificated') {
|
||||
|
||||
$nominal = preg_replace("/[^0-9]/", "", $_POST['nominal']);
|
||||
|
||||
$SQLCarikan = "INSERT INTO transaksi_withdraw
|
||||
(id_data_server, start_time, nominal, user_create, status, jenis) VALUES
|
||||
(:id_data_server, :start_time, :nominal, :user_create, 'pending', 'tagihan')";
|
||||
$stmt = $pdo->prepare($SQLCarikan);
|
||||
$stmt->bindValue(':id_data_server', $_POST['idgetSaldo'], PDO::PARAM_INT);
|
||||
$stmt->bindValue(':start_time', date('Y-m-d H:i:s')); // ✅ pakai bindValue
|
||||
$stmt->bindValue(':nominal', $nominal, PDO::PARAM_INT);
|
||||
$stmt->bindValue(':user_create', $SvNama, PDO::PARAM_STR); // pastikan $SvNama ada
|
||||
$stmt->execute();
|
||||
|
||||
$Pesanwarek = "*PERMINTAAN PENCAIRAN DANA*
|
||||
|
||||
Server : " . $rek_data['nama_server'] . "
|
||||
BANK : " . strtoupper($rek_data['rekening_bank']) . "
|
||||
Rekening : *" . $rek_data['rekening_nomor'] . "*
|
||||
Nama Rek : " . $rek_data['rekening_nama'] . "
|
||||
|
||||
Nominal : *" . $_POST['nominal'] . "*
|
||||
|
||||
|
||||
_# Manja ~ Notif_
|
||||
";
|
||||
$nomorWArek = ["6281298698422", "6285655548738"];
|
||||
$APIwa = new PesanWA();
|
||||
$APIwa->Send_Pesan('1','sendMessage',$nomorWArek,$Pesanwarek);
|
||||
|
||||
sweetAlert("BERHASIL.! Pencairan akan segera diproses, mohon tunggu.", "success");
|
||||
} else {
|
||||
sweetAlert("GAGAL.! Rekening anda sedang diverifikasi mohon ditunggu.", "error");
|
||||
}
|
||||
} else {
|
||||
sweetAlert("GAGAL.! Tidak ada rekening yang tersedia, silahkan isi rekening di Profile Master.", "error");
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
//Aktifkan Payment Gateway
|
||||
if (isset($_POST['active'])) {
|
||||
try {
|
||||
if(!empty($apikey) || !empty($tokenkey) || !empty($enpoint) ) {
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET status_payment_gateway = 'ACTIVE' WHERE id = :idtik");
|
||||
$stmt->bindParam(':idtik', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
sweetAlert("Payment Gateway Telah Di Aktifkan", "success");
|
||||
}
|
||||
else {
|
||||
sweetAlert("Gagal : Silahkan isi dulu API paramenter", "error");
|
||||
}
|
||||
if ($_POST['jenis'] === 'flip') {
|
||||
if ($apikey && $tokenkey && $enpoint) {
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET status_payment_gateway='ACTIVE' WHERE id=:id");
|
||||
$stmt->execute([':id' => $id]);
|
||||
sweetAlert("Payment Gateway Telah Di Aktifkan", "success");
|
||||
} else {
|
||||
sweetAlert("Gagal: Silahkan isi dulu API parameter", "error");
|
||||
}
|
||||
} elseif ($_POST['jenis'] === 'paydisini') {
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET status_payment_gateway='ACTIVE' WHERE id=:id");
|
||||
$stmt->execute([':id' => $id]);
|
||||
sweetAlert("Payment Gateway Telah Di Aktifkan", "success");
|
||||
} else {
|
||||
sweetAlert("Gagal: Anda belum menyimpan jenis Payment Gateway", "error");
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
sweetAlert("Gagal: " . $e->getMessage(), "error");
|
||||
sweetAlert("Gagal: " . $e->getMessage(), "error");
|
||||
}
|
||||
}
|
||||
//Non Aktifkan Payment Gateway
|
||||
@@ -140,13 +395,23 @@ $status = $data[0]['status_payment_gateway'];
|
||||
//Simpan data Payment gateway
|
||||
if (isset($_POST['simpan'])) {
|
||||
try {
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET payment_gateway = :payment_gateway, apikey_payment_gateway = :apikey_payment_gateway, url_payment_gateway = :url_payment_gateway, tokenkey_payment_gateway = :tokenkey_payment_gateway WHERE id = :idtik");
|
||||
$stmt->bindParam(':payment_gateway', $_POST['jenis']);
|
||||
$stmt->bindParam(':apikey_payment_gateway', $_POST['apikey']);
|
||||
$stmt->bindParam(':url_payment_gateway', $_POST['enpoint']);
|
||||
$stmt->bindParam(':tokenkey_payment_gateway', $_POST['tokenkey']);
|
||||
$stmt->bindParam(':idtik', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
if ($_POST['jenis'] === 'flip') {
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET payment_gateway = :payment_gateway, apikey_payment_gateway = :apikey_payment_gateway, url_payment_gateway = :url_payment_gateway, tokenkey_payment_gateway = :tokenkey_payment_gateway WHERE id = :idtik");
|
||||
$stmt->bindParam(':payment_gateway', $_POST['jenis']);
|
||||
$stmt->bindParam(':apikey_payment_gateway', $_POST['apikey']);
|
||||
$stmt->bindParam(':url_payment_gateway', $_POST['enpoint']);
|
||||
$stmt->bindParam(':tokenkey_payment_gateway', $_POST['tokenkey']);
|
||||
$stmt->bindParam(':idtik', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
}
|
||||
else {
|
||||
$adminpg = !empty($_POST['adminpg']) ? $_POST['adminpg'] : 2;
|
||||
$stmt = $pdo->prepare("UPDATE data_server SET payment_gateway = :payment_gateway, biaya_payment_gateway = :biaya_payment_gateway WHERE id = :idtik");
|
||||
$stmt->bindParam(':payment_gateway', $_POST['jenis']);
|
||||
$stmt->bindParam(':biaya_payment_gateway', $adminpg);
|
||||
$stmt->bindParam(':idtik', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
}
|
||||
sweetAlert("Payment Gateway telah ubah", "success");
|
||||
|
||||
} catch (PDOException $e) {
|
||||
@@ -154,22 +419,179 @@ $status = $data[0]['status_payment_gateway'];
|
||||
}
|
||||
}
|
||||
?>
|
||||
<script>
|
||||
document.querySelectorAll('.password-toggle').forEach(function(toggle) {
|
||||
toggle.addEventListener('click', function() {
|
||||
var targetId = this.getAttribute('data-target');
|
||||
var passwordInput = document.getElementById(targetId);
|
||||
var icon = this.querySelector('span');
|
||||
|
||||
if (passwordInput.type === 'password') {
|
||||
passwordInput.type = 'text';
|
||||
icon.classList.remove('fa-eye');
|
||||
icon.classList.add('fa-eye-slash');
|
||||
} else {
|
||||
passwordInput.type = 'password';
|
||||
icon.classList.remove('fa-eye-slash');
|
||||
icon.classList.add('fa-eye');
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const select = document.getElementById('getSelected');
|
||||
const container = document.querySelector('.Paykategori');
|
||||
|
||||
function loadFormPage(data) {
|
||||
fetch('controller/payment_gateway.php', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(data)
|
||||
})
|
||||
.then(res => res.text())
|
||||
.then(html => {
|
||||
container.innerHTML = html;
|
||||
|
||||
// Pasang password toggle setelah HTML dimasukkan
|
||||
container.querySelectorAll(".password-toggle").forEach(function(toggle) {
|
||||
toggle.addEventListener("click", function() {
|
||||
const targetId = this.getAttribute("data-target");
|
||||
const input = document.getElementById(targetId);
|
||||
const icon = this.querySelector("span");
|
||||
|
||||
if (!input) return;
|
||||
|
||||
if (input.type === "password") {
|
||||
input.type = "text";
|
||||
icon.classList.remove("fa-eye");
|
||||
icon.classList.add("fa-eye-slash");
|
||||
} else {
|
||||
input.type = "password";
|
||||
icon.classList.remove("fa-eye-slash");
|
||||
icon.classList.add("fa-eye");
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('Error:', err);
|
||||
container.innerHTML = "<p class='text-danger'>Terjadi kesalahan saat memuat data.</p>";
|
||||
});
|
||||
}
|
||||
|
||||
select.addEventListener('change', function() {
|
||||
const value = this.value;
|
||||
if (!value) {
|
||||
container.innerHTML = "";
|
||||
return;
|
||||
}
|
||||
|
||||
let data = { page: value };
|
||||
|
||||
// Jika flip, kirim juga endpoint, apikey, tokenkey
|
||||
if (value === "flip") {
|
||||
data.endpoint = "<?= $enpoint ?>"; // sesuaikan dari PHP
|
||||
data.apikey = "<?= $apikey ?>";
|
||||
data.tokenkey = "<?= $tokenkey ?>";
|
||||
}
|
||||
|
||||
loadFormPage(data);
|
||||
});
|
||||
|
||||
// Optional: trigger load jika ada yang sudah selected
|
||||
if (select.value) {
|
||||
select.dispatchEvent(new Event('change'));
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#withdrawTable').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"responsive": true,
|
||||
"ajax": {
|
||||
"url": "controller/get_withdrow.php?i=<?= $SvId; ?>&s=tagihan",
|
||||
"type": "POST"
|
||||
},
|
||||
"pageLength": 10,
|
||||
"columns": [
|
||||
{ "data": 0 }, // Server
|
||||
{ "data": 1 }, // Dibuat
|
||||
{ "data": 2 }, // Nominal
|
||||
{ "data": 3 }, // User
|
||||
{
|
||||
"data": 4, // Status
|
||||
"render": function(data, type, row, meta) {
|
||||
if (data === 'pending') {
|
||||
return `<span class="badge bg-primary p-2">${data.toUpperCase()}</span>`;
|
||||
} else {
|
||||
return `<span class="badge bg-success p-2">${data.toUpperCase()}</span>`;
|
||||
}
|
||||
}
|
||||
},
|
||||
{ "data": 5 }, // Diproses
|
||||
{
|
||||
"data": 6, // id unik
|
||||
"render": function(data, type, row, meta) {
|
||||
let btn = "";
|
||||
|
||||
if (row[4] === 'success') {
|
||||
btn += `<button class="btn btn-sm btn-secondary me-1" onclick="viewBukti('${data.bukti_success}')">
|
||||
<i class="fa fa-image"></i>
|
||||
</button>`;
|
||||
}
|
||||
|
||||
return btn;
|
||||
}
|
||||
}
|
||||
],
|
||||
"order": [[1, "desc"]] // urut berdasarkan Dibuat
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// function viewBukti Transaksi
|
||||
function viewBukti(imgPath) {
|
||||
$("#viewBuktiImg").attr("src", imgPath);
|
||||
$("#viewBuktiModal").modal("show");
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
var currentSaldo = 0; // simpan saldo terakhir
|
||||
|
||||
$("#idgetSaldo").on("change", function(){
|
||||
var serverId = $(this).val();
|
||||
var $nominalInput = $("#formNominal input");
|
||||
|
||||
if(serverId == 0){
|
||||
$("#saldoServer").html("Rp. 0");
|
||||
$nominalInput.prop("disabled", true).prop("readonly", true).val("");
|
||||
currentSaldo = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "controller/get_saldo.php",
|
||||
type: "GET",
|
||||
data: { id: serverId, s: '1' },
|
||||
dataType: "json",
|
||||
success: function(res){
|
||||
if(res && res.saldo !== undefined){
|
||||
currentSaldo = parseInt(res.saldo) || 0;
|
||||
$("#saldoServer").html("Rp. " + new Intl.NumberFormat().format(currentSaldo));
|
||||
|
||||
if(currentSaldo < 10000){
|
||||
$nominalInput.prop("disabled", true).prop("readonly", true).val("");
|
||||
} else {
|
||||
$nominalInput.prop("disabled", false).prop("readonly", false);
|
||||
}
|
||||
} else {
|
||||
$("#saldoServer").html("Rp. 0");
|
||||
$nominalInput.prop("disabled", true).prop("readonly", true).val("");
|
||||
currentSaldo = 0;
|
||||
}
|
||||
},
|
||||
error: function(){
|
||||
$("#saldoServer").html("Gagal mengambil saldo");
|
||||
$nominalInput.prop("disabled", true).prop("readonly", true).val("");
|
||||
currentSaldo = 0;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
// Cek saat user input nominal
|
||||
$("#formNominal input").on("input", function(){
|
||||
var val = parseInt($(this).val().replace(/\D/g, '')) || 0; // ambil angka aja
|
||||
if(val > currentSaldo){
|
||||
val = currentSaldo; // batasin maksimal saldo
|
||||
}
|
||||
$(this).val(val); // set kembali ke input
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user