Module: LineItemsHelper

Defined in:
app/helpers/line_items_helper.rb

Instance Method Summary collapse

Instance Method Details

#line_description(line_item, show_edit_link = false) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
# File 'app/helpers/line_items_helper.rb', line 72

def line_description(line_item, show_edit_link = false)
  return line_item.shipping_name if line_item.is_shipping?

  desc = truncate(line_item.name || line_item.description, length: 80)
  desc += " (Serial Number: #{line_item.serial_number.number})" if line_item.serial_number
  desc += link_to('Edit', edit_line_item_path(line_item, return_path: return_path)) if line_item.serial_number and show_edit_link == true
  desc += " [#{line_item.edi_line_number}]" if line_item.edi_line_number
  desc += fa_icon('scale-unbalanced-flip', title: 'Oversized', class: 'ms-2') if line_item.oversize?
  desc += fa_icon('forklift', title: 'LTL only', class: 'ms-2') if line_item.ships_via_freight?

  desc.html_safe
end

#quantity_label(qty: nil, stock_status: nil, line_item: nil, line_item_child: nil, can_be_committed: false, is_committed: false, disable_commit_links: false, simple_qty: false, store_item: nil) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/helpers/line_items_helper.rb', line 37

def quantity_label(qty: nil, stock_status: nil, line_item: nil, line_item_child: nil, can_be_committed: false, is_committed: false, disable_commit_links: false,
                   simple_qty: false, store_item: nil)
  qty ||= line_item&.quantity

  render partial: 'line_items/quantity_label', locals: {
                                                  qty: qty,
                                                  stock_status: stock_status,
                                                  line_item: line_item,
                                                  line_item_child: line_item_child,
                                                  can_be_committed: can_be_committed,
                                                  is_committed: is_committed,
                                                  disable_commit_links: disable_commit_links,
                                                  simple_qty: simple_qty,
                                                  store_item: store_item
                                                }
end

#render_itemizable_line(sku:, desc:, qty:, unit_retail_price:, line_total:, currency: '$', stock_status: :ok, tax_class: nil, line_item: nil, can_be_committed: false, is_committed: false, disable_commit_links: false, simple_qty: false) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/helpers/line_items_helper.rb', line 2

def render_itemizable_line(sku:, desc:, qty:, unit_retail_price:,
                           line_total:, currency: '$', stock_status: :ok,
                           tax_class: nil, line_item: nil, can_be_committed: false,
                           is_committed: false, disable_commit_links: false, simple_qty: false)
  line_retail_price = qty * unit_retail_price
  line_discount_total = line_total - line_retail_price
  unit_retail_price_display = begin
    number_to_currency(unit_retail_price, unit: currency)
  rescue StandardError
    nil
  end
  line_retail_price_display = begin
    number_to_currency(line_retail_price, unit: currency)
  rescue StandardError
    nil
  end
  line_retail_price_display_class = 'price'
  line_retail_price_display_class << ' price_discounted' if line_discount_total.negative?
  line_discount_total_display = number_to_currency(line_discount_total, unit: currency) if line_discount_total.negative? || line_discount_total.positive?
  line_total_display = number_to_currency(line_total, unit: currency)
  line_total_display_class = 'price'
  line_total_display_class << ' price_discounted_final' if line_discount_total.negative?
  (:tr, class: 'item_line') do
    (:td, sku, class: 'sku') +
      (:td, desc, class: 'desc') +
      (:td, quantity_label(qty: qty, stock_status: stock_status, line_item: line_item, can_be_committed: can_be_committed, is_committed: is_committed, disable_commit_links: disable_commit_links, simple_qty: simple_qty),
class: 'qty text-nowrap') +
      (:td, unit_retail_price_display, class: 'price') +
      (:td, line_retail_price_display, class: line_retail_price_display_class) +
      (:td, line_discount_total_display, class: 'price discount') +
      (:td, line_total_display, class: line_total_display_class) +
      ((:td, tax_class, class: 'tax-class') if tax_class)
  end
end

#render_itemizable_summary_line(desc, retail_total, line_total, currency = '$') ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'app/helpers/line_items_helper.rb', line 54

def render_itemizable_summary_line(desc, retail_total, line_total, currency = '$')
  line_discount_total = line_total - retail_total
  line_retail_price_display = number_to_currency(retail_total, unit: currency)
  line_discount_total_display = number_to_currency(line_discount_total, unit: currency) if line_discount_total.negative?
  line_total_display = number_to_currency(line_total, unit: currency)
  line_retail_price_display_class = 'price'
  line_retail_price_display_class << ' price_discounted' if line_discount_total.negative?
  line_total_display_class = 'price'
  line_total_display_class << ' price_discounted_final' if line_discount_total.negative?
  (:tr, class: 'summary_line') do
    (:td, nil, class: 'sku') +
      (:td, desc, colspan: 3, class: 'summary_line_desc') +
      (:td, line_retail_price_display, class: line_retail_price_display_class) +
      (:td, line_discount_total_display, class: 'price discount') +
      (:td, line_total_display, class: line_total_display_class)
  end
end