protected function syncAdtypesToSubscription(Subscription $subscription, $adtypes) { array_walk($adtypes, function (&$adtype, $key) { $adtype['number'] = $adtype['enabled'] == 1 && $adtype['number'] > 0 ? $adtype['number'] : 0; unset($adtype['enabled']); }); $subscription->adtypes()->sync($adtypes); }
/** * Attach An Adtype To Subscriptions. * * @param Adtype $adtype * * @return void */ protected function attachToSubscriptions(Adtype $adtype) { $subscriptions = Subscription::all(); foreach ($subscriptions as $subscription) { $subscription->adtypes()->attach($adtype, ['number' => 0]); } }
/** * Display a listing of the resource. * * @return Response */ public function index() { $currency = setting('currency'); $subscriptions = Subscription::all(); $user_subscription = $this->user->subscription; $user = $this->user; return ['data' => compact('subscriptions', 'user_subscription', 'user', 'currency')]; }
/** * Execute the job. * * @return void */ public function handle() { if ($this->order->status != 'completed') { return; } $subscriptionId = $this->order->transaction->item_id; $subscription = Subscription::findOrFail($subscriptionId); event(new SubscriptionWasPurchased($subscription, $this->order)); dispatch(new swapSubscription($subscription, $this->order->user)); }
/** * Run the database seeds. * * @return void */ public function run() { $role = Role::whereName('user')->firstOrFail(); $subscription = Subscription::whereIsDefault(1)->first(); $user = $role->users()->create(['name' => 'ZEDx demo', 'email' => '*****@*****.**', 'avatar' => 'zedx.png', 'phone' => '0606060606', 'is_phone' => true, 'is_validate' => true, 'subscription_id' => $subscription->id, 'subscribed_at' => Carbon::now()->format('d/m/Y'), 'subscription_expired_at' => $subscription->days >= 9999 ? null : Carbon::now()->addDays($subscription->days + 1), 'password' => 'password']); event(new UserWasCreated($user, 'ZEDx')); $users = factory(User::class, 3)->create(); foreach ($users as $user) { event(new UserWasCreated($user, 'ZEDx')); } }
/** * Update the specified resource in storage. * * @param int $id * * @return Response */ public function update(User $user, UpdateUserRequest $request) { $admin = Auth::guard('admin')->user(); $inputs = $request->all(); $subscription_id = isset($inputs['subscription_id']) ? $inputs['subscription_id'] : null; $subscription = Subscription::findOrFail($subscription_id); $adtypes = isset($inputs['adtypes']) ? $inputs['adtypes'] : []; if (empty($inputs['password'])) { array_forget($inputs, ['password', 'password_confirm']); } if (!isset($inputs['phone']) || empty($inputs['phone'])) { $inputs['is_phone'] = false; } $user->fill($inputs); $user->subscription()->associate($subscription)->save(); $user->adtypes()->sync($adtypes); $user->subscribed_at = isset($inputs['subscribed_at']) ? $inputs['subscribed_at'] : Carbon::now()->format('d/m/Y'); $user->subscription_expired_at = $subscription->days >= 9999 ? null : Carbon::createFromFormat('d/m/Y', $user->subscribed_at)->addDays($subscription->days + 1); $user->is_validate = 1; event(new UserWillBeUpdated($user, $admin)); $user->save(); event(new UserWasUpdated($user, $admin)); return redirect()->route('zxadmin.user.edit', $user->id); }
| Here you may define all of your model factories. Model factories give | you a convenient way to create models for testing and seeding your | database. Just tell the factory how a default model should look. | */ use Carbon\Carbon; use ZEDx\Models\Role; use ZEDx\Models\Subscription; use ZEDx\Models\User; $factory->define(User::class, function (Faker\Generator $faker) { return ['name' => $faker->name, 'email' => $faker->email, 'is_validate' => true, 'role_id' => function () { return Role::whereName('user')->firstOrFail()->id; }, 'subscription_id' => function () { return Subscription::whereIsDefault(1)->first()->id; }, 'subscribed_at' => Carbon::now()->format('d/m/Y'), 'subscription_expired_at' => function () { $subscription = Subscription::whereIsDefault(1)->first(); return $subscription->days >= 9999 ? null : Carbon::now()->addDays($subscription->days + 1); }, 'password' => str_random(10), 'remember_token' => str_random(10)]; }); $factory->define(ZEDx\Models\Admin::class, function (Faker\Generator $faker) { return ['name' => $faker->name, 'email' => $faker->email, 'password' => bcrypt(str_random(10)), 'remember_token' => str_random(10)]; }); $factory->define(ZEDx\Models\Subscription::class, function (Faker\Generator $faker) { return ['title' => $faker->word, 'description' => $faker->sentence, 'days' => $faker->randomNumber(3), 'is_default' => 0, 'price' => $faker->randomNumber(2)]; }); $factory->define(ZEDx\Models\Adtype::class, function (Faker\Generator $faker) { return ['title' => $faker->word, 'is_headline' => $faker->boolean(), 'can_renew' => $faker->boolean(), 'can_edit' => $faker->boolean(), 'can_add_pic' => $faker->boolean(), 'can_update_pic' => $faker->boolean(), 'nbr_pic' => $faker->randomNumber(1), 'nbr_days' => $faker->randomNumber(3), 'can_add_video' => $faker->boolean(), 'nbr_video' => $faker->randomNumber(1), 'can_update_video' => $faker->boolean(), 'price' => $faker->randomNumber(2)]; }); $factory->define(ZEDx\Models\Field::class, function (Faker\Generator $faker) { return ['name' => $faker->word, 'type' => $faker->numberBetween(1, 8), 'title' => $faker->word, 'unit' => $faker->randomLetter() . '²', 'is_price' => $faker->boolean(), 'is_in_ad' => $faker->boolean(), 'is_in_search' => $faker->boolean()]; });
/** * Store new user. * * @param array $data * @param Admin/User $actor * * @return array */ public function store(array $data, $actor, $provider = false) { $subscription = Subscription::whereIsDefault(1)->firstOrFail(); $role = Role::whereName('user')->firstOrFail(); $adtypes = []; foreach ($subscription->adtypes as $adtype) { $adtypes[$adtype->id] = ['number' => $adtype->pivot->number]; } if (!isset($data['phone']) || empty($data['phone'])) { $data['is_phone'] = false; } $user = new User(); $user->fill($data); if ($provider) { $user->is_validate = $data['is_validate']; } $user->subscription_id = $subscription->id; $user->role_id = $role->id; $user->subscribed_at = Carbon::now()->format('d/m/Y'); $user->subscription_expired_at = $subscription->days >= 9999 ? null : Carbon::createFromFormat('d/m/Y', $user->subscribed_at)->addDays($subscription->days + 1); event(new UserWillBeCreated($user, $actor, $adtypes)); $user->save(); $user->adtypes()->sync($adtypes); event(new UserWasCreated($user, $actor)); return ['user' => $user]; }
/** * Define your route model bindings, pattern filters, etc. * * @param \Illuminate\Routing\Router $router * * @return void */ public function boot(Router $router) { $router->bind('adWithTrashed', function ($id) { return Ad::with('content')->withTrashed()->findOrFail($id); }); $router->bind('ad', function ($id) { return Ad::with('content')->findOrFail($id); }); $router->bind('adCollection', function ($ids) { $ids = explode(',', $ids); return Ad::with('content')->withTrashed()->findMany($ids); }); $router->bind('adstatus', function ($title) { return Adstatus::whereTitle($title)->firstOrFail(); }); $router->bind('adValidated', function ($id) { return Ad::with('content')->validate()->findOrFail($id); }); $router->bind('adPreview', function ($id) { if (Auth::guard('admin')->check()) { return Ad::with('content')->withTrashed()->findOrFail($id); } if (Auth::guard('user')->check()) { return Auth::user()->ads()->with('content')->findOrFail($id); } abort(404); }); $router->bind('adtypeNotCustomized', function ($id) { return Adtype::whereIsCustomized(0)->findOrFail($id); }); $router->bind('adtypeCollection', function ($ids) { $ids = explode(',', $ids); return Adtype::findMany($ids); }); $router->bind('templateCollection', function ($ids) { $ids = explode(',', $ids); return Template::findMany($ids); }); $router->bind('encryptedOrderId', function ($enc) { $orderId = Crypt::decrypt($enc); return Order::findOrFail($orderId); }); $router->bind('fieldCollection', function ($ids) { $ids = explode(',', $ids); return Field::findMany($ids); }); $router->bind('subscriptionCollection', function ($ids) { $ids = explode(',', $ids); return Subscription::findMany($ids); }); $router->bind('userCollection', function ($ids) { $ids = explode(',', $ids); return User::findMany($ids); }); $router->bind('adUser', function ($id) { if (Auth::check()) { return Auth::user()->ads()->with('content')->findOrFail($id); } else { abort(404); } }); $router->bind('field', function ($id) { return Field::with('search')->findOrFail($id); }); $router->bind('visibleCategory', function ($id) { return Category::visible()->findOrFail($id); }); $router->bind('templateblock', function ($identifier) use($router) { $page = $router->input('page'); return Templateblock::whereIdentifier($identifier)->whereTemplateId($page->template->id)->firstOrFail(); }); $router->bind('widgetnode', function ($id) use($router) { $pageId = $router->input('page')->id; $templateblockId = $router->input('templateblock')->id; return Widgetnode::whereTemplateblockId($templateblockId)->wherePageId($pageId)->findOrFail($id); }); $router->model('adtype', 'ZEDx\\Models\\Adtype'); $router->model('template', 'ZEDx\\Models\\Template'); $router->model('category', 'ZEDx\\Models\\Category'); $router->model('country', 'ZEDx\\Models\\Country'); $router->model('page', 'ZEDx\\Models\\Page'); $router->model('menu', 'ZEDx\\Models\\Menu'); $router->model('gateway', 'ZEDx\\Models\\Gateway'); $router->model('themepartial', 'ZEDx\\Models\\Themepartial'); $router->model('dashboardWidget', 'ZEDx\\Models\\Dashboardwidget'); $router->model('searchfield', 'ZEDx\\Models\\SearchField'); $router->model('selectfield', 'ZEDx\\Models\\SelectField'); $router->model('subscription', 'ZEDx\\Models\\Subscription'); $router->model('user', 'ZEDx\\Models\\User'); parent::boot($router); }
/** * Remove the specified resource from storage. * * @param Subscription $subscription * * @return Response */ protected function destroy(Subscription $subscription) { $subscription->delete(); }
protected function create($title, $description, $days, $is_default, $price) { return Subscription::create(['title' => $title, 'description' => $description, 'days' => $days, 'is_default' => $is_default, 'price' => $price]); }