Skip to content

Instantly share code, notes, and snippets.

@igun997
Created July 11, 2019 03:19
Show Gist options
  • Save igun997/acec6a3732f1a13df2fac8baa35e0772 to your computer and use it in GitHub Desktop.
Save igun997/acec6a3732f1a13df2fac8baa35e0772 to your computer and use it in GitHub Desktop.
Sirkulasi.php
<?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