Class: Mindee::Product::FR::BankStatement::BankStatementV2Document

Inherits:
Mindee::Parsing::Common::Prediction show all
Includes:
Mindee::Parsing::Standard
Defined in:
lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb

Overview

Bank Statement API version 2.0 document data.

Direct Known Subclasses

BankStatementV2PagePrediction

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prediction, page_id) ⇒ BankStatementV2Document

Returns a new instance of BankStatementV2Document.

Parameters:

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


55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 55

def initialize(prediction, page_id)
  super
  @account_number = Parsing::Standard::StringField.new(
    prediction['account_number'],
    page_id
  )
  @bank_address = Parsing::Standard::StringField.new(
    prediction['bank_address'],
    page_id
  )
  @bank_name = Parsing::Standard::StringField.new(
    prediction['bank_name'],
    page_id
  )
  @client_address = Parsing::Standard::StringField.new(
    prediction['client_address'],
    page_id
  )
  @client_names = [] # : Array[Parsing::Standard::StringField]
  prediction['client_names'].each do |item|
    @client_names.push(Parsing::Standard::StringField.new(item, page_id))
  end
  @closing_balance = Parsing::Standard::AmountField.new(
    prediction['closing_balance'],
    page_id
  )
  @opening_balance = Parsing::Standard::AmountField.new(
    prediction['opening_balance'],
    page_id
  )
  @statement_date = Parsing::Standard::DateField.new(
    prediction['statement_date'],
    page_id
  )
  @statement_end_date = Parsing::Standard::DateField.new(
    prediction['statement_end_date'],
    page_id
  )
  @statement_start_date = Parsing::Standard::DateField.new(
    prediction['statement_start_date'],
    page_id
  )
  @total_credits = Parsing::Standard::AmountField.new(
    prediction['total_credits'],
    page_id
  )
  @total_debits = Parsing::Standard::AmountField.new(
    prediction['total_debits'],
    page_id
  )
  @transactions = Product::FR::BankStatement::BankStatementV2Transactions.new(
    prediction['transactions'], page_id
  )
end

Instance Attribute Details

#account_numberMindee::Parsing::Standard::StringField (readonly)

The unique identifier for a customer’s account in the bank’s system.



15
16
17
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 15

def 
  @account_number
end

#bank_addressMindee::Parsing::Standard::StringField (readonly)

The physical location of the bank where the statement was issued.



18
19
20
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 18

def bank_address
  @bank_address
end

#bank_nameMindee::Parsing::Standard::StringField (readonly)

The name of the bank that issued the statement.



21
22
23
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 21

def bank_name
  @bank_name
end

#client_addressMindee::Parsing::Standard::StringField (readonly)

The address of the client associated with the bank statement.



24
25
26
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 24

def client_address
  @client_address
end

#client_namesArray<Mindee::Parsing::Standard::StringField> (readonly)

The name of the clients who own the bank statement.



27
28
29
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 27

def client_names
  @client_names
end

#closing_balanceMindee::Parsing::Standard::AmountField (readonly)

The final amount of money in the account at the end of the statement period.



30
31
32
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 30

def closing_balance
  @closing_balance
end

#opening_balanceMindee::Parsing::Standard::AmountField (readonly)

The initial amount of money in an account at the start of the period.



33
34
35
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 33

def opening_balance
  @opening_balance
end

#statement_dateMindee::Parsing::Standard::DateField (readonly)

The date on which the bank statement was generated.



36
37
38
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 36

def statement_date
  @statement_date
end

#statement_end_dateMindee::Parsing::Standard::DateField (readonly)

The date when the statement period ends.



39
40
41
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 39

def statement_end_date
  @statement_end_date
end

#statement_start_dateMindee::Parsing::Standard::DateField (readonly)

The date when the bank statement period begins.



42
43
44
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 42

def statement_start_date
  @statement_start_date
end

#total_creditsMindee::Parsing::Standard::AmountField (readonly)

The total amount of money deposited into the account.



45
46
47
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 45

def total_credits
  @total_credits
end

#total_debitsMindee::Parsing::Standard::AmountField (readonly)

The total amount of money debited from the account.



48
49
50
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 48

def total_debits
  @total_debits
end

#transactionsMindee::Product::FR::BankStatement::BankStatementV2Transactions (readonly)

The list of values that represent the financial transactions recorded in a bank statement.



51
52
53
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 51

def transactions
  @transactions
end

Instance Method Details

#to_sString

Returns:

  • (String)


111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb', line 111

def to_s
  client_names = @client_names.join("\n #{' ' * 14}")
  transactions = transactions_to_s
  out_str = String.new
  out_str << "\n:Account Number: #{@account_number}".rstrip
  out_str << "\n:Bank Name: #{@bank_name}".rstrip
  out_str << "\n:Bank Address: #{@bank_address}".rstrip
  out_str << "\n:Client Names: #{client_names}".rstrip
  out_str << "\n:Client Address: #{@client_address}".rstrip
  out_str << "\n:Statement Date: #{@statement_date}".rstrip
  out_str << "\n:Statement Start Date: #{@statement_start_date}".rstrip
  out_str << "\n:Statement End Date: #{@statement_end_date}".rstrip
  out_str << "\n:Opening Balance: #{@opening_balance}".rstrip
  out_str << "\n:Closing Balance: #{@closing_balance}".rstrip
  out_str << "\n:Transactions:"
  out_str << transactions
  out_str << "\n:Total Debits: #{@total_debits}".rstrip
  out_str << "\n:Total Credits: #{@total_credits}".rstrip
  out_str[1..].to_s
end