public function get_angsuran_data($id_transaksi)
 {
     $data = \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->find($id_transaksi);
     $days = (strtotime(date_format($data->created_at, "Y-m-d")) - strtotime(date("Y-m-d"))) / (60 * 60 * 24);
     $data_induk = \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->find($data->id_induk)['jumlah_asli'];
     $json = array('bunga' => $data->jumlah_bunga, 'admin' => $data->biaya_admin, 'asuransi' => $data->biaya_asuransi, 'materai' => $data->biaya_materai, 'jumlah_asli' => $data->jumlah_asli, 'total_tabungan' => $data->total_tabungan, 'jumlah_total' => $data->jumlah_total, 'jatuh_tempo' => date_format($data->created_at, "d M Y"), 'terlambat' => $days, 'denda' => number_format(($days < -2 ? $days * -1 : 0) * (\App\Koperasi::find(Auth::user()->assigned_koperasi)['denda'] * $data_induk), 2, ".", ""), 'total_pembayaran' => number_format($data->jumlah_asli + $data->total_tabungan + ($days < -2 ? $days * -1 : 0) * (\App\Koperasi::find(Auth::user()->assigned_koperasi)['denda'] * $data_induk), 2, ".", ""));
     echo json_encode($json);
 }
 public function laporansimpananexport($bulan, $tahun)
 {
     $data = array();
     $data = \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->where('created_at', 'like', $tahun . "-%" . $bulan . "-%")->where('jenis_transaksi', 'Simpanan')->get();
     $export = array();
     foreach ($data as $key) {
         $export[] = array('Tanggal' => date_format(date_create($key->created_at), "d") . " " . \App\Bulan::where('bulan', date_format(date_create($key->created_at), "m"))->first()['nama'] . " " . date_format(date_create($key->created_at), "Y"), 'Nama' => \App\Anggota::where('id_koperasi', Auth::user()->assigned_koperasi)->find($key->id_anggota)['nama'], 'Jenis' => \App\Simpanan::where('id_koperasi', Auth::user()->assigned_koperasi)->find($key->id_jenis)['nama'], 'Jumlah' => (int) $key->jumlah_total);
     }
     Excel::create('Laporan Simpanan', function ($excel) use($export) {
         $excel->sheet('Laporan Simpanan', function ($sheet) use($export) {
             $sheet->fromArray($export);
         });
     })->download('xls');
 }
 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 add($id)
 {
     $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('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) {
         $pemeliharaan = new Pemeliharaan();
         $pemeliharaan->id_alat = $id;
         $pemeliharaan->mulai = date('Y-m-d H:i:s', time());
         $pemeliharaan->save();
         //return $this->success();
         return redirect('/dipelihara');
     } else {
         return view('error');
     }
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->find($id)->delete();
     \App\Keuangan::where('id_koperasi', Auth::user()->assigned_koperasi)->where('tabel', 'transaksis')->where('id_transaksi', $id)->delete();
     return redirect(url('transaksi/simpanan'));
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $pengguna = Pengguna::find($id);
     if (!$pengguna) {
         return "Not Found";
     }
     $inBooking = Booking::where('id_pembooking', '=', $id)->count();
     $inTransaksi = Transaksi::where('id_peminjam', '=', $id)->count();
     if ($inBooking > 0 || $inTransaksi > 0) {
         return "Tidak dapat menghapus";
     } else {
         $pengguna->delete();
         return 1;
     }
 }
 public function del($id)
 {
     Transaksi::where('id_alat', $id)->where('dikembalikan', '0000-00-00 00:00:00')->update(['dikembalikan' => date('Y-m-d H:i:s', time())]);
     return redirect('/dipinjam');
 }
 public function livebuktimanual($id_induk, $id_transaksi, $id_anggota, $arrIDKeu)
 {
     $data['keuangan'] = \App\Keuangan::where('id_koperasi', Auth::user()->assigned_koperasi)->whereIn('id', explode(",", $arrIDKeu))->get();
     $data['koperasi'] = \App\Koperasi::find(Auth::user()->assigned_koperasi);
     $jumlah = 0;
     foreach ($data['keuangan'] as $key) {
         $jumlah += $key->masuk;
     }
     $data['total'] = $jumlah;
     $data['transaksi'] = \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->where('id', $id_transaksi)->first();
     $data['anggota'] = \App\Anggota::where('id_koperasi', Auth::user()->assigned_koperasi)->find($data['transaksi']->id_anggota);
     $data['induk'] = \App\Transaksi::where('id_koperasi', Auth::user()->assigned_koperasi)->where('id', $id_induk)->first();
     // $pdf = \App::make('dompdf.wrapper');
     //$pdf->loadView('transaksi.printpembayaran',$data);
     $pdf = PDF::loadView('transaksi.printpembayaran', $data);
     $pdf->setPaper(array(0, 0, 612, 379));
     return $pdf->stream('download.pdf');
     //return view('transaksi.printpembayaran')->with($data);
 }
 /**
  * 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;
             }
         }
     }
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $peralatan = Peralatan::find($id);
     if (!$peralatan) {
         return "Not Found";
     }
     $inBooking = Booking::where('id_barang', '=', $id)->count();
     $inTransaksi = Transaksi::where('id_barang', '=', $id)->count();
     $inPerbaakan = Perbaikan::where('id_barang', '=', $id)->count();
     if ($inBooking > 0 || $inTransaksi > 0 || $inPerbaakan > 0) {
         return "Tidak dapat menghapus";
     } else {
         $peralatan->delete();
         return 1;
     }
 }