83 lines
2.2 KiB
PHP
83 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Course;
|
|
use App\Models\Transaction;
|
|
use App\Models\User;
|
|
use App\Traits\ApiResponseHelper;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class TransactionController extends Controller
|
|
{
|
|
use ApiResponseHelper;
|
|
|
|
|
|
public function create(Request $request)
|
|
{
|
|
|
|
$pageConfigs = [
|
|
'pageHeader' => true,
|
|
'showMenu' => true
|
|
];
|
|
|
|
$breadcrumbs = [['link' => 'admin/course/'.$request->course.'/edit', 'name' => 'Transactions'], ['name' => 'Add']];
|
|
|
|
return view('content.users.courses.transactions.create', [
|
|
'pageConfigs' => $pageConfigs,
|
|
'breadcrumbs' => $breadcrumbs,
|
|
'course_id'=>$request->course
|
|
]);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'course_id' => ['required'],
|
|
'amount' => ['required'],
|
|
'category' => ['required'],
|
|
]);
|
|
|
|
try {
|
|
$course = Course::findOrFail($request->course_id);
|
|
DB::beginTransaction();
|
|
$transaction = new Transaction();
|
|
$transaction->student_id = $course->student_id;
|
|
$transaction->course_id = $request->course_id;
|
|
$transaction->amount = $request->amount;
|
|
$transaction->type = $request->category;
|
|
$transaction->save();
|
|
DB::commit();
|
|
return redirect()->route('course.edit', $course)->with([
|
|
'success' => "Transaction created successfully"
|
|
]);
|
|
} catch (\Throwable $exception) {
|
|
DB::rollBack();
|
|
return redirect()->back()->with([
|
|
'error' => $exception->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function destroy(Transaction $transaction)
|
|
{
|
|
|
|
|
|
try {
|
|
DB::beginTransaction();
|
|
$transaction->delete();
|
|
DB::commit();
|
|
return redirect()->back()->with([
|
|
'success' => "Transaction deleted successfully"
|
|
]);
|
|
} catch (\Throwable $exception) {
|
|
DB::rollBack();
|
|
return redirect()->back()->with([
|
|
'error' => $exception->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
}
|