Class: Mindee::V1::Product::FinancialDocument::FinancialDocumentV1LineItem

Inherits:
Mindee::V1::Parsing::Standard::FeatureField show all
Includes:
Mindee::V1::Parsing::Standard
Defined in:
lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb

Overview

List of line item present on the document.

Instance Attribute Summary collapse

Attributes inherited from Mindee::V1::Parsing::Standard::AbstractField

#bounding_box, #confidence, #page_id, #polygon

Instance Method Summary collapse

Methods inherited from Mindee::V1::Parsing::Standard::FeatureField

#format_for_display

Methods inherited from Mindee::V1::Parsing::Standard::AbstractField

array_confidence, array_sum, float_to_string

Constructor Details

#initialize(prediction, page_id) ⇒ FinancialDocumentV1LineItem

Returns a new instance of FinancialDocumentV1LineItem.

Parameters:

  • prediction (Hash)
  • page_id (Integer, nil)


40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 40

def initialize(prediction, page_id)
  super
  @description = prediction['description']
  @product_code = prediction['product_code']
  @quantity = prediction['quantity']
  @tax_amount = prediction['tax_amount']
  @tax_rate = prediction['tax_rate']
  @total_amount = prediction['total_amount']
  @unit_measure = prediction['unit_measure']
  @unit_price = prediction['unit_price']
  @page_id = page_id
end

Instance Attribute Details

#descriptionString (readonly)

The item description.

Returns:

  • (String)


15
16
17
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 15

def description
  @description
end

#product_codeString (readonly)

The product code referring to the item.

Returns:

  • (String)


18
19
20
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 18

def product_code
  @product_code
end

#quantityFloat (readonly)

The item quantity

Returns:

  • (Float)


21
22
23
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 21

def quantity
  @quantity
end

#tax_amountFloat (readonly)

The item tax amount.

Returns:

  • (Float)


24
25
26
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 24

def tax_amount
  @tax_amount
end

#tax_rateFloat (readonly)

The item tax rate in percentage.

Returns:

  • (Float)


27
28
29
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 27

def tax_rate
  @tax_rate
end

#total_amountFloat (readonly)

The item total amount.

Returns:

  • (Float)


30
31
32
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 30

def total_amount
  @total_amount
end

#unit_measureString (readonly)

The item unit of measure.

Returns:

  • (String)


33
34
35
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 33

def unit_measure
  @unit_measure
end

#unit_priceFloat (readonly)

The item unit price.

Returns:

  • (Float)


36
37
38
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 36

def unit_price
  @unit_price
end

Instance Method Details

#printable_valuesHash

Returns:

  • (Hash)


54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 54

def printable_values
  printable = {} # @type var printable: Hash[Symbol, String]
  printable[:description] = format_for_display(@description)
  printable[:product_code] = format_for_display(@product_code)
  printable[:quantity] =
    @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity)
  printable[:tax_amount] =
    @tax_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_amount)
  printable[:tax_rate] =
    @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate)
  printable[:total_amount] =
    @total_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total_amount)
  printable[:unit_measure] = format_for_display(@unit_measure)
  printable[:unit_price] =
    @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price)
  printable
end

#table_printable_valuesHash

Returns:

  • (Hash)


73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 73

def table_printable_values
  printable = {} # @type var printable: Hash[Symbol, String]
  printable[:description] = format_for_display(@description, 36)
  printable[:product_code] = format_for_display(@product_code, nil)
  printable[:quantity] =
    @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity)
  printable[:tax_amount] =
    @tax_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_amount)
  printable[:tax_rate] =
    @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate)
  printable[:total_amount] =
    @total_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total_amount)
  printable[:unit_measure] = format_for_display(@unit_measure, nil)
  printable[:unit_price] =
    @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price)
  printable
end

#to_sString

Returns:

  • (String)


107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 107

def to_s
  printable = printable_values
  out_str = String.new
  out_str << "\n  :Description: #{printable[:description]}"
  out_str << "\n  :Product code: #{printable[:product_code]}"
  out_str << "\n  :Quantity: #{printable[:quantity]}"
  out_str << "\n  :Tax Amount: #{printable[:tax_amount]}"
  out_str << "\n  :Tax Rate (%): #{printable[:tax_rate]}"
  out_str << "\n  :Total Amount: #{printable[:total_amount]}"
  out_str << "\n  :Unit of measure: #{printable[:unit_measure]}"
  out_str << "\n  :Unit Price: #{printable[:unit_price]}"
  out_str
end

#to_table_lineString

Returns:

  • (String)


92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb', line 92

def to_table_line
  printable = table_printable_values
  out_str = String.new
  out_str << format('| %- 37s', printable[:description])
  out_str << format('| %- 13s', printable[:product_code])
  out_str << format('| %- 9s', printable[:quantity])
  out_str << format('| %- 11s', printable[:tax_amount])
  out_str << format('| %- 13s', printable[:tax_rate])
  out_str << format('| %- 13s', printable[:total_amount])
  out_str << format('| %- 16s', printable[:unit_measure])
  out_str << format('| %- 11s', printable[:unit_price])
  out_str << '|'
end