Class: Gera::DirectionRateHistoryInterval

Inherits:
ApplicationRecord show all
Includes:
HistoryIntervalConcern
Defined in:
app/models/gera/direction_rate_history_interval.rb

Constant Summary

Constants included from HistoryIntervalConcern

HistoryIntervalConcern::INTERVAL

Class Method Summary collapse

Class Method Details

.create_by_interval!(interval_from, interval_to = nil) ⇒ Object

Их не надо подключать, потому что иначе при создании записи ActiveRercord проверяет есить ли они в базе

belongs_to :payment_system_from, class_name: ‘PaymentSystem’ belongs_to :payment_system_to, class_name: ‘PaymentSystem’



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/gera/direction_rate_history_interval.rb', line 13

def self.create_by_interval!(interval_from, interval_to = nil)
  interval_to ||= interval_from + INTERVAL
  DirectionRate
    .where('created_at >= ? and created_at < ?', interval_from, interval_to)
    .group(:ps_from_id, :ps_to_id)
    .pluck(:ps_from_id, :ps_to_id, 'min(rate_value)', 'max(rate_value)', 'min(rate_percent)', 'max(rate_percent)')
    .each do |ps_from_id, ps_to_id, min_rate, max_rate, min_comission, max_comission|

    next if ps_from_id == ps_to_id

    create!(
      payment_system_from_id: ps_from_id,
      payment_system_to_id: ps_to_id,
      min_rate: min_rate, max_rate: max_rate,
      min_comission: min_comission, max_comission: max_comission,
      interval_from: interval_from, interval_to: interval_to
    )
  end
end