osb/app/Http/Controllers/SearchController.php
2019-06-29 10:14:12 +10:00

47 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\{Account,Service\Adsl};
class SearchController extends Controller
{
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function search(Request $request)
{
if (! $request->input('term'))
return [];
$result = collect();
$uo = Auth::user();
# Look for Account
foreach (Account::Search($request->input('term'))
->whereIN('id',$uo->all_accounts()->pluck('id'))
->orderBy('company')
->orderBy('last_name')
->orderBy('first_name')
->limit(10)->get() as $o)
{
$result->push(['label'=>sprintf('A:%s %s',$o->aid,$o->name),'value'=>'/u/account/'.$o->id]);
}
# Look for an ADSL/NBN Service
foreach (Adsl::Search($request->input('term'))
->whereIN('account_id',$uo->all_accounts()->pluck('id'))
->orderBy('service_number')
->limit(10)->get() as $o)
{
$result->push(['label'=>sprintf('S:%s (%s)',$o->name,$o->service->sid),'value'=>'/u/service/'.$o->id]);
}
return $result;
}
}