File "AppServiceProvider.php"

Full Path: /home/isoftco/public_html/hrm/app/Providers/AppServiceProvider.php
File size: 3.54 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace App\Providers;

use App\Http\Middleware\EncryptCookies;
use App\Models\Admin;
use App\Models\Award;
use App\Models\Company;
use App\Models\Department;
use App\Models\Employee;
use App\Models\Expense;
use App\Models\Holiday;
use App\Models\Job;
use App\Models\JobApplication;
use App\Models\LeaveApplication;
use App\Models\Leavetype;
use App\Models\Noticeboard;
use App\Models\Payroll;
use App\Models\Setting;
use App\Observers\AdminUserObserver;
use App\Observers\AwardObserver;
use App\Observers\CompanyObserver;
use App\Observers\DepartmentObserver;
use App\Observers\EmployeeObserver;
use App\Observers\ExpenseObserver;
use App\Observers\HolidayObserver;
use App\Observers\JobApplicationObserver;
use App\Observers\JobObserver;
use App\Observers\LeaveApplicationObserver;
use App\Observers\LeaveTypeObserver;
use App\Observers\NoticeboardObserver;
use App\Observers\PayrollObserver;
use App\Observers\SettingsObserver;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Blade;
use Laravel\Cashier\Cashier;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        // translation directive
        Blade::directive('trans', function ($key) {
            return '<?php echo preg_replace("/^.*\./", "", app(\'translator\')->getFromJson(' . $key . ')); ?>';
        });

        \Validator::extend('company', function($attribute, $value, $parameters, $validator) {
            $emp  = Employee::join('designation', 'designation.id', '=', 'employees.designation')
                ->join('department', 'designation.department_id', '=', 'department.id')->where('employeeID','=',$value)
                ->where('department.company_id', '=', $parameters[0])->first();
            if(sizeof($emp)){
                return true;
            } else {
                return false;
            }
        });

        if (\config('app.redirect_https')) {
            \URL::forceScheme('https');
        }



        Schema::defaultStringLength(191); //NEW: Increase StringLength
        Award::observe(AwardObserver::class);
        Expense::observe(ExpenseObserver::class);
        Noticeboard::observe(NoticeboardObserver::class);
        Leavetype::observe(LeaveTypeObserver::class);
        Holiday::observe(HolidayObserver::class);
        Admin::observe(AdminUserObserver::class);
        Job::observe(JobObserver::class);
        Payroll::observe(PayrollObserver::class);
        Employee::observe(EmployeeObserver::class);
        Department::observe(DepartmentObserver::class);
        Company::observe(CompanyObserver::class);
        JobApplication::observe(JobApplicationObserver::class);
        LeaveApplication::observe(LeaveApplicationObserver::class);
        Setting::observe(SettingsObserver::class);

        Validator::extend('sub_domain', function ($attribute, $value, $parameters, $validator) {
            $value = explode('.'.get_domain(), $value)[0];
            return preg_match('/[^A-Za-z0-9]+/i', $value) === 0;
        }, 'The :attribute can only contain alphabets and numbers');

    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        Cashier::ignoreMigrations();
        $this->app->singleton('Illuminate\Cookie\Middleware\EncryptCookies');
        $this->app->resolving(EncryptCookies::class, function ($object) {
            $object->disableFor('sidebar_closed');
        });
    }
}