/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $rules = array('jenis_barang' => 'required', 'id_peminjam' => 'required|integer', 'waktu_rencana_kembali' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     // process the login
     if ($validator->fails()) {
         return $validator->messages()->toJson();
     } else {
         //cek id pengguna
         $pengguna = Pengguna::find(Input::get('id_peminjam'));
         if (!$pengguna) {
             return "ID pengguna tidak ditemukan";
         }
         // cek ketersediaan
         $alat_sesuai_jenis = Peralatan::where('jenis', '=', Input::get('jenis_barang'))->get();
         $selected_id = -1;
         $now = Carbon::now()->addHours(7)->toDateTimeString();
         $curTime = strtotime($now);
         if (!checkDateTime(Input::get('waktu_rencana_kembali'))) {
             return "Waktu rencana kembali tidak valid";
         }
         if ($curTime >= strtotime(Input::get('waktu_rencana_kembali'))) {
             return "Waktu rencana kembali tidak valid";
         }
         $waktu_rencana_kembali_time = strtotime(Input::get('waktu_rencana_kembali'));
         foreach ($alat_sesuai_jenis as $alat) {
             $available = true;
             if (strcmp($alat->status, "Baik") != 0 || strcmp($alat->ketersediaan, "Tersedia") != 0) {
                 $available = false;
                 break;
             }
             //cek di data booking
             $booking_of_alat = Booking::where('id_barang', '=', $alat->id)->get();
             foreach ($booking_of_alat as $booking) {
                 $booking_mulai_time = strtotime($booking->waktu_booking_mulai);
                 $booking_selesai_time = strtotime($booking->waktu_booking_selesai);
                 if ($curTime >= $booking_mulai_time && $curTime <= $booking_selesai_time || $waktu_rencana_kembali_time >= $booking_mulai_time && $waktu_rencana_kembali_time <= $booking_selesai_time || $booking_mulai_time >= $curTime && $booking_mulai_time <= $waktu_rencana_kembali_time || $booking_selesai_time >= $curTime && $booking_selesai_time <= $waktu_rencana_kembali_time) {
                     $available = false;
                 }
             }
             if ($available) {
                 $selected_id = $alat->id;
             }
         }
         if ($selected_id < 1) {
             return "Tidak ada alat tersedia";
         } else {
             //cek tanggal
             if (strtotime(Input::get('waktu_rencana_kembali')) <= strtotime(Input::get('waktu_pinjam'))) {
                 return "Tanggal tidak valid";
             } else {
                 // store
                 $transaksi = new transaksi();
                 $transaksi->id_barang = $selected_id;
                 //ganti dengan jenis barang
                 $transaksi->id_peminjam = Input::get('id_peminjam');
                 $transaksi->waktu_pinjam = $now;
                 $transaksi->waktu_rencana_kembali = Input::get('waktu_rencana_kembali');
                 $transaksi->save();
                 //ubah ketersediaan peralatan
                 $peralatan = Peralatan::find($selected_id);
                 if (!$peralatan) {
                     return "ID peralatan tidak ditemukan";
                 }
                 $peralatan->ketersediaan = "Sedang Digunakan";
                 $peralatan->save();
                 return $transaksi->id;
             }
         }
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $rules = array('jenis_barang' => 'required', 'id_pembooking' => 'required|integer', 'waktu_booking_mulai' => 'required', 'waktu_booking_selesai' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return $validator->messages()->toJson();
     } else {
         if (!checkDateTime(Input::get('waktu_booking_mulai'))) {
             return "Waktu booking mulai tidak valid";
         }
         if (!checkDateTime(Input::get('waktu_booking_selesai'))) {
             return "Waktu booking selesai tidak valid";
         }
         if (strtotime(Input::get('waktu_booking_mulai')) >= strtotime(Input::get('waktu_booking_selesai'))) {
             return "Waktu booking mulai > waktu booking selesai";
         }
         /* cek id pembooking */
         $pengguna = Pengguna::find(Input::get('id_pembooking'));
         if (!$pengguna) {
             return "ID pengguna tidak ditemukan";
         }
         $booking = Booking::find($id);
         if (!$booking) {
             return "Not Found";
         }
         /* cek apakah jenis peralatan berubah
          * jika berubah, cari alat baru
          */
         $id_barang_old = $booking->id_barang;
         $barang_old = Peralatan::find($id_barang_old);
         $jenis_barang_old = $barang_old->jenis;
         $selected_id = -1;
         if (strcmp(Input::get('jenis_barang'), $jenis_barang_old) == 0) {
             $selected_id = $id_barang_old;
         } else {
             //cari peralatan baru jika jenis berubah
             $alat_sesuai_jenis = Peralatan::where('jenis', '=', Input::get('jenis_barang'))->get();
             $input_booking_mulai_time = strtotime(Input::get('waktu_booking_mulai'));
             $input_booking_selesai_time = strtotime(Input::get('waktu_booking_selesai'));
             foreach ($alat_sesuai_jenis as $alat) {
                 $available = true;
                 /* Cek di tabel booking */
                 $booking_of_alat = Booking::where('id_barang', '=', $alat->id)->get();
                 foreach ($booking_of_alat as $booking) {
                     $booking_mulai_time = strtotime($booking->waktu_booking_mulai);
                     $booking_selesai_time = strtotime($booking->waktu_booking_selesai);
                     if ($input_booking_mulai_time > $booking_mulai_time && $input_booking_mulai_time < $booking_selesai_time || $input_booking_selesai_time > $booking_mulai_time && $input_booking_selesai_time < $booking_selesai_time || $booking_mulai_time > $input_booking_mulai_time && $booking_mulai_time < $input_booking_selesai_time || $booking_selesai_time > $input_booking_mulai_time && $booking_selesai_time < $input_booking_selesai_time) {
                         $available = false;
                     }
                 }
                 /* Cek di tabel transaksi */
                 if ($available) {
                     $transaksi_of_alat = Transaksi::where('id_barang', '=', $alat->id)->get();
                     foreach ($transaksi_of_alat as $transaksi) {
                         $transaksi_pinjam_time = $transaksi->waktu_pinjam;
                         $transaksi_rencana_kembali_time = $transaksi->waktu_rencana_kembali;
                         if ($input_booking_mulai_time > $transaksi_pinjam_time && $input_booking_mulai_time < $transaksi_rencana_kembali_time || $input_booking_selesai_time > $transaksi_pinjam_time && $input_booking_selesai_time < $transaksi_rencana_kembali_time || $transaksi_pinjam_time > $input_booking_mulai_time && $transaksi_pinjam_time < $input_booking_selesai_time || $transaksi_rencana_kembali_time > $input_booking_mulai_time && $transaksi_rencana_kembali_time < $input_booking_selesai_time) {
                             $available = false;
                         }
                     }
                 }
                 if ($available) {
                     $selected_id = $alat->id;
                 }
             }
         }
         if ($selected_id < 1) {
             return "Tidak ada alat tersedia";
         } else {
             /* cek tanggal */
             if (strtotime(Input::get('waktu_booking_selesai')) <= strtotime(Input::get('waktu_booking_mulai'))) {
                 return "Tanggal tidak valid";
             } else {
                 // store
                 $booking->id_barang = $selected_id;
                 $booking->id_pembooking = Input::get('id_pembooking');
                 $booking->waktu_booking_mulai = Input::get('waktu_booking_mulai');
                 $booking->waktu_booking_selesai = Input::get('waktu_booking_selesai');
                 $booking->save();
                 return $booking->id;
             }
         }
     }
 }
예제 #3
0
 public function bulananPpk()
 {
     if (Request::get('monthFrom') < 10) {
         $dateFrom = Request::get('yearFrom') . '-0' . Request::get('monthFrom') . '-01';
     } else {
         $dateFrom = Request::get('yearFrom') . '-' . Request::get('monthFrom') . '-01';
     }
     if (Request::get('monthTo') < 10) {
         $dateTo = Request::get('yearTo') . '-0' . Request::get('monthTo') . '-01';
     } else {
         $dateTo = Request::get('yearTo') . '-' . Request::get('monthTo') . '-01';
     }
     $counts = [];
     $bil = 1;
     $units = Unit::find(\Auth::user()->unit);
     $kategoris = Kategori::where('unit', \Auth::user()->unit)->where('status', 'active')->get();
     if (\Auth::user()->level->id == 1) {
         $kategoris = Kategori::where('status', 'active')->get();
     }
     foreach ($kategoris as $kategori) {
         $peralatans = Peralatan::where('kategori_id', $kategori->id)->get();
         foreach ($peralatans as $peralatan) {
             $count = Laporan::where('tarikh', '>=', $dateFrom)->where('tarikh', '<=', $dateTo)->where('peralatan_id', $peralatan->id)->count();
             array_push($counts, ['kategori' => $kategori->nama, 'peralatan' => $peralatan->nama, 'count' => $count]);
         }
     }
     $bil = 1;
     $jumlah = 0;
     foreach ($counts as $count) {
         $jumlah += $count['count'];
     }
     //        dd($counts);
     return View('members.supervisor.laporan.bulananPenempatan', compact('bil', 'counts', 'units', 'kategoris', 'jumlah'));
 }
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function search($jenis)
 {
     return Peralatan::where('jenis', 'LIKE', '%' . $jenis . '%')->get();
 }