Class: UserGroupHasCheckoutType

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/user_group_has_checkout_type.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.update_current_checkout_countObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'app/models/user_group_has_checkout_type.rb', line 41

def self.update_current_checkout_count
  sql = [
    'SELECT count(checkouts.id) as current_checkout_count,
      profiles.user_group_id,
      items.checkout_type_id
      FROM profiles, checkouts LEFT OUTER JOIN items
      ON (checkouts.item_id = items.id)
      LEFT OUTER JOIN users
      ON (users.id = checkouts.user_id)
      WHERE checkouts.checkin_id IS NULL
      GROUP BY user_group_id, checkout_type_id;'
  ]
  UserGroupHasCheckoutType.find_by_sql(sql).each do |result|
    update_sql = [
      'UPDATE user_group_has_checkout_types
        SET current_checkout_count = ?
        WHERE user_group_id = ? AND checkout_type_id = ?;',
        result.current_checkout_count, result.user_group_id, result.checkout_type_id
    ]
    ActiveRecord::Base.connection.execute(
      self.send(:sanitize_sql_array, update_sql)
    )
  end
end

Instance Method Details

#create_lending_policyObject



20
21
22
23
24
25
26
27
28
29
30
# File 'app/models/user_group_has_checkout_type.rb', line 20

def create_lending_policy
  self.checkout_type.items.find_each do |item|
    policy = LendingPolicy.where(item_id: item.id, user_group_id: user_group_id).select(:id).first
    unless policy
      sql = ['INSERT INTO lending_policies (item_id, user_group_id, loan_period, renewal, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)', item.id, user_group_id, checkout_period, checkout_renewal_limit, Time.zone.now, Time.zone.now]
      ActiveRecord::Base.connection.execute(
        self.class.send(:sanitize_sql_array, sql)
      )
    end
  end
end

#update_lending_policyObject



32
33
34
35
36
37
38
39
# File 'app/models/user_group_has_checkout_type.rb', line 32

def update_lending_policy
  self.checkout_type.items.each do |item|
    sql = ['UPDATE lending_policies SET loan_period = ?, renewal = ?, updated_at = ? WHERE user_group_id = ? AND item_id = ?', self.checkout_period, self.checkout_renewal_limit, Time.zone.now, self.user_group_id, item.id]
    ActiveRecord::Base.connection.execute(
      self.class.send(:sanitize_sql_array, sql)
    )
  end
end