diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index ce82446..f1c4a96 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -6,7 +6,7 @@ use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; -use App\Models\{Account,Invoice,Service,Service\Adsl,User}; +use App\Models\{Account,Invoice,Service,Service\Adsl,Service\Voip,User}; class SearchController extends Controller { @@ -69,7 +69,16 @@ class SearchController extends Controller ->orderBy('service_number') ->limit(10)->get() as $o) { - $result->push(['name'=>sprintf('%s (%s)',$o->name,$o->service->sid),'value'=>'/u/service/'.$o->id,'category'=>'Broadband']); + $result->push(['name'=>sprintf('%s (%s)',$o->service_name,$o->service->sid),'value'=>'/u/service/'.$o->id,'category'=>'Broadband']); + } + + # Look for an VOIP Service + foreach (Voip::Search($request->input('term')) + ->whereIN('account_id',$accounts) + ->orderBy('service_number') + ->limit(10)->get() as $o) + { + $result->push(['name'=>sprintf('%s (%s)',$o->service_name,$o->service->sid),'value'=>'/u/service/'.$o->id,'category'=>'VOIP']); } # Look for Domain Name diff --git a/app/Models/Service/Adsl.php b/app/Models/Service/Adsl.php index 6bbef46..99b7221 100644 --- a/app/Models/Service/Adsl.php +++ b/app/Models/Service/Adsl.php @@ -74,7 +74,7 @@ class Adsl extends ServiceType implements ServiceItem,ServiceUsage /** ATTRIBUTES **/ /** - * @deprecated use $o->type()->service_name; + * @deprecated use $o->service_name; * @return mixed|string */ public function getNameAttribute() @@ -104,7 +104,7 @@ class Adsl extends ServiceType implements ServiceItem,ServiceUsage */ public function getServiceNameAttribute(): string { - return $this->service_number ?: 'NO Service Number'; + return $this->service_number ?: $this->service_address; } /** diff --git a/app/Models/Service/Voip.php b/app/Models/Service/Voip.php index 4ed3ad5..4657680 100644 --- a/app/Models/Service/Voip.php +++ b/app/Models/Service/Voip.php @@ -18,6 +18,25 @@ class Voip extends ServiceType implements ServiceItem ]; protected $table = 'ab_service__voip'; + /* SCOPES */ + + /** + * Search for a record + * + * @param $query + * @param string $term + * @return + */ + public function scopeSearch($query,string $term) + { + // Build our where clause + return parent::scopeSearch($query,$term) + ->orwhere('service_number','like','%'.$term.'%') + ->orWhere('service_address','like','%'.$term.'%'); + } + + /* ATTRIBUTES */ + /** * Return the service address * @@ -40,9 +59,11 @@ class Voip extends ServiceType implements ServiceItem */ public function getServiceNameAttribute(): string { - return $this->service_number; + return $this->service_number ?: $this->service_address; } + /* METHODS */ + public function inContract(): bool { return $this->service_contract_date AND $this->service_contract_date->addMonths($this->contract_term)->isFuture();