Edit File: HomeServices.php
<?php namespace App\Services\Store; use App\Models\Contact; use App\Models\Order; use App\Models\Product; use App\Models\Review; use App\Models\Store; use App\Models\StoreCommission; use App\Models\StoreTiming; use App\Models\User; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Auth; use Illuminate\Support\Facades\Cache; class HomeServices { use GeneralTrait, ApiTrait, Uploadable; public function statistics($user) { // $user = Auth::user(); $store = $user->store; $data['new_orders'] = Order::where('store_id', $store->id) ->where('status', 'open') ->where('store_status', 'pending') ->orderBy('created_at', 'desc') ->count(); $data['active_orders'] = Order::where('store_id', $store->id) ->whereIn('store_status', ['accepted', 'prepared']) ->orderBy('created_at', 'desc') ->count(); $data['finish_orders'] = Order::where('store_id', $store->id) ->where('status', 'finished') ->orderBy('created_at', 'desc') ->count(); $data['products'] = Product::where('store_id', $store->id) ->orderBy('created_at', 'desc') ->count(); return $data; } public function postContactUs(array $data) { $user = Auth::user(); $message = new Contact; $message->name = $data['name']; $message->email = $data['email']; $message->message = $data['message']; $message->user_id = $user->id; $message->save(); $msg = trans('stores_dashboard.success_msg'); return $msg; } public function getReviews() { $user = Auth::user(); $store = $user->store; $data['rate'] = $store->rating(); $data['reviews'] = Review::where('store_id', $store->id)->get(); return $data; } public function get_finance() { $commissions = StoreCommission::where('user_id', Auth::user()->id) ->orderBy('created_at', 'desc')->get(); return $commissions; } public function get_branches(array $data) { $user = Auth::user(); $store = $user->store; $branches = Store::where('store_id', $store->id) ->paginate($this->paginateNum()); return $branches; } public function get_branch(array $data) { $user = Auth::user(); $store = $user->store; $branch = Store::find($data['branch_id']); return $branch; } public function post_branch($request) { $main_store = Store::where('user_id', Auth::user()->id)->first(); // $user = User::create($request->validated() + ['type' => 'store' , 'approve' => 'accept']); $store = Store::create($request->validated() + [ 'store_id' => $main_store->id, // 'name' => [ // 'ar' => $request['name_ar'], // 'en' => $request['name_en'], // ], // 'user_id' => $user->id ]); $store = Store::find($store->id); $store->updateCacheWithProducts(); return $store; } public function post_edit_branch($request) { $main_store = auth()->user()->store; $store = Store::find($request->branch_id); $number = $this->convert2english($request->phone); $request['phone'] = $this->phoneValidate($number); if(! $store) { $data['failMsg'] = trans('stores_dashboard.branch_unavailable'); return $data; } $user = auth('api')->user(); $store_user = $store->user; $request['store_id'] = $store->store_id; if ($request['phone'] != $store_user->phone) { $check = User::where('phone' , $request['phone'])->where('country_key' , $request['country_key'])->first(); if ($check) { if ($check != $store_user) { $data['failMsg'] = trans('auth.email_unique'); return $data; } } } if ($request['email'] != $store_user->email) { $check = User::where('email' , $request['email'])->first(); if ($check) { if ($check != $store_user) { $data['failMsg'] = trans('auth.email_unique'); return $data; } } } $store_user->update($request->validated()); $store->update($request->validated()); $store = Store::find($store->id); $main_store = Store::find($store->store_id); $main_store->updateCacheWithProducts(); return $store; } public function deleteBranch(array $request) { $branch = Store::find($request['branch_id']); $user = $branch->user; $branch->delete(); $user->delete(); if (Cache::has('store-' . $branch->id)) { Cache::forget('store-' . $branch->id); } } public function updateBranches(array $request) { $branches = Store::where('store_id' , $request['store_id'])->get(); foreach ($branches as $branch) { $branch->update(['name' => [ 'ar' => $request['name_ar'], 'en' => $request['name_en'], ] ]); } } }
Back to File Manager