get('type') == 'Admin') { return view('Dashboard.index'); } return redirect()->back(); } public function products() { if (session()->get('type') == 'Admin') { $products = Product::all(); return view('Dashboard.products', compact('products')); } return redirect()->back(); } // public function addNewProduct() // { // $validated = request()->validate([ // 'name' => 'required', // 'price' => 'required', // 'description' => 'required', // 'image' => 'required|image|mimes:jpeg,png,jpg,gif, // svg|max:2048', // 'quantity' => 'required', // ]); // if (request()->hasFile('file')) { // $file = request()->file('file'); // $fileName = $file->getClientOriginalName(); // $file->move('uploads/products/', $fileName); // request()->merge([ // 'picture' => $fileName, // ]); // } // Product::create(request()->all()); // // $product = new Product(); // // $product->name = $data->input('name'); // // $product->picture = $data->file('file')->getClientOriginalName(); // // $data->file('file')->move('uploads/products/', $product->picture); // // $product->description = $data->input('description'); // // $product->price = $data->input('price'); // // $product->quantity = $data->input('quantity'); // // $product->category = $data->input('category'); // // $product->type = $data->input('type'); // // $abc = $product->save(); // // dd($abc); // return redirect()->back()->with('success', 'Product Added Successfully'); // // return view('Dashboard.addNewProduct'); // } //mass assignment for adding new product public function addNewProduct(Request $request) { if (session()->get('type') == 'Admin') { $validated = $request->validate([ 'name' => 'required', 'price' => 'required|numeric', 'description' => 'required', 'file' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:10240', 'quantity' => 'required|numeric', 'category' => 'required', 'type' => 'required', ]); if ($request->hasFile('file')) { $file = $request->file('file'); $fileName = time() . '_' . $file->getClientOriginalName(); $file->move(public_path('uploads/products'), $fileName); $validated['picture'] = $fileName; } Product::create($validated); return redirect()->back()->with('success', 'Product Added Successfully'); } return redirect()->back(); } //normal assignment for update // public function updateProduct(Request $request) // { // $validated = $request->validate([ // 'name' => 'required', // 'price' => 'required|numeric', // 'description' => 'required', // 'file' => 'image|mimes:jpeg,png,jpg,gif,svg|max // :2048', // 'quantity' => 'required|numeric', // 'category' => 'required', // 'type' => 'required', // ]); // if ($request->hasFile('file')) { // $file = $request->file('file'); // $fileName = time() . '_' . $file->getClientOriginalName(); // $file->move(public_path('uploads/products'), $fileName); // $validated['picture'] = $fileName; // } // $product = Product::find($request->id); // $product->name = $validated['name']; // $product->price = $validated['price']; // $product->description = $validated['description']; // $product->quantity = $validated['quantity']; // $product->category = $validated['category']; // $product->type = $validated['type']; // $product->save(); // return redirect()->back()->with('success', 'Product Updated Successfully'); // } //mass assignment for update public function updateProduct(Request $request) { if (session()->get('type') == 'Admin') { $validated = $request->validate([ 'name' => 'required', 'price' => 'required|numeric', 'description' => 'required', 'quantity' => 'required|numeric', 'category' => 'required', 'type' => 'required', 'file' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); $product = Product::find($request->input('id')); if ($request->hasFile('file')) { $file = $request->file('file'); $fileName = time() . '_' . $file->getClientOriginalName(); $file->move(public_path('uploads/products'), $fileName); $validated['picture'] = $fileName; } $product->update($validated); return redirect()->back()->with('success', 'Product Updated Successfully'); } return redirect()->back(); } public function deleteProduct($id) { if (session()->get('type') == 'Admin') { $product = Product::find($id); $product->delete(); return redirect()->back()->with('success', 'Product Deleted Successfully'); } return redirect()->back(); } public function profile() { if (session()->get('type') == 'Admin') { $user = User::find(session()->get('id')); return view('Dashboard.profile', compact('user')); } return redirect()->back(); } public function customers() { if (session()->get('type') == 'Admin') { $customers = User::where('type', 'customer')->get(); return view('Dashboard.customers', compact('customers')); } return redirect()->back(); } public function changeUserStatus($status, $id) { if (session()->get('type') == 'Admin') { $user = User::find($id); $user->status = $status; $user->save(); return redirect()->back()->with('success', 'User Status Changed Successfully'); } return redirect()->back(); } //old orders public function orders() { if (session()->get('type') == 'Admin') { $orderItems = DB::table('order_items') ->join('products', 'order_items.productId', 'products.id') ->select('products.name', 'products.picture', 'order_items.*') ->get(); $orders = DB::table('users') ->join('orders', 'orders.customerId', 'users.id') ->select('orders.*', 'users.name', 'users.email', 'users.status as userStatus') ->get(); return view('Dashboard.orders', compact('orders', 'orderItems')); } return redirect()->back(); } //new orders // public function orders() // { // if (session()->get('type') == 'Admin') { // $orderItems = DB::table('order_items') // ->join('products', 'order_items.productId', 'products.id') // ->select('products.name as productName', 'products.picture', 'order_items.*') // ->get(); // $orders = DB::table('users') // ->join('orders', 'orders.customerId', 'users.id') // ->select('orders.*', 'users.name as userName', 'users.email', 'users.status as userStatus') // ->get(); // return view('Dashboard.orders', compact('orders', 'orderItems')); // } // return redirect()->back(); // } public function changeOrderStatus($status, $id) { if (session()->get('type') == 'Admin') { $order = Order::find($id); $order->status = $status; $order->save(); return redirect()->back()->with('success', 'Order Status Changed Successfully'); } return redirect()->back(); } }