![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/Modules/Crm/Providers/ |
<?php namespace Modules\Crm\Providers; use Illuminate\Database\Eloquent\Factory; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; use App\Utils\ModuleUtil; use App\Utils\Util; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Routing\Router; class CrmServiceProvider extends ServiceProvider { /** * The filters base class name. * * @var array */ protected $middleware = [ 'Crm' => [ 'ContactSidebarMenu' => 'ContactSidebarMenu', 'CheckContactLogin' => 'CheckContactLogin' ], ]; /** * Boot the application events. * * @return void */ public function boot() { $this->registerTranslations(); $this->registerConfig(); $this->registerViews(); $this->registerFactories(); $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); $this->registerScheduleCommands(); $this->registerMiddleware($this->app['router']); View::composer( ['crm::layouts.nav'], function ($view) { $commonUtil = new Util(); $is_admin = $commonUtil->is_admin(auth()->user(), auth()->user()->business_id); $view->with('__is_admin', $is_admin); } ); } /** * Register the filters. * * @param Router $router * @return void */ public function registerMiddleware(Router $router) { foreach ($this->middleware as $module => $middlewares) { foreach ($middlewares as $name => $middleware) { $class = "Modules\\{$module}\\Http\\Middleware\\{$middleware}"; $router->aliasMiddleware($name, $class); } } } /** * Register the service provider. * * @return void */ public function register() { $this->app->register(RouteServiceProvider::class); $this->registerCommands(); } /** * Register config. * * @return void */ protected function registerConfig() { $this->publishes([ __DIR__ . '/../Config/config.php' => config_path('crm.php'), ], 'config'); $this->mergeConfigFrom( __DIR__ . '/../Config/config.php', 'crm' ); } /** * Register views. * * @return void */ public function registerViews() { $viewPath = resource_path('views/modules/crm'); $sourcePath = __DIR__ . '/../Resources/views'; $this->publishes([ $sourcePath => $viewPath, ], 'views'); $this->loadViewsFrom(array_merge(array_map(function ($path) { return $path . '/modules/crm'; }, config('view.paths')), [$sourcePath]), 'crm'); } /** * Register translations. * * @return void */ public function registerTranslations() { $langPath = resource_path('lang/modules/crm'); if (is_dir($langPath)) { $this->loadTranslationsFrom($langPath, 'crm'); } else { $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'crm'); } } /** * Register an additional directory of factories. * * @return void */ public function registerFactories() { if (!app()->environment('production') && $this->app->runningInConsole()) { app(Factory::class)->load(__DIR__ . '/../Database/factories'); } } /** * Get the services provided by the provider. * * @return array */ public function provides() { return []; } /** * Register commands. * * @return void */ protected function registerCommands() { $this->commands([ \Modules\Crm\Console\SendScheduleNotification::class, \Modules\Crm\Console\CreateRecursiveFollowup::class, ]); } public function registerScheduleCommands() { $env = config('app.env'); $module_util = new ModuleUtil(); $is_installed = $module_util->isModuleInstalled(config('crm.name')); if ($env === 'live' && $is_installed) { $this->app->booted(function () { $schedule = $this->app->make(Schedule::class); $schedule->command('pos:sendScheduleNotification')->everyMinute(); $schedule->command('pos:createRecursiveFollowup')->daily(); }); } } }