class Mindee::Product::Invoice::InvoiceV4Document
Invoice API version 4.9 document data.
def initialize(prediction, page_id)
-
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)
-
(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
-
(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
-
(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