class Mindee::Product::FR::EnergyBill::EnergyBillV1Document

Energy Bill API version 1.2 document data.

def energy_usage_separator(char)

Returns:
  • (String) -

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

def energy_usage_to_s

Returns:
  • (String) -
def energy_usage_to_s
  return '' if @energy_usage.empty?
  line_items = @energy_usage.map(&:to_table_line).join("\n#{energy_usage_separator('-')}\n  ")
  out_str = String.new
  out_str << "\n#{energy_usage_separator('-')}"
  out_str << "\n  |"
  out_str << ' Consumption |'
  out_str << ' Description                          |'
  out_str << ' End Date   |'
  out_str << ' Start Date |'
  out_str << ' Tax Rate |'
  out_str << ' Total     |'
  out_str << ' Unit of Measure |'
  out_str << ' Unit Price |'
  out_str << "\n#{energy_usage_separator('=')}"
  out_str << "\n  #{line_items}"
  out_str << "\n#{energy_usage_separator('-')}"
  out_str
end

def initialize(prediction, page_id)

Parameters:
  • page_id (Integer, nil) --
  • prediction (Hash) --
def initialize(prediction, page_id)
  super
  @contract_id = Parsing::Standard::StringField.new(
    prediction['contract_id'],
    page_id
  )
  @delivery_point = Parsing::Standard::StringField.new(
    prediction['delivery_point'],
    page_id
  )
  @due_date = Parsing::Standard::DateField.new(
    prediction['due_date'],
    page_id
  )
  @energy_consumer = Product::FR::EnergyBill::EnergyBillV1EnergyConsumer.new(
    prediction['energy_consumer'],
    page_id
  )
  @energy_supplier = Product::FR::EnergyBill::EnergyBillV1EnergySupplier.new(
    prediction['energy_supplier'],
    page_id
  )
  @energy_usage = Product::FR::EnergyBill::EnergyBillV1EnergyUsages.new(prediction['energy_usage'], page_id)
  @invoice_date = Parsing::Standard::DateField.new(
    prediction['invoice_date'],
    page_id
  )
  @invoice_number = Parsing::Standard::StringField.new(
    prediction['invoice_number'],
    page_id
  )
  @meter_details = Product::FR::EnergyBill::EnergyBillV1MeterDetail.new(
    prediction['meter_details'],
    page_id
  )
  @subscription = Product::FR::EnergyBill::EnergyBillV1Subscriptions.new(prediction['subscription'], page_id)
  @taxes_and_contributions = Product::FR::EnergyBill::EnergyBillV1TaxesAndContributions.new(
    prediction['taxes_and_contributions'], page_id
  )
  @total_amount = Parsing::Standard::AmountField.new(
    prediction['total_amount'],
    page_id
  )
  @total_before_taxes = Parsing::Standard::AmountField.new(
    prediction['total_before_taxes'],
    page_id
  )
  @total_taxes = Parsing::Standard::AmountField.new(
    prediction['total_taxes'],
    page_id
  )
end

def subscription_separator(char)

Returns:
  • (String) -

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

def subscription_to_s

Returns:
  • (String) -
def subscription_to_s
  return '' if @subscription.empty?
  line_items = @subscription.map(&:to_table_line).join("\n#{subscription_separator('-')}\n  ")
  out_str = String.new
  out_str << "\n#{subscription_separator('-')}"
  out_str << "\n  |"
  out_str << ' Description                          |'
  out_str << ' End Date   |'
  out_str << ' Start Date |'
  out_str << ' Tax Rate |'
  out_str << ' Total     |'
  out_str << ' Unit Price |'
  out_str << "\n#{subscription_separator('=')}"
  out_str << "\n  #{line_items}"
  out_str << "\n#{subscription_separator('-')}"
  out_str
end

def taxes_and_contributions_separator(char)

Returns:
  • (String) -

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

def taxes_and_contributions_to_s

Returns:
  • (String) -
def taxes_and_contributions_to_s
  return '' if @taxes_and_contributions.empty?
  line_items = @taxes_and_contributions.map(&:to_table_line).join(
    "\n#{taxes_and_contributions_separator('-')}\n  "
  )
  out_str = String.new
  out_str << "\n#{taxes_and_contributions_separator('-')}"
  out_str << "\n  |"
  out_str << ' Description                          |'
  out_str << ' End Date   |'
  out_str << ' Start Date |'
  out_str << ' Tax Rate |'
  out_str << ' Total     |'
  out_str << ' Unit Price |'
  out_str << "\n#{taxes_and_contributions_separator('=')}"
  out_str << "\n  #{line_items}"
  out_str << "\n#{taxes_and_contributions_separator('-')}"
  out_str
end

def to_s

Returns:
  • (String) -
def to_s
  energy_supplier = @energy_supplier.to_s
  energy_consumer = @energy_consumer.to_s
  subscription = subscription_to_s
  energy_usage = energy_usage_to_s
  taxes_and_contributions = taxes_and_contributions_to_s
  meter_details = @meter_details.to_s
  out_str = String.new
  out_str << "\n:Invoice Number: #{@invoice_number}".rstrip
  out_str << "\n:Contract ID: #{@contract_id}".rstrip
  out_str << "\n:Delivery Point: #{@delivery_point}".rstrip
  out_str << "\n:Invoice Date: #{@invoice_date}".rstrip
  out_str << "\n:Due Date: #{@due_date}".rstrip
  out_str << "\n:Total Before Taxes: #{@total_before_taxes}".rstrip
  out_str << "\n:Total Taxes: #{@total_taxes}".rstrip
  out_str << "\n:Total Amount: #{@total_amount}".rstrip
  out_str << "\n:Energy Supplier:"
  out_str << energy_supplier
  out_str << "\n:Energy Consumer:"
  out_str << energy_consumer
  out_str << "\n:Subscription:"
  out_str << subscription
  out_str << "\n:Energy Usage:"
  out_str << energy_usage
  out_str << "\n:Taxes and Contributions:"
  out_str << taxes_and_contributions
  out_str << "\n:Meter Details:"
  out_str << meter_details
  out_str[1..].to_s
end