/**
  * 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]);
 }
Example #2
0
 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]);
 }
Example #4
0
 /**
  * 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);
 }
Example #5
0
 /**
  * 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);
 }
Example #6
0
 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');
 }
Example #7
0
 /**
  * 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'));
 }