public function viewSubscriber(Request $request) { /*$sql = "SELECT users.name as name,s.id,s.name,s.stripe_id,s.quantity,users.name,users.email,sp.amount,sp.interval,sp.interval_count,sp.trial_period_days, GROUP_CONCAT(stores.name) AS `store_name` FROM users JOIN subscriptions as s on s.user_id=users.id JOIN stripe_plans as sp on sp.plan_id=s.stripe_plan JOIN stores ON users.id = stores.user_id WHERE stores.status = 'APPROVED' GROUP BY stores.user_id";*/ $sort = 'name'; $order = 'ASC'; $loadView = 'super-admin.stripe.view-subscriber'; if ($request->ajax()) { $sort = Input::get('sort'); $order = Input::get('order') == 'DESC' ? "ASC" : "DESC"; $loadView = 'super-admin.includes.subscriber-dom'; } switch ($sort) { case 'name': $sort = 'users.name'; break; case 'plan': $sort = 'stripe_plans.name'; break; case 'email': $sort = 'users.email'; break; default: $sort = 'users.name'; break; } $subscribers = DB::table('subscriptions')->join('users', 'users.id', '=', 'subscriptions.user_id')->join('stripe_plans', 'stripe_plans.plan_id', '=', 'subscriptions.stripe_plan')->join('stores', 'stores.user_id', '=', 'users.id')->select('subscriptions.id', 'subscriptions.name as plan_name', 'subscriptions.stripe_id', 'subscriptions.quantity', 'users.name as subscriber_name', 'users.email', 'users.phone_number as contact', 'users.address', 'stripe_plans.amount', 'stripe_plans.interval', 'stripe_plans.interval_count', 'stripe_plans.coupon_id', 'stripe_plans.trial_period_days as trial', DB::raw('GROUP_CONCAT(stores.name,"#",stores.status) AS store_name'))->groupBy('stores.user_id')->orderBy($sort, $order)->get(); $coupon_all = StripeCoupon::all(); $subscriber_collect = []; foreach ($subscribers as $subscriber) { if ($subscriber->interval_count > 1) { $subscriber->interval = "Every " . $subscriber->interval_count . " " . $subscriber->interval . "s"; } $store_name = $subscriber->store_name; $data_process = []; if ($store_name != null) { $store_name = explode(',', $store_name); foreach ($store_name as $name) { if ($name != null) { $name = explode('#', $name); $data_process[] = $name; } } } $subscriber->store_name = collect($data_process); $coupon_information = []; if ($subscriber->coupon_id != null) { foreach ($coupon_all as $coupon_single) { if ($subscriber->coupon_id == $coupon_single->coupon_id) { $coupon_information['coupon_name'] = $coupon_single->coupon_name; $coupon_information['coupon_id'] = $coupon_single->coupon_id; if ($coupon_single->percent_off != null) { $coupon_information['discount'] = $coupon_single->percent_off . "%"; $coupon_information['discount_price'] = $subscriber->amount - $subscriber->amount * $coupon_single->percent_off / 100; } else { $coupon_information['discount'] = $coupon_single->amount_off / 100 . "/" . $coupon_single->currency; $coupon_information['discount_price'] = $subscriber->amount - $coupon_single->amount_off / 100; } $coupon_information['currency'] = $coupon_single->currency; $coupon_information['duration'] = $coupon_single->duration; if ($coupon_single->duration == 'repeating') { $coupon_information['duration'] = $coupon_single->duration_in_months . " Months"; } $coupon_information['max_redemptions'] = $coupon_single->max_redemptions; $coupon_redeem = Carbon::parse($coupon_single->redeem_by); $coupon_information['redeem_by'] = $coupon_redeem->toFormattedDateString(); } } } $subscriber->coupon = $coupon_information; } $email_user = DB::select('SELECT t2.name,t2.email,t1.ends_at FROM `subscriptions` as t1 inner join users as t2 on t1.`user_id`=t2.id WHERE `ends_at` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 DAY)'); /*dd($subscribers);*/ $sln = 1; $user = Auth::user(); $sort = Input::get('sort'); return response()->view($loadView, compact('subscribers', 'email_user', 'sln', 'order', 'sort', 'user'))->header('Content-Type', 'html'); //return view('super-admin.stripe.view-subscriber',compact('subscribers','sln'))->with('user', Auth::user()); }
public function redirectToVendorPlan() { if (Auth::guest()) { flash()->error('Your session is timed out. Please login and confirm again.'); return Auth::guest('/login'); } /* * View Plan for subscription * Using laravel cashier for plan retrieval * Method call from Route::get('/dashboard/vendor/plan', [ 'uses' => 'UserController@redirectToVendorPlan', 'as' => 'vendor.plan' ]); * */ //$plan = StripePlan::where('active','=','1')->get(); //$subscribed_plan =Subscription::where('user_id', Auth::user()->id)->get()->first()->name; $allplan = StripePlan::with('planFeature')->where('active', '=', '1')->get(); //dd($allplan); $coupon_all = StripeCoupon::all(); $plan_collect = []; foreach ($allplan as $plan) { if ($plan->interval_count > 1) { $plan->interval = "Every " . $plan->interval_count . " " . $plan->interval . "s"; } $coupon_information = []; if ($plan->coupon_id != null) { foreach ($coupon_all as $coupon_single) { if ($plan->coupon_id == $coupon_single->coupon_id) { $coupon_information['coupon_name'] = $coupon_single->coupon_name; $coupon_information['coupon_id'] = $coupon_single->coupon_id; if ($coupon_single->percent_off != null) { $coupon_information['discount'] = $coupon_single->percent_off . "%"; $coupon_information['discount_price'] = $plan->amount - $plan->amount * $coupon_single->percent_off / 100; } else { $coupon_information['discount'] = $coupon_single->amount_off / 100 . "/" . $coupon_single->currency; $coupon_information['discount_price'] = $plan->amount - $coupon_single->amount_off / 100; } $coupon_information['currency'] = $coupon_single->currency; $coupon_information['duration'] = $coupon_single->duration; if ($coupon_single->duration == 'repeating') { $coupon_information['duration'] = $coupon_single->duration_in_months . " Months"; } $coupon_information['max_redemptions'] = $coupon_single->max_redemptions; $coupon_redeem = Carbon::parse($coupon_single->redeem_by); $coupon_information['redeem_by'] = $coupon_redeem->toFormattedDateString(); } } } $plan->coupon = $coupon_information; $plan_collect[] = $plan; } $allplan = collect($plan_collect); $user = Auth::user(); $user_subscriptions = User::with('subscriptions')->whereId($user->id)->first(); return view('plan', compact('allplan'))->with('user', $user_subscriptions)->with('authenticated', Auth::check()); }