diff --git a/app/controllers/batch_line_items_controller.rb b/app/controllers/batch_line_items_controller.rb index fd7e551..7333b8b 100644 --- a/app/controllers/batch_line_items_controller.rb +++ b/app/controllers/batch_line_items_controller.rb @@ -35,7 +35,6 @@ class BatchLineItemsController < ApplicationController client_id=params[:client] product_category_id=params[:product_category] - @batchLineItems=nil if !batch_list.empty? diff --git a/app/controllers/batches_controller.rb b/app/controllers/batches_controller.rb index eab4ec1..198bd66 100644 --- a/app/controllers/batches_controller.rb +++ b/app/controllers/batches_controller.rb @@ -2,8 +2,53 @@ class BatchesController < ApplicationController skip_before_filter :verify_authenticity_token before_action :authenticate_member! def index + @product_category_id="" + @clients=Client.all.order('id desc') + @product_categories=ProductCategory.all.order('id desc') @batches=Batch.joins('inner join users on users.id=batches.user_id') .select('batches.*,users.name as user_name').order('batches.id desc').page(params[:page]) + @count = Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').count end + + def search + client_id=params[:client_id] + product_category_id=params[:product_category_id] + search_keyword = params[:search_keyword] + + if client_id == "" && product_category_id == "" && search_keyword == "" then + @batches=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*,users.name as user_name').order('batches.id desc').page(params[:page]) + @count = Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').count + + elsif client_id == "" && product_category_id == "" then + @batches=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*,users.name as user_name').where('LOWER(order_ref) like ?', "%#{params[:search_keyword]}%").order('batches.id desc').page(params[:page]) + @count=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').where('LOWER(order_ref) like ?', "%#{params[:search_keyword]}%").count + + elsif client_id == "" then + @batches=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*,users.name as user_name').where('product_category_id=? and LOWER(order_ref) like ?',params[:product_category_id], "%#{params[:search_keyword]}%").order('batches.id desc').page(params[:page]) + + @count=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').where('product_category_id=? and LOWER(order_ref) like ?',params[:product_category_id], "%#{params[:search_keyword]}%").count + + + elsif product_category_id == "" then + @batches=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*,users.name as user_name').where('client_id=? and LOWER(order_ref) like ?', params[:client_id], "%#{params[:search_keyword]}%").order('batches.id desc').page(params[:page]) + + @count=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').where('client_id=? and LOWER(order_ref) like ?', params[:client_id], "%#{params[:search_keyword]}%").count + else + @batches=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*,users.name as user_name').where('product_category_id=? and client_id=? and LOWER(order_ref) like ?',params[:product_category_id], params[:client_id], "%#{params[:search_keyword]}%").order('batches.id desc').page(params[:page]) + @count=Batch.joins('inner join users on users.id=batches.user_id') + .select('batches.*').where('product_category_id=? and client_id=? and LOWER(order_ref) like ?',params[:product_category_id], params[:client_id], "%#{params[:search_keyword]}%").count + + end + end end \ No newline at end of file diff --git a/app/views/batch_line_items/index.html.erb b/app/views/batch_line_items/index.html.erb index ebc158e..976d5df 100644 --- a/app/views/batch_line_items/index.html.erb +++ b/app/views/batch_line_items/index.html.erb @@ -1,26 +1,25 @@
- +
- <%= form_tag export_path(:format => :csv),:method => :post do%> -
- - <%= select_tag "client", options_from_collection_for_select(@clients, "id", "name"), :class => 'form-control'%> -
-
- - <%= select_tag "product_category", options_from_collection_for_select(@product_categories, "id", "name"), :class => 'form-control'%> -
- -
-
-     - <%= button_tag "Export csv?",:class =>'btn btn-primary btn-sm',:id =>"btnexport" %> -
- <% end %> + <%= form_tag export_path(:format => :csv),:method => :post do%> +
+ + <%= select_tag "client", options_from_collection_for_select(@clients, "id", "name"), :class => 'form-control'%> +
+
+ + <%= select_tag "product_category", options_from_collection_for_select(@product_categories, "id", "name"), :class => 'form-control'%> +
+
+
+     + <%= button_tag "Export csv?",:class =>'btn btn-primary btn-sm',:id =>"btnexport" %> +
+ <% end %>
@@ -72,10 +71,9 @@ <%=paginate @batchLineItems %>
- +
- \ No newline at end of file diff --git a/app/views/batches/search.js.erb b/app/views/batches/search.js.erb new file mode 100644 index 0000000..b49b414 --- /dev/null +++ b/app/views/batches/search.js.erb @@ -0,0 +1,6 @@ +<% js = escape_javascript( + + render(partial: 'batches/search', locals: { batches: @batches }) +) %> +$("#filterrific_results").html("<%= js %>"); +$('.pagination a').attr('data-remote', 'true'); diff --git a/config/routes.rb b/config/routes.rb index d632061..0880b3c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -13,6 +13,9 @@ Rails.application.routes.draw do # #batchlineitems get "batch_line_items/search" =>'batch_line_items#search',:as =>'filter' + + #batches + get "batches/search" =>'batches#search',:as =>'batch_filter' #users get 'check_registered_email' => "users#check_registered_email" #Encoder