created checkout controller

Cette révision appartient à :
Ibrahim Khalil Shakil 2023-12-10 00:42:03 +06:00
Parent 3707c78e45
révision 9dc9d571b2
8 fichiers modifiés avec 171 ajouts et 42 suppressions

Voir le fichier

@ -2,6 +2,8 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Checkout;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class CheckoutController extends Controller class CheckoutController extends Controller
@ -14,33 +16,27 @@ public function index()
return view('frontend.checkout'); return view('frontend.checkout');
} }
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
*/ */
public function store(Request $request) public function store(Request $request)
{ {
try { try {
$instructor = new Instructor; $checkout = new Checkout;
$instructor->name_en = $request->fullName_en; $checkout->cart_data = $request->base64_encode(json_encode(session('cart')));
$instructor->name_bn = $request->fullName_bn; $checkout->payer_name = $request->payer_name;
$instructor->contact_en = $request->contactNumber_en; $checkout->payment_option = $request->payment_option;
$instructor->contact_bn = $request->contactNumber_bn; $checkout->status = $request->status;
$instructor->email = $request->emailAddress;
$instructor->role_id = $request->roleId; if ($checkout->save())
$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'); return redirect()->route('instructor.index')->with('success', 'Data Saved');
else else
return redirect()->back()->withInput()->with('error', 'Please try again'); 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'); 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)
{
//
}
} }

Voir le fichier

@ -0,0 +1,52 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CheckoutController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('frontend.checkout');
}
/**
* 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())
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');
}
}
}

11
app/Models/Checkout.php Fichier normal
Voir le fichier

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Checkout extends Model
{
use HasFactory;
}

Voir le fichier

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('checkouts', function (Blueprint $table) {
$table->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');
}
};

Voir le fichier

@ -85,7 +85,7 @@
</div> </div>
<div class="col-lg-12 col-md-12 col-sm-12"> <div class="col-lg-12 col-md-12 col-sm-12">
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-light">Cencel</button> <button type="submit" class="btn btn-light">Cancel</button>
</div> </div>
</div> </div>
</form> </form>

Voir le fichier

@ -236,7 +236,7 @@
</div> </div>
<div class="col-lg-6 col-md-6 col-sm-12"> <div class="col-lg-6 col-md-6 col-sm-12">
<div class="form-group"> <div class="form-group">
<label class="form-label">Status</label> <label class="form-label">Status</label>
<select class="form-control" name="status"> <select class="form-control" name="status">
<option value="1" @if(old('status')==1) selected @endif>Active</option> <option value="1" @if(old('status')==1) selected @endif>Active</option>
<option value="0" @if(old('status')==0) selected @endif>Inactive</option> <option value="0" @if(old('status')==0) selected @endif>Inactive</option>

Voir le fichier

@ -29,26 +29,32 @@
aria-labelledby="pills-checkout-tab"> aria-labelledby="pills-checkout-tab">
<form action="#"> <form action="#">
<div class="mb-3"> <div class="mb-3">
<label for="card-name-one">Name on Card</label> <label for="payer_name">Name on Card</label>
<input type="text" class="form-control" placeholder="Type here" <input type="text" class="form-control" name="payer_name" placeholder="Type here" />
id="card-name-one" />
</div>
<div class="mb-3">
<label for="card-number-one">Card Number</label>
<input type="text" class="form-control" placeholder="Type here"
id="card-number-one" />
</div> </div>
<div class="mb-3"> <div class="mb-3">
<div class="row"> <div class="row">
<div class="col-md-6 mb-3 mb-lg-0"> <div class="col-md-6 mb-3 mb-lg-0">
<label for="expiration-date-one">Expiration Date (MM/YY)</label> <label for="payment_option">Payment Options</label>
<input type="text" class="form-control" placeholder="Type here" <div class="form-check d-flex align-items-center ps-0">
id="expiration-date-one" /> <input type="checkbox" id="one_time" />
<label class="form-check-label ms-2 mb-0" for="one_time">
One Time
</label>
</div>
<div class="form-check d-flex align-items-center ps-0">
<input type="checkbox" id="subscription" />
<label class="form-check-label ms-2 mb-0" for="subscription">
Subscription
</label>
</div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<label for="cvc-one">CVC</label> <label for="status">Status</label>
<input type="text" class="form-control" id="cvc-one" <select class="form-control" name="status">
placeholder="Type here" /> <option value="1" class="form-control" @if(old('status')==1) selected @endif>Active</option>
<option value="0" class="form-control" @if(old('status')==0) selected @endif>Inactive</option>
</select>
</div> </div>
</div> </div>
</div> </div>
@ -106,11 +112,11 @@
</li> </li>
<li> <li>
<p>Coupon Discount</p> <p>Coupon Discount</p>
<p>15%</p> <p>0%</p>
</li> </li>
<li> <li>
<p>taxes</p> <p>taxes</p>
<p>$9.99</p> <p>$0.00</p>
</li> </li>
<li> <li>
<p class="font-title--card">Total:</p> <p class="font-title--card">Total:</p>

Voir le fichier

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