|
|
|
@ -46,8 +46,8 @@ class SalesLog < Log |
|
|
|
} |
|
|
|
} |
|
|
|
scope :filter_by_purchaser_code, ->(purchid) { where("purchid ILIKE ?", "%#{purchid}%") } |
|
|
|
scope :filter_by_purchaser_code, ->(purchid) { where("purchid ILIKE ?", "%#{purchid}%") } |
|
|
|
scope :search_by, lambda { |param| |
|
|
|
scope :search_by, lambda { |param| |
|
|
|
sanitized_order_param = ActiveRecord::Base.sanitize_sql_for_order(param) |
|
|
|
sanitized_param = ActiveRecord::Base.sanitize_sql(param) |
|
|
|
order_param_without_spaces = sanitized_order_param.delete(" ") |
|
|
|
param_without_spaces = sanitized_param.delete(" ") |
|
|
|
|
|
|
|
|
|
|
|
by_id = Arel.sql("CASE WHEN id = ? THEN 0 ELSE 1 END") |
|
|
|
by_id = Arel.sql("CASE WHEN id = ? THEN 0 ELSE 1 END") |
|
|
|
by_purchaser_code = Arel.sql("CASE WHEN purchid = ? THEN 0 WHEN purchid ILIKE ? THEN 1 ELSE 2 END") |
|
|
|
by_purchaser_code = Arel.sql("CASE WHEN purchid = ? THEN 0 WHEN purchid ILIKE ? THEN 1 ELSE 2 END") |
|
|
|
@ -56,9 +56,9 @@ class SalesLog < Log |
|
|
|
filter_by_purchaser_code(param) |
|
|
|
filter_by_purchaser_code(param) |
|
|
|
.or(filter_by_postcode(param)) |
|
|
|
.or(filter_by_postcode(param)) |
|
|
|
.or(filter_by_id(param.gsub(/log/i, ""))) |
|
|
|
.or(filter_by_id(param.gsub(/log/i, ""))) |
|
|
|
.order([by_id, sanitized_order_param.to_i], |
|
|
|
.order([by_id, sanitized_param.to_i], |
|
|
|
[by_purchaser_code, sanitized_order_param, sanitized_order_param], |
|
|
|
[by_purchaser_code, sanitized_param, sanitized_param], |
|
|
|
[by_postcode, order_param_without_spaces, order_param_without_spaces]) |
|
|
|
[by_postcode, param_without_spaces, param_without_spaces]) |
|
|
|
} |
|
|
|
} |
|
|
|
scope :age1_answered, -> { where.not(age1: nil).or(where(age1_known: [1, 2])) } |
|
|
|
scope :age1_answered, -> { where.not(age1: nil).or(where(age1_known: [1, 2])) } |
|
|
|
scope :duplicate_logs, lambda { |log| |
|
|
|
scope :duplicate_logs, lambda { |log| |
|
|
|
|