PATH:
home
/
lab2454c
/
sothebry.softkinesis.com
/
backups
/
backup
/
core
/
app
/
Http
/
Controllers
/
Admin
<?php namespace App\Http\Controllers\Admin; use App\Models\GeneralSetting; use App\Http\Controllers\Controller; use App\Models\Transaction; use App\Models\User; use App\Models\WithdrawMethod; use App\Models\Withdrawal; use Carbon\Carbon; use Illuminate\Http\Request; class WithdrawalController extends Controller { public function pending() { $pageTitle = 'Pending Withdrawals'; $withdrawals = Withdrawal::pending()->with(['user','method'])->orderBy('id','desc')->paginate(getPaginate()); $emptyMessage = 'No withdrawal found'; return view('admin.withdraw.withdrawals', compact('pageTitle', 'withdrawals', 'emptyMessage')); } public function approved() { $pageTitle = 'Approved Withdrawals'; $withdrawals = Withdrawal::approved()->with(['user','method'])->orderBy('id','desc')->paginate(getPaginate()); $emptyMessage = 'No withdrawal found'; return view('admin.withdraw.withdrawals', compact('pageTitle', 'withdrawals', 'emptyMessage')); } public function rejected() { $pageTitle = 'Rejected Withdrawals'; $withdrawals = Withdrawal::rejected()->with(['user','method'])->orderBy('id','desc')->paginate(getPaginate()); $emptyMessage = 'No withdrawal found'; return view('admin.withdraw.withdrawals', compact('pageTitle', 'withdrawals', 'emptyMessage')); } public function log() { $pageTitle = 'Withdrawals Log'; $withdrawals = Withdrawal::where('status', '!=', 0)->with(['user','method'])->orderBy('id','desc')->paginate(getPaginate()); $emptyMessage = 'No withdrawal history'; return view('admin.withdraw.withdrawals', compact('pageTitle', 'withdrawals', 'emptyMessage')); } public function logViaMethod($methodId,$type = null){ $method = WithdrawMethod::findOrFail($methodId); if ($type == 'approved') { $pageTitle = 'Approved Withdrawal Via '.$method->name; $withdrawals = Withdrawal::where('status', 1)->with(['user','method'])->where('method_id',$method->id)->orderBy('id','desc')->paginate(getPaginate()); }elseif($type == 'rejected'){ $pageTitle = 'Rejected Withdrawals Via '.$method->name; $withdrawals = Withdrawal::where('status', 3)->with(['user','method'])->where('method_id',$method->id)->orderBy('id','desc')->paginate(getPaginate()); }elseif($type == 'pending'){ $pageTitle = 'Pending Withdrawals Via '.$method->name; $withdrawals = Withdrawal::where('status', 2)->with(['user','method'])->where('method_id',$method->id)->orderBy('id','desc')->paginate(getPaginate()); }else{ $pageTitle = 'Withdrawals Via '.$method->name; $withdrawals = Withdrawal::where('status', '!=', 0)->with(['user','method'])->where('method_id',$method->id)->orderBy('id','desc')->paginate(getPaginate()); } $emptyMessage = 'No withdrawal found'; return view('admin.withdraw.withdrawals', compact('pageTitle', 'withdrawals', 'emptyMessage','method')); } public function search(Request $request, $scope) { $search = $request->search; $emptyMessage = 'No search result found.'; $withdrawals = Withdrawal::with(['user', 'method'])->where('status','!=',0)->where(function ($q) use ($search) { $q->where('trx', 'like',"%$search%") ->orWhereHas('user', function ($user) use ($search) { $user->where('username', 'like',"%$search%"); }); }); if ($scope == 'pending') { $pageTitle = 'Pending Withdrawal Search'; $withdrawals = $withdrawals->where('status', 2); }elseif($scope == 'approved'){ $pageTitle = 'Approved Withdrawal Search'; $withdrawals = $withdrawals->where('status', 1); }elseif($scope == 'rejected'){ $pageTitle = 'Rejected Withdrawal Search'; $withdrawals = $withdrawals->where('status', 3); }else{ $pageTitle = 'Withdrawal History Search'; } $withdrawals = $withdrawals->paginate(getPaginate()); $pageTitle .= ' - ' . $search; return view('admin.withdraw.withdrawals', compact('pageTitle', 'emptyMessage', 'search', 'scope', 'withdrawals')); } public function dateSearch(Request $request,$scope){ $search = $request->date; if (!$search) { return back(); } $date = explode('-',$search); $start = @$date[0]; $end = @$date[1]; // date validation $pattern = "/\d{2}\/\d{2}\/\d{4}/"; if ($start && !preg_match($pattern,$start)) { $notify[] = ['error','Invalid date format']; return redirect()->route('admin.withdraw.log')->withNotify($notify); } if ($end && !preg_match($pattern,$end)) { $notify[] = ['error','Invalid date format']; return redirect()->route('admin.withdraw.log')->withNotify($notify); } if ($start) { $withdrawals = Withdrawal::where('status','!=',0)->whereDate('created_at',Carbon::parse($start)); } if($end){ $withdrawals = Withdrawal::where('status','!=',0)->whereDate('created_at','>=',Carbon::parse($start))->whereDate('created_at','<=',Carbon::parse($end)); } if ($request->method) { $method = WithdrawMethod::findOrFail($request->method); $withdrawals = $withdrawals->where('method_id',$method->id); } if ($scope == 'pending') { $withdrawals = $withdrawals->where('status', 2); }elseif($scope == 'approved'){ $withdrawals = $withdrawals->where('status', 1); }elseif($scope == 'rejected') { $withdrawals = $withdrawals->where('status', 3); } $withdrawals = $withdrawals->with(['user', 'method'])->paginate(getPaginate()); $pageTitle = 'Withdraw Log'; $emptyMessage = 'No Withdrawals Found'; $dateSearch = $search; return view('admin.withdraw.withdrawals', compact('pageTitle', 'emptyMessage', 'dateSearch', 'withdrawals','scope')); } public function details($id) { $general = GeneralSetting::first(); $withdrawal = Withdrawal::where('id',$id)->where('status', '!=', 0)->with(['user','method'])->firstOrFail(); $pageTitle = $withdrawal->user->username.' Withdraw Requested ' . showAmount($withdrawal->amount) . ' '.$general->cur_text; $details = $withdrawal->withdraw_information ? json_encode($withdrawal->withdraw_information) : null; $methodImage = getImage(imagePath()['withdraw']['method']['path'].'/'. $withdrawal->method->image,'800x800'); return view('admin.withdraw.detail', compact('pageTitle', 'withdrawal','details','methodImage')); } public function approve(Request $request) { $request->validate(['id' => 'required|integer']); $withdraw = Withdrawal::where('id',$request->id)->where('status',2)->with('user')->firstOrFail(); $withdraw->status = 1; $withdraw->admin_feedback = $request->details; $withdraw->save(); $general = GeneralSetting::first(); notify($withdraw->user, 'WITHDRAW_APPROVE', [ 'method_name' => $withdraw->method->name, 'method_currency' => $withdraw->currency, 'method_amount' => showAmount($withdraw->final_amount), 'amount' => showAmount($withdraw->amount), 'charge' => showAmount($withdraw->charge), 'currency' => $general->cur_text, 'rate' => showAmount($withdraw->rate), 'trx' => $withdraw->trx, 'admin_details' => $request->details ]); $notify[] = ['success', 'Withdrawal marked as approved.']; return redirect()->route('admin.withdraw.pending')->withNotify($notify); } public function reject(Request $request) { $general = GeneralSetting::first(); $request->validate(['id' => 'required|integer']); $withdraw = Withdrawal::where('id',$request->id)->where('status',2)->firstOrFail(); $withdraw->status = 3; $withdraw->admin_feedback = $request->details; $withdraw->save(); $user = User::find($withdraw->user_id); $user->balance += $withdraw->amount; $user->save(); $transaction = new Transaction(); $transaction->user_id = $withdraw->user_id; $transaction->amount = $withdraw->amount; $transaction->post_balance = $user->balance; $transaction->charge = 0; $transaction->trx_type = '+'; $transaction->details = showAmount($withdraw->amount) . ' ' . $general->cur_text . ' Refunded from withdrawal rejection'; $transaction->trx = $withdraw->trx; $transaction->save(); notify($user, 'WITHDRAW_REJECT', [ 'method_name' => $withdraw->method->name, 'method_currency' => $withdraw->currency, 'method_amount' => showAmount($withdraw->final_amount), 'amount' => showAmount($withdraw->amount), 'charge' => showAmount($withdraw->charge), 'currency' => $general->cur_text, 'rate' => showAmount($withdraw->rate), 'trx' => $withdraw->trx, 'post_balance' => showAmount($user->balance), 'admin_details' => $request->details ]); $notify[] = ['success', 'Withdrawal has been rejected.']; return redirect()->route('admin.withdraw.pending')->withNotify($notify); } }
[-] SubcategoryController.php
[edit]
[-] CategoryController.php
[edit]
[-] FrontendController.php
[edit]
[-] PageBuilderController.php
[edit]
[-] WithdrawalController.php
[edit]
[-] SupportTicketController.php
[edit]
[-] SpecificationController.php
[edit]
[-] AdvertisementController.php
[edit]
[+]
..
[-] HomeImageController.php
[edit]
[-] DepositController.php
[edit]
[-] ProductContentController.php
[edit]
[-] ExtensionController.php
[edit]
[-] MomentContentController.php
[edit]
[-] DynamicPageController.php
[edit]
[-] ManageUsersController.php
[edit]
[-] ReportController.php
[edit]
[-] GatewayController.php
[edit]
[-] EmailTemplateController.php
[edit]
[-] FaqContentController.php
[edit]
[-] OrderController.php
[edit]
[-] BrandController.php
[edit]
[-] ManualGatewayController.php
[edit]
[-] AdminController.php
[edit]
[+]
Auth
[-] LanguageController.php
[edit]
[-] WithdrawMethodController.php
[edit]
[-] FashionNftController.php
[edit]
[-] GeneralSettingController.php
[edit]
[-] ProductController.php
[edit]
[-] SmsTemplateController.php
[edit]