diff --git a/app/config/version.php b/app/config/version.php
index 4a7d3f9a75..4a9397aa2f 100644
--- a/app/config/version.php
+++ b/app/config/version.php
@@ -1,5 +1,5 @@
'v2.0.5-pre',
- 'hash_version' => 'v2.0.5-pre-155-g4ad241e',
+ 'hash_version' => 'v2.0.5-pre-156-gf6e2654',
);
\ No newline at end of file
diff --git a/app/controllers/admin/AccessoriesController.php b/app/controllers/admin/AccessoriesController.php
index d4cd7a49a7..b431c7159e 100755
--- a/app/controllers/admin/AccessoriesController.php
+++ b/app/controllers/admin/AccessoriesController.php
@@ -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 = 'numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'';
+ $actions = 'numRemaining() > 0 ) ? '' : ' disabled').'>'.Lang::get('general.checkout').'';
$company = $accessory->company;
$rows[] = array(
diff --git a/app/models/Accessory.php b/app/models/Accessory.php
index d9ed52608a..a8f7e78c97 100755
--- a/app/models/Accessory.php
+++ b/app/models/Accessory.php
@@ -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.'%');
- });
- }
}
diff --git a/app/views/backend/accessories/index.blade.php b/app/views/backend/accessories/index.blade.php
index 2ef3cbf9f2..4e47ee7bf2 100755
--- a/app/views/backend/accessories/index.blade.php
+++ b/app/views/backend/accessories/index.blade.php
@@ -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">
- | @lang('admin/companies/table.title') |
- {{Lang::get('admin/accessories/table.title')}} |
- {{Lang::get('admin/accessories/general.accessory_category')}} |
+ @lang('admin/companies/table.title') |
+ {{Lang::get('admin/accessories/table.title')}} |
+ {{Lang::get('admin/accessories/general.accessory_category')}} |
{{Lang::get('admin/accessories/general.total')}} |
{{Lang::get('admin/accessories/general.date')}} |
{{Lang::get('admin/accessories/general.cost')}} |