From 7c0bfc9ae4072eb592d99d0f4cc48d0707bd6707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A9?= Date: Fri, 27 Aug 2021 18:22:48 +0200 Subject: [PATCH] search for p_article, p_serial_num, p_article_serial_num --- .../admin/p_article_serial_nums_controller.rb | 14 ++++++++++++- .../admin/p_articles_controller.rb | 21 +++++++++++++++++++ .../admin/p_serial_num_types_controller.rb | 5 +++++ app/models/p_article.rb | 3 ++- app/models/p_article_serial_num.rb | 1 + app/models/p_serial_num_value.rb | 1 + .../p_article_serial_nums/index.html.haml | 13 ++++++++++++ app/views/admin/p_articles/index.html.haml | 16 ++++++++++++++ .../admin/p_serial_num_types/index.html.haml | 8 +++++++ 9 files changed, 80 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/p_article_serial_nums_controller.rb b/app/controllers/admin/p_article_serial_nums_controller.rb index 069ade6..3663027 100644 --- a/app/controllers/admin/p_article_serial_nums_controller.rb +++ b/app/controllers/admin/p_article_serial_nums_controller.rb @@ -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| diff --git a/app/controllers/admin/p_articles_controller.rb b/app/controllers/admin/p_articles_controller.rb index 006eeda..24ba78d 100644 --- a/app/controllers/admin/p_articles_controller.rb +++ b/app/controllers/admin/p_articles_controller.rb @@ -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{ diff --git a/app/controllers/admin/p_serial_num_types_controller.rb b/app/controllers/admin/p_serial_num_types_controller.rb index 7fa9e38..34a1208 100644 --- a/app/controllers/admin/p_serial_num_types_controller.rb +++ b/app/controllers/admin/p_serial_num_types_controller.rb @@ -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{ diff --git a/app/models/p_article.rb b/app/models/p_article.rb index 3ff569b..3464c36 100644 --- a/app/models/p_article.rb +++ b/app/models/p_article.rb @@ -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 diff --git a/app/models/p_article_serial_num.rb b/app/models/p_article_serial_num.rb index aae27cd..5941588 100644 --- a/app/models/p_article_serial_num.rb +++ b/app/models/p_article_serial_num.rb @@ -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 => { diff --git a/app/models/p_serial_num_value.rb b/app/models/p_serial_num_value.rb index 12a74bd..c8a476f 100644 --- a/app/models/p_serial_num_value.rb +++ b/app/models/p_serial_num_value.rb @@ -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 diff --git a/app/views/admin/p_article_serial_nums/index.html.haml b/app/views/admin/p_article_serial_nums/index.html.haml index 2a60940..9d294bd 100644 --- a/app/views/admin/p_article_serial_nums/index.html.haml +++ b/app/views/admin/p_article_serial_nums/index.html.haml @@ -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} diff --git a/app/views/admin/p_articles/index.html.haml b/app/views/admin/p_articles/index.html.haml index 2b77ca5..8bc5e78 100644 --- a/app/views/admin/p_articles/index.html.haml +++ b/app/views/admin/p_articles/index.html.haml @@ -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} diff --git a/app/views/admin/p_serial_num_types/index.html.haml b/app/views/admin/p_serial_num_types/index.html.haml index 6e9745d..522508d 100644 --- a/app/views/admin/p_serial_num_types/index.html.haml +++ b/app/views/admin/p_serial_num_types/index.html.haml @@ -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}