From f0d224e295d3b3cb49b5aa204663ff7399e10b2e Mon Sep 17 00:00:00 2001 From: Laatansa Date: Mon, 21 May 2018 01:48:16 +0700 Subject: [PATCH] Surat Bebas Pinjam, Mekanisme non-aktif anggota, Kop surat - Mampu mencetak surat bebas pinjam untuk syarat kelulusan - Mampu menonaktifkan anggota yang telah lulus - Kop surat dan kolom tanda tangan petugas perpustakaan --- application/controllers/Akun.php | 5 ++ application/controllers/Kunjungan.php | 24 ++++-- application/controllers/Peminjaman.php | 93 +++++++++++++++++++--- application/models/AkunM.php | 25 ++++-- application/views/DaftarPeminjaman.php | 41 +++++++++- application/views/FileDaftarKunjungan.php | 21 ++++- application/views/FileDaftarPeminjaman.php | 21 ++++- application/views/FileKartuAnggota.php | 2 +- application/views/FileLabelPustaka.php | 2 +- application/views/FileStrukPeminjaman.php | 21 ++++- application/views/FileSuratBebasPinjam.php | 89 +++++++++++++++++++++ application/views/FormPinjam.php | 4 +- application/views/head.php | 6 +- 13 files changed, 318 insertions(+), 36 deletions(-) create mode 100644 application/views/FileSuratBebasPinjam.php diff --git a/application/controllers/Akun.php b/application/controllers/Akun.php index 125562b..2b9871e 100644 --- a/application/controllers/Akun.php +++ b/application/controllers/Akun.php @@ -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') diff --git a/application/controllers/Kunjungan.php b/application/controllers/Kunjungan.php index 0339f41..1a51253 100644 --- a/application/controllers/Kunjungan.php +++ b/application/controllers/Kunjungan.php @@ -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', + ''); + 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); @@ -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": @@ -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', @@ -335,9 +350,6 @@ function cetakDaftarKunjungan(){ 'margin_bottom' => 25 ]); - //header file pdf - $mpdf->WriteHTML('

Daftar Kunjungan Perpustakaan SMA N 1 Cilacap

'.$bulan.$tahun.'

'); - //body file pdf $mpdf->WriteHTML($view); diff --git a/application/controllers/Peminjaman.php b/application/controllers/Peminjaman.php index 575b3fb..9c49f23 100644 --- a/application/controllers/Peminjaman.php +++ b/application/controllers/Peminjaman.php @@ -216,9 +216,6 @@ function cetakStrukPeminjaman(){ 'default_font_size' => 9 ]); - //header file pdf - $mpdf->WriteHTML('

Bukti Pengembalian Pustaka Perpustakaan SMA N 1 Cilacap

'); - //body file pdf $mpdf->WriteHTML($view); @@ -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'); @@ -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": @@ -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', @@ -675,9 +686,6 @@ function cetakDaftarPeminjaman(){ 'margin_bottom' => 25 ]); - //header file pdf - $mpdf->WriteHTML('

Daftar Peminjaman Perpustakaan SMA N 1 Cilacap

'.$bulan.$tahun.'

'); - //body file pdf $mpdf->WriteHTML($view); @@ -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', + ''); + 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'); + } } \ No newline at end of file diff --git a/application/models/AkunM.php b/application/models/AkunM.php index f459a4f..64b1f1c 100644 --- a/application/models/AkunM.php +++ b/application/models/AkunM.php @@ -12,7 +12,7 @@ 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(); @@ -20,17 +20,17 @@ function login($data){ 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; } } @@ -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(); + } } \ No newline at end of file diff --git a/application/views/DaftarPeminjaman.php b/application/views/DaftarPeminjaman.php index c2d5ace..6cf90bf 100644 --- a/application/views/DaftarPeminjaman.php +++ b/application/views/DaftarPeminjaman.php @@ -8,6 +8,7 @@

Status Peminjaman

+ session->flashdata('message')){ echo $this->session->flashdata('message'); @@ -31,16 +32,24 @@ - session->userdata('level') == 'admin'){?> + session->userdata('level') == 'admin'){?> + + session->userdata('level') == 'anggota')){?> + + + session->userdata('level') == 'admin'){?> + @@ -48,7 +57,6 @@ - @@ -58,7 +66,7 @@ session->userdata('level') == 'admin'){?>