search for p_article, p_serial_num, p_article_serial_num

This commit is contained in:
Barnabé 2021-08-27 18:22:48 +02:00
parent 181089058c
commit 7c0bfc9ae4
9 changed files with 80 additions and 2 deletions

View File

@ -11,7 +11,19 @@ class Admin::PArticleSerialNumsController < ApplicationController
end
def index
@p_article_serial_nums = PArticleSerialNum.all
@p_article_serial_nums = PArticleSerialNum.includes(:p_serial_num_type, :p_product_ref, :p_serial_num_value).all
if params[:search][:p_serial_num_type_name]
@p_article_serial_nums = @p_article_serial_nums.joins(:p_serial_num_type).where("name LIKE ?", "#{params[:search][:p_serial_num_type_name]}%")
end
if params[:search][:p_product_ref_cc_name]
@p_article_serial_nums = @p_article_serial_nums.joins(:p_article, :p_product_ref).where("cc_name LIKE ?","#{params[:search][:p_product_ref_cc_name]}%")
end
if params[:search][:p_serial_num_value_value]
@p_article_serial_nums = @p_article_serial_nums.joins(:p_serial_num_value).where("value LIKE ?","#{params[:search][:p_serial_num_value_value]}%")
end
@p_article_serial_nums = sort_by_sorting(@p_article_serial_nums, "id DESC")
respond_to do |format|

View File

@ -13,6 +13,27 @@ class Admin::PArticlesController < ApplicationController
def index
@p_articles = PArticle.all
if params[:search][:p_product_color].to_s != ""
if params[:search][:p_product_color].to_s == "null"
@p_articles = @p_articles.where(:p_product_color => nil)
else
@p_articles = @p_articles.where(:p_product_color => params[:search][:p_product_color])
end
end
if params[:search][:p_product_ref_cc_name]
@p_articles = @p_articles.joins(:p_product_ref).where("cc_name LIKE ?", "#{params[:search][:p_product_ref_cc_name]}%")
end
if params[:search][:p_product_ref_cc_code]
@p_articles = @p_articles.joins(:p_product_ref).where("cc_code LIKE ?", "#{params[:search][:p_product_ref_cc_code]}%")
end
if params[:search][:p_serial_num_value]
@p_articles = @p_articles.joins(:p_serial_num_values).where("value LIKE ?", "#{params[:search][:p_serial_num_value]}%")
end
@p_articles = sort_by_sorting(@p_articles, "id DESC")
respond_to do |format|
format.html{

View File

@ -13,6 +13,11 @@ class Admin::PSerialNumTypesController < ApplicationController
def index
@p_serial_num_types = PSerialNumType.all
if params[:search][:name]
@p_serial_num_types = @p_serial_num_types.where("name LIKE ?","#{params[:search][:name]}%")
end
@p_serial_num_types = sort_by_sorting(@p_serial_num_types, "id DESC")
respond_to do |format|
format.html{

View File

@ -1,8 +1,9 @@
class PArticle < ApplicationRecord
belongs_to :p_product_ref
has_one :p_product, through: :p_product_ref
belongs_to :p_product_color
has_one :p_product_color, through: :p_product_ref
has_many :p_article_serial_nums, dependent: :destroy
has_many :p_serial_num_values, through: :p_article_serial_nums
accepts_nested_attributes_for :p_article_serial_nums
validates_presence_of :p_product_ref
# has_many :p_product_ref_specs, through: :p_product_ref

View File

@ -2,6 +2,7 @@ class PArticleSerialNum < ApplicationRecord
belongs_to :p_article
belongs_to :p_serial_num_type
belongs_to :p_serial_num_value, inverse_of: :p_article_serial_nums
has_one :p_product_ref, through: :p_article
accepts_nested_attributes_for :p_serial_num_value
acts_as_sorting :fields => {

View File

@ -1,3 +1,4 @@
class PSerialNumValue < ApplicationRecord
has_many :p_article_serial_nums, inverse_of: :p_serial_num_value
has_many :p_articles, through: :p_article_serial_nums
end

View File

@ -7,6 +7,19 @@
.qi_search_row
=form_tag "", :method => "get", :onsubmit => "" do
=hidden_field_tag :column, params[:column]
=hidden_field_tag :direction, params[:direction]
%table
%tr
%td=text_field_tag "search[p_serial_num_type_name]", params[:search][:p_serial_num_type_name],:class => "form-control", :placeholder => "Type"
%td=text_field_tag "search[p_product_ref_cc_name]", params[:search][:p_product_ref_cc_name],:class => "form-control", :placeholder => "Article"
%td=text_field_tag "search[p_serial_num_value_value]", params[:search][:p_serial_num_value_value],:class => "form-control", :placeholder => "N° de serie"
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_article_serial_nums}

View File

@ -7,6 +7,22 @@
.qi_search_row
=form_tag "", :method => "get", :onsubmit => "" do
=hidden_field_tag :column, params[:column]
=hidden_field_tag :direction, params[:direction]
%table
%tr
%td=text_field_tag "search[p_product_ref_cc_code]", params[:search][:p_product_ref_cc_code],:class => "form-control", :placeholder => "Code"
%td=text_field_tag "search[p_product_ref_cc_name]", params[:search][:p_product_ref_cc_name],:class => "form-control", :placeholder => "Article"
%td=text_field_tag "search[p_serial_num_value]", params[:search][:p_serial_num_value],:class => "form-control", :placeholder => "N° de serie"
%td
Couleur :
=select_tag "search[p_product_color]", options_for_select([["",""],["Aucune","null"]]+PProductColor.pluck(:color, :id), params[:search][:p_product_color])
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_articles}

View File

@ -7,6 +7,14 @@
.qi_search_row
=form_tag "", :method => "get", :onsubmit => "" do
=hidden_field_tag :column, params[:column]
=hidden_field_tag :direction, params[:direction]
%table
%tr
%td=text_field_tag "search[name]", params[:search][:name],:class => "form-control", :placeholder => "Type"
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_serial_num_types}