public function store(Request $request) { $pinjam = new Peminjaman(); $carts = Cart::content(); $id = $request->input('id'); $rowid = $request->input('rowid'); $jumlah = $request->input('jumlah'); $barang = DB::table('subKelompok'); $kodePinjam = $pinjam->getKodePeminjaman(); $stok = DB::table('subKelompok')->whereIn('id_sub', $id)->lists('stock'); $nama = DB::table('subKelompok')->whereIn('id_sub', $id)->lists('nama_sub', 'id_sub'); foreach ($jumlah as $key => $val) { $jumlah['jumlah' . $key] = $jumlah[$key]; $idx = array_search($key, $stok); $stok['stok' . $idx] = $stok[$idx]; $rules['jumlah' . $key] = 'required|numeric|max:' . $stok[$idx]; $messages['jumlah' . $key . '.max'] = 'jumlah pinjam barang "' . $nama[$key] . '" melebihi stok yang ada.'; $messages['jumlah' . $key . '.required'] = 'jumlah pinjam barang "' . $nama[$key] . '" harus di isi.'; } $validator = Validator::make($jumlah, $rules, $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } else { Peminjaman::create(['id' => $kodePinjam, 'user_id' => Auth::user()->userId, 'is_return' => 'false', 'is_approve' => 'false', 'id_lokasi' => Auth::user()->id_lokasi]); foreach ($carts as $cart) { DB::table('detail_peminjaman')->insert(['id_sub' => $cart->id, 'jumlah' => $jumlah[$cart->id], 'id_peminjaman' => $kodePinjam]); $barangs = DB::table('subKelompok')->where('id_sub', '=', $cart->id)->get(); foreach ($barangs as $brg) { DB::table('subKelompok')->where('id_sub', '=', $cart->id)->update(['stock' => $brg->stock - $jumlah[$cart->id]]); } } Cart::destroy(); } return redirect()->back(); }