diff --git a/app/admin/routing/destinations.rb b/app/admin/routing/destinations.rb index ba601b001..1debd2c9d 100644 --- a/app/admin/routing/destinations.rb +++ b/app/admin/routing/destinations.rb @@ -52,8 +52,8 @@ acts_as_import resource_class: Importing::Destination, skip_columns: [:routing_tag_ids] - scope :low_quality - scope :time_valid + scope :low_quality, show_count: false + scope :time_valid, show_count: false filter :id filter :uuid_equals, label: 'UUID' @@ -61,7 +61,7 @@ filter :prefix filter :routing_for_contains, as: :string, input_html: { class: 'search_filter_string' } filter :rate_group, input_html: { class: 'chosen' } - filter :rate_group_rateplans_id_eq, as: :select, input_html: { class: 'chosen' }, label: 'Rateplan', collection: -> { Routing::Rateplan.all } + filter :rateplan_id_filter, as: :select, input_html: { class: 'chosen' }, label: 'Rateplan', collection: -> { Routing::Rateplan.all } filter :reject_calls, as: :select, collection: [['Yes', true], ['No', false]] filter :initial_rate filter :next_rate diff --git a/app/models/class4/rate_plan_group.rb b/app/models/class4/rate_plan_group.rb new file mode 100644 index 000000000..4551348db --- /dev/null +++ b/app/models/class4/rate_plan_group.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: class4.rate_plan_groups +# +# id :integer(4) not null, primary key +# rate_group_id :integer(4) not null +# rateplan_id :integer(4) not null +# +# Indexes +# +# rate_plan_groups_rateplan_id_rate_group_id_idx (rateplan_id,rate_group_id) UNIQUE +# +# Foreign Keys +# +# rate_plan_groups_rate_group_id_fkey (rate_group_id => rate_groups.id) +# rate_plan_groups_rateplan_id_fkey (rateplan_id => rateplans.id) +# +module Class4 + class RatePlanGroup < ApplicationRecord + self.table_name = 'class4.rate_plan_groups' + end +end diff --git a/app/models/routing/destination.rb b/app/models/routing/destination.rb index f88f02e7e..f89ee50c9 100644 --- a/app/models/routing/destination.rb +++ b/app/models/routing/destination.rb @@ -69,6 +69,10 @@ class Routing::Destination < ApplicationRecord scope :low_quality, -> { where quality_alarm: true } scope :time_valid, -> { where('valid_till >= :time AND valid_from < :time', time: Time.now) } + scope :rateplan_id_filter, ->(value) do + rate_group_ids = Class4::RatePlanGroup.where(rateplan_id: value).pluck(:rate_group_id) + where('rate_group_id IN (?)', rate_group_ids) + end scope :where_customer, lambda { |id| joins(:rate_group).joins(:rateplans).joins(:customers_auths).where(CustomersAuth.table_name => { customer_id: id }) @@ -171,6 +175,7 @@ def self.ransackable_scopes(_auth_object = nil) routing_tag_ids_covers tagged routing_tag_ids_count_equals + rateplan_id_filter ] end end