public static function autonumber($barang, $primary, $prefix) { $q = DB::table($barang)->select(DB::raw('MAX(RIGHT(' . $primary . ',5)) as kd_max')); $prx = $prefix . Dateindo::convertdate(); if ($q->count() > 0) { foreach ($q->get() as $k) { $tmp = (int) $k->kd_max + 1; $kd = $prx . sprintf("%06s", $tmp); } } else { $kd = $prx . "000001"; } return $kd; }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $carts = Cart::content(); $id = $request->input('id'); $rowid = $request->input('rowid'); $jumlah = $request->input('jumlah'); $barang = DB::table('barang'); $stok = $barang->whereIn('idBarang', $id)->lists('jumlahBarang'); 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 beli barang dengan "kode ' . $key . '" melebihi stok yang ada.'; $messages['jumlah' . $key . '.required'] = 'jumlah beli barang dengan "kode ' . $key . '" harus di isi.'; } $validator = Validator::make($jumlah, $rules, $messages); if ($validator->fails()) { return redirect('penjualan/create')->withErrors($validator)->withInput(); } else { $jual = new Penjualan(); $jual->kodeJual = $request->input('kodeJual'); $jual->userId = Auth::user()->userId; $jual->idPelanggan = $request->input('namaplg'); $jual->tgl = Dateindo::datenow(); $jual->save(); foreach ($carts as $cart) { // foreach ($jumlah as $key => $value) DB::table('detail_jual')->insert(['idBarang' => $cart->id, 'jumlah' => $jumlah[$cart->id], 'kodeJual' => $request->input('kodeJual')]); $barangs = DB::table('barang')->where('idBarang', '=', $cart->id)->get(); foreach ($barangs as $brg) { DB::table('barang')->where('idBarang', '=', $cart->id)->update(['jumlahBarang' => $brg->jumlahBarang - $jumlah[$cart->id]]); } } Cart::destroy(); return redirect('penjualan/create'); } }