lib/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rb
# frozen_string_literal: true require_relative '../../../parsing' module Mindee module Product module FR module EnergyBill # Details of Taxes and Contributions. class EnergyBillV1TaxesAndContribution < Mindee::Parsing::Standard::FeatureField include Mindee::Parsing::Standard # Description or details of the Taxes and Contributions. # @return [String] attr_reader :description # The end date of the Taxes and Contributions. # @return [String] attr_reader :end_date # The start date of the Taxes and Contributions. # @return [String] attr_reader :start_date # The rate of tax applied to the total cost. # @return [Float] attr_reader :tax_rate # The total cost of Taxes and Contributions. # @return [Float] attr_reader :total # The price per unit of Taxes and Contributions. # @return [Float] attr_reader :unit_price # @param prediction [Hash] # @param page_id [Integer, nil] def initialize(prediction, page_id) super @description = prediction['description'] @end_date = prediction['end_date'] @start_date = prediction['start_date'] @tax_rate = prediction['tax_rate'] @total = prediction['total'] @unit_price = prediction['unit_price'] @page_id = page_id end # @return [Hash] def printable_values printable = {} printable[:description] = format_for_display(@description) printable[:end_date] = format_for_display(@end_date) printable[:start_date] = format_for_display(@start_date) printable[:tax_rate] = @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate) printable[:total] = @total.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total) printable[:unit_price] = @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price) printable end # @return [Hash] def table_printable_values printable = {} printable[:description] = format_for_display(@description, 36) printable[:end_date] = format_for_display(@end_date, 10) printable[:start_date] = format_for_display(@start_date, nil) printable[:tax_rate] = @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate) printable[:total] = @total.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total) printable[:unit_price] = @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price) printable end # @return [String] def to_table_line printable = table_printable_values out_str = String.new out_str << format('| %- 37s', printable[:description]) out_str << format('| %- 11s', printable[:end_date]) out_str << format('| %- 11s', printable[:start_date]) out_str << format('| %- 9s', printable[:tax_rate]) out_str << format('| %- 10s', printable[:total]) out_str << format('| %- 11s', printable[:unit_price]) out_str << '|' end # @return [String] def to_s printable = printable_values out_str = String.new out_str << "\n :Description: #{printable[:description]}" out_str << "\n :End Date: #{printable[:end_date]}" out_str << "\n :Start Date: #{printable[:start_date]}" out_str << "\n :Tax Rate: #{printable[:tax_rate]}" out_str << "\n :Total: #{printable[:total]}" out_str << "\n :Unit Price: #{printable[:unit_price]}" out_str end end end end end end