Class: Auctify::Sale::Base
Class Method Summary
collapse
Instance Method Summary
collapse
#auctify_id, #object_from_auctify_id
Constructor Details
#initialize(*args) ⇒ Base
Returns a new instance of Base.
66
67
68
69
70
|
# File 'app/models/auctify/sale/base.rb', line 66
def initialize(*args)
super
self.bid_steps_ladder = configuration.default_bid_steps_ladder if bid_steps_ladder.blank?
end
|
Class Method Details
.latest_published_sales_by_item_subtable ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'app/models/auctify/sale/base.rb', line 51
def self.latest_published_sales_by_item_subtable
sales_table = self.arel_table
latest_sales_query = sales_table.project(sales_table[:item_id],
sales_table[:id].maximum.as("latest_sale_id"))
.where(sales_table[:published].eq(true))
.group(sales_table[:item_id])
latest_sales_table = Arel::Table.new(latest_sales_query).alias(:latest_sales)
sales_table.join(latest_sales_query.as(latest_sales_table.name.to_s), Arel::Nodes::InnerJoin)
.on(sales_table[:id].eq(latest_sales_table[:latest_sale_id]))
end
|
Instance Method Details
#auctioneer_commision_from_buyer ⇒ Object
99
100
101
102
103
104
105
106
107
|
# File 'app/models/auctify/sale/base.rb', line 99
def auctioneer_commision_from_buyer
return nil if sold_price.nil?
percent = buyer_commission_in_percent \
|| (pack&.commission_in_percent) \
|| Auctify.configuration.auctioneer_commission_in_percent
sold_price * percent * 0.01
end
|
#auctioneer_commision_from_seller ⇒ Object
95
96
97
|
# File 'app/models/auctify/sale/base.rb', line 95
def auctioneer_commision_from_seller
(seller_commission_in_percent || 0) * 0.01 * offered_price
end
|
#item=(item) ⇒ Object
need to cover wrong class of item before assigning
73
74
75
76
77
78
|
# File 'app/models/auctify/sale/base.rb', line 73
def item=(item)
@item = item
valid_item
super if errors.blank?
end
|
#publish! ⇒ Object
90
91
92
93
|
# File 'app/models/auctify/sale/base.rb', line 90
def publish!
self.published = true
save
end
|