BAB 6 Transaksi Peminjaman Buku
6.4 Status Pinjaman Selesai
Setelah sebelumnya kita selesai membuat proses menampilkan data peminjaman, membuat proses penginputan data peminjaman buku, dan kita juga telah membuat pembatalan peminjaman. selanjutnya pada sub judul ini kita akan membuat proses selesai pada transaksi peminjaman buku. Perhatikan pada tombol “selesai” yang
68
telah kita buat pada data peminjaman buku. Di sini saya telah menambahkan beberapa data peminjaman, untuk contoh data yang akan diproses.
pada tombol “selesai” telah kita buat akan dialihkan ke function peminjaman_selesai() pada controller Petugas.php sambil mengirimkan id peminjaman yang akan di proses (selesai).
Buat sebuah function baru lagi pada controller Petugas.php, yaitu function peminjaman_selesai().
Application/controllers/Petugas.php
function peminjaman_selesai($id){
$where = array(
'peminjaman_id' => $id );
// mengambil data buku pada peminjaman ber id tersebut
$data = $this->m_data->edit_data($where,'peminjaman')->row();
$buku = $data->peminjaman_buku;
// mengembalikan status buku kembali ke tersedia (1) $w = array(
'id' => $buku );
$d = array(
'status' => 1 );
$this->m_data->update_data($w,$d,'buku');
// mengubah status peminjaman menjadi selesai (1)
$this->m_data->update_data($where,array('peminjaman_status'=>1),'peminjaman');
// mengalihkan halaman ke halaman data buku redirect(base_url().'petugas/peminjaman');
}
69
Perhatikan pada method yang kita buat di atas. Pada method peminjaman_selesai() kita mengupdate status buku yang dipinjam menjadi 1 (tersedia). Dan kemudian kita juga mengupdate status peminjaman menjadi 1 (selesai). Dan terakhir kita alihkan halaman kembali ke halaman peminjaman. Sekarang mari kita coba klik “selesai”
pada transaksi peminjaman buku nomor 2, yaitu peminjaman yang di lakukan oleh anggota yang bernama “Ishak Yamali”.
maka status data peminjaman akan menjadi seperti berikut.
jika proses peminjaman telah selesai, maka tombol “batalkan” dan tombol “selesai”
tidak lagi muncul seperti pengecekan yang telah kita buat pada view v_peminjaman.php.
Filter Dan Cetak Laporan Peminjaman Buku
Setelah selesai membuat proses peminjaman buku, selanjutnya kita akan membuat filter laporan peminjaman buku berdasarkan tanggal dan membuat cetak laporannya. Perhatikan pada menu “Laporan Peminjaman”. Pada menu tersebut
70
sudah kita buat link yang mengarahkan halaman ke method peminjaman_laporan() pada controller Petugas.php.
<a class="nav-link" href="<?php echo base_url().'petugas/peminjaman_laporan';
?>"><i class="fa fa-book"></i> Laporan Peminjaman</a>
Jadi sekarang buat sebuah method baru lagi dengan nama peminjaman_laporan() pada controller Petugas.php. pada method peminjaman_laporan() ini akan kita buat form untuk memfilter tanggal berapa sampai tanggal berapa transaksi peminjaman ingin dicetak.
Application/controllers/Petugas.php
function peminjaman_laporan(){
if(isset($_GET['tanggal_mulai']) &&
isset($_GET['tanggal_sampai'])){
$mulai = $this->input->get('tanggal_mulai');
$sampai = $this->input->get('tanggal_sampai');
// mengambil data peminjaman berdasarkan tanggal mulai sampai tanggal sampai
$data['peminjaman'] = $this->db->query("select * from peminjaman,buku,anggota where peminjaman.peminjaman_buku=buku.id and
peminjaman.peminjaman_anggota=anggota.id and date(peminjaman_tanggal_mulai)
>= '$mulai' and date(peminjaman_tanggal_mulai) <= '$sampai' order by peminjaman_id desc")->result();
}else{
// mengambil data peminjaman buku dari database | dan mengurutkan data dari id peminjaman terbesar ke terkecil (desc) $data['peminjaman'] = $this->db->query("select * from peminjaman,buku,anggota where peminjaman.peminjaman_buku=buku.id and peminjaman.peminjaman_anggota=anggota.id order by peminjaman_id
desc")->result();
}
$this->load->view('petugas/v_header');
$this->load->view('petugas/v_peminjaman_laporan',$data);
$this->load->view('petugas/v_footer');
}
Perhatikan pada syntax di atas. Kita membuat pengecekan jika terdapat data GET tanggal_mulai dan GET tanggal_sampai, maka query yang kita jalankan adalah query yang memfilter data peminjaman berdasarkan tanggal. Jika tidak maka tampilkan semua data peminjaman.
Selanjutnya data yang kita dapat dari query tersebut kita parsing ke view v_peminjaman_laporan.php. karena kita akan menampilkan datanya dan membuat form filter tanggalnya pada view v_peminjaman_laporan.php tersebut.
71
<div class="card-header text-center">
<h4>Laporan Peminjaman Buku</h4>
</div>
<div class="card-body">
<br/>
name="tanggal_mulai" placeholder="Masukkan tanggal mulai pinjam">
</div>
<div class="form-group">
<label class="font-weight-bold"
for="tanggal_sampai">Tanggal Pinjam Sampai</label>
<input type="date" class="form-control"
name="tanggal_sampai" placeholder="Masukkan tanggal pinjam sampai">
</div>
if(isset($_GET['tanggal_mulai']) && isset($_GET['tanggal_sampai'])){
$mulai = $_GET['tanggal_mulai'];
$sampai = $_GET['tanggal_sampai'];
?>
<a class='btn btn-primary' target="_blank" href='<?php echo
base_url().'petugas/peminjaman_cetak/?tanggal_mulai='.$mulai.'&tanggal_samp ai='.$sampai ?>'><i class='fa fa-print'></i> CETAK</a>
<?php }
?>
<br/>
<br/>
72
<div class="table-responsive">
<table class="table bordered striped hover table-datatable"> form penginputan tanggal dari dan tanggal sampai. Yang maksudnya ingin memfilter data dari tanggal berapa dan sampai berapa.
<form method="get" action="">
<div class="form-group">
<label class="font-weight-bold"
for="tanggal_mulai">Tanggal Mulai Pinjam</label>
73
<input type="date" class="form-control"
name="tanggal_mulai" placeholder="Masukkan tanggal mulai pinjam">
</div>
<div class="form-group">
<label class="font-weight-bold" for="tanggal_sampai">Tanggal Pinjam Sampai</label>
<input type="date" class="form-control"
name="tanggal_sampai" placeholder="Masukkan tanggal pinjam sampai">
</div>
<input type="submit" class="btn btn-primary"
value="Filter">
</form>
Kita juga membuat pengecekan jika tanggal sudah dipilih, maka akan kita tampilkan tombol cetaknya.
<?php
// membuat tombol cetak jika data sudah di filter
if(isset($_GET['tanggal_mulai']) &&
isset($_GET['tanggal_sampai'])){
$mulai = $_GET['tanggal_mulai'];
$sampai = $_GET['tanggal_sampai'];
?>
<a class='btn btn-primary' target="_blank" href='<?php echo base_url().'petugas/peminjaman_cetak/?tanggal_mulai='.$mulai.'&tang
gal_sampai='.$sampai ?>'><i class='fa fa-print'></i> CETAK</a>
<?php
Pada tombol cetak kita arahkan ke method peminjaman_cetak() pada controller Petugas.php. sambal mengirimkan data tanggal_mulai dan tanggal sampai.
Nanti pada method peminjaman_cetak() akan kita tangkap data tanggal yang dikirim, dan langsung kita cetak pada viewnya.
Buat sebuah method baru lagi dengan nama peminjaman_cetak() pada controller Petugas.php.
Application/controllers/Petugas.php
function peminjaman_cetak(){
if(isset($_GET['tanggal_mulai']) &&
isset($_GET['tanggal_sampai'])){
$mulai = $this->input->get('tanggal_mulai');
74
$sampai = $this->input->get('tanggal_sampai');
// mengambil data peminjaman berdasarkan tanggal mulai sampai tanggal sampai
$data['peminjaman'] = $this->db->query("select * from peminjaman,buku,anggota where peminjaman.peminjaman_buku=buku.id and
peminjaman.peminjaman_anggota=anggota.id and date(peminjaman_tanggal_mulai)
>= '$mulai' and date(peminjaman_tanggal_mulai) <= '$sampai' order by peminjaman_id desc")->result();
$this->load->view('petugas/v_peminjaman_cetak',$data);
}else{
redirect(base_url().'petugas/peminjaman');
} }
Pada method peminjaman_cetak() inilah kita seleksi data peminjaman berdasarkan tanggal yang dipilih dan kemudian langsung kita tampilkan pada view v_peminjaman_cetak.php. pada view v_peminjaman_cetak.php ini akan kita tampilkan data peminjaman yang sudah kita filter berdasarkan tanggal.
Buat sebuah view baru dengan nama v_peminjaman_cetak.php dalam folder petugas.
Application/views/petugas/v_peminjaman_cetak.php
<!DOCTYPE html>
<html>
<head>
<title>Cetak Laporan Peminjaman Buku</title>
</head>
<body>
<style type="text/css">
table{
border-collapse: collapse;
}
table th,td{
border: 1px solid #000;
}
</style>
<center>
<h3>Laporan Peminjaman Buku</h3>
</center>
<table>
<tr>
<th width="1%">No</th>
<th>Buku</th>
<th>Peminjam</th>
<th>Mulai Pinjam</th>
<th>Pinjam Sampai</th>
<th>Status</th>
</tr>
<?php
75
$no = 1;
foreach($peminjaman as $p){
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $p->judul; ?></td>
<td><?php echo $p->nama; ?></td>
<td><?php echo date('d-m-Y',strtotime($p->peminjaman_tanggal_mulai));
?></td>
<td><?php echo
date('d-m-Y',strtotime($p->peminjaman_tanggal_sampai)); ?></td>
<td>
<center>
<?php
if($p->peminjaman_status == "1"){
echo "<div class='badge badge-success'>Selesai</div>";
}else if($p->peminjaman_status == "2"){
echo "<div class='badge badge-warning'>Dipinjam</div>";
} ?>
</center>
</td>
</tr>
<?php }
?>
</table>
<script type="text/javascript">
window.print();
</script>
</body>
</html>
pada view ini kita menampilkan data yang telah di filter, kemudian kita cetak dengan fungsi javascript window.print().
Sekarang akan kita coba jalankan pada browser.
76
masukkan data tanggal yang ingin difilter. Disini saya memasukkan tanggal 02/07/2018 sampai tanggal 05/07/2018. Dan klik filter.
maka data pada tanggal yang di filter pun berhasil tampil. Silahkan klik cetak untuk melihat hasil data yang dicetaknya.
77