Exemplo n.º 1
0
 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();
 }