public function add($id)
 {
     $input = Request::all();
     $peminjam = Peminjam::select('id')->where('nim/nip', $input['nipnim'])->first();
     $rules = array('nipnim' => 'required|exists:peminjam,nim/nip');
     $validator = Validator::make($input, $rules);
     if ($validator->fails()) {
         return view('error');
     } else {
         $check = 0;
         /* Cek apakah barang sedang dipinjam oleh orang lain */
         $check += Transaksi::where('id_alat', $id)->where('dikembalikan', '0000-00-00 00:00:00')->count();
         /* Cek apakah barang sudah dibooking oleh orang lain, kalo dibooking orang tersebut, boleh */
         $check += Booking::where('id_alat', $id)->where('id_pengguna', '<>', $peminjam->id)->where('mulai', '<=', date('Y-m-d H:i:s', time()))->where('selesai', '>=', date('Y-m-d H:i:s', time()))->count();
         /* Cek apakah barang sedang dipelihara */
         $check += Pemeliharaan::where('id_alat', $id)->where('mulai', '<=', date('Y-m-d H:i:s', time()))->where('selesai', '0000-00-00 00:00:00')->count();
         if ($check == 0) {
             $transaksi = new Transaksi();
             $transaksi->id_alat = $id;
             $transaksi->id_pengguna = $peminjam->id;
             $transaksi->dipinjam = date('Y-m-d H:i:s', time());
             $transaksi->save();
             return redirect('/dipinjam');
         } else {
             return view('error');
         }
     }
 }
 public function alat($id)
 {
     $alat = Alat::where('alat.id', '=', $id)->join('penyimpanan', 'penyimpanan.id_alat', '=', 'alat.id')->join('lokasi', 'lokasi.id', '=', 'penyimpanan.id_lokasi')->select('alat.id as id', 'alat.nama as nama', 'lokasi.nama as lokasi', 'kode')->get();
     $is_available = Alat::where('alat.id', '=', $id)->whereNotExists(function ($query) {
         $query->select(DB::raw(1))->from('transaksi')->where('dikembalikan', '0000-00-00 00:00:00')->whereRaw('transaksi.id_alat = alat.id');
     })->whereNotExists(function ($query) {
         $query->select(DB::raw(1))->from('booking')->where('mulai', '<=', date('Y-m-d H:i:s', time()))->where('selesai', '>=', date('Y-m-d H:i:s', time()))->whereRaw('booking.id_alat = alat.id');
     })->whereNotExists(function ($query) {
         $query->select(DB::raw(1))->from('pemeliharaan')->where('selesai', '0000-00-00 00:00:00')->whereRaw('pemeliharaan.id_alat = alat.id');
     })->count();
     $is_maintenance = Alat::where('alat.id', '=', $id)->whereNotExists(function ($query) {
         $query->select(DB::raw(1))->from('pemeliharaan')->where('selesai', '0000-00-00 00:00:00')->whereRaw('pemeliharaan.id_alat = alat.id');
     })->count();
     $history_t = Transaksi::where('id_alat', '=', $id)->join('peminjam', 'transaksi.id_pengguna', '=', 'peminjam.id')->select('dipinjam', 'dikembalikan', 'nim/nip as id', 'nama')->get();
     $history_m = Pemeliharaan::where('id_alat', '=', $id)->get();
     return view('deskripsialat', ['alat' => $alat, 'is_available' => $is_available, 'is_maintenance' => $is_maintenance, 'history_t' => $history_t, 'history_m' => $history_m]);
 }
 public function add($id)
 {
     $input = Request::all();
     $peminjam = Peminjam::select('id')->where('nim/nip', $input['nipnim'])->first();
     $rules = array('nipnim' => 'required|exists:peminjam,nim/nip', 'mulai' => 'required', 'selesai' => 'required');
     $validator = Validator::make($input, $rules);
     if ($validator->fails()) {
         //return $this->failed(array('message' => $validator->messages()));
         echo "Validation";
         return view('error');
     } else {
         $booking_mulai = date('Y-m-d H:i:s', strtotime($input['mulai']));
         $booking_selesai = date('Y-m-d H:i:s', strtotime($input['selesai']));
         $check = 0;
         /* Cek apakah barang sedang dipinjam oleh orang lain */
         $check += Transaksi::where('id_alat', $id)->where('dikembalikan', '0000-00-00 00:00:00')->count();
         /* Cek apakah barang sudah dibooking oleh orang lain */
         $check += Booking::where('id_alat', $id)->where(function ($query) use($booking_mulai, $booking_selesai) {
             $query->where(function ($query) use($booking_mulai, $booking_selesai) {
                 $query->where('mulai', '>=', $booking_mulai)->where('mulai', '<=', $booking_selesai)->where('selesai', '>=', $booking_selesai);
             })->orwhere(function ($query) use($booking_mulai, $booking_selesai) {
                 $query->where('mulai', '<=', $booking_mulai)->where('selesai', '>', $booking_mulai)->where('mulai', '<', $booking_selesai)->where('selesai', '>=', $booking_selesai);
             })->orwhere(function ($query) use($booking_mulai, $booking_selesai) {
                 $query->where('mulai', '<=', $booking_mulai)->where('selesai', '>=', $booking_mulai)->where('selesai', '<=', $booking_selesai);
             })->orwhere(function ($query) use($booking_mulai, $booking_selesai) {
                 $query->where('mulai', '>=', $booking_mulai)->where('selesai', '<=', $booking_selesai);
             });
         })->count();
         /* Cek apakah barang sedang dipelihara */
         $check += Pemeliharaan::where('id_alat', $id)->where('mulai', '<=', $booking_mulai)->where('selesai', '0000-00-00 00:00:00')->count();
         if ($check == 0) {
             $booking = new Booking();
             $booking->id_alat = $id;
             $booking->id_pengguna = $peminjam->id;
             $booking->mulai = $booking_mulai;
             $booking->selesai = $booking_selesai;
             $booking->save();
             //return $this->success();
             return redirect('/dibooking');
         } else {
             //return $this->failed(array('message' => "Barang belum dikembalikan"));
             echo "Barang belum dikembalikan" . $id;
             return view('error');
         }
     }
 }
 public function del($id)
 {
     Pemeliharaan::where('id_alat', $id)->where('selesai', '0000-00-00 00:00:00')->update(['selesai' => date('Y-m-d H:i:s', time())]);
     return redirect('/dipelihara');
 }