| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- <?php
 - 
 - namespace App\Scopes;
 - 
 - use Illuminate\Database\Eloquent\Builder;
 - use Illuminate\Database\Eloquent\Model;
 - use Illuminate\Database\Eloquent\ModelNotFoundException;
 - use Illuminate\Database\Eloquent\Scope;
 - use Illuminate\Support\Facades\Auth;
 - use Illuminate\Support\Facades\Log;
 - 
 - class CurrentCompanyScope implements Scope
 - {
 -     /**
 -      * Apply the scope to a given Eloquent query builder.
 -      */
 -     public function apply(Builder $builder, Model $model): void
 -     {
 -         $companyId = session('current_company_id');
 - 
 -         if (! $companyId && app()->runningInConsole()) {
 -             return;
 -         }
 - 
 -         if (! $companyId && Auth::check() && Auth::user()->currentCompany) {
 -             $companyId = Auth::user()->currentCompany->id;
 -             session(['current_company_id' => $companyId]);
 -         }
 - 
 -         if (! $companyId) {
 -             $companyId = Auth::user()->currentCompany->id;
 -         }
 - 
 -         if ($companyId) {
 -             $builder->where("{$model->getTable()}.company_id", $companyId);
 -         } else {
 -             Log::error('CurrentCompanyScope: No company_id found for user ' . Auth::id());
 - 
 -             throw new ModelNotFoundException('CurrentCompanyScope: No company_id set in the session or on the user.');
 -         }
 -     }
 - }
 
 
  |