public function featureAccessPermission($uri) { $uri = explode('/', $uri); $features = StripePlanFeature::whereIn('feature_name', $uri)->get(); if ($features->isEmpty()) { return true; } else { foreach ($features as $feature) { $isPermitted = DB::table('stripe_plan_has_features')->where('plan_id', '=', $this->getPlanId())->where('feature_id', '=', $feature->feature_id)->count(); if (!$isPermitted) { // TODO:: Need to update this permitted logic return false; } } return true; } }
/** * Run the database seeds. * * @return void */ public function run() { // $faker = UserFaker::create('en_IN'); // factory(Inzaana\User::class, 50)->create(); /* * Seed Super Admin * * */ $user = factory(Inzaana\User::class)->create(['name' => 'admin', 'email' => config('mail.admin.address'), 'password' => bcrypt('#admin?inzaana$')]); if ($user) { Log::info('[Inzaana][Single admin user created for testing]'); } else { Log::error('[Inzaana][No admin user created] -> [Seeding failed]'); } /* * Seed Vendor * Create only 5 Vendor * */ \Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET')); $users = factory(Inzaana\User::class, 5)->create(['name' => $faker->unique()->firstName . ' ' . $faker->unique()->lastName])->each(function ($user) { $vendorPassword = '******' . str_random(5) . '$'; $user->password = bcrypt($vendorPassword); $user->email_alter = preg_replace("/(\\w+)@(\\w+.)+/", "\$1@inzaana.com", $user->email); $user->stores()->save(factory(Inzaana\Store::class)->make()); /* * Temporarily comment this code * User will be push on onTrials category * */ /*$user->newSubscription('Free', 'VuvmBePBCq3L')->create(\Stripe\Token::create(array( "card" => array( "number" => "5555555555554444", "exp_month" => 9, "exp_year" => 2018, "cvc" => "400" ) ))->id); $user->subscription('Free')->cancel();*/ $user->trial_ends_at = Carbon\Carbon::now()->addDays(10); $user->save(); Log::debug('[Inzaana][User of email -> ' . $user->email . ', password -> ' . $vendorPassword . ' is created, has ' . $user->stores()->count() . ' stores for testing]'); }); if ($users->count() > 0) { Log::info('[Inzaana][' . $users->count() . ' vendor users created for testing]'); } else { Log::error('[Inzaana][No vendor user created] -> [Seeding failed]'); } /* * Add plan in local database * */ /*$stripe_plan = Inzaana\StripePlan::create([ "plan_id" => 'VuvmBePBCq3L', "name" => 'Free', "amount" => '0.00', "currency" => 'INR', "interval" => 'month', "active" => '1', "trial_period_days" => '12', "statement_descriptor" => 'Free Trial Package.', "created" => date('Y-m-d H:i:s') ]);*/ /* * Seed Customer * Create only 5 Customer * */ $users = factory(Inzaana\User::class, 5)->create(['name' => $faker->unique()->firstName . ' ' . $faker->unique()->lastName])->each(function ($user) { $customerPassword = '******' . str_random(5) . '$'; $user->password = bcrypt($customerPassword); $user->save(); Log::debug('[Inzaana][User of email -> ' . $user->email . ', password -> ' . $customerPassword . ' is created for testing]'); }); if ($users->count() > 0) { Log::info('[Inzaana][' . $users->count() . ' customer users created for testing]'); } else { Log::error('[Inzaana][No customer user created] -> [Seeding failed]'); } /* * Stripe Plan Features Table Seeding * */ $features = new \Inzaana\StripePlanFeature(); foreach ($features->feature_list as $feature) { \Inzaana\StripePlanFeature::create(['feature_name' => $feature]); } //$stripe_plan->planFeature()->attach([2,4,5]); }
public function editPlanFeatureView(Request $request) { $plan_info = StripePlan::with('planFeature')->where('plan_id', '=', $request->plan)->first(); $plan_data = []; if ($plan_info) { if ($plan_info->interval_count > 1) { $plan_info->interval = "Every " . $plan_info->interval_count . " " . $plan_info->interval . "s"; } $feature_list = []; foreach ($plan_info->planFeature as $feature) { $feature_list[] = $feature->feature_name; } $plan_data = ['id' => $plan_info->plan_id, 'plan_name' => $plan_info->name, 'price' => $plan_info->amount . " " . $plan_info->currency_symbol[$plan_info->currency] . "/" . $plan_info->interval, 'trial' => $plan_info->trial_period_days, 'coupon_id' => $plan_info->coupon_id, 'renewal' => $plan_info->auto_renewal, 'description' => $plan_info->statement_descriptor, 'feature' => $feature_list, 'sort' => $request->sort, 'order' => $request->order]; } $all_feature = StripePlanFeature::all(); $feature = []; foreach ($all_feature as $value) { $feature[$value->feature_id] = $value->feature_name; } $coupons = StripeCoupon::all(); return response()->view('super-admin.includes.modal', compact('plan_data', 'feature', 'coupons'))->header('Content-Type', 'html'); //return response()->json(['dump_data' =>$dumping_data]); }