Edit File: MenuController.php
<?php namespace App\Http\Controllers\Admin; use App\Traits\Report; use Illuminate\Http\Request; use App\Models\StoreMenuCategory; use App\Models\Store; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Menu\Store as storeMenu; use App\Models\Product; class MenuController extends Controller { /*************************** get all **************************/ public function index($id) { $rows = StoreMenuCategory::where(['store_id' => $id])->get(); return view('admin.menus.index', compact('rows' , 'id')); } /*************************** store **************************/ public function create($id) { return view('admin.menus.create' , compact('id')); } /*************************** store **************************/ public function store(storeMenu $request , $id) { StoreMenuCategory::create($request->validated() + ([ 'name' => [ 'ar' => $request->name_ar , 'en' => $request->name_en ] , 'store_id' => $id ]) ); $store=Store::find($id); $store->updateCacheWithProducts(); Report::addToLog(' اضافة منيو') ; return response()->json(['url' => route('admin.stores.menus' , ['id' => $id])]); } /*************** show *************************************/ public function show($id) { $row = StoreMenuCategory::findOrFail($id); return view('admin.menus.show' , ['row' => $row]); } /*************************** edit page **************************/ public function edit($id) { $row = StoreMenuCategory::findOrFail($id); $store=Store::find($row->store_id); $store->updateCacheWithProducts(); return view('admin.menus.edit' , ['row' => $row]); } /*************************** update **************************/ public function update(storeMenu $request, $id) { $row = StoreMenuCategory::findOrFail($id); $row->update($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] ])) ; $store=Store::find($row->store_id); $store->updateCacheWithProducts(); Report::addToLog('تعديل منيو') ; return response()->json(['url' => route('admin.stores.menus' , [ 'id' => $row->store_id ])]); } /*************************** delete **************************/ public function destroy($id) { $row = StoreMenuCategory::findOrFail($id); $products = Product::distinct('store_menu_category_id')->pluck('store_menu_category_id')->toArray(); if($products){ if(in_array($row->id,$products)){ return response()->json(['key' => 'failed','msg' =>'لا نستطيع حذف القسم لأن يوجد به منتجات']); } } $store=Store::find($row->store_id); $row->delete(); $store->updateCacheWithProducts(); Report::addToLog('حذف منيو') ; return response()->json(['id' =>$id]); } public function destroyAll(Request $request) { $requestIds = json_decode($request->data); foreach ($requestIds as $id) { $ids[] = $id->id; } $products = Product::distinct('store_menu_category_id')->pluck('store_menu_category_id')->toArray(); if ($menus=StoreMenuCategory::WhereIn('id',$ids)->get()) { $menu=$menus->first(); $store=Store::find($menu->store_id); foreach($menus as $menu){ if(in_array($menu->id,$products)){ return response()->json(['key' => 'failed','msg' =>'لا نستطيع حذف الاقسام لأن بها منتجات']); } } $menus->map->delete(); $store->updateCacheWithProducts(); Report::addToLog(' حذف العديد من المنيوهات') ; return response()->json(['key' => 'success']); } else { return response()->json(['key' => 'failed']); } } }
Back to File Manager