From 9dc9d571b2071176310c991b4f52cf165c6dc597 Mon Sep 17 00:00:00 2001 From: Ibrahim Khalil Shakil Date: Sun, 10 Dec 2023 00:42:03 +0600 Subject: [PATCH] created checkout controller --- app/Http/Controllers/CheckoutController.php | 70 +++++++++++++------ app/Http/Controllers/CheckoutController2.php | 52 ++++++++++++++ app/Models/Checkout.php | 11 +++ ...23_12_09_170943_create_checkouts_table.php | 32 +++++++++ resources/views/backend/coupon/edit.blade.php | 2 +- .../backend/course/courses/create.blade.php | 2 +- resources/views/frontend/checkout.blade.php | 38 +++++----- routes/web.php | 6 +- 8 files changed, 171 insertions(+), 42 deletions(-) create mode 100644 app/Http/Controllers/CheckoutController2.php create mode 100644 app/Models/Checkout.php create mode 100644 database/migrations/2023_12_09_170943_create_checkouts_table.php diff --git a/app/Http/Controllers/CheckoutController.php b/app/Http/Controllers/CheckoutController.php index 8e0c083..bf1e24e 100644 --- a/app/Http/Controllers/CheckoutController.php +++ b/app/Http/Controllers/CheckoutController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Models\Checkout; +use App\Http\Controllers\Controller; use Illuminate\Http\Request; class CheckoutController extends Controller @@ -14,33 +16,27 @@ public function index() return view('frontend.checkout'); } + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + /** * Store a newly created resource in storage. */ public function store(Request $request) { try { - $instructor = new Instructor; - $instructor->name_en = $request->fullName_en; - $instructor->name_bn = $request->fullName_bn; - $instructor->contact_en = $request->contactNumber_en; - $instructor->contact_bn = $request->contactNumber_bn; - $instructor->email = $request->emailAddress; - $instructor->role_id = $request->roleId; - $instructor->bio = $request->bio; - $instructor->designation = $request->designation; - $instructor->title = $request->title; - $instructor->status = $request->status; - $instructor->password = Hash::make($request->fullName_bn); - $instructor->language = 'en'; - $instructor->access_block = $request->access_block; - - if ($request->hasFile('image')) { - $imageName = rand(111, 999) . time() . '.' . $request->image->extension(); - $request->image->move(public_path('uploads/instructors'), $imageName); - $instructor->image = $imageName; - } - if ($instructor->save()) + $checkout = new Checkout; + $checkout->cart_data = $request->base64_encode(json_encode(session('cart'))); + $checkout->payer_name = $request->payer_name; + $checkout->payment_option = $request->payment_option; + $checkout->status = $request->status; + + if ($checkout->save()) return redirect()->route('instructor.index')->with('success', 'Data Saved'); else return redirect()->back()->withInput()->with('error', 'Please try again'); @@ -49,4 +45,36 @@ public function store(Request $request) return redirect()->back()->withInput()->with('error', 'Please try again'); } } + + /** + * Display the specified resource. + */ + public function show(Checkout $checkout) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Checkout $checkout) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, Checkout $checkout) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(Checkout $checkout) + { + // + } } diff --git a/app/Http/Controllers/CheckoutController2.php b/app/Http/Controllers/CheckoutController2.php new file mode 100644 index 0000000..8e0c083 --- /dev/null +++ b/app/Http/Controllers/CheckoutController2.php @@ -0,0 +1,52 @@ +name_en = $request->fullName_en; + $instructor->name_bn = $request->fullName_bn; + $instructor->contact_en = $request->contactNumber_en; + $instructor->contact_bn = $request->contactNumber_bn; + $instructor->email = $request->emailAddress; + $instructor->role_id = $request->roleId; + $instructor->bio = $request->bio; + $instructor->designation = $request->designation; + $instructor->title = $request->title; + $instructor->status = $request->status; + $instructor->password = Hash::make($request->fullName_bn); + $instructor->language = 'en'; + $instructor->access_block = $request->access_block; + + if ($request->hasFile('image')) { + $imageName = rand(111, 999) . time() . '.' . $request->image->extension(); + $request->image->move(public_path('uploads/instructors'), $imageName); + $instructor->image = $imageName; + } + if ($instructor->save()) + return redirect()->route('instructor.index')->with('success', 'Data Saved'); + else + return redirect()->back()->withInput()->with('error', 'Please try again'); + } catch (Exception $e) { + // dd($e); + return redirect()->back()->withInput()->with('error', 'Please try again'); + } + } +} diff --git a/app/Models/Checkout.php b/app/Models/Checkout.php new file mode 100644 index 0000000..63cbf9c --- /dev/null +++ b/app/Models/Checkout.php @@ -0,0 +1,11 @@ +id(); + $table->string('cart_data'); + $table->string('payer_name'); + $table->enum('payment_option', ['one_time', 'subscription'])->default('one_time'); + $table->boolean('status')->default(1)->comment('1 active, 0 inactive'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('checkouts'); + } +}; diff --git a/resources/views/backend/coupon/edit.blade.php b/resources/views/backend/coupon/edit.blade.php index d25f941..cd83e91 100644 --- a/resources/views/backend/coupon/edit.blade.php +++ b/resources/views/backend/coupon/edit.blade.php @@ -85,7 +85,7 @@
- +
diff --git a/resources/views/backend/course/courses/create.blade.php b/resources/views/backend/course/courses/create.blade.php index 8ab96e8..3e675af 100644 --- a/resources/views/backend/course/courses/create.blade.php +++ b/resources/views/backend/course/courses/create.blade.php @@ -236,7 +236,7 @@
- + -
-
- - + +
- - + +
+ + +
+
+ + +
- - + +
@@ -106,11 +112,11 @@
  • Coupon Discount

    -

    15%

    +

    0%

  • taxes

    -

    $9.99

    +

    $0.00

  • Total:

    diff --git a/routes/web.php b/routes/web.php index 4b967a9..5157b97 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,7 +20,7 @@ use App\Http\Controllers\Backend\Communication\MessageController as message; use App\Http\Controllers\CartController; use App\Http\Controllers\HomeController; -use App\Http\Controllers\CheckoutController; +use App\Http\Controllers\CheckoutController as checkout; use App\Http\Controllers\CouponController as coupon; /* students */ @@ -120,8 +120,8 @@ // })->name('instructorProfile'); Route::get('instructorProfile/{id}', [instructor::class, 'frontShow'])->name('instructorProfile'); -Route::get('checkout', [CheckoutController::class, 'index'])->name('checkout'); -Route::post('checkout', [CheckoutController::class, 'store'])->name('checkout.store'); +Route::get('checkout', [checkout::class, 'index'])->name('checkout'); +Route::post('checkout', [checkout::class, 'store'])->name('checkout.store');