Source Code Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL #9 - Proses Bayar

Aplikasi Pembayaran SPP Berbasis Web Part 9

Aplikasi Pembayaran SPP - Hai, berjumpa lagi dalam pembuatan Aplikasi Pembayaran SPP Berbasis Web dengan PHP dan MySQL.

Pada part 9 ini masih dalam menu Transaksi, kita akan menambahkan kode untuk proses bayar. Ketika tombol bayar diklik maka tombol bayar akan berganti dengan tombol batal dan cetak.


File baru didalam folder petugas:
  • proses-transaksi.php

Method baru pada class Petugas:
  • prosesBayar()

Pertama buka file index.php yang ada pada folder petugas, lalu ubah tanda pagar (#) pada link tombol Bayar.
<a href="proses-transaksi.php?act=bayar&id='.$dt['id_pembayaran'].'"><button>Bayar</button></a>

Lalu buka file Petugas.php dan tambahkan method baru didalam class Petugas.
public function prosesBayar($tgl_bayar, $id_petugas, $id_pembayaran) {
  $stmt = mysqli_query($this->konek, "UPDATE tb_pembayaran SET tgl_bayar = '$tgl_bayar', keterangan = 'Lunas', id_petugas = '$id_petugas' WHERE id_pembayaran = $id_pembayaran");

  return $stmt;
 }

Kode diatas digunakan untuk mengubah nilai tgl_bayar, keterangan dan id_petugas yang semula bernilai kosong.

Masih dalam file Petugas.php, ubah query pada method getPembayaranByNISN() atau tepatnya tambahkan p.id_pembayaran dan ubah angka 124124 menjadi $nisn sehingga menjadi seperti berikut.
SELECT p.id_pembayaran, p.bulan_dibayar, s.tahun, s.nominal, p.tgl_bayar, p.keterangan, pt.nama_petugas FROM tb_pembayaran AS p INNER JOIN tb_spp AS s ON p.id_spp = s.id_spp LEFT JOIN tb_petugas AS pt ON p.id_petugas = pt.id_petugas WHERE p.nisn = '$nisn' ORDER BY p.id_pembayaran ASC



proses-transaksi.php

<?php
session_start();
require_once 'Petugas.php';

$petugas = new Petugas;

if(!isset($_SESSION['id'])) {
 header('Location: ../');
} else {
 if($_GET['act'] == 'bayar') {
  // ambil id_pembayaran dari url
  $id_pembayaran = $_GET['id'];
  // tanggal bayar (hari ini)
  $tgl_bayar = date('Y-m-d');
  // dapatkan id_petugas yang saat ini login
  $id_petugas = $_SESSION['id'];

  $bayar = $petugas->prosesBayar($tgl_bayar, $id_petugas, $id_pembayaran);

  if($bayar) {
   $_SESSION['pesan'] = 'Pembayaran sukses';
   header('Location: index.php?nis='.$_SESSION['nis']);
  } else {
   $_SESSION['pesan'] = 'Pembayaran gagal';
   header('Location: index.php?nis='.$_SESSION['nis']);
  }
 } elseif($_GET['act'] == 'batal') {
  $id_pembayaran = $_GET['id'];

  $batal = $petugas->batalBayar($id_pembayaran);

  if($batal) {
   $_SESSION['pesan'] = 'Pembayaran dibatalkan';
   header('Location: index.php?nis='.$_SESSION['nis']);
  } else {
   $_SESSION['pesan'] = 'Pembayaran gagal dibatalkan';
   header('Location: index.php?nis='.$_SESSION['nis']);
  }
 }
}

Nah, sekarang tombol Bayar sudah berfungsi, ketika kita klik Bayar maka nilai untuk Tgl. Bayar, Keterangan dan Nama Petugas muncul dan tombol Bayar berganti dengan tombol Batal dan Cetak.

Untuk artikel selanjutnya kita akan menambahkan kode untuk tombol Batal dan Cetak. Terimakasih sudah mampir dan sampai jumpa.

Posting Komentar

3 Komentar

  1. Om, kok ketika saya ubah tahun spp yang ada di data siswa, ketika melakukan transaksi di halaman petugas, masih menampilkan data tahun spp siswa yang sebelum di edit

    BalasHapus
    Balasan
    1. Iya bang, emang begitu, kalo pengen data tahun yang dihalaman pembayarannya ikut rubah bisa diubah query di method ubahDataSiswa() yg ada dalam file Admin.php, Jadi kita melakukan perubahan id_spp di 2 tabel (tb_siswa dan tb_pembayaran).

      Berikut querynya:
      UPDATE tb_siswa AS s, tb_pembayaran AS p SET s.nis = '$nis', s.nama_lengkap = '$nama', s.kelas = '$kelas', s.id_spp = '$tahun', p.id_spp = '$tahun' WHERE s.nisn = '$nisn'

      Hapus
    2. nah itu, bingung querynya...

      terima kasih, nanti saya coba querynya

      Hapus