Aplikasi Pembayaran SPP Berbasis Web Part 12 - Tahun Ajaran Baru #1

 

Aplikasi pembayaran spp berbasis web #12

Hai, masih dalam lanjutan pembuatan Aplikasi Pembayaran SPP Berbasis Web yang tadinya hanya sampai part 10, tapi karena ada permintaan dari teman-teman maka dibuatlah artikel ini.

Dalam artikel ini kita akan membuat fitur Tahun Ajaran Baru, dimana ketika fitur ini dijalankan maka akan menambahkan data siswa dan data pembayaran untuk siswa kelas X (sepuluh) dan XI (sebelas) saja.

Pada part ini akan lakukan perubahan pada database dan beberapa file .php yang sudah dibuat, diantaranya:

Tambahan kolom dan file .php, diantaranya:

tb_siswa

Ada sedikit tambahan pada tb_siswa, yaitu menambahkan kolom id_siswa didalamnya, ini akan mempengaruhi pada proses CRUD data siswa yang sebelumnya menggunakan nisn untuk menentukan suatu kriteria.

Berikut adalah gambar struktur tb_siswa yang baru:

Aplikasi pembayaran spp berbasis web #12

header.php

Tambahkan baris kode berikut setelah list menu Laporan Pembayaran:
<li><a href="?p=tab" onclick="return confirm('Buat data tahun ajaran baru?')">Tahun Ajaran Baru</li>
Sehingga akan nampak seperti berikut:
<ul style="display:flex; list-style:none;">
			<li><b>Aplikasi Pembayaran SPP</b></li>
			<li><a href="?p=siswa">Data Siswa</a></li>
			<li><a href="?p=petugas">Data Petugas</a></li>
			<li><a href="?p=spp">Data SPP</a></li>
			<li><a href="?p=laporan">Laporan Pembayaran</a></li>
			<li><a href="?p=tab" onclick="return confirm('Buat data tahun ajaran baru?')">Tahun Ajaran Baru</li>
			<li><a href="?p=logout">Logout</a></li>
		</ul>

index.php

Pada file ini kita tambahkan kondisi untuk menu tahun ajaran baru, dimana kita akan melakukan pengecekan tahun ajaran.

Jika tahun ajaran baru belum ada dalam data spp maka akan menampilkan pesan agar membuat data baru pada data spp.

Letakan kode berikut setelah kondisi laporan pembayaran atau sebelum kondisi untuk logout.
elseif($_GET['p'] == 'tab') {
		// langsung jalankan fungsi tambah data ajaran baru

		$thnAjar = $admin->cekTahunAjaran();
		$thnAjar = mysqli_fetch_array($thnAjar);

		$thnSPP = $admin->getMaxTahunSPP();
		$thnSPP = mysqli_fetch_array($thnSPP);

		if ($thnAjar < $thnSPP) {
			// panggil halaman tahun ajaran baru
			$status = true;
			require_once "tahun-ajaran-baru.php";
		} else {
			$status = false;
			echo "<script>alert('Data SPP untuk tahun ajaran baru belum dibuat'); window.location.href='?p=spp'</script>";
		}

	}

Admin.php

Sudah dijelaskan diatas, karena kita menambahkan id_siswa dan akan merubah semua kriteria yang tadinya berdasarkan nisn menjadi id_siswa, maka method yang ada hubungannya dengan tb_siswa juga ikut diubah.

Berikut kode lengkapnya:
<?php

require_once '../../config/Koneksi.php';

class Admin extends Koneksi {
	public function getDataPetugas($id) {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_petugas WHERE id_petugas = '" . $id . "'");

		return $stmt;
	}

	public function getAllDataPetugas() {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_petugas");

		return $stmt;
	}

	public function tambahDataPetugas($nama, $username, $password, $level) {
		$stmt = mysqli_query($this->konek, "INSERT INTO tb_petugas VALUES ('', '$username', '$password', '$nama', '$level')");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function ubahDataPetugas($nama, $username, $password, $level, $id) {
		$stmt = mysqli_query($this->konek, "UPDATE tb_petugas SET nama_petugas = '$nama', username = '$username', password = '$password', level = '$level' WHERE id_petugas = '$id'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function hapusDataPetugas($id) {
		$stmt = mysqli_query($this->konek, "DELETE FROM tb_petugas WHERE id_petugas = '$id'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function getDataSPP() {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_spp ORDER BY tahun ASC");

		return $stmt;
	}

	public function tambahDataSPP($tahun, $nominal) {
		$stmt = mysqli_query($this->konek, "INSERT INTO tb_spp VALUES ('', '" . $tahun . "', '" . $nominal . "')");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function getDataSPPbyId($id) {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_spp WHERE id_spp = '".$id."'");

		return $stmt;
	}

	public function ubahDataSPP($tahun, $nominal, $id) {
		$stmt = mysqli_query($this->konek, "UPDATE tb_spp SET tahun = '".$tahun."', nominal = '".$nominal."' WHERE id_spp = ".$id);

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function hapusDataSPP($id) {
		$stmt = mysqli_query($this->konek, "DELETE FROM tb_spp WHERE id_spp = ".$id);

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function getDataSiswa() {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa INNER JOIN tb_spp ON tb_siswa.id_spp = tb_spp.id_spp ORDER BY NISN ASC");

		return $stmt;
	}

	public function cekDataSiswa($nisn, $nis) {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE nisn = '$nisn' OR nis = '$nis'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function tambahDataSiswa($nisn, $nis, $nama, $kelas, $tahun) {
		$stmt = mysqli_query($this->konek, "INSERT INTO tb_siswa VALUES ('', '$nisn', '$nis', '$nama', '$kelas', '$tahun')");

		if ($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function getDataSiswaById($id_siswa) {
		$stmt = mysqli_query($this->konek, "SELECT * FROM tb_siswa WHERE id_siswa = '$id_siswa'");

		return $stmt;
	}

	public function ubahDataSiswa($id_siswa, $nis, $nama, $kelas, $tahun, $nisn) {
		$stmt = mysqli_query($this->konek, "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.id_siswa = '$id_siswa'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function hapusDataSiswa($id_siswa) {
		$stmt = mysqli_query($this->konek, "DELETE FROM tb_siswa WHERE id_siswa = '$id_siswa'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function tambahDataPembayaran($nisn, $bulan, $id_spp) {
		$stmt = mysqli_query($this->konek, "INSERT INTO tb_pembayaran (nisn, bulan_dibayar, id_spp) VALUES ('$nisn', '$bulan', '$id_spp')");

		if ($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function hapusDataPembayaran($nisn) {
		$stmt = mysqli_query($this->konek, "DELETE FROM tb_pembayaran WHERE nisn = '$nisn'");

		if($stmt) {
			return true;
		} else {
			return false;
		}
	}

	public function getDataPembayaranPerPeriode($date1, $date2) {
		$stmt = mysqli_query($this->konek, "SELECT s.nisn, p.tgl_bayar, spp.tahun, spp.nominal FROM tb_siswa AS s INNER JOIN tb_pembayaran AS p ON s.nisn = p.nisn INNER JOIN tb_spp AS spp ON p.id_spp = spp.id_spp WHERE p.tgl_bayar BETWEEN '$date1' and '$date2'");

		return $stmt;
	}

	public function cekTahunAjaran() {
		$stmt = mysqli_query($this->konek, "SELECT MAX(spp.tahun) AS MaxTahun FROM tb_siswa AS s INNER JOIN tb_spp AS spp WHERE s.id_spp = spp.id_spp");

		return $stmt;
	}

	public function getMaxTahunSPP() {
		$stmt = mysqli_query($this->konek, "SELECT MAX(tahun) FROM tb_spp");

		return $stmt;
	}

	public function tahunAjaranBaru() {
		$stmt = mysqli_query($this->konek, "SELECT nisn, nis, nama_lengkap, MAX(kelas) AS kelas, id_spp FROM tb_siswa GROUP BY nisn");

		return $stmt;
	}
}

Agak sedikit panjang kan ya! :D Okeh, kita lanjutkan.

tb_kelas

Buat tabel baru dengan nama tb_kelas, strukturnya akan seperti berikut:

Aplikasi pembayaran spp berbasis web #12

dan tambahkan 3 record didalamnya untuk masing-masing kelas (X, XI dan XII).

Aplikasi pembayaran spp berbasis web #12

tahun-ajaran-baru.php

File ini digunakan untuk proses penggandaan data siswa kelas X dan XI, sebagai contoh, data siswa kelas X akan digandakan tetapi pada kolom kelas akan berubah menjadi kelas XI, begitupun dengan kelas XI, akan menjadi kelas XII.
<?php
  if ($status) {
    $d = $admin->tahunAjaranBaru();

    while ($r = mysqli_fetch_assoc($d)) 
      // print_r($r);

      if ($r['kelas'] == 1 || $r['kelas'] == 2) {
        $kelas = $r['kelas'] + 1;

        if($admin->tambahDataSiswa($r['nisn'], $r['nis'], $r['nama_lengkap'], $kelas, $r['id_spp']))
        {
          $bulan[] = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'];

          for ($i=0; $i < 12; $i++) { 
            $admin->tambahDataPembayaran($r['nisn'], $bulan[0][$i], $r['id_spp']);
          }
        echo "<script>alert('Data tahun ajaran baru berhasil dibuat'); window.location.href = '?p=siswa'</script>";
        }
        else
        {
          echo "<script>alert('Data tahun ajaran baru berhasil dibuat'); window.location.href = '?p=siswa'</script>";
        }
      }
    }
  }
?>

Posting Komentar

0 Komentar