class Mindee::Product::Invoice::InvoiceV4Document

Invoice API version 4.9 document data.

def initialize(prediction, page_id)

Parameters:
  • page_id (Integer, nil) --
  • prediction (Hash) --
def initialize(prediction, page_id)
  super()
  @billing_address = StringField.new(prediction['billing_address'], page_id)
  @customer_address = StringField.new(prediction['customer_address'], page_id)
  @customer_company_registrations = []
  prediction['customer_company_registrations'].each do |item|
    @customer_company_registrations.push(CompanyRegistrationField.new(item, page_id))
  end
  @customer_id = StringField.new(prediction['customer_id'], page_id)
  @customer_name = StringField.new(prediction['customer_name'], page_id)
  @date = DateField.new(prediction['date'], page_id)
  @document_type = ClassificationField.new(prediction['document_type'], page_id)
  @due_date = DateField.new(prediction['due_date'], page_id)
  @invoice_number = StringField.new(prediction['invoice_number'], page_id)
  @line_items = []
  prediction['line_items'].each do |item|
    @line_items.push(InvoiceV4LineItem.new(item, page_id))
  end
  @locale = LocaleField.new(prediction['locale'], page_id)
  @payment_date = DateField.new(prediction['payment_date'], page_id)
  @po_number = StringField.new(prediction['po_number'], page_id)
  @reference_numbers = []
  prediction['reference_numbers'].each do |item|
    @reference_numbers.push(StringField.new(item, page_id))
  end
  @shipping_address = StringField.new(prediction['shipping_address'], page_id)
  @supplier_address = StringField.new(prediction['supplier_address'], page_id)
  @supplier_company_registrations = []
  prediction['supplier_company_registrations'].each do |item|
    @supplier_company_registrations.push(CompanyRegistrationField.new(item, page_id))
  end
  @supplier_email = StringField.new(prediction['supplier_email'], page_id)
  @supplier_name = StringField.new(prediction['supplier_name'], page_id)
  @supplier_payment_details = []
  prediction['supplier_payment_details'].each do |item|
    @supplier_payment_details.push(PaymentDetailsField.new(item, page_id))
  end
  @supplier_phone_number = StringField.new(prediction['supplier_phone_number'], page_id)
  @supplier_website = StringField.new(prediction['supplier_website'], page_id)
  @taxes = Taxes.new(prediction['taxes'], page_id)
  @total_amount = AmountField.new(prediction['total_amount'], page_id)
  @total_net = AmountField.new(prediction['total_net'], page_id)
  @total_tax = AmountField.new(prediction['total_tax'], page_id)
end

def line_items_separator(char)

Returns:
  • (String) -

Parameters:
  • char (String) --
def line_items_separator(char)
  out_str = String.new
  out_str << '  '
  out_str << "+#{char * 38}"
  out_str << "+#{char * 14}"
  out_str << "+#{char * 10}"
  out_str << "+#{char * 12}"
  out_str << "+#{char * 14}"
  out_str << "+#{char * 14}"
  out_str << "+#{char * 17}"
  out_str << "+#{char * 12}"
  out_str << '+'
  out_str
end

def line_items_to_s

Returns:
  • (String) -
def line_items_to_s
  return '' if @line_items.empty?
  line_items = @line_items.map(&:to_table_line).join("\n#{line_items_separator('-')}\n  ")
  out_str = String.new
  out_str << "\n#{line_items_separator('-')}"
  out_str << "\n  |"
  out_str << ' Description                          |'
  out_str << ' Product code |'
  out_str << ' Quantity |'
  out_str << ' Tax Amount |'
  out_str << ' Tax Rate (%) |'
  out_str << ' Total Amount |'
  out_str << ' Unit of measure |'
  out_str << ' Unit Price |'
  out_str << "\n#{line_items_separator('=')}"
  out_str << "\n  #{line_items}"
  out_str << "\n#{line_items_separator('-')}"
  out_str
end

def to_s

Returns:
  • (String) -
def to_s
  reference_numbers = @reference_numbers.join("\n #{' ' * 19}")
  supplier_payment_details = @supplier_payment_details.join("\n #{' ' * 26}")
  supplier_company_registrations = @supplier_company_registrations.join("\n #{' ' * 32}")
  customer_company_registrations = @customer_company_registrations.join("\n #{' ' * 32}")
  line_items = line_items_to_s
  out_str = String.new
  out_str << "\n:Locale: #{@locale}".rstrip
  out_str << "\n:Invoice Number: #{@invoice_number}".rstrip
  out_str << "\n:Purchase Order Number: #{@po_number}".rstrip
  out_str << "\n:Reference Numbers: #{reference_numbers}".rstrip
  out_str << "\n:Purchase Date: #{@date}".rstrip
  out_str << "\n:Due Date: #{@due_date}".rstrip
  out_str << "\n:Payment Date: #{@payment_date}".rstrip
  out_str << "\n:Total Net: #{@total_net}".rstrip
  out_str << "\n:Total Amount: #{@total_amount}".rstrip
  out_str << "\n:Total Tax: #{@total_tax}".rstrip
  out_str << "\n:Taxes:#{@taxes}".rstrip
  out_str << "\n:Supplier Payment Details: #{supplier_payment_details}".rstrip
  out_str << "\n:Supplier Name: #{@supplier_name}".rstrip
  out_str << "\n:Supplier Company Registrations: #{supplier_company_registrations}".rstrip
  out_str << "\n:Supplier Address: #{@supplier_address}".rstrip
  out_str << "\n:Supplier Phone Number: #{@supplier_phone_number}".rstrip
  out_str << "\n:Supplier Website: #{@supplier_website}".rstrip
  out_str << "\n:Supplier Email: #{@supplier_email}".rstrip
  out_str << "\n:Customer Name: #{@customer_name}".rstrip
  out_str << "\n:Customer Company Registrations: #{customer_company_registrations}".rstrip
  out_str << "\n:Customer Address: #{@customer_address}".rstrip
  out_str << "\n:Customer ID: #{@customer_id}".rstrip
  out_str << "\n:Shipping Address: #{@shipping_address}".rstrip
  out_str << "\n:Billing Address: #{@billing_address}".rstrip
  out_str << "\n:Document Type: #{@document_type}".rstrip
  out_str << "\n:Line Items:"
  out_str << line_items
  out_str[1..].to_s
end