From d5bcebb79abd92536ecc070d1d9a7adaa5987922 Mon Sep 17 00:00:00 2001
From: Hritikkk9
Date: Fri, 5 Jul 2024 19:32:58 +0530
Subject: [PATCH 1/2] subscription with referral updated
---
.../Customer_API/SubscriptionController.php | 137 +++++-----
.../APIs/CustomerAPIs/AuthServices.php | 16 +-
.../subscriptions/list-of-products.blade.php | 153 ++++++++++-
.../subscriptions/my-subscription.blade.php | 253 +++++++++++-------
routes/web.php | 5 +
5 files changed, 386 insertions(+), 178 deletions(-)
diff --git a/app/Http/Controllers/APIs/Customer_API/SubscriptionController.php b/app/Http/Controllers/APIs/Customer_API/SubscriptionController.php
index f10f21e..f88684c 100644
--- a/app/Http/Controllers/APIs/Customer_API/SubscriptionController.php
+++ b/app/Http/Controllers/APIs/Customer_API/SubscriptionController.php
@@ -97,7 +97,7 @@ class SubscriptionController extends Controller
public function createStripeProduct(Request $request)
{
-
+
try {
DB::beginTransaction();
@@ -260,98 +260,83 @@ class SubscriptionController extends Controller
public function cancelSubscription(Request $request)
{
try {
- Log::info("Razorpay Cancel subscriptions Begin: ");
DB::beginTransaction();
+ $stripeSecret = (config('constants.subscription.stripe_secret_key'));
+ // $stripeSecret = env('STRIPE_SECRET');
- $validator = $this->validateCancelSubscriptionForm($request);
+ $stripe = new \Stripe\StripeClient($stripeSecret);
+ $userId = $request->iam_principal_xid;
- if ($validator->fails()) {
- $validationErrors = $validator->errors()->all();
- Log::error("Razorpay Cancel subscriptions validation error: " . implode(", ", $validationErrors));
- return jsonResponseWithErrorMessageApi($validationErrors, 203);
- }
+ // dd($request->all(),$stripeSecret);
- $iamPrincipalId = $request->iam_principal_xid;
- $razorpaySubscriptionId = $request->subscription_id;
- $subscriptionXid = $request->subscription_xid;
+ $getSubscriptionData = Subscriptions::where('iam_principal_xid', $userId)->where('subscription_status', 'active')->first();
- $getSubscriptionData = RazorpaySubscriptions::where(['id' => $subscriptionXid, 'iam_principal_xid' => $iamPrincipalId, 'subscription_id' => $razorpaySubscriptionId, 'isCancelledSubscription' => 0])->first();
+ $subscriptionId = $getSubscriptionData->subscription_id;
+
+ $cancelledSubscription = $stripe->subscriptions->update(
+ $subscriptionId,
+ ['cancel_at_period_end' => true]
+ );
- if (!$getSubscriptionData) {
- return response()->json(['status' => 502, 'message' => 'Something went wrong while cancelling Subscription']);
- }
- $api = new Api(config('constants.razorpay.key_id'), config('constants.razorpay.key_secret'));
- $options = ['cancel_at_cycle_end' => 1];
- // Call the subscription create method with request parameters
- $response = $api->subscription->fetch($razorpaySubscriptionId)->cancel($options);
+ $subscriptionFromDatabase = Subscriptions::where('subscription_id', $subscriptionId)->first();
+ $subscriptionFromDatabase->cancelled_at = date('Y-m-d H:i:s', $cancelledSubscription->canceled_at);
+
+ $subscriptionFromDatabase->subscription_status = $cancelledSubscription->status;
+ $subscriptionFromDatabase->is_cancelled_subscription = 1; //2 for cancelled
+ $subscriptionFromDatabase->status = "cancelled";
+
+ $subscriptionFromDatabase->save();
+
+
+ $getSubscription = $stripe->subscriptions->retrieve($subscriptionFromDatabase->subscription_id, []);
+
+
+ $getSubscribeCustomer = $stripe->customers->retrieve(
+ $subscriptionFromDatabase->stripe_customer_id,
+ []
+ );
- $endAt = date('Y-m-d H:i:s', $response->end_at);
- $dateTime = now();
- $currentDateTime = $dateTime->format('Y-m-d H:i:s');
- $getSubscriptionData->isCancelledSubscription = 1;
- $getSubscriptionData->cancelled_at = $currentDateTime;
- $getSubscriptionData->save();
DB::commit();
- Log::info("Razorpay Cancel subscriptions end: ");
+ return redirect()->back()->with(['success' => "Your Subscription Cancelled Successfully!"]);
- return response()->json(['status' => 200, 'end_date' => $endAt]);
- // return response()->json(['status' => 200, 'message' => 'Your Subscription has been cancelled Sucessfully']);
-
-
- } catch (Exception $e) {
+ } catch (\Exception $e) {
DB::rollBack();
- Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage(), ['exception' => $e]);
- return jsonResponseWithErrorMessage(__('auth.something_went_wrong'), 500);
+
+ return redirect()->back()->with(['error' => "Something went wrong while cancelling subscription!" . $e->getMessage()]);
}
}
- public function validateCancelSubscriptionForm(Request $request)
+
+ /**
+ * Created By : Hritik
+ * Created at : 05 Jult 2024
+ * Use : To Apply Referral Code and return the User Id.
+ */
+
+
+
+
+ public function applyReferralCode(Request $request)
{
- return Validator::make(
- $request->all(),
- [
- 'iam_principal_xid' => 'required',
- 'subscription_id' => 'required',
- 'subscription_xid' => 'required',
- ]
- );
+ try {
+
+ $referralCode = $request->input('referral_code');
+ $currentUserId = $request->input('current_iam_principal_xid');
+ $code = IamPrincipal::where('referral_code', $referralCode)->where('id', '!=', $currentUserId)->where('principal_type_xid', 3)->first();
+
+ if ($code) {
+ return response()->json(['success' => true, 'message' => 'Referral code applied successfully.', 'referralUserId' => $code->id]);
+ } else {
+ return response()->json(['success' => false, 'message' => 'Invalid referral code.']);
+ }
+
+ } catch (\Exception $e) {
+ Log::error("An error occurred in " . __METHOD__ . ": " . $e->getMessage(), ['exception' => $e]);
+ return jsonResponseWithErrorMessage(__('auth.something_went_wrong'));
+ }
}
-
- // public function subscriptionUpgrade(Request $request)
- // {
- // // dd($request->all());
-
- // $razorPaysubscriptionProductXid = $request->razorpay_plan_id;
- // $productTypeId = $request->product_type_xid;
- // $productTierId = $request->product_tier_xid;
- // $iamId = $request->iam_principal_xid;
-
- // $user_id = 12; // Change this to dynamic user ID
-
- // // Retrieve the current monthly subscription
- // $currentSubscription = RazorpaySubscriptions::where('iam_principal_xid', $user_id)->first();
-
- // if (!$currentSubscription) {
- // return response()->json(['status' => 502, 'message' => 'Something went wrong current user Subscription not found']);
- // }
-
- // $products = Products::where('product_type_xid', $productTypeId)
- // ->where('product_tier_xid', $productTierId)
- // ->where('razorpay_plan_id', $razorPaysubscriptionProductXid)
- // ->where('is_active', '1')->first();
-
- // if (!$products) {
- // return response()->json(['status' => 502, 'message' => 'Something went wrong current product not found']);
- // }
-
- // $api = new Api(config('constants.razorpay.key_id'), config('constants.razorpay.key_secret'));
- // $plan_id = $products->razorpay_plan_id;
-
- // // Call the subscription create method with request parameters
-
- // }
}
diff --git a/app/Services/APIs/CustomerAPIs/AuthServices.php b/app/Services/APIs/CustomerAPIs/AuthServices.php
index d68626b..6cea0a9 100644
--- a/app/Services/APIs/CustomerAPIs/AuthServices.php
+++ b/app/Services/APIs/CustomerAPIs/AuthServices.php
@@ -56,9 +56,14 @@ class AuthServices
do {
$referral_code = \Str::random(10);
} while (IamPrincipal::where('referral_code', $referral_code)->exists());
-
+
+ if ($request->one_signal_player_id == "null") {
+ $playerId = null;
+ } else {
+ $playerId = $request->one_signal_player_id;
+ }
$user = IamPrincipal::create([
- 'one_signal_player_id' => $request->one_signal_player_id,
+ 'one_signal_player_id' => $playerId,
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email_address' => $request->email_address,
@@ -118,8 +123,13 @@ class AuthServices
Log::error('Customer Login Failed');
return jsonResponseWithErrorMessageApi(__('auth.authentication_failed'), 403);
}
+ if ($request->one_signal_player_id == "null") {
+ $playerId = null;
+ } else {
+ $playerId = $request->one_signal_player_id;
+ }
- $isExistEmail->one_signal_player_id = $request->one_signal_player_id;
+ $isExistEmail->one_signal_player_id = $playerId ;
$isExistEmail->save();
$response = [
'iam_principal_xid' => $isExistEmail->id,
diff --git a/resources/views/Admin/pages/subscriptions/list-of-products.blade.php b/resources/views/Admin/pages/subscriptions/list-of-products.blade.php
index dc486c9..a2d6ef0 100644
--- a/resources/views/Admin/pages/subscriptions/list-of-products.blade.php
+++ b/resources/views/Admin/pages/subscriptions/list-of-products.blade.php
@@ -3,11 +3,32 @@
-
+
+
+ {{--
+
+ --}}
+
+
+
+
+
+
+
+
List Of Products
@@ -62,15 +83,26 @@
-
+
- Enter coupon code
+ Enter Referral code
- Apply
+
+
+ Apply
-
+
+
+
+
+
+
+
Loading...
+
{{--
@@ -87,6 +119,7 @@
@csrf
+
Total Payment
@@ -96,10 +129,11 @@
${{ $productList->product_value }}
-
SUBSCRIBE NOW
+
SUBSCRIBE NOW
{{--
SUBSCRIBE NOW --}}
-
You will be charged ${{ $productList->product_value }} every month
+
You will be charged ${{ $productList->product_value }} every
+ month
after your free trial period ends.
Subscription will be renewed monthly until cancelled.
@@ -175,9 +209,15 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+ @if (session('success'))
+
+ {{ session('success') }}
+
+ @endif
-
- {{--
+ {{--
Subscription FAQs
- @foreach($faqs as $faq)
+ @foreach ($faqs as $faq)
first ? '' : 'hidden' }}>
@@ -97,72 +132,106 @@
--}}
-
-
-
-
-
+
+
If you cancel now, you can still access your subscription until
+ {{ \Carbon\Carbon::now()->format('M d ,Y') }} After this date, you will no longer be able
+ to redeem cocktails.
+
+
Are you sure you want to cancel?
+
+
+
-
-
+
-
+
-
+
+
+
+
diff --git a/resources/views/Admin/pages/subscriptions/my-subscription.blade.php b/resources/views/Admin/pages/subscriptions/my-subscription.blade.php
index e51e73f..2dfb63b 100644
--- a/resources/views/Admin/pages/subscriptions/my-subscription.blade.php
+++ b/resources/views/Admin/pages/subscriptions/my-subscription.blade.php
@@ -2,47 +2,82 @@
-
-
-
+
+
+
-
My Subscription
+
My Subscription
diff --git a/routes/web.php b/routes/web.php
index 3f38421..cd93e8b 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -234,6 +234,11 @@ Route::group(['middleware' => ['customer.jwt.verify']], function () {
// });
Route::post('subscribe-to-plan', [SubscriptionController::class, 'subscriptionToPlan'])->name('subscribe-to-plan');
Route::get('thank-you', [SubscriptionController::class, 'thankyou'])->name('thankyou');
+ Route::post('cancel-subscription',[SubscriptionController::class,'cancelSubscription'])->name('cancel-subscription');
+ Route::post('apply-referral-code', [SubscriptionController::class, 'applyReferralCode'])->name('apply-referral-code');
+
+
+
// Route::post('subscribe-to-product', [SubscriptionController::class, 'subscribeToProduct'])->name('subscribe-to-product');
// Route::post('cancel-subscription', [SubscriptionController::class, 'cancelSubscription'])->name('cancel-subscription');
// Route::get('cancel-thank-you', [SubscriptionController::class, 'cancelThankYou'])->name('cancel-thank-you');
From bdf9fc83d8656c857d6fe998d48c9cfffb016b6e Mon Sep 17 00:00:00 2001
From: sayliraut
Date: Fri, 5 Jul 2024 19:46:27 +0530
Subject: [PATCH 2/2] changes
---
.../Controllers/Admin/DashboardController.php | 18 +-
app/Models/Subscriptions.php | 11 +-
resources/views/Admin/dashboard.blade.php | 892 +++++-------------
3 files changed, 266 insertions(+), 655 deletions(-)
diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php
index e311f29..0480db5 100644
--- a/app/Http/Controllers/Admin/DashboardController.php
+++ b/app/Http/Controllers/Admin/DashboardController.php
@@ -7,7 +7,7 @@ use Illuminate\Http\Request;
use App\Models\IamPrincipal;
use Illuminate\Support\Facades\DB;
use App\Models\ManageRestaurant;
-
+use App\Models\Subscriptions;
class DashboardController extends Controller
{
@@ -33,8 +33,7 @@ class DashboardController extends Controller
->pluck('count', 'month')
->toArray();
- $dataMonthlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("MONTH(created_at) as month"))
- ->where('principal_type_xid', 4)
+ $dataMonthlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("MONTH(created_at) as month"))
->whereYear('created_at', date('Y'))
->groupBy(DB::raw("MONTH(created_at)"))
->orderBy(DB::raw("MONTH(created_at)"))
@@ -54,8 +53,7 @@ class DashboardController extends Controller
->pluck('count', 'quarter')
->toArray();
- $dataQuarterlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("QUARTER(created_at) as quarter"))
- ->where('principal_type_xid', 4)
+ $dataQuarterlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("QUARTER(created_at) as quarter"))
->groupBy(DB::raw("QUARTER(created_at)"))
->orderBy(DB::raw("QUARTER(created_at)"))
->pluck('count', 'quarter')
@@ -73,14 +71,15 @@ class DashboardController extends Controller
->pluck('count', 'year')
->toArray();
- $dataYearlyWithType4 = IamPrincipal::select(DB::raw("COUNT(*) as count"), DB::raw("YEAR(created_at) as year"))
- ->where('principal_type_xid', 4)
+ $dataYearlyWithType4 = Subscriptions::select(DB::raw("COUNT(*) as count"), DB::raw("YEAR(created_at) as year"))
->groupBy(DB::raw("YEAR(created_at)"))
->pluck('count', 'year')
->toArray();
$customerCount = IamPrincipal::where('principal_type_xid', '=', 3)->count();
- $restaurantCount = ManageRestaurant::where('is_active', 1)->count();
+ $restaurantCount = Subscriptions::where('is_active', 1)->count();
+ $recent_transaction = Subscriptions::with('subscription')->get()->toArray();
+
return view('Admin.dashboard', compact(
'customerCount',
@@ -90,7 +89,8 @@ class DashboardController extends Controller
'dataQuarterlyWithType3',
'dataQuarterlyWithType4',
'dataYearlyWithType3',
- 'dataYearlyWithType4'
+ 'dataYearlyWithType4',
+ 'recent_transaction'
));
}
}
diff --git a/app/Models/Subscriptions.php b/app/Models/Subscriptions.php
index e5c15fb..349fa1e 100644
--- a/app/Models/Subscriptions.php
+++ b/app/Models/Subscriptions.php
@@ -11,9 +11,14 @@ class Subscriptions extends Model
protected $table = 'subscriptions';
protected $guarded = [];
-
-
-
+
+ public function subscription()
+ {
+ return $this->belongsTo(IamPrincipal::class, 'iam_principal_xid', 'id');
+ }
+
+
+
}
diff --git a/resources/views/Admin/dashboard.blade.php b/resources/views/Admin/dashboard.blade.php
index 44f56ce..b146820 100644
--- a/resources/views/Admin/dashboard.blade.php
+++ b/resources/views/Admin/dashboard.blade.php
@@ -100,668 +100,274 @@
--}}
-
+ --}}
-
-
-
-@endsection
+ @endsection
-@section('section_script')
-
- var allIds = [];
+
-
- $(document).on("click", "#download_all", function(e) {
- $('#all_id').prop('disabled', false);
- $('#ids').prop('disabled', true);
- })
- });
-
- $(document).on("click", ".more", function(e) {
- e.preventDefault();
- e.stopPropagation();
- });
-
-
-
-
-@endsection
+ @endsection