ok
Direktori : /home2/selectio/www/3-idiots/app/Http/Controllers/Seller/ |
Current File : //home2/selectio/www/3-idiots/app/Http/Controllers/Seller/WithdrawController.php |
<?php namespace App\Http\Controllers\Seller; use App\CPU\BackEndHelper; use App\CPU\Convert; use App\CPU\Helpers; use App\Http\Controllers\Controller; use App\Model\SellerWallet; use App\Model\WithdrawalMethod; use App\Model\WithdrawRequest; use Brian2694\Toastr\Facades\Toastr; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class WithdrawController extends Controller { public function w_request(Request $request) { $method = WithdrawalMethod::find($request['withdraw_method']); $fields = array_column($method->method_fields, 'input_name'); $values = $request->all(); $data['method_name'] = $method->method_name; foreach ($fields as $field) { if(key_exists($field, $values)) { $data[$field] = $values[$field]; } } $wallet = SellerWallet::where('seller_id', auth()->guard('seller')->user()->id)->first(); if (($wallet->total_earning) >= Convert::usd($request['amount']) && $request['amount'] > 1) { DB::table('withdraw_requests')->insert([ 'seller_id' => auth()->guard('seller')->user()->id, 'amount' => Convert::usd($request['amount']), 'transaction_note' => null, 'withdrawal_method_id' => $request['withdraw_method'], 'withdrawal_method_fields' => json_encode($data), 'approved' => 0, 'created_at' => now(), 'updated_at' => now() ]); $wallet->total_earning -= Convert::usd($request['amount']); $wallet->pending_withdraw += Convert::usd($request['amount']); $wallet->save(); Toastr::success('Withdraw request has been sent.'); return redirect()->back(); } Toastr::error('invalid request.!'); return redirect()->back(); } public function close_request($id) { $withdraw_request = WithdrawRequest::find($id); $wallet = SellerWallet::where('seller_id', auth()->guard('seller')->user()->id)->first(); if (isset($withdraw_request) && isset($wallet) && $withdraw_request->approved == 0) { $wallet->total_earning += Convert::usd($withdraw_request['amount']); $wallet->pending_withdraw -= Convert::usd($withdraw_request['amount']); $wallet->save(); $withdraw_request->delete(); Toastr::success('Request closed!'); } else { Toastr::error('Invalid request'); } return back(); } public function status_filter(Request $request) { session()->put('withdraw_status_filter', $request['withdraw_status_filter']); return response()->json(session('withdraw_status_filter')); } public function list() { $all = session()->has('withdraw_status_filter') && session('withdraw_status_filter') == 'all' ? 1 : 0; $active = session()->has('withdraw_status_filter') && session('withdraw_status_filter') == 'approved' ? 1 : 0; $denied = session()->has('withdraw_status_filter') && session('withdraw_status_filter') == 'denied' ? 1 : 0; $pending = session()->has('withdraw_status_filter') && session('withdraw_status_filter') == 'pending' ? 1 : 0; $withdraw_requests = WithdrawRequest::with(['seller']) ->where(['seller_id'=>auth('seller')->id()]) ->when($all, function ($query) { return $query; }) ->when($active, function ($query) { return $query->where('approved', 1); }) ->when($denied, function ($query) { return $query->where('approved', 2); }) ->when($pending, function ($query) { return $query->where('approved', 0); }) ->orderBy('id', 'desc') ->paginate(Helpers::pagination_limit()); return view('seller-views.withdraw.list', compact('withdraw_requests')); } public function method_list(Request $request) { $method = WithdrawalMethod::ofStatus(1)->where('id', $request->method_id)->first(); return response()->json(['content'=>$method], 200); } }