Update Banyak
This commit is contained in:
+8
-2
@@ -115,9 +115,15 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<?php if($jenisAgen == 'Prabayar') { ?>
|
||||
<?php if($jenisAgen == 'Prabayar') {
|
||||
if ($payGateway['payment_gateway'] == 'paydisini' && $payGateway['status_payment_gateway'] == 'ACTIVE') {
|
||||
$pageSaldo = 'isi_saldo_paydisini';
|
||||
} else {
|
||||
$pageSaldo = 'isi_saldo';
|
||||
}
|
||||
?>
|
||||
<div class="col-4 p-2">
|
||||
<a href="?<?php echo base64_encode('isi_saldo'); ?>">
|
||||
<a href="?<?php echo base64_encode($pageSaldo); ?>">
|
||||
<div class="card text-dark animated-link" style="border-radius: 15px;">
|
||||
<center>
|
||||
<img src="images/wallet.png" width="50px" class="mt-3 mb-2">
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
<?php
|
||||
// require __DIR__ . "/../payment/paydisini/api_control.php";
|
||||
// require __DIR__ . "/../payment/client/intruksi_pay.php";
|
||||
require __DIR__ . "/payment/paydisini/proses.php";
|
||||
|
||||
$stmt = $pdo->prepare("SELECT * FROM agen_tambah_saldo WHERE id_agen_voucher = :id_agen_voucher AND status_payment != 'SUCCESS' ORDER BY id DESC LIMIT 1");
|
||||
$stmt->bindParam(':id_agen_voucher', $_SESSION['agen'], PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$dataGet = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
?>
|
||||
|
||||
<nav class="navbar fixed-top">
|
||||
<div id="specificCard" class="card col-12" style="border-radius: 20px; background: none; border: none; margin-top: 10px;">
|
||||
<div class="row">
|
||||
<div class="col-6 icon-container">
|
||||
<a href="index.php" class="fa fa-arrow-left text-light"></a>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<h6 class="text-light mt-2 mb-2">Isi Saldo</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="card" style="border-radius: 0px; background: none; border: none; margin-top: 70px; margin-bottom: 20px;">
|
||||
<div class="card-body">
|
||||
<?php if($jenisAgen == 'Prabayar') { ?>
|
||||
<div style="text-align: center; color: #fff;">
|
||||
<p>Saldo Anda</p>
|
||||
|
||||
<div style="display: inline-flex; align-items: center; justify-content: center;">
|
||||
<h1 style="font-size: 36px; color: #fff; margin: 0;">
|
||||
<small>Rp. </small>
|
||||
<b id="saldoValue"><?php echo number_format($pcmem['saldo']); ?></b>
|
||||
</h1>
|
||||
<a onclick="toggleSaldo()" style="background: none; border: none; margin-left: 10px; cursor: pointer;">
|
||||
<i id="iconEye" class="fa fa-eye text-light" style="font-size: 24px;"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php } else { ?>
|
||||
<center>
|
||||
<p style="color: #fff;">Total Transaksi Belum Di Bayar</p>
|
||||
<h1 style="font-size: 36px; color: #fff;"><small>Rp. </small><b><?php echo substr(number_format($pcmem['saldo']),1); ?></b></h1>
|
||||
</center>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card" id="2" style="border-top-right-radius: 40px; border-top-left-radius: 40px; min-height: 850px; border: none; z-index: 1;">
|
||||
<div class="card-body" style="margin: 20px;">
|
||||
<?php if(!empty($dataGet['nominal'])) { ?>
|
||||
<div class="text-center">
|
||||
<h4><?= "Rp. ". number_format($dataGet['nominal']); ?></h4>
|
||||
<hr>
|
||||
</div>
|
||||
<div class="payment-card">
|
||||
<?php
|
||||
|
||||
echo getListPembayaran($pelanggan['id']);
|
||||
// if ($pelanggan['status'] == 'SUCCESS') {
|
||||
// echo getStatus($pelanggan);
|
||||
// }
|
||||
// elseif ($pelanggan['status'] == 'PENDING') {
|
||||
// $data_get = json_decode($pelanggan['data_get'], true);
|
||||
// $expired = $data_get['data']['expired'] ?? null;
|
||||
// // $expired = date('Y-m-d 18:47:10');
|
||||
|
||||
// if (!empty($expired) && $expired <= date('Y-m-d H:i:s')) {
|
||||
// echo getListPembayaran($pelanggan['id']);
|
||||
// } else {
|
||||
// echo getIntruksi($pelanggan['data_get']);
|
||||
// }
|
||||
// }
|
||||
// else {
|
||||
// echo getListPembayaran($pelanggan['id']);
|
||||
// }
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php } else { ?>
|
||||
<form method="post">
|
||||
<div class="form-group">
|
||||
<label>Masukan Nominal</label>
|
||||
<input type="text" class="form-control rupiah" id="rupiah0" name="nominal" required="required">
|
||||
<i class="text-danger">Untuk isi saldo minimal Rp. 25,000</i>
|
||||
</div><br>
|
||||
<input type="submit" name="tambah_saldo" value="Tambah Saldo" class="btn btn-warning btn-md btn-block" style="border-radius: 30px;" >
|
||||
</form>
|
||||
<?php } ?>
|
||||
<div class="mt-4">
|
||||
<hr>
|
||||
<center>
|
||||
<p>Riwayat isi saldo otomatis</p>
|
||||
</center>
|
||||
<table class="table">
|
||||
<?php
|
||||
$stmt2 = $pdo->prepare("SELECT * FROM agen_tambah_saldo WHERE id_agen_voucher = :id_agen_voucher AND status_payment != 'PENDING' ORDER BY waktu DESC, id DESC");
|
||||
$stmt2->bindParam(':id_agen_voucher', $_SESSION['agen'], PDO::PARAM_INT);
|
||||
$stmt2->execute();
|
||||
while($saldo = $stmt2->fetch(PDO::FETCH_ASSOC)) { ?>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $saldo['waktu']; ?>
|
||||
<p><b>Rp. <?php echo number_format($saldo['nominal']); ?></b></p>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<?php echo $saldo['status_payment']; ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<?php } ?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (isset($_POST['tambah_saldo'])) {
|
||||
try {
|
||||
|
||||
$nominal = preg_replace("/[^0-9]/", "", $_POST['nominal']);
|
||||
|
||||
if($nominal >= 25000) {
|
||||
$waktu = date('Y-m-d H:i:s');
|
||||
$keterangan = "Tambah saldo agen voucher";
|
||||
|
||||
// print_r($response);
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO agen_tambah_saldo (id_data_server, id_agen_voucher, nominal, waktu, keterangan, status_payment)
|
||||
VALUES (:id_data_server, :id_agen_voucher, :nominal, :waktu, :keterangan, 'PENDING')");
|
||||
$stmt->bindParam(':id_data_server', $pcmem['id_data_server'], PDO::PARAM_INT);
|
||||
$stmt->bindParam(':id_agen_voucher', $_SESSION['agen'], PDO::PARAM_INT);
|
||||
$stmt->bindParam(':nominal', $nominal, PDO::PARAM_INT); // Pastikan nominal di-bind sebagai integer
|
||||
$stmt->bindParam(':waktu', $waktu);
|
||||
$stmt->bindParam(':keterangan', $keterangan);
|
||||
$stmt->execute();
|
||||
|
||||
sweetAlert("Permintaan Tambah Saldo Berhasil", "success");
|
||||
} else {
|
||||
sweetAlert("Nominal yang anda masukan kurang dari Rp. 25,000", "error");
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
// Menangani kesalahan saat eksekusi
|
||||
sweetAlert("Terjadi kesalahan: " . htmlspecialchars($e->getMessage()), "error");
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['ubah_moninal'])) {
|
||||
try {
|
||||
|
||||
$nominal = preg_replace("/[^0-9]/", "", $_POST['nominal']);
|
||||
|
||||
if($nominal >= 25000) {
|
||||
|
||||
$stmt = $pdo->prepare("UPDATE agen_tambah_saldo SET nominal = :nominal, url_payment = :url_payment, status_payment = :status_payment WHERE id_payment = :id_payment");
|
||||
$stmt->bindParam(':id', $ada['id_payment']);
|
||||
// Eksekusi statement
|
||||
$stmt->execute();
|
||||
|
||||
sweetAlert("Nominal Permintaan telah di ubah", "success");
|
||||
} else {
|
||||
sweetAlert("Nominal yang anda masukan kurang dari Rp. 25,000", "error");
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
// Menangani kesalahan saat eksekusi
|
||||
sweetAlert("Terjadi kesalahan: " . htmlspecialchars($e->getMessage()), "error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<script>
|
||||
let isVisible = false; // Default: tersembunyi
|
||||
const originalSaldo = "<?php echo number_format($pcmem['saldo']); ?>";
|
||||
|
||||
function toggleSaldo() {
|
||||
const saldoValue = document.getElementById('saldoValue');
|
||||
const iconEye = document.getElementById('iconEye');
|
||||
|
||||
if (!isVisible) {
|
||||
// Sembunyikan
|
||||
saldoValue.textContent = "••••••••••••";
|
||||
iconEye.classList.remove("fa-eye");
|
||||
iconEye.classList.add("fa-eye-slash");
|
||||
} else {
|
||||
// Tampilkan
|
||||
saldoValue.textContent = originalSaldo;
|
||||
iconEye.classList.remove("fa-eye-slash");
|
||||
iconEye.classList.add("fa-eye");
|
||||
}
|
||||
|
||||
isVisible = !isVisible;
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
function getListPembayaran($idTagihan) {
|
||||
return '
|
||||
<!-- Pilihan Metode -->
|
||||
<div id="pilihanMetode">
|
||||
<h6 class="mb-3">Metode Pembayaran</h6>
|
||||
|
||||
<div id="accordionMetode">
|
||||
<!-- Virtual Account -->
|
||||
<div class="card">
|
||||
<div class="card-header p-0" id="headingVA">
|
||||
<h5 class="mb-0">
|
||||
<button class="btn btn-link w-100 text-left collapsed" type="button"
|
||||
data-toggle="collapse" data-target="#collapseVA"
|
||||
aria-expanded="false" aria-controls="collapseVA">
|
||||
<span class="d-flex justify-content-between align-items-center">
|
||||
<span class="fw-semibold">Virtual Account</span>
|
||||
<span class="accordion-icons">
|
||||
<span class="bank-icon-box"><img src="https://manjapro.net/dist/img/bri.png" alt="BRI"></span>
|
||||
<span class="bank-icon-box"><img src="https://manjapro.net/dist/img/bni.png" alt="BNI"></span>
|
||||
<span class="bank-icon-box"><img src="https://manjapro.net/dist/img/mandiri.png" alt="Mandiri"></span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseVA" class="collapse" aria-labelledby="headingVA" data-parent="#accordionMetode">
|
||||
<div class="card-body p-0">
|
||||
<ul class="list-group list-group-flush bank-list">
|
||||
<li class="list-group-item">
|
||||
<a class="list-btn pay-method" onclick="pilihMetode(\'Virtual Account\', \'BRI\', \'https://manjapro.net/dist/img/bri.png\')">
|
||||
<div class="bank-logo-box"><img src="https://manjapro.net/dist/img/bri.png" alt="BRI"></div>
|
||||
<span class="bank-name">BRI VA</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<a class="list-btn pay-method" onclick="pilihMetode(\'Virtual Account\', \'BNI\', \'https://manjapro.net/dist/img/bni.png\')">
|
||||
<div class="bank-logo-box"><img src="https://manjapro.net/dist/img/bni.png" alt="BNI"></div>
|
||||
<span class="bank-name">BNI VA</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<a class="list-btn pay-method" onclick="pilihMetode(\'Virtual Account\', \'Mandiri\', \'https://manjapro.net/dist/img/mandiri.png\')">
|
||||
<div class="bank-logo-box"><img src="https://manjapro.net/dist/img/mandiri.png" alt="Mandiri"></div>
|
||||
<span class="bank-name">Mandiri VA</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- E-Wallet & QRIS -->
|
||||
<div class="card">
|
||||
<div class="card-header p-0" id="headingQRIS">
|
||||
<h5 class="mb-0">
|
||||
<button class="btn btn-link w-100 text-left collapsed" type="button"
|
||||
data-toggle="collapse" data-target="#collapseQRIS"
|
||||
aria-expanded="false" aria-controls="collapseQRIS">
|
||||
<span class="d-flex justify-content-between align-items-center">
|
||||
<span class="fw-semibold">E-Wallet & QRIS</span>
|
||||
<span class="accordion-icons">
|
||||
<span class="bank-icon-box"><img src="https://manjapro.net/dist/img/qris.png" alt="QRIS"></span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseQRIS" class="collapse" aria-labelledby="headingQRIS" data-parent="#accordionMetode">
|
||||
<div class="card-body p-0">
|
||||
<ul class="list-group list-group-flush bank-list">
|
||||
<li class="list-group-item">
|
||||
<a class="list-btn pay-method" onclick="pilihMetode(\'E-Wallet & QRIS\', \'QRIS\', \'https://manjapro.net/dist/img/qris.png\')">
|
||||
<div class="bank-logo-box"><img src="https://manjapro.net/dist/img/qris.png" alt="QRIS"></div>
|
||||
<span class="bank-name">QRIS</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="metodeTerpilih" class="d-none">
|
||||
<div class="method-card method-selected">
|
||||
<div class="bank-logo-box" style="margin-top: 0px;">
|
||||
<img src="https://manjapro.net/dist/img/qris.png" id="metodeLogo">
|
||||
</div>
|
||||
<span class="bank-name" id="metodeText"></span>
|
||||
<button type="button" class="btn btn-sm ubah-btn" onclick="ubahMetode()" style="font-size: 105%; color: #ff7f11;"><strong>Ubah</strong></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="btnBayar" class="btn btn-orange w-100 d-none" onclick="bayar()">Bayar</button>
|
||||
|
||||
<script>
|
||||
let metodeDipilih = "";
|
||||
let metodeService = "";
|
||||
let imgMetode = "";
|
||||
const idTagihan = '.$idTagihan.';
|
||||
|
||||
function pilihMetode(metode, service, logo){
|
||||
metodeDipilih = metode;
|
||||
metodeService = service;
|
||||
imgMetode = logo;
|
||||
|
||||
document.getElementById("pilihanMetode").classList.add("d-none");
|
||||
document.getElementById("metodeTerpilih").classList.remove("d-none");
|
||||
document.getElementById("metodeText").innerHTML = metode + "<br>" + service;
|
||||
document.getElementById("metodeLogo").src = logo;
|
||||
document.getElementById("btnBayar").classList.remove("d-none");
|
||||
}
|
||||
|
||||
function ubahMetode(){
|
||||
metodeDipilih = "";
|
||||
metodeService = "";
|
||||
document.getElementById("pilihanMetode").classList.remove("d-none");
|
||||
document.getElementById("metodeTerpilih").classList.add("d-none");
|
||||
document.getElementById("btnBayar").classList.add("d-none");
|
||||
}
|
||||
|
||||
function bayar(){
|
||||
if(metodeDipilih !== ""){
|
||||
let btn = document.getElementById("btnBayar");
|
||||
btn.disabled = true;
|
||||
btn.innerText = "Memproses...";
|
||||
|
||||
fetch("/proses.php", {
|
||||
method: "POST",
|
||||
headers: {"Content-Type": "application/x-www-form-urlencoded"},
|
||||
body: "action=bayar"
|
||||
+ "&paymentMethod=" + encodeURIComponent(metodeService)
|
||||
+ "&idTagihan=" + encodeURIComponent(idTagihan)
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(data => {
|
||||
btn.disabled = false;
|
||||
btn.innerText = "Bayar Sekarang";
|
||||
if(data.success){
|
||||
window.location.reload();
|
||||
} else {
|
||||
alert("Gagal: " + (data.message || "Terjadi kesalahan"));
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
btn.disabled = false;
|
||||
btn.innerText = "Bayar Sekarang";
|
||||
console.error(err);
|
||||
alert("Terjadi error saat menghubungi server.");
|
||||
});
|
||||
|
||||
} else {
|
||||
alert("Silakan pilih metode pembayaran terlebih dahulu!");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
';
|
||||
}
|
||||
Reference in New Issue
Block a user