Edit File: BranchController.php
<?php namespace App\Http\Controllers\StoresDashboard; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Http\Requests\StoreBranchRequest; use App\Http\Requests\UpdateBranchRequest; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; use App\Traits\GeneralTrait; use App\Traits\ApiTrait; use App\Traits\Uploadable; use App\Models\Store; use App\Models\Country; use App\Models\Category; use App\Models\StoreTiming; use App\Models\User; use Auth; use Redirect; class BranchController extends Controller { // use ApiTrait, GeneralTrait, Uploadable; public function get_branches(Request $request){ $user = Auth::user(); $store = Store::where('user_id',$user->id)->orderBy('created_at', 'DESC') ->first(); $branches = Store::where('store_id',$store->id)->orderBy('created_at', 'DESC') ->paginate(10); return view('stores_dashboard.stores.branches',compact('store','branches','user')); } public function get_add_branch(Request $request){ $user = Auth::user(); $store = Store::where('user_id',$user->id) ->first(); $countries = Country::all(); return view('stores_dashboard.stores.add_branch',compact('store','user','countries')); } public function post_branch(StoreBranchRequest $request){ $data = $request->validated(); $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); $Unique = $this->is_unique('phone', $phone); if ($Unique){ $msg = trans('auth.phone_unique'); return $this->failReturn($msg); } $request['phone'] = $phone; $request['status'] = 'pending'; $request['type'] = 'store'; $main_store= Store::where('user_id', Auth::user()->id)->first(); $user = User::create($request->except('days','from','to','lat','long','address','store_id','password_confirmation')); $store = Store::create($request->except('days','from','to','name','email','phone','password','password_confirmation','country_key','status','type')); $store->user_id =$user->id; $store->name = ['ar' => $store->getTranslations('name')['ar'] , 'en' => $store->getTranslations('name')['en']]; $store->update(); if($store){ if($request['days']){ foreach($request['days'] as $key=>$ex){ if($request['from'][$key] && $request['to'][$key]){ $timing = new StoreTiming(); $timing->day = $request['days'][$key]; $timing->from = $request['from'][$key]; $timing->to = $request['to'][$key]; $timing->store_id = $store->id; $timing->save(); } } } } $store=Store::find($store->id); $store->updateCacheWithProducts(); $msg =trans('dashboard.created_successfully'); $url = route('stores_dashboard.get_branches'); return response()->json([ 'key' => 'success', 'msg' => $msg , 'url' => $url ]); } public function get_edit_branch(Request $request,$id){ $user = Auth::user(); $store = Store::where('user_id',$user->id) ->first(); $branch = Store::find($id); $branch_user = User::find($branch->user_id); $timings = StoreTiming::where('store_id',$branch->id)->get(); $countries = Country::all(); return view('stores_dashboard.stores.edit_branch',compact('store','user','countries','timings','branch','branch_user')); } public function post_edit_branch(UpdateBranchRequest $request){ $data = $request->validated(); $user = User::find($request['user_id']); $store = Store::find($request['branch_id']); $number = $this->convert2english($request->phone); $phone = $this->phoneValidate($number); if($phone != $user->phone){ $Unique_phone = $this->is_unique('phone', $phone); if ($Unique_phone){ $msg = trans('auth.phone_unique'); return $this->failMsg($msg); } } if($request['email'] != $user->email){ $Unique_email = $this->is_unique('email', $request['email']); if ($Unique_email){ $msg = trans('auth.email_unique'); return $this->failMsg($msg); } } $request['phone'] = $phone; $user->update($request->except('days','from','to','lat','long','address','store_id','user_id','branch_id')); $store->update($request->except('days','from','to','name','email','phone','password','country_key','branch_id')); $store->update(); if($store){ $olds = $store->timings; if ($olds) { foreach ($olds as $old) { $old->delete(); } } if($request['days']){ foreach($request['days'] as $key=>$ex){ if($request['from'][$key] && $request['to'][$key]){ $timing = new StoreTiming(); $timing->day = $request['days'][$key]; $timing->from = $request['from'][$key]; $timing->to = $request['to'][$key]; $timing->store_id = $store->id; $timing->save(); } } } } $store=Store::find($data['store_id']); $store->updateCacheWithProducts(); $msg = trans('dashboard.alerts.updated_successfully'); $url = route('stores_dashboard.get_branches'); return response()->json([ 'key' => 'success', 'msg' => $msg , 'url' => $url ]); } public function delete_branch(Request $request) { $branch = Store::find($request['id']); $branch->delete(); $msg = trans('auth.deleted_success'); $url = route('stores_dashboard.get_branches'); if(Cache::has('store-'.$branch->id)){ Cache::forget('store-'.$branch->id); } return response()->json([ 'key' => 'success', 'msg' => $msg , 'url' => $url ]); } }
Back to File Manager