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);
 }
Example #2
0
 /**
  * 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]);
     }
 }
Example #3
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')];
 }
Example #4
0
 /**
  * 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));
 }
Example #5
0
 /**
  * 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'));
     }
 }
Example #6
0
 /**
  * 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);
 }
Example #7
0
| 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()];
});
Example #8
0
 /**
  * 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];
 }
Example #9
0
 /**
  * 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);
 }
Example #10
0
 /**
  * Remove the specified resource from storage.
  *
  * @param Subscription $subscription
  *
  * @return Response
  */
 protected function destroy(Subscription $subscription)
 {
     $subscription->delete();
 }
Example #11
0
 protected function create($title, $description, $days, $is_default, $price)
 {
     return Subscription::create(['title' => $title, 'description' => $description, 'days' => $days, 'is_default' => $is_default, 'price' => $price]);
 }