Created
July 11, 2019 03:19
-
-
Save igun997/acec6a3732f1a13df2fac8baa35e0772 to your computer and use it in GitHub Desktop.
Sirkulasi.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
defined('BASEPATH') OR exit('No direct script access allowed'); | |
class Sirkulasi extends CI_Controller{ | |
public $dpost; | |
public function __construct() | |
{ | |
parent::__construct(); | |
$this->dpost = $this->input->post(null,true); | |
foreach ($this->dpost as $key => &$value) { | |
if ($value == "") { | |
unset($this->dpost[$key]); | |
} | |
} | |
if ($this->session->level != "pustakawan") { | |
redirect("login"); | |
} | |
} | |
public function index() | |
{ | |
$denda = 500; | |
$this->main->setJoin([ | |
"table"=>"peminjaman", | |
"join"=>[ | |
"siswa|siswa.nis = peminjaman.nis|null" | |
] | |
]); | |
$x = $this->main->get(); | |
$a = $x->result_array(); | |
foreach ($a as $key => &$value) { | |
if ($value["total_denda"] == null) { | |
$date1=date_create($value["tanggal_pinjam"]); | |
$date2=date_create(date("Y-m-d")); | |
$diff=date_diff($date1,$date2); | |
$day = $diff->format("%d"); | |
if ($value["type"] == "harian") { | |
if ($day > $value["lama_pinjam"]) { | |
$value["total_denda"] = "Rp. ".number_format($denda * ($day - $value["lama_pinjam"])); | |
} | |
}else { | |
$day = ($day/30); | |
if ($day > $value["lama_pinjam"]) { | |
$value["total_denda"] = "Rp. ".number_format($denda * ($day - $value["lama_pinjam"])); | |
} | |
} | |
} | |
} | |
$this->main->setTable("buku_detail"); | |
$kembali = $this->main->get(["status"=>"hilang"])->result_array(); | |
foreach ($kembali as $key => &$value) { | |
$value["index"] = "ISBN = ".$value["isbn"]." - Urut = ".$value["nomor_urut"]; | |
} | |
$this->template->setFolder("pustakawan"); | |
$this->template->defaultStyle("admin"); | |
$build = [ | |
"block_title"=>"Sirkulasi Buku", | |
"data"=>$a, | |
"kembalikan"=>$kembali, | |
"msg"=>$this->session->flashdata("msg") | |
]; | |
$this->template->renderHTML(['head','sirkulasi','foot'],['title'=>"Sirkulasi Buku",'other'=>$build]); | |
} | |
public function insert() | |
{ | |
if (isset($_POST["save_master"])) { | |
$this->main->setTable("peminjaman"); | |
$a = $this->main->get(["nis"=>$this->dpost["nis"],"tanggal_pengembalian"=>null]); | |
if ($a->num_rows() > 0) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Siswa Masih Memiliki Transaksi Peminjaman Yang Belum Di Selesaikan</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$this->dpost["tanggal_pinjam"] = date("Y-m-d"); | |
$ins = $this->main->insert($this->dpost); | |
if ($ins) { | |
$this->session->set_userdata(["kode_peminjaman"=>$this->dpost["kode_peminjaman"]]); | |
$this->session->set_flashdata("msg","<div class='alert alert-success'>Data Disimpan</div>"); | |
}else { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Data Gagal Disimpan</div>"); | |
} | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
if (isset($_POST["save_child"])) { | |
$this->main->setTable("peminjaman_detail"); | |
$row = $this->main->get(["kode_peminjaman"=>$this->session->kode_peminjaman]); | |
$qt = 0; | |
foreach ($row->result() as $key => $value) { | |
$qt = $qt + $value->qty; | |
} | |
$this->main->setTable("buku"); | |
$cek = $this->main->get(["isbn"=>$this->dpost["isbn"]])->row()->tipe; | |
$this->main->setTable("peminjaman_detail"); | |
$ck_same = $this->main->get(["isbn"=>$this->dpost["isbn"],"kode_peminjaman"=>$this->session->kode_peminjaman]); | |
if ($ck_same->num_rows() > 0) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Tidak Boleh Meminjam Buku Yang Sama</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
if ($cek == "non paket") { | |
if ($this->dpost["qty"] > 4) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Total Peminjaman Buku Melebihi Quota</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
if ($this->dpost["qty"] > 4) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Total Peminjaman Buku Melebihi Quota</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$this->session->set_userdata(["type"=>"harian"]); | |
$this->session->set_userdata(["lama_pinjam"=>"3"]); | |
if ($qt > 4) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Total Buku Melebihi Quota</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
}else { | |
$this->session->set_userdata(["type"=>"bulanan"]); | |
$this->session->set_userdata(["lama_pinjam"=>"12"]); | |
} | |
$this->main->setTable("buku_detail"); | |
$stok = $this->main->get(["isbn"=>$this->dpost["isbn"],"status_buku"=>"ada","status"=>"bagus"])->num_rows(); | |
if ($stok < $this->dpost["qty"]) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Stok Buku Tidak Mencukupi</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$xs = $this->main->get(["isbn"=>$this->dpost["isbn"],"status_buku"=>"ada","status"=>"bagus"]); | |
$dt = []; | |
foreach ($xs->result() as $key => $value) { | |
$dt[] = ["nomor_urut"=>$value->nomor_urut,"id_bd"=>$value->id_bd]; | |
} | |
usort($dt,function($a,$b){ | |
return $a["nomor_urut"] > $b["nomor_urut"]; | |
}); | |
$i = 1; | |
foreach ($dt as $key => $va) { | |
if ($i++ > $this->dpost["qty"]) { | |
break; | |
} | |
$this->main->update(["status_buku"=>"dipinjam"],["id_bd"=>$va["id_bd"]]); | |
} | |
$this->main->setTable("peminjaman_detail"); | |
$this->dpost["kode_peminjaman"] = $this->session->kode_peminjaman; | |
$x = $this->main->insert($this->dpost); | |
if ($x) { | |
$this->session->set_flashdata("msg","<div class='alert alert-success'>Data Disimpan</div>"); | |
}else { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Data Gagal Disimpan</div>"); | |
} | |
} | |
if (isset($_POST["end"])) { | |
$this->main->setTable("peminjaman"); | |
$this->main->update(["type"=>$this->session->type,"lama_pinjam"=>$this->session->lama_pinjam],["kode_peminjaman"=>$this->session->kode_peminjaman]); | |
$this->session->unset_userdata('kode_peminjaman'); | |
$this->session->unset_userdata('type'); | |
$this->session->unset_userdata('lama_pinjam'); | |
$this->session->set_flashdata("msg","<div class='alert alert-primary'>Transaksi Telah Di Selesaikan</div>"); | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$detail_buku = []; | |
if ($this->session->kode_peminjaman) { | |
$this->main->setJoin([ | |
"table"=>"peminjaman_detail", | |
"join"=>[ | |
"buku|buku.isbn = peminjaman_detail.isbn|null" | |
] | |
]); | |
$xs = $this->main->get(["peminjaman_detail.kode_peminjaman"=>$this->session->kode_peminjaman]); | |
$detail_buku = $xs->result_array(); | |
} | |
$this->template->setFolder("pustakawan"); | |
$this->template->defaultStyle("admin"); | |
$build = [ | |
"block_title"=>"Tambah - Peminjaman Buku", | |
"msg"=>$this->session->flashdata("msg"), | |
"detail_buku"=>$detail_buku | |
]; | |
$this->main->setTable("siswa"); | |
$siswa = $this->main->get(); | |
$this->main->setTable("buku"); | |
$buku = $this->main->get(); | |
$xas = $buku->result(); | |
foreach ($xas as $key => &$value) { | |
$this->main->setTable("buku_detail"); | |
$xsa = $this->main->get(["isbn"=>$value->isbn,"status"=>"bagus","status_buku"=>"ada"])->num_rows(); | |
$value->stok = $xsa; | |
} | |
$this->main->setTable("peminjaman"); | |
$sc =$this->main->get(["tanggal_pinjam"=>date("Y-m-d")])->num_rows() + 1; | |
$extend = [ | |
"info"=>["counter"=>$sc,"siswa"=>$siswa->result()], | |
"buku"=>$xas | |
]; | |
$this->template->renderHTML(['head','sirkulasi_form','foot'],["extend"=>$extend,'title'=>"Tambah - Peminjaman Buku",'other'=>$build]); | |
} | |
public function detail($id) | |
{ | |
$denda = 500; | |
if (isset($_POST["kode_peminjaman"])) { | |
unset($this->dpost["kode_peminjaman"]); | |
$temp = []; | |
foreach ($this->dpost as $key => &$value) { | |
$xa = explode("-",$key); | |
if (count($xa) == 4) { | |
unset($this->dpost[$key]); | |
if ($xa[3] != "kondisi") { | |
continue; | |
} | |
$temp[] = ["judul"=>$xa[0],"nomor_urut"=>$xa[1],"isbn"=>$xa[2],"kondisi"=>$value]; | |
// var_dump($temp); | |
// exit(); | |
} | |
} | |
$this->main->setTable("peminjaman"); | |
$this->dpost["tanggal_pengembalian"] = date("Y-m-d"); | |
$this->dpost["total_denda"] = 0; | |
$this->main->setJoin([ | |
"table"=>"peminjaman", | |
"join"=>[ | |
"siswa|siswa.nis = peminjaman.nis|null" | |
] | |
]); | |
$x = $this->main->get(["kode_peminjaman"=>$id]); | |
$a = $x->result_array(); | |
foreach ($a as $key => &$value) { | |
if ($value["total_denda"] == null || $value["total_denda"] == "") { | |
$date1=date_create($value["tanggal_pinjam"]); | |
$date2=date_create(date("Y-m-d")); | |
$diff=date_diff($date1,$date2); | |
$day = $diff->format("%d"); | |
if ($value["type"] == "harian") { | |
if ($day > $value["lama_pinjam"]) { | |
$this->dpost["total_denda"] = ($denda * ($day - $value["lama_pinjam"])); | |
} | |
}else { | |
$day = ($day/30); | |
if ($day > $value["lama_pinjam"]) { | |
$this->dpost["total_denda"] = ($denda * ($day - $value["lama_pinjam"])); | |
} | |
} | |
} | |
} | |
$up = $this->main->update($this->dpost,["kode_peminjaman"=>$id]); | |
if ($up) { | |
$this->main->setTable("peminjaman_detail"); | |
$loop = $this->main->get(["kode_peminjaman"=>$id]); | |
$s = "ada"; | |
foreach ($loop as $key => $value) { | |
$si = 0; | |
foreach ($temp as $k => $v) { | |
$this->main->setTable("buku_detail"); | |
if ($v["kondisi"] == "hilang") { | |
$si = 1; | |
}elseif ($v["kondisi"] == "rusak") { | |
$si = 1; | |
} | |
$this->main->update(["status"=>$v["kondisi"],"status_buku"=>"ada"],["isbn"=>$v["isbn"],"nomor_urut"=>$v["nomor_urut"]]); | |
} | |
if ($si == 1) { | |
$s = "hilang"; | |
} | |
} | |
$this->main->setTable("peminjaman_detail"); | |
$this->main->update(["status"=>$s],["kode_peminjaman"=>$id]); | |
$this->session->set_flashdata("msg","<div class='alert alert-success'>Data Disimpan</div>"); | |
}else { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Data Gagal Disimpan</div>"); | |
} | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$this->main->setJoin([ | |
"table"=>"peminjaman_detail", | |
"join"=>[ | |
"buku|buku.isbn = peminjaman_detail.isbn|null", | |
] | |
]); | |
$xs = $this->main->get(["peminjaman_detail.kode_peminjaman"=>$id]); | |
$total_buku = 0; | |
$data_buku = []; | |
foreach ($xs->result() as $key => $value) { | |
for ($i=1; $i <= $value->qty ; $i++) { | |
$data_buku[] = ["judul"=>md5($value->judul)."-".$i."-".$value->isbn,"nama"=>$value->judul]; | |
} | |
} | |
if ($xs->num_rows() < 1) { | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
$detail_buku = $xs->result_array(); | |
$this->main->setJoin([ | |
"table"=>"peminjaman", | |
"join"=>[ | |
"siswa|siswa.nis = peminjaman.nis|null" | |
] | |
]); | |
$x = $this->main->get(["kode_peminjaman"=>$id]); | |
$a = $x->result_array(); | |
foreach ($a as $key => &$value) { | |
if ($value["total_denda"] == null || $value["total_denda"] == "") { | |
$date1=date_create($value["tanggal_pinjam"]); | |
$date2=date_create(date("Y-m-d")); | |
$diff=date_diff($date1,$date2); | |
$day = $diff->format("%d"); | |
if ($value["type"] == "harian") { | |
if ($day > $value["lama_pinjam"]) { | |
$value["total_denda"] = ($denda * ($day - $value["lama_pinjam"])); | |
} | |
}else { | |
$day = ($day/30); | |
if ($day > $value["lama_pinjam"]) { | |
$value["total_denda"] = ($denda * ($day - $value["lama_pinjam"])); | |
} | |
} | |
} | |
} | |
$this->template->setFolder("pustakawan"); | |
$this->template->defaultStyle("admin"); | |
$build = [ | |
"block_title"=>"Detail - Peminjaman Buku", | |
"msg"=>$this->session->flashdata("msg"), | |
"detail_buku"=>$detail_buku | |
]; | |
$extend = [ | |
"info"=>$a[0], | |
"total_buku"=>$data_buku | |
]; | |
$this->template->renderHTML(['head','sirkulasi_detail','foot'],["extend"=>$extend,'title'=>"Detail - Peminjaman Buku",'other'=>$build]); | |
} | |
public function hilang() | |
{ | |
$this->main->setTable("buku_detail"); | |
$x = $this->main->update(["status"=>"bagus"],$this->dpost); | |
if (!$x) { | |
$this->session->set_flashdata("msg","<div class='alert alert-danger'>Buku Gagal Dikembalikan</div>"); | |
}else { | |
$this->session->set_flashdata("msg","<div class='alert alert-success'>Buku Berhasil di Kembalikan</div>"); | |
} | |
redirect($_SERVER["HTTP_REFERER"]); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment