From 87b340328e37db4dc82cdac822e76541bcf5d658 Mon Sep 17 00:00:00 2001 From: May Zin Oo Date: Wed, 25 Oct 2017 11:42:56 +0630 Subject: [PATCH] search in batches --- .../batch_line_items_controller.rb | 1 - app/controllers/batches_controller.rb | 45 +++++ app/views/batch_line_items/index.html.erb | 129 ++++++------- app/views/batches/_search.html.erb | 36 ++++ app/views/batches/index.html.erb | 180 ++++++++++++++---- app/views/batches/search.js.erb | 6 + config/routes.rb | 3 + db/schema.rb | 1 + 8 files changed, 294 insertions(+), 107 deletions(-) create mode 100644 app/views/batches/_search.html.erb create mode 100644 app/views/batches/search.js.erb diff --git a/app/controllers/batch_line_items_controller.rb b/app/controllers/batch_line_items_controller.rb index 1dedb52..16bbd4d 100644 --- a/app/controllers/batch_line_items_controller.rb +++ b/app/controllers/batch_line_items_controller.rb @@ -32,7 +32,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 d5739b4..de30f4c 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 %>
@@ -29,52 +28,51 @@
-
-
- Batch Line Item List -
-
- <% flash.each do |key, value| %> - <% if key =='message' %> -
- × - <%= value %> - <% end %> -
- <% end %> -
- - - - - - - - - - - - - - <% @batchLineItems.each do |item| %> - - - - - - - - - - <% end %> - -
Serial NoAsset IdentityManufacture UIDBatch NoAsset TypeCreated At Update At
<%= item.serial_no rescue '' %><%= item.asset_identity rescue '' %><%= item.manufacture_uid rescue '' %><%= item.batch_name rescue '' %><%= item.asset_type rescue '' %><%= item.created_at.strftime("%e,%b %Y %I:%M %p") rescue '' %><%= item.updated_at.strftime("%e,%b %Y %I:%M %p") rescue '' %>
- <%=paginate @batchLineItems %> -
- +
+
+ Batch Line Item List +
+
+ <% flash.each do |key, value| %> + <% if key =='message' %> +
+ × + <%= value %> + <% end %> +
+ <% end %> +
+ + + + + + + + + + + + + + <% @batchLineItems.each do |item| %> + + + + + + + + + + <% end %> + +
Serial NoAsset IdentityManufacture UIDBatch NoAsset TypeCreated At Update At
<%= item.serial_no rescue '' %><%= item.asset_identity rescue '' %><%= item.manufacture_uid rescue '' %><%= item.batch_name rescue '' %><%= item.asset_type rescue '' %><%= item.created_at.strftime("%e,%b %Y %I:%M %p") rescue '' %><%= item.updated_at.strftime("%e,%b %Y %I:%M %p") rescue '' %>
+ <%=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 diff --git a/db/schema.rb b/db/schema.rb index 140480b..0f560aa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -14,6 +14,7 @@ ActiveRecord::Schema.define(version: 20170210103359) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + enable_extension "uuid-ossp" create_table "batch_line_items", force: :cascade do |t| t.integer "batch_id"