Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
gambling
/
app
/
Http
/
Controllers
/
Admin
:
DiamondRequestController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers\Admin; use App\Constants\Status; use App\Http\Controllers\Controller; use App\Models\DiamondRequest; use App\Models\Transaction; use App\Models\User; use Illuminate\Http\Request; class DiamondRequestController extends Controller { public function index() { $pageTitle = 'Diamond Requests'; $requests = $this->requestData(); return view('admin.diamond_request.index', compact('pageTitle', 'requests')); } public function pending() { $pageTitle = 'Pending Diamond Requests'; $requests = $this->requestData('pending'); return view('admin.diamond_request.index', compact('pageTitle', 'requests')); } public function approved() { $pageTitle = 'Approved Diamond Requests'; $requests = $this->requestData('approved'); return view('admin.diamond_request.index', compact('pageTitle', 'requests')); } public function rejected() { $pageTitle = 'Rejected Diamond Requests'; $requests = $this->requestData('rejected'); return view('admin.diamond_request.index', compact('pageTitle', 'requests')); } protected function requestData($scope = null) { $query = DiamondRequest::with('user')->searchable(['trx', 'user:username', 'user:email']); if ($scope) { $query = $query->$scope(); } return $query->orderBy('id', 'desc')->paginate(getPaginate()); } public function approve($id) { $diamondRequest = DiamondRequest::pending()->with('user')->findOrFail($id); $diamondRequest->status = Status::DIAMOND_APPROVED; $diamondRequest->save(); $user = $diamondRequest->user; $user->balance += $diamondRequest->amount; $user->save(); $transaction = new Transaction(); $transaction->user_id = $user->id; $transaction->amount = $diamondRequest->amount; $transaction->charge = 0; $transaction->post_balance = $user->balance; $transaction->trx_type = '+'; $transaction->trx = $diamondRequest->trx; $transaction->details = 'Diamond request approved'; $transaction->remark = 'diamond_request_approved'; $transaction->save(); notify($user, 'DIAMOND_REQUEST_APPROVED', [ 'amount' => showAmount($diamondRequest->amount), 'trx' => $diamondRequest->trx, ]); $notify[] = ['success', 'Diamond request approved successfully']; return back()->withNotify($notify); } public function reject(Request $request, $id) { $request->validate([ 'reason' => 'required|string|max:1000', ]); $diamondRequest = DiamondRequest::pending()->with('user')->findOrFail($id); $diamondRequest->status = Status::DIAMOND_REJECTED; $diamondRequest->rejection_reason = $request->reason; $diamondRequest->save(); notify($diamondRequest->user, 'DIAMOND_REQUEST_REJECTED', [ 'amount' => showAmount($diamondRequest->amount), 'trx' => $diamondRequest->trx, ]); $notify[] = ['success', 'Diamond request rejected successfully']; return back()->withNotify($notify); } }