private function save($publicId = null) { $productId = $publicId ? Product::getPrivateId($publicId) : null; $rules = ['product_key' => 'unique:products,product_key,' . $productId . ',id,account_id,' . Auth::user()->account_id]; $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { $url = $publicId ? 'products/' . $publicId . '/edit' : 'products/create'; return Redirect::to($url)->withErrors($validator)->withInput(); } else { if ($publicId) { $product = Product::scope($publicId)->firstOrFail(); } else { $product = Product::createNew(); } $product->product_key = strtoupper(trim(Input::get('product_key'))); $product->notes = trim(Input::get('notes')); $product->cost = trim(Input::get('cost')); $product->category_id = trim(Input::get('category_id')); $product->save(); if ($publicId) { Session::flash('message', trans('texts.updated_product')); } else { // Activity::createProduct($product); Session::flash('message', trans('texts.created_product')); } return Redirect::to('products/' . $product->public_id); } }