feat(TransmittalResource): enhance search functionality across related models
Implement wildcard search on transmittal series, notes, and files to improve user experience when filtering records. Also extend search capabilities to client company and branch code fields for more comprehensive filtering.
This commit is contained in:
@@ -45,16 +45,36 @@ class TransmittalResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\Layout\Split::make([
|
||||
Tables\Columns\TextColumn::make('series')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
$wildcardSearch = '%' . str_replace(' ', '%', $search) . '%';
|
||||
|
||||
return $query->where(function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('series', 'like', $wildcardSearch)
|
||||
->orWhereHas('notes', function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('comment', 'like', $wildcardSearch);
|
||||
})
|
||||
->orWhereHas('files', function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('description', 'like', $wildcardSearch);
|
||||
});
|
||||
});
|
||||
})
|
||||
->label('Series')
|
||||
->weight(FontWeight::Bold)
|
||||
->columnSpan(2),
|
||||
Tables\Columns\Layout\Stack::make([
|
||||
Tables\Columns\TextColumn::make('client.company')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
return $query->whereHas('client', function (Builder $query) use ($search) {
|
||||
$query->where('company', 'like', '%' . str_replace(' ', '%', $search) . '%');
|
||||
});
|
||||
})
|
||||
->weight(FontWeight::SemiBold)->label('Client'),
|
||||
Tables\Columns\TextColumn::make('branch.code')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
return $query->whereHas('branch', function (Builder $query) use ($search) {
|
||||
$query->where('code', 'like', '%' . str_replace(' ', '%', $search) . '%');
|
||||
});
|
||||
})
|
||||
->label('Branch'),
|
||||
]),
|
||||
]),
|
||||
|
||||
Reference in New Issue
Block a user