Class: VC::LineItemPresenter
Instance Method Summary
collapse
#add_commas, #date_range, #money, #pennies_to_dollar, #trunc_hours
Constructor Details
Returns a new instance of LineItemPresenter.
4
5
6
7
8
|
# File 'lib/presenters/line_item_presenter.rb', line 4
def initialize(line_item)
@line_item = line_item
@unit_groups = @line_item.unit_groups
@unit_group_presenters = @unit_groups.map {|ug| UnitGroupPresenter.new(ug)}
end
|
Instance Method Details
#name ⇒ Object
14
15
16
|
# File 'lib/presenters/line_item_presenter.rb', line 14
def name
@line_item.app_name
end
|
#total ⇒ Object
10
11
12
|
# File 'lib/presenters/line_item_presenter.rb', line 10
def total
money(@line_item.total)
end
|
#unit_group_presenters(product_group = nil) ⇒ Object
40
41
42
43
44
45
46
|
# File 'lib/presenters/line_item_presenter.rb', line 40
def unit_group_presenters(product_group=nil)
if product_group
@unit_group_presenters.select {|ugp| ugp.product_group == product_group}
else
@unit_group_presenters
end
end
|
#unit_group_qty(product_group) ⇒ Object
31
32
33
34
35
36
37
38
|
# File 'lib/presenters/line_item_presenter.rb', line 31
def unit_group_qty(product_group)
trunc_hours(
unit_group_presenters(product_group).
map(&:unit_group).
map(&:qty).
reduce(:+)
)
end
|
#unit_group_rate(product_group) ⇒ Object
18
19
20
|
# File 'lib/presenters/line_item_presenter.rb', line 18
def unit_group_rate(product_group)
unit_group_presenters(product_group).sample.rate
end
|
#unit_group_total(product_group) ⇒ Object
22
23
24
25
26
27
28
29
|
# File 'lib/presenters/line_item_presenter.rb', line 22
def unit_group_total(product_group)
money(
unit_group_presenters(product_group).
map(&:unit_group).
map(&:total).
reduce(:+)
)
end
|