Company/category search on accessories
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v2.0.5-pre',
|
||||
'hash_version' => 'v2.0.5-pre-155-g4ad241e',
|
||||
'hash_version' => 'v2.0.5-pre-156-gf6e2654',
|
||||
);
|
||||
@@ -537,7 +537,7 @@ class AccessoriesController extends AdminController
|
||||
public function getDatatable()
|
||||
{
|
||||
$accessories = Accessory::with('category', 'company')
|
||||
->whereNull('deleted_at');
|
||||
->whereNull('accessories.deleted_at');
|
||||
|
||||
if (Input::has('search')) {
|
||||
$accessories = $accessories->TextSearch(Input::get('search'));
|
||||
@@ -556,11 +556,22 @@ class AccessoriesController extends AdminController
|
||||
}
|
||||
|
||||
|
||||
$allowed_columns = ['name','order_number','purchase_date','purchase_cost'];
|
||||
$allowed_columns = ['name','order_number','purchase_date','purchase_cost','companyName','category'];
|
||||
$order = Input::get('order') === 'asc' ? 'asc' : 'desc';
|
||||
$sort = in_array(Input::get('sort'), $allowed_columns) ? Input::get('sort') : 'created_at';
|
||||
|
||||
$accessories = $accessories->orderBy($sort, $order);
|
||||
switch ($sort)
|
||||
{
|
||||
case 'category':
|
||||
$accessories = $accessories->OrderCategory($order);
|
||||
break;
|
||||
case 'companyName':
|
||||
$accessories = $accessories->OrderCompany($order);
|
||||
break;
|
||||
default:
|
||||
$accessories = $accessories->orderBy($sort, $order);
|
||||
break;
|
||||
}
|
||||
|
||||
$accessCount = $accessories->count();
|
||||
$accessories = $accessories->skip($offset)->take($limit)->get();
|
||||
@@ -568,7 +579,7 @@ class AccessoriesController extends AdminController
|
||||
$rows = array();
|
||||
|
||||
foreach ($accessories as $accessory) {
|
||||
$actions = '<a href="'.route('checkout/accessory', $accessory->id).'" style="margin-right:5px;" class="btn btn-info btn-sm" '.(($accessory->numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'</a><a href="'.route('update/accessory', $accessory->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/accessory', $accessory->id).'" data-content="'.Lang::get('admin/accessories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($accessory->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a>';
|
||||
$actions = '<nobr><a href="'.route('checkout/accessory', $accessory->id).'" style="margin-right:5px;" class="btn btn-info btn-sm" '.(($accessory->numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'</a><a href="'.route('update/accessory', $accessory->id).'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route('delete/accessory', $accessory->id).'" data-content="'.Lang::get('admin/accessories/message.delete.confirm').'" data-title="'.Lang::get('general.delete').' '.htmlspecialchars($accessory->name).'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a></nobr>';
|
||||
$company = $accessory->company;
|
||||
|
||||
$rows[] = array(
|
||||
|
||||
@@ -85,12 +85,56 @@ class Accessory extends Elegant
|
||||
* @return Illuminate\Database\Query\Builder Modified query builder
|
||||
*/
|
||||
public function scopeTextSearch($query, $search)
|
||||
{
|
||||
{
|
||||
$search = explode('+', $search);
|
||||
|
||||
return $query->where(function($query) use ($search)
|
||||
{
|
||||
foreach ($search as $search) {
|
||||
$query->whereHas('category', function($query) use ($search) {
|
||||
$query->where('categories.name','LIKE','%'.$search.'%');
|
||||
})->orWhere(function($query) use ($search) {
|
||||
$query->whereHas('company', function($query) use ($search) {
|
||||
$query->where('companies.name','LIKE','%'.$search.'%');
|
||||
});
|
||||
})->orWhere(function($query) use ($search) {
|
||||
$query->whereHas('assetlog', function($query) use ($search) {
|
||||
$query->where('action_type','=','checkout')
|
||||
->where('created_at','LIKE','%'.$search.'%');
|
||||
});
|
||||
})->orWhere('accessories.name','LIKE','%'.$search.'%')
|
||||
->orWhere('accessories.order_number','LIKE','%'.$search.'%')
|
||||
->orWhere('accessories.purchase_cost','LIKE','%'.$search.'%')
|
||||
->orWhere('accessories.purchase_date','LIKE','%'.$search.'%');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Query builder scope to order on company
|
||||
*
|
||||
* @param Illuminate\Database\Query\Builder $query Query builder instance
|
||||
* @param text $order Order
|
||||
*
|
||||
* @return Illuminate\Database\Query\Builder Modified query builder
|
||||
*/
|
||||
public function scopeOrderCompany($query, $order)
|
||||
{
|
||||
return $query->leftJoin('companies', 'accessories.company_id', '=', 'companies.id')->orderBy('companies.name', $order);
|
||||
}
|
||||
|
||||
/**
|
||||
* Query builder scope to order on company
|
||||
*
|
||||
* @param Illuminate\Database\Query\Builder $query Query builder instance
|
||||
* @param text $order Order
|
||||
*
|
||||
* @return Illuminate\Database\Query\Builder Modified query builder
|
||||
*/
|
||||
public function scopeOrderCategory($query, $order)
|
||||
{
|
||||
return $query->leftJoin('categories', 'accessories.category_id', '=', 'categories.id')->orderBy('categories.name', $order);
|
||||
}
|
||||
|
||||
return $query->where(function($query) use ($search)
|
||||
{
|
||||
$query->where('name', 'LIKE', '%'.$search.'%');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
data-url="{{route('api.accessories.list')}}"
|
||||
data-cookie="true"
|
||||
data-click-to-select="true"
|
||||
data-cookie-id-table="accessoriesTable">
|
||||
data-cookie-id-table="accessoriesTable-v{{ Config::get('version.app_version') }}srytytyu">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-switchable="true" data-searchable="false" data-sortable="false" data-field="companyName">@lang('admin/companies/table.title')</th>
|
||||
<th data-sortable="true" data-field="name">{{Lang::get('admin/accessories/table.title')}}</th>
|
||||
<th data-searchable="false" data-sortable="false" data-field="category">{{Lang::get('admin/accessories/general.accessory_category')}}</th>
|
||||
<th data-switchable="true" data-searchable="true" data-sortable="true" data-field="companyName">@lang('admin/companies/table.title')</th>
|
||||
<th data-sortable="true" data-searchable="true" data-field="name">{{Lang::get('admin/accessories/table.title')}}</th>
|
||||
<th data-searchable="true" data-sortable="true" data-field="category">{{Lang::get('admin/accessories/general.accessory_category')}}</th>
|
||||
<th data-searchable="false" data-sortable="false" data-field="qty">{{Lang::get('admin/accessories/general.total')}}</th>
|
||||
<th data-searchable="true" data-sortable="true" data-field="purchase_date">{{Lang::get('admin/accessories/general.date')}}</th>
|
||||
<th data-searchable="true" data-sortable="true" data-field="purchase_cost">{{Lang::get('admin/accessories/general.cost')}}</th>
|
||||
|
||||
Reference in New Issue
Block a user