id)->first()->id; $cek_jumlah_pinjam = Pinjaman::where('id_anggota', $id_anggota)->where('status', 'Pinjam')->count(); if ($cek_jumlah_pinjam >= 1) { return redirect()->back()->with('maxpinjam', 'Maksimal peminjaman hanya 1'); } $cart = Cart::where('id_user', Auth::user()->id)->get(); // jika cart lebih dari 2 buku tidak bisa melakukan peminjaman if (count($cart) > 2) { return redirect()->back()->with('maxpinjambuku', 'Maksimal peminjaman hanya 2'); } $id_anggota = Anggota::where('users_id', Auth::user()->id)->first()->id; $pinjaman = new Pinjaman(); $pinjaman->id_anggota = $id_anggota; $pinjaman->status = 'Pending'; $pinjaman->confirmation_deadline = Carbon::now()->addMinutes(15); $pinjaman->tgl_pinjam = date('Y-m-d'); $pinjaman->tgl_kembali = date('Y-m-d', strtotime('+3 days')); $pinjaman->save(); foreach ($cart as $item) { $cek_buku = Buku::where('id', $item->id_buku)->first(); $jumlah_buku_dipinjam = DB::table('pinjaman') ->join('detail_pinjaman', 'pinjaman.id', '=', 'detail_pinjaman.pinjaman_id') ->where('detail_pinjaman.buku_id', $item->id_buku) ->where('pinjaman.status', 'Pinjam') ->count(); $jumlah_buku_pending = DB::table('pinjaman') ->join('detail_pinjaman', 'pinjaman.id', '=', 'detail_pinjaman.pinjaman_id') ->where('detail_pinjaman.buku_id', $item->id_buku) ->where('pinjaman.status', 'Pending') ->count(); $jumlah_buku_dipinjam = $jumlah_buku_dipinjam + $jumlah_buku_pending; $sisa_buku = $cek_buku->jumlah_buku - $jumlah_buku_dipinjam; if ($sisa_buku < 0) { return redirect()->back()->with('stoktidakada', 'Stok buku tidak mencukupi'); } $detailPinjaman = new DetailPinjaman(); $detailPinjaman->pinjaman_id = $pinjaman->id; $detailPinjaman->buku_id = $item->id_buku; $detailPinjaman->kondisi_buku = 'Baik'; $detailPinjaman->save(); } // delete cart foreach ($cart as $item) { $item->delete(); } // update status dibuku foreach ($cart as $item) { $buku = Buku::find($item->id_buku); // $buku->status = 'Di Pinjam'; $buku->save(); } return redirect('/user/account#orders')->with('pinjam', 'Berhasil melakukan peminjaman'); } public function tambahbukuketikapending() { $cart = Cart::where('id_user', Auth::user()->id)->get(); $id_anggota = Anggota::where('users_id', Auth::user()->id)->first()->id; $pinjaman = Pinjaman::where('id_anggota', $id_anggota)->where('status', 'Pending')->first(); // cek detail pinjaman apakah sudah ada 2 buku $cek_detail_pinjaman = DetailPinjaman::where('pinjaman_id', $pinjaman->id)->count(); if ($cek_detail_pinjaman >= 2) { return redirect()->back()->with('maxpinjambuku', 'Maksimal peminjaman hanya 2'); } foreach ($cart as $item) { $cek_buku = Buku::where('id', $item->id_buku)->first(); $jumlah_buku_dipinjam = DB::table('pinjaman') ->join('detail_pinjaman', 'pinjaman.id', '=', 'detail_pinjaman.pinjaman_id') ->where('detail_pinjaman.buku_id', $item->id_buku) ->where('pinjaman.status', 'Pinjam') ->count(); $jumlah_buku_pending = DB::table('pinjaman') ->join('detail_pinjaman', 'pinjaman.id', '=', 'detail_pinjaman.pinjaman_id') ->where('detail_pinjaman.buku_id', $item->id_buku) ->where('pinjaman.status', 'Pending') ->count(); $jumlah_buku_dipinjam = $jumlah_buku_dipinjam + $jumlah_buku_pending; $sisa_buku = $cek_buku->jumlah_buku - $jumlah_buku_dipinjam; if ($sisa_buku < 0) { return redirect()->back()->with('stoktidakada', 'Stok buku tidak mencukupi'); } $detailPinjaman = new DetailPinjaman(); $detailPinjaman->pinjaman_id = $pinjaman->id; $detailPinjaman->buku_id = $item->id_buku; $detailPinjaman->kondisi_buku = 'Baik'; $detailPinjaman->save(); } // delete cart foreach ($cart as $item) { $item->delete(); } return redirect('/user/account#orders')->with('tambahanbuku', 'Berhasil menambahkan buku ketika status peminjaman pending'); } public function batal($id) { $pinjaman = Pinjaman::find($id); $pinjaman->status = 'Gagal'; $pinjaman->save(); return redirect('/')->with('batalpinjam', 'Berhasil membatalkan peminjaman'); } }