Skip to content

Commit

Permalink
Surat Bebas Pinjam, Mekanisme non-aktif anggota, Kop surat
Browse files Browse the repository at this point in the history
- Mampu mencetak surat bebas pinjam untuk syarat kelulusan
- Mampu menonaktifkan anggota yang telah lulus
- Kop surat dan kolom tanda tangan petugas perpustakaan
  • Loading branch information
lslowmotion committed May 20, 2018
1 parent c197435 commit f0d224e
Show file tree
Hide file tree
Showing 13 changed files with 318 additions and 36 deletions.
5 changes: 5 additions & 0 deletions application/controllers/Akun.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ function login(){
);
redirect(base_url('akun'));
}else{
//jika login id:kunjungan/pass:kunjungan
if(($this->input->post('id') == 'kunjungan') && ($this->input->post('password') == 'kunjungan')){
redirect(base_url('kunjungan/tambahkunjungan'));
}

$login_send = array(
'id' => $this->input->post('id'),
'password' => $this->input->post('password')
Expand Down
24 changes: 18 additions & 6 deletions application/controllers/Kunjungan.php
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,17 @@ function tambahKunjungan(){
redirect(base_url('kunjungan/tambahkunjungan'));
}

//cek keaktifan akun dengan mengecek no induk di data akun
$this->load->model('AkunM');
$cek_akun = $this->AkunM->searchAkun($no_induk);
if(empty($cek_akun)){
$this->session->set_flashdata('message',
'<div class="alert alert-danger" role="alert">
Anggota dengan no induk <b>'.$no_induk.'</b> sudah bukan anggota perpustakaan aktif.
</div>');
redirect(base_url('kunjungan/tambahkunjungan'));
}

//jika pengunjung dengan no induk bersangkutan telah tercatat pada tanggal kunjung sekarang, lempar
$tanggal_kunjungan = date('d M Y',strtotime('Today'));
$cek_kunjungan = $this->KunjunganM->getJumlahKunjungan($no_induk,$tanggal_kunjungan);
Expand Down Expand Up @@ -273,9 +284,6 @@ function cetakDaftarKunjungan(){
}
$data['data_kunjungan'] = $data_kunjungan;

//melempar data peminjaman ke view FileDaftarKunjungan dan menyimpannya ke dalam variabel $view
$view = $this->load->view('FileDaftarKunjungan',$data,true);

//mengubah format bulan menjadi bentuk panjang untuk digunakan pada header file pdf
switch ($bulan) {
case "Jan":
Expand Down Expand Up @@ -325,6 +333,13 @@ function cetakDaftarKunjungan(){
$tahun = ' '.$tahun;
}

//setup data bulan dan tahun untuk dilempar ke view
$data['bulan'] = $bulan;
$data['tahun'] = $tahun;

//melempar data peminjaman ke view FileDaftarKunjungan dan menyimpannya ke dalam variabel $view
$view = $this->load->view('FileDaftarKunjungan',$data,true);

//pengaturan ukuran kertas dan margin mpdf
$mpdf = new Mpdf([
'mode' => 'utf-8',
Expand All @@ -335,9 +350,6 @@ function cetakDaftarKunjungan(){
'margin_bottom' => 25
]);

//header file pdf
$mpdf->WriteHTML('<h2>Daftar Kunjungan Perpustakaan SMA N 1 Cilacap</h2><h3>'.$bulan.$tahun.'</h3>');

//body file pdf
$mpdf->WriteHTML($view);

Expand Down
93 changes: 83 additions & 10 deletions application/controllers/Peminjaman.php
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,6 @@ function cetakStrukPeminjaman(){
'default_font_size' => 9
]);

//header file pdf
$mpdf->WriteHTML('<h3>Bukti Pengembalian Pustaka Perpustakaan SMA N 1 Cilacap</h3>');

//body file pdf
$mpdf->WriteHTML($view);

Expand Down Expand Up @@ -433,7 +430,17 @@ function pinjam(){
//ambil daftar anggota
$this->load->model('AnggotaM');
$jumlah_anggota = $this->AnggotaM->getJumlahAnggota();
$data['daftar_anggota'] = $this->AnggotaM->getDaftarAnggota($jumlah_anggota,0,0,'asc');
$daftar_anggota = $this->AnggotaM->getDaftarAnggota($jumlah_anggota,0,0,'asc');

$this->load->model('AkunM');
foreach ($daftar_anggota as $row){
if(empty($this->AkunM->searchAkun($row->no_induk))){
$row->akun_kosong = true;
}else{
$row->akun_kosong = false;
}
}
$data['daftar_anggota'] = $daftar_anggota;

//ambil daftar pustaka
$this->load->model('PustakaM');
Expand Down Expand Up @@ -613,9 +620,6 @@ function cetakDaftarPeminjaman(){
}
$data['data_peminjaman'] = $data_peminjaman;

//melempar data peminjaman ke view FileDaftarPeminjaman dan menyimpannya ke dalam variabel $view
$view = $this->load->view('FileDaftarPeminjaman',$data,true);

//mengubah format bulan menjadi bentuk panjang untuk digunakan pada header file pdf
switch ($bulan) {
case "Jan":
Expand Down Expand Up @@ -665,6 +669,13 @@ function cetakDaftarPeminjaman(){
$tahun = ' '.$tahun;
}

//setup data bulan dan tahun untuk dilempar ke view
$data['bulan'] = $bulan;
$data['tahun'] = $tahun;

//melempar data peminjaman ke view FileDaftarPeminjaman dan menyimpannya ke dalam variabel $view
$view = $this->load->view('FileDaftarPeminjaman',$data,true);

//pengaturan ukuran kertas dan margin mpdf
$mpdf = new Mpdf([
'mode' => 'utf-8',
Expand All @@ -675,9 +686,6 @@ function cetakDaftarPeminjaman(){
'margin_bottom' => 25
]);

//header file pdf
$mpdf->WriteHTML('<h2>Daftar Peminjaman Perpustakaan SMA N 1 Cilacap</h2><h3>'.$bulan.$tahun.'</h3>');

//body file pdf
$mpdf->WriteHTML($view);

Expand All @@ -687,4 +695,69 @@ function cetakDaftarPeminjaman(){
//nama file pdf pada download
$mpdf->Output('Daftar Peminjaman Perpustakaan.pdf','I');
}

function cetakSuratBebasPinjam(){
//cek otoritas
if($this->session->userdata('level') != 'anggota'){
redirect(base_url('peminjaman'));
}

//load model yang diperlukan
$this->load->model('PustakaM');
$this->load->model('AkunM');

//search berdasarkan user id
$no_induk = $this->session->userdata('id');
$nama = $this->session->userdata('id_name');

//mencari jumlah data peminjaman
$panjang_data = $this->PeminjamanM->getJumlahPeminjaman(null,null,null);

//fetch data peminjaman berdasarkan search query bulan tahun
$data_peminjaman = $this->PeminjamanM->getDaftarPeminjamanbySearch($panjang_data,0,$no_induk,0,'desc',null)['data'];

foreach ($data_peminjaman as $row){

//ketika ada peminjaman belum dikembalikan, lempar pengguna ke daftar peminjaman dan beri peringatan
if($row->tanggal_kembali == 'Belum dikembalikan'){
$this->session->set_flashdata('message',
'<div class="alert alert-danger" role="alert">
Ada peminjaman yang belum dikembalikan. Tidak dapat mencetak surat bebas pinjam.
</div>');
redirect(base_url('peminjaman/index/'.$no_induk));
}

$row->judul = $this->PustakaM->getDataPustaka($row->nomor_panggil)->judul;
$row->denda = $this->hitungDenda($row->tanggal_pinjam,$row->tanggal_kembali);
}

$data['data_peminjaman'] = $data_peminjaman;
$data['no_induk'] = $no_induk;
$data['nama'] = $nama;

//melempar data peminjaman ke view FileDaftarPeminjaman dan menyimpannya ke dalam variabel $view
$view = $this->load->view('FileSuratBebasPinjam',$data,true);

//menghapus akun anggota dan mencegahnya untuk kembali login
$this->AkunM->hapusAkun($no_induk);

//pengaturan ukuran kertas dan margin mpdf
$mpdf = new Mpdf([
'mode' => 'utf-8',
'format' => 'A4',
'margin_left' => 25,
'margin_top' => 25,
'margin_right' => 25,
'margin_bottom' => 25
]);

//body file pdf
$mpdf->WriteHTML($view);

//nama file pdf pada browser
$mpdf->SetTitle('Surat Bebas Pinjam '.$no_induk);

//nama file pdf pada download
$mpdf->Output('Surat Bebas Pinjam '.$no_induk.'.pdf','I');
}
}
25 changes: 20 additions & 5 deletions application/models/AkunM.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@ function login($data){
//set query
$this->db->where('id',$id);
$this->db->where('password',$password);
$this->db->from('Akun');
$this->db->from('akun');
//execute query
$query = $this->db->get();
return $query->result();
}

function tambahAkun($data){
//cleaning query from XSS
$data=$this->security->xss_clean($data);
$data = $this->security->xss_clean($data);
//cleaning query from SQL injection
$data=$this->db->escape_str($data);
$data = $this->db->escape_str($data);
//flush
$this->db->flush_cache();
//execute query
if(!$this->db->replace('akun',$data)){
$query=$this->db->error();
$query = $this->db->error();
return $query['code'];
}else {
$query='0';
$query = '0';
return $query;
}
}
Expand Down Expand Up @@ -83,4 +83,19 @@ function hapusAkun($id){
//execute query
$this->db->delete('akun');
}

function searchAkun($id){
//cleaning query from XSS
$id = $this->security->xss_clean($id);
//cleaning query from SQL injection
$id = $this->db->escape_str($id);
//flush
$this->db->flush_cache();
//set query
$this->db->where('id',$id);
$this->db->from('akun');
//execute query
$query = $this->db->get();
return $query->result();
}
}
41 changes: 38 additions & 3 deletions application/views/DaftarPeminjaman.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<h1 class="page-header">Status Peminjaman</h1>
</div>
</div>

<?php
if($this->session->flashdata('message')){
echo $this->session->flashdata('message');
Expand All @@ -31,24 +32,31 @@
<tbody>

</tbody>
<?php if($this->session->userdata('level') == 'admin'){?>
<tfoot>
<tr>
<td>
<?php if($this->session->userdata('level') == 'admin'){?>
<a href="<?php echo base_url('peminjaman/pinjam');?>"><button type="button" class="btn btn-primary"><i class="fa fa-exchange"></i> Peminjaman baru</button></a>
<?php }?>
<?php if(($this->session->userdata('level') == 'anggota')){?>
<button type="button" class="btn" data-toggle="modal" data-target="#suratModal">
<i class="fa fa-print"></i> Cetak surat bebas pinjam
</button>
<?php }?>
</td>
<td>
<?php if($this->session->userdata('level') == 'admin'){?>
<button type="button" class="btn" data-toggle="modal" data-target="#cetakModal">
<i class="fa fa-print"></i> Cetak daftar peminjaman
</button>
<?php }?>
</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tfoot>
<?php }?>
</table>

</div>
Expand All @@ -58,7 +66,7 @@
</body>

<?php
//jika admin, parse modal
//jika admin, parse modal cetak daftar peminjaman
if ($this->session->userdata('level') == 'admin'){?>
<!-- Modal -->
<div class="modal fade" id="cetakModal" tabindex="-1" role="dialog" aria-labelledby="cetakModalLabel">
Expand Down Expand Up @@ -110,6 +118,33 @@
<!-- /.Modal -->
<?php }?>

<?php
//jika anggota, parse modal cetak daftar peminjaman
if ($this->session->userdata('level') == 'anggota'){?>
<!-- Modal -->
<div class="modal fade" id="suratModal" tabindex="-1" role="dialog" aria-labelledby="suratLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="suratModalLabel">Cetak Surat Bebas Pinjam</h4>
</div>
<div class="modal-body">
Apakah anda yakin ingin mencetak surat bebas pinjam?
Keanggotaan anda akan diarsipkan, akses login akan ditutup, dan anda tidak akan dapat meminjam lagi.
</div>
<div class="modal-footer">
<form action="<?php echo base_url('peminjaman/cetaksuratbebaspinjam'); ?>">
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
<button type="submit" class="btn"><i class="fa fa-print"></i> Cetak surat</button>
</form>
</div>
</div>
</div>
</div>
<!-- /.Modal -->
<?php }?>

<!-- jQuery -->
<script src="<?php echo base_url('assets/DataTables-1.10.12/js/jquery.dataTables.min.js');?>"></script>
<script src="<?php echo base_url('assets/DataTables-1.10.12/js/dataTables.bootstrap.min.js');?>"></script>
Expand Down
21 changes: 19 additions & 2 deletions application/views/FileDaftarKunjungan.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,17 @@
th {
background-color: #eee;
}
.kop {
font-size:20px;
text-align:center;
}
</style>
<body>
<div class="kop">
<strong>PERPUSTAKAAN SMA NEGERI 1 CILACAP</strong>
</div>
<hr>
<h3>Daftar Kunjungan <?php echo $bulan.$tahun;?></h3>
<table>
<thead>
<tr>
Expand All @@ -36,13 +45,21 @@
</tbody>
</table>
<p align="right">
<b>

Cilacap,
<?php
$now = date('d/m/Y');
echo $now;
?>
</b>

<br>
Petugas Perpustakaan SMA N 1 Cilacap
<br>
<br>
<br>
<br>
<br>
(..............................................)
</p>
</body>

Loading

0 comments on commit f0d224e

Please sign in to comment.