/** * Show Category. * * @return Response */ public function show(Request $request, $slug) { $category = Category::where('slug', $slug)->first(); if (!$category) { \App::abort(404); } // pagination $session_type = 'product'; if (!$request->session()->has('order_by')) { $request->session()->put($session_type . '.order_by', 'created_at'); } if (!$request->session()->has('order_dir')) { $request->session()->put($session_type . '.order_dir', 'desc'); } if ($request->getorder_by) { $request->session()->put($session_type . '.order_by', $request->order_by); } if ($request->getorder_dir) { $request->session()->put($session_type . '.order_dir', $request->order_dir); } $orderby = $request->session()->get($session_type . '.order_by') == 'created_at' ? $request->session()->get($session_type . '.order_by') : $request->session()->get('language') . '.' . $request->session()->get($session_type . '.order_by'); $limit = $request->session()->get('limit'); $products = Product::whereIn('_id', $category->products)->orderBy($orderby, $request->session()->get($session_type . '.order_dir'))->paginate($limit); return view('themes/basic/categories/show', ['category' => $category, 'products' => $products]); }
public function getCategoryFilter($id) { $child_categories = []; foreach (Category::all() as $category) { if ($category->parent_id == $id) { $child_categories[] = $category->id; } } return view('products.index', ['products' => Product::whereIn('category_id', Category::find($id)->all_children())->get(), 'category' => Category::find($id), 'child_categories' => Category::whereIn('id', $child_categories)->get()]); }
/** * Show Category. * * @return Response */ public function show(Request $request, $slug) { $category = Category::where('slug', $slug)->first(); if (!$category) { \App::abort(404); } // pagination $session_type = 'product'; if (!$request->session()->has($session_type . '.order_by')) { $request->session()->put($session_type . '.order_by', 'created_at'); } if (!$request->session()->has($session_type . '.order_dir')) { $request->session()->put($session_type . '.order_dir', 'desc'); } if ($request->order_by) { $request->session()->put($session_type . '.order_by', $request->order_by); } if ($request->order_dir) { $request->session()->put($session_type . '.order_dir', $request->order_dir); } // try to remember why we were doing this ?? $orderby = $request->session()->get($session_type . '.order_by') == 'created_at' ? $request->session()->get($session_type . '.order_by') : $request->session()->get('language') . '.' . $request->session()->get($session_type . '.order_by'); $limit = $request->session()->get('limit'); $products = Product::whereIn('_id', $category->products); // filters if ($request->session()->has('filter') && !empty($request->session()->get('filter'))) { foreach ($request->session()->get('filter') as $key => $value) { $opv = OptionProductValue::where('filter', $key . '-' . $value)->first(); if (!isset($opv->products)) { $find = []; } else { $find = $opv->products; } $products = $products->whereIn('_id', $find); } } $products = $products->orderBy($request->session()->get($session_type . '.order_by'), $request->session()->get($session_type . '.order_dir'))->paginate($limit); return view('themes/kudos/categories/show', ['category' => $category, 'products' => $products]); }
/** * Show the application dashboard to the user. * * @return Response */ public function index($slug) { $explodeSlug = explode('-', $slug); $brandId = explode('.', end($explodeSlug))[0]; if (!$brandId) { return false; } $obj = new Product(); $AllparentID = Provider::where('parent_key', $brandId)->get()->toArray(); $idPr = []; if ($AllparentID) { foreach ($AllparentID as $val) { array_push($idPr, $val['id']); } $res = Product::whereIn('provider_id', $idPr)->orderBy('id', 'desc'); } else { $res = Product::where('provider_id', $brandId)->orderBy('id', 'desc'); } $res = $this->paging($res, $this->req, false); $brandName = Provider::find($brandId); $data = ['title' => 'Nhãn hiệu', 'brand_name' => $brandName->name, 'product' => $res, 'total' => $this->total, 'total_page' => $this->total_page]; return View::make('user/brand', $data); }
/** * Show the application dashboard to the user. * * @return Response */ public function index($slug) { $explodeSlug = explode('-', $slug); $catId = explode('.', end($explodeSlug))[0]; if (!$catId) { return false; } $catName = Category::find($catId); $obj = new Product(); $AllparentID = Category::where('parent_key', $catId)->get()->toArray(); $idPr = []; $res = []; if ($AllparentID) { foreach ($AllparentID as $val) { array_push($idPr, $val['id']); } $res = Product::whereIn('category_id', $idPr)->orderBy('id', 'desc'); } else { $res = Product::where('category_id', $catId)->orderBy('id', 'desc'); } $res = $this->paging($res, $this->req, false); $data = ['title' => 'Loại sản phẩm', 'cat_name' => $catName->name, 'product' => $res, 'total' => $this->total, 'total_page' => $this->total_page]; return View::make('user/category', $data); }
public function store(Request $request) { try { DB::transaction(function () use($request) { $inputs = $request->input(); $user = Auth::user(); $time = time(); $year = CommonHelper::get_current_financial_year(); $order_quantity = 0; $deliver_quantity = 0; $products = Product::whereIn('id', array_keys($inputs['quantity']))->get()->toArray(); // dd($products); foreach ($inputs['quantity'] as $key => $value) { if ($value > 0) { $salesDelivery = SalesDeliveryDetail::firstOrNew(['sales_order_id' => $inputs['sales_order_id'], 'product_id' => $key]); if ($salesDelivery->id) { $salesDelivery->updated_by = $user->id; $salesDelivery->updated_at = $time; $d_quantity = $salesDelivery->delivered_quantity += $inputs['deliver_now'][$key]; $salesDelivery->last_delivered_quantity = $inputs['deliver_now'][$key]; $salesDelivery->save(); } else { $salesDelivery->sales_order_id = $inputs['sales_order_id']; $salesDelivery->created_by = $user->id; $salesDelivery->created_at = $time; $salesDelivery->status = 2; //Partial Delivery $salesDelivery->product_id = $key; $salesDelivery->order_quantity = $value; $d_quantity = $salesDelivery->delivered_quantity = $inputs['deliver_now'][$key]; $salesDelivery->last_delivered_quantity = $inputs['deliver_now'][$key]; $salesDelivery->save(); } if ($d_quantity == $value) { $salesDelivery->status = 4; //product delivery completed $salesDelivery->save(); $salesOrderItem = SalesOrderItem::firstOrNew(['sales_order_id' => $inputs['sales_order_id'], 'product_id' => $key]); $salesOrderItem->status = 4; // Sales item Delivery Completed $salesOrderItem->save(); } else { $salesDelivery->status = 2; //Partial Delivery $salesDelivery->save(); $salesOrderItem = SalesOrderItem::firstOrNew(['sales_order_id' => $inputs['sales_order_id'], 'product_id' => $key]); $salesOrderItem->status = 2; //Partial Delivery $salesOrderItem->save(); } $deliver_quantity += $d_quantity; $order_quantity += $value; $quantity_delivered = $inputs['deliver_now'][$key]; $stocks = Stock::where(['year' => $year, 'stock_type' => Config::get('common.balance_type_intermediate'), 'workspace_id' => $user->workspace_id, 'product_id' => $key])->first(); if ($inputs['unit_type'][$key] == 2) { foreach ($products as $item) { if ($item['id'] == $key) { $quantity_delivered = $quantity_delivered / $item['weight'] * $item['length']; break; } } } if ($stocks->quantity < $quantity_delivered) { Session()->flash('warning_message', 'Insufficient stock.'); throw new \Exception(); } $stocks->quantity -= $quantity_delivered; $stocks->updated_by = $user->id; $stocks->updated_at = $time; $stocks->update(); } if ($deliver_quantity == $order_quantity) { $salesOrder = SalesOrder::find($inputs['sales_order_id']); $salesOrder->status = 4; // Sales Delivery Completed $salesOrder->save(); } else { $salesOrder = SalesOrder::find($inputs['sales_order_id']); $salesOrder->status = 2; //Partial Delivery $salesOrder->save(); } } }); } catch (\Exception $e) { Session()->flash('error_message', 'Products delivered failed.'); return Redirect::back(); } Session()->flash('flash_message', 'Products delivered successfully.'); return redirect('salesDelivery'); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $feedid, $id) { if (Input::has('action')) { // Filter 作業 switch ($request->input('action')) { case 'enable': $enable_checked = Input::get('enable'); if (is_array($enable_checked)) { // $products = Product::onlyTrashed()->whereIn('id', $enable_checked)->get(); foreach ($products as $product) { $product->restore(); } // redirect return Redirect::back()->with('message', 'Products Activate successfully'); //return redirect()->action('FeedProductController@index', [$id])->with('message', 'Error !: KEY 值重複 Feed_id:[ '.$id.' ]已有產品ID[ '.$item->product_id.' ]'); } break; case 'disable': $disable_checked = Input::get('disable'); if (is_array($disable_checked)) { // $products = Product::whereIn('id', $disable_checked)->get(); foreach ($products as $product) { $product->delete(); } // redirect //Session::flash('message', 'Successfully deleted the platform!'); return Redirect::back()->with('message', 'Product Disable successfully'); //return redirect()->action('FeedProductController@index', [$id])->with('message', 'Error !: KEY 值重複 Feed_id:[ '.$id.' ]已有產品ID[ '.$item->product_id.' ]'); } break; } } else { // 單一產品資料更新 $validator = Validator::make($request->all(), ['name' => 'required|max:255', 'description' => 'required|max:3000', 'url' => 'required|max:300|url', 'image' => 'required|max:300|url', 'price' => 'required|integer', 'retail_price' => 'required|integer', 'category' => 'required|max:100', 'google_category' => 'required|max:100', 'brand' => 'required|max:20', 'condition' => "required|in:new,used,refurbished", 'availability' => 'required|in:in stock,out of stock,preorder']); if ($validator->fails()) { //return redirect('admin/feeds/'.$feedid.'/product/'.$id) return Redirect::route('admin.feeds.product.edit', array($feedid, $id))->withInput()->withErrors($validator); } try { $product = Product::where('feed_id', $feedid)->where('id', $id)->first(); $product->name = $request->input('name'); $product->description = $request->input('description'); $product->url = $request->input('url'); $product->image = $request->input('image'); $product->price = $request->input('price'); $product->retail_price = $request->input('retail_price'); $product->category = $request->input('category'); $product->google_category = $request->input('google_category'); $product->brand = $request->input('brand'); $product->condition = $request->input('condition'); $product->availability = $request->input('availability'); $product->save(); } catch (Exception $e) { } return Redirect::route('admin.feeds.product.index', array($feedid))->with('message', 'Save - 產品內容更新完成!'); } }
/** * View Products of all Breeders * * @param Request $request * @return View */ public function viewProducts(Request $request) { // Check if search parameters are empty if (!$request->type && !$request->breed) { if ($request->sort && $request->sort != 'none') { $part = explode('-', $request->sort); $products = Product::whereIn('status', ['displayed', 'requested'])->where('quantity', '!=', 0)->orderBy($part[0], $part[1])->paginate(10); } else { $products = Product::whereIn('status', ['displayed', 'requested'])->where('quantity', '!=', 0)->orderBy('id', 'desc')->paginate(10); } } else { if ($request->type) { $products = Product::whereIn('status', ['displayed', 'requested'])->where('quantity', '!=', 0)->whereIn('type', explode(' ', $request->type)); } if ($request->breed) { $breedIds = $this->getBreedIds($request->breed); if (!$request->type) { $products = Product::whereIn('status', ['displayed', 'requested'])->where('quantity', '!=', 0)->whereIn('breed_id', $breedIds); } else { $products = $products->whereIn('breed_id', $breedIds); } } if ($request->sort) { if ($request->sort != 'none') { $part = explode('-', $request->sort); $products = $products->orderBy($part[0], $part[1]); } } $products = $products->paginate(10); } $filters = $this->parseThenJoinFilters($request->type, $request->breed, $request->sort); $breedFilters = Breed::where('name', 'not like', '%+%')->where('name', 'not like', '')->orderBy('name', 'asc')->get(); $urlFilters = ['type' => $request->type, 'breed' => $request->breed, 'sort' => $request->sort, 'page' => $products->currentPage()]; foreach ($products as $product) { $product->img_path = '/images/product/' . Image::find($product->primary_img_id)->name; $product->type = ucfirst($product->type); $product->birthdate = $this->transformBirthdateSyntax($product->birthdate); $product->age = $this->computeAge($product->birthdate); $product->breed = $this->transformBreedSyntax(Breed::find($product->breed_id)->name); $product->breeder = Breeder::find($product->breeder_id)->users()->first()->name; $product->farm_province = FarmAddress::find($product->farm_from_id)->province; } return view('user.customer.viewProducts', compact('products', 'filters', 'breedFilters', 'urlFilters')); }