/home/kueuepay/public_html/app/Http/Controllers/Admin/PaymentLogsController.php
<?php
namespace App\Http\Controllers\Admin;
use Exception;
use App\Models\Transaction;
use Illuminate\Http\Request;
use App\Http\Helpers\Response;
use App\Models\UserNotification;
use App\Models\TransactionDevice;
use App\Models\Admin\BasicSettings;
use App\Http\Controllers\Controller;
use App\Constants\PaymentGatewayConst;
use App\Notifications\Admin\CardMethodConfirmLogEmailNotification;
use App\Notifications\Admin\CardMethodRejectLogEmailNotification;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Notification;
class PaymentLogsController extends Controller
{
/**
* Method for all card method logs
* @return view
*/
public function index(){
$page_title = "All Logs";
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->whereNot('status',PaymentGatewayConst::STATUSTEST)
->orderBy('id','desc')->paginate(10);
return view('admin.sections.payment-logs.index',compact(
'page_title',
'transactions'
));
}
/**
* Method for pending card method logs
* @return view
*/
public function pending(){
$page_title = "Pending Logs";
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSPENDING)
->orderBy('id','desc')->paginate(10);
return view('admin.sections.payment-logs.pending',compact(
'page_title',
'transactions'
));
}
/**
* Method for complete card method logs
* @return view
*/
public function complete(){
$page_title = "Confirm Logs";
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSSUCCESS)
->orderBy('id','desc')->paginate(10);
return view('admin.sections.payment-logs.complete',compact(
'page_title',
'transactions'
));
}
/**
* Method for rejected card method logs
* @return view
*/
public function rejected(){
$page_title = "Rejected Logs";
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSREJECTED)
->orderBy('id','desc')->paginate(10);
return view('admin.sections.payment-logs.rejected',compact(
'page_title',
'transactions'
));
}
/**
* Method for view test card method logs
* @return view
*/
public function test(){
$page_title = "Test Logs";
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSTEST)
->orderBy("id","desc")->paginate(10);
return view('admin.sections.payment-logs.test',compact(
'page_title',
'transactions'
));
}
/**
* Method for view card method log details page
* @return view
* @param $trx_id
*/
public function details($trx_id){
$page_title = "Payment Log Details";
$transaction = Transaction::with(['card_method','user_wallet'])->where('trx_id',$trx_id)->first();
$transaction_device = TransactionDevice::where('transaction_id',$transaction->id)->first();
if(!$transaction) return back()->with(['error' => ['Sorry! Data not found.']]);
return view('admin.sections.payment-logs.details',compact(
'page_title',
'transaction',
'transaction_device'
));
}
/**
* Method for update status
* @param $trx_id
* @param Illuminate\Http\Request $request
*/
public function statusConfirm(Request $request,$trx_id){
$basic_setting = BasicSettings::first();
$validator = Validator::make($request->all(),[
'status' => 'required|integer',
]);
if($validator->fails()) {
$errors = ['error' => $validator->errors() ];
return Response::error($errors);
}
$validated = $validator->validate();
$transaction = Transaction::with('card_payment_method')->where('trx_id',$trx_id)->first();
try{
$transaction->update([
'status' => $validated['status'],
]);
$form_data = [
'data' => $transaction,
'status' => "Confirm",
];
if($basic_setting->email_notification == true){
Notification::route("mail",$transaction->user->email)->notify(new CardMethodConfirmLogEmailNotification($form_data));
}
UserNotification::create([
'user_id' => $transaction->user->id,
'transaction_id' => $transaction->id,
'details' => [
'title' => 'Your Order',
'amount' => $transaction->request_amount,
'currency' => $transaction->request_currency,
'card_number' => $transaction->card_payment_method->card_number,
'message' => "Successfully placed."
],
]);
}catch(Exception $e){
return back()->with(['error' => ['Something went wrong! Please try again.']]);
}
return back()->with(['success' => ['Transaction Status updated successfully']]);
}
/**
* Method for reject transaction
* @param $trx_id
* @param \Illuminate\Http\Request $request
*/
public function statusRejected(Request $request,$trx_id){
$basic_setting = BasicSettings::first();
$validator = Validator::make($request->all(),[
'reject_reason' => 'required',
'status' => 'required|integer',
]);
if($validator->fails()) {
$errors = ['error' => $validator->errors() ];
return Response::error($errors);
}
$validated = $validator->validate();
$transaction = Transaction::with('card_payment_method')->where('trx_id',$trx_id)->first();
try{
$transaction->update([
'status' => $validated['status'],
'reject_reason' => $validated['reject_reason']
]);
$form_data = [
'data' => $transaction,
'status' => "Reject",
];
if($basic_setting->email_notification == true){
Notification::route("mail",$transaction->user->email)->notify(new CardMethodRejectLogEmailNotification($form_data));
}
UserNotification::create([
'user_id' => $transaction->user->id,
'transaction_id' => $transaction->id,
'details' => [
'title' => 'Your Order',
'amount' => $transaction->request_amount,
'currency' => $transaction->request_currency,
'card_number' => $transaction->card_payment_method->card_number,
'message' => "Successfully placed."
],
]);
}catch(Exception $e){
return back()->with(['error' => ['Something went wrong! Please try again.']]);
}
return back()->with(['success' => ['Transaction Rejected successfully']]);
}
/**
* Method for search all log
*/
public function search(Request $request) {
$validator = Validator::make($request->all(),[
'text' => 'required|string',
]);
if($validator->fails()) {
$error = ['error' => $validator->errors()];
return Response::error($error,null,400);
}
$validated = $validator->validate();
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->search($validated['text'])->get();
return view('admin.components.search.all-log-search',compact('transactions'));
}
/**
* Method for search pending log
*/
public function searchPending(Request $request) {
$validator = Validator::make($request->all(),[
'text' => 'required|string',
]);
if($validator->fails()) {
$error = ['error' => $validator->errors()];
return Response::error($error,null,400);
}
$validated = $validator->validate();
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSPENDING)
->search($validated['text'])
->get();
return view('admin.components.search.all-log-search',compact('transactions'));
}
/**
* Method for search confirm log
*/
public function searchComplete(Request $request) {
$validator = Validator::make($request->all(),[
'text' => 'required|string',
]);
if($validator->fails()) {
$error = ['error' => $validator->errors()];
return Response::error($error,null,400);
}
$validated = $validator->validate();
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSSUCCESS)
->search($validated['text'])
->get();
return view('admin.components.search.all-log-search',compact('transactions'));
}
/**
* Method for search confirm log
*/
public function searchReject(Request $request) {
$validator = Validator::make($request->all(),[
'text' => 'required|string',
]);
if($validator->fails()) {
$error = ['error' => $validator->errors()];
return Response::error($error,null,400);
}
$validated = $validator->validate();
$transactions = Transaction::where('type',PaymentGatewayConst::CARD_PAYMENT)
->where('status',PaymentGatewayConst::STATUSREJECTED)
->search($validated['text'])
->get();
return view('admin.components.search.all-log-search',compact('transactions'));
}
}
Run Command [Bypass]
Run Command
Forgot Password
Reset Your Forgotten Password?
Take control of your account by resetting your password. Our password recovery page guides you through the necessary steps to securely reset your password.