Skip to content

Instantly share code, notes, and snippets.

@mrrooijen
Created November 4, 2011 01:39
Show Gist options
  • Save mrrooijen/1338463 to your computer and use it in GitHub Desktop.
Save mrrooijen/1338463 to your computer and use it in GitHub Desktop.
A small Ruby utility for CheddarGetter.com to render out summaries over a period of time in ASCII tables.
# encoding: utf-8
require "cheddargetter_client_ruby"
require "terminal-table"
require "parallel"
require "active_support/time"
module CheddarGetter
class TransactionSummary
##
# Utility Options (Initializer)
attr_accessor \
:client,
:begin_time,
:end_time,
:vat_rate,
:exchange_rate,
:only,
:except,
:skip_blank_transactions,
:service
##
# Pass in the CheddarGetter::Client instance, along with a begin_time and end_time (Date class)
def initialize(client, begin_time, end_time, options = {})
@client = client
@begin_time = begin_time
@end_time = end_time
@vat_rate = "0.#{options[:vat_rate] || 19}".to_f
@exchange_rate = options[:exchange_rate]
@only = options[:only]
@except = options[:except]
@skip_blank_transactions = options[:skip_blank_transactions] || false
@service = options[:service]
end
##
# Prints out an ASCII table in the console displaying all the information
def table
table_with_vat = Terminal::Table.new do |table|
table.title = "Transactions (+#{readable_vat(vat_rate)}% VAT included) | Exchange Rate (USD/EUR) #{exchange_rate} | #{responses} | #{ to_date(begin_time) } - #{ to_date(end_time) }"
table.headings = ["Transaction Date", "Transaction ID", "Response", "Amount", "VAT (#{readable_vat(vat_rate)}%)"]
transactions_with_vat.each_with_index do |transaction, index|
table.add_separator if index > 0
table.add_row([to_date(transaction[:transactedDatetime]), transaction[:id], transaction[:response], "$#{amount_with_vat_extracted(transaction)}", "$#{amount_vat(transaction)}"])
end
table.add_separator
table.add_row([nil, nil, nil, nil, nil])
table.add_separator
table.add_row([nil, nil, "Total:", "$#{total_amount_with_vat_extracted(transactions_with_vat)}", "$#{total_amount_vat(transactions_with_vat)}"])
table.add_separator
table.add_row([nil, nil, "Total with VAT:", nil, "$#{(total_amount_with_vat_extracted(transactions_with_vat) + total_amount_vat(transactions_with_vat)).round(2)}"])
table.add_separator
table.add_row([nil, nil, "Total (EUR):", "€#{exchange(total_amount_with_vat_extracted(transactions_with_vat)).round(2)}", "€#{exchange(total_amount_vat(transactions_with_vat)).round(2)}"])
table.add_separator
table.add_row([nil, nil, "Total with VAT (EUR):", nil, "€#{exchange(total_amount_with_vat_extracted(transactions_with_vat) + total_amount_vat(transactions_with_vat)).round(2)}"])
end
table_without_vat = Terminal::Table.new do |table|
table.title = "Transactions (VAT excluded) | Exchange Rate (USD/EUR) #{exchange_rate} | #{responses} | #{ to_date(begin_time) } - #{ to_date(end_time) }"
table.headings = ["Transaction Date", "Transaction ID", "Response", "Amount", "VAT (0%)"]
transactions_without_vat.each_with_index do |transaction, index|
table.add_separator if index > 0
table.add_row([to_date(transaction[:transactedDatetime]), transaction[:id], transaction[:response], "$#{transaction[:amount]}", "$0.0"])
end
table.add_separator
table.add_row([nil, nil, nil, nil, nil])
table.add_separator
table.add_row([nil, nil, "Total:", "$#{total_amount_without_vat_extracted(transactions_without_vat)}", "$0.0"])
table.add_separator
table.add_row([nil, nil, "Total with VAT:", nil, "$#{total_amount_without_vat_extracted(transactions_without_vat)}"])
table.add_separator
table.add_row([nil, nil, "Total (EUR):", "€#{exchange(total_amount_without_vat_extracted(transactions_without_vat)).round(2)}", "€0.0"])
table.add_separator
table.add_row([nil, nil, "Total with VAT (EUR):", nil, "€#{exchange(total_amount_without_vat_extracted(transactions_without_vat)).round(2)}"])
end
table_summary = Terminal::Table.new do |table|
table.title = "Summary"
table.headings = ["Total Amount (+#{readable_vat(vat_rate)}% VAT)", "Total Amount (NET)", "Total VAT", "Responses", "Time Range"]
table.add_row([
"$#{(total_amount_with_vat_extracted(transactions_with_vat) + total_amount_vat(transactions_with_vat) + total_amount_without_vat_extracted(transactions_without_vat)).round(2)}",
"$#{(total_amount_with_vat_extracted(transactions_with_vat) + total_amount_without_vat_extracted(transactions_without_vat)).round(2)}",
"$#{total_amount_vat(transactions_with_vat)}",
responses,
"#{ to_date(begin_time) } - #{ to_date(end_time) }"
])
table.add_row([
"€#{exchange((total_amount_with_vat_extracted(transactions_with_vat) + total_amount_vat(transactions_with_vat) + total_amount_without_vat_extracted(transactions_without_vat))).round(2)}",
"€#{exchange(total_amount_with_vat_extracted(transactions_with_vat) + total_amount_without_vat_extracted(transactions_without_vat)).round(2)}",
"€#{exchange(total_amount_vat(transactions_with_vat)).round(2)}",
responses,
"#{ to_date(begin_time) } - #{ to_date(end_time) }"
])
end
puts table_with_vat, nil, nil, table_without_vat, nil, nil, table_summary
end
def dump(path)
to_dump = Array.new
transactions.each do |transaction|
to_dump << {
number: transaction[:id],
date: to_date(transaction[:transactedDatetime]),
outgoing: true,
service: service,
gross: exchange(transaction[:amount] * 100.0).round,
vat_rate: (transaction[:vat_exempt] ? 0 : 0.19),
paid: true
}
end
File.open(File.expand_path(path), "w") do |file|
file.write(to_dump.to_yaml)
end
end
private
##
# Returns a ChedderGetter::Response object containing the list of
# clients. This can be used as an array to iterate through
def customers
@customers ||= client.get_customer_list.customers
end
##
# Returns an Array of CheddarGetter invoices that were/will be billed within the specified
# time range (begin_time, end_time). The array is sorted by billingDatetime.
def invoices
@invoices ||= Parallel.map(customers, :in_threads => 25) do |customer|
client.get_customer(:code => customer[0]).customer_invoices.map do |invoice|
if begin_time < invoice[:billingDatetime] and end_time > invoice[:billingDatetime]
invoice
end
end
end.flatten.compact.sort! { |a, b| a[:billingDatetime] <=> b[:billingDatetime] }
end
##
# Returns an Array of transactions from all invoices in the @invoices array. Some invoices
# do not yet have transactions if the billing date is for example in the future. The :vat_exempt
# key will be aded to all the existing transactions, so we can know from the transaction-level whether
# it was a VAT applicable transaction or not. The @transactions will be filtered on the same begin_time/end_time
# as the @invoices just to be sure, and it will also be filtered by the CheddarGetter :response (approved, declined, error)
# which can be customized via the @only and @except parameters.
def transactions
@transactions ||= invoices.map do |invoice|
next unless invoice[:transactions]
invoice[:transactions].map do |transaction|
transaction[:vat_exempt] = invoice[:vatRate].nil? ? true : false
next if skip_blank_transactions and transaction[:amount] == 0
if begin_time < transaction[:transactedDatetime] and end_time > transaction[:transactedDatetime]
if only
transaction if only.include?(transaction[:response])
elsif except
transaction if !except.include?(transaction[:response])
else
transaction
end
end
end
end.flatten.compact.sort! { |a, b| a[:transactedDatetime] <=> b[:transactedDatetime] }
end
##
# Iterates through, extracts and returns only the
# transactions which contain VAT
def transactions_with_vat
transactions.select do |transaction|
transaction[:vat_exempt] === false
end
end
##
# Iterates through, extracts and returns only the
# transactions which do not contain VAT
def transactions_without_vat
transactions.select do |transaction|
transaction[:vat_exempt] === true
end
end
##
# Calculates the non-VAT value for a transaction with VAT
def amount_with_vat_extracted(transaction)
(transaction[:amount] - (transaction[:amount] * vat_rate)).round(2)
end
##
# Calculates the amount of VAT for a transaction with VAT
def amount_vat(transaction)
(transaction[:amount] * vat_rate).round(2)
end
##
# Calculates the total amount of NET income for all transactions with VAT
def total_amount_with_vat_extracted(transactions)
amount = 0.0
transactions.each do |transaction|
amount += amount_with_vat_extracted(transaction)
end
amount.round(2)
end
##
# Calculates the total amount of VAT for all transactions with VAT
def total_amount_vat(transactions)
amount = 0.0
transactions.each do |transaction|
amount += amount_vat(transaction)
end
amount.round(2)
end
##
# Calculates the total amount of transactions without VAT
def total_amount_without_vat_extracted(transactions)
amount = 0.0
transactions.each do |transaction|
amount += transaction[:amount]
end
amount.round(2)
end
##
# Returns the appropriate responses list based on what the user specified
def responses
if only
"Only: #{only.join(", ")}"
elsif except
"All except: #{except.join(", ")}"
else
"Only: approved, declined, error"
end
end
##
# Wrapper for the #strftime method on Time/Date options
def to_date(date)
date.strftime("%Y-%m-%d")
end
##
# Removes periods and zeros
def readable_vat(vat_rate)
vat_rate.to_s.gsub("0","").gsub(".","")
end
##
# Converts the given USD value to EURO
def exchange(value)
(value * exchange_rate)
end
end
end
# encoding: utf-8
require "./cheddar_getter_transaction_summary"
##
# Create a CheddarGetter::Client object
CLIENT = CheddarGetter::Client.new(
:product_code => "PRODUCT_CODE",
:username => "email@me.com",
:password => "my_password"
)
##
# Create a CheddarGetter::TransactionSummary object and render
# the summary in an ASCII table. Pass in the CheddarGetter::Client object,
# the begin_date and end_date (the transaction time range: 3 months ago up until today),
# and filter on response code (show: approved, declined and error) and only non-blank transactions.
CheddarGetter::TransactionSummary.new(
CLIENT,
Time.utc(2011,"nov",1),
Time.utc(2011,"nov",30),
vat_rate: "19",
exchange_rate: 0.75867,
only: ["approved"],
skip_blank_transactions: true,
service: "HireFire"
).dump("~/Desktop/cg.yml")
Transactions (+19% VAT included) | Only: approved | 2011-08-04 - 2011-11-04
+------------------+--------------------------------------+-----------------+---------+-----------+
| Transaction Date | Transaction ID | Response | Amount | VAT (19%) |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-06 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $1.3 | $0.31 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-08 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $7.35 | $1.73 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-11 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $0.88 | $0.21 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-12 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $4.31 | $1.01 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-12 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.63 | $2.03 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-13 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.5 | $2.0 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-14 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.71 | $1.58 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-15 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.47 | $1.99 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $12.32 | $2.89 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $10.41 | $2.44 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $5.69 | $1.34 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $14.32 | $3.36 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-24 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $12.08 | $2.83 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-24 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.33 | $1.49 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-24 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.1 | $1.43 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-25 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.47 | $1.99 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-27 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.15 | $1.91 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-27 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $7.0 | $1.64 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-27 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.22 | $1.46 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-29 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.33 | $1.95 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-29 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.24 | $1.46 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-10-30 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $7.72 | $1.81 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $4.72 | $1.11 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $9.4 | $2.2 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $16.39 | $3.85 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $11.23 | $2.63 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $0.64 | $0.15 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.98 | $2.11 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $22.64 | $5.31 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $17.88 | $4.19 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.26 | $1.94 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.84 | $2.07 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $17.74 | $4.16 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.33 | $1.48 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.28 | $1.94 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $17.99 | $4.22 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $4.5 | $1.05 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $5.55 | $1.3 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $9.7 | $2.28 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| 2011-11-04 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $4.53 | $1.06 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| | | | | |
+------------------+--------------------------------------+-----------------+---------+-----------+
| | | Total: | $349.13 | $81.91 |
+------------------+--------------------------------------+-----------------+---------+-----------+
| | | Total with VAT: | | $431.04 |
+------------------+--------------------------------------+-----------------+---------+-----------+
Transactions (VAT excluded) | Only: approved | 2011-08-04 - 2011-11-04
+------------------+--------------------------------------+-----------------+---------+----------+
| Transaction Date | Transaction ID | Response | Amount | VAT (0%) |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $0.19 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-13 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.82 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-14 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.53 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-15 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.78 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-16 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $12.14 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-17 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $0.9 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-20 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.79 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $15.05 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-21 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $5.63 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-23 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.02 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-23 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $14.42 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-26 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.87 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-10-29 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $6.33 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $17.48 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $18.29 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.72 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-02 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.8 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $0.01 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.44 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $9.76 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $16.25 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| 2011-11-03 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | approved | $8.53 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| | | | | |
+------------------+--------------------------------------+-----------------+---------+----------+
| | | Total: | $194.75 | $0.0 |
+------------------+--------------------------------------+-----------------+---------+----------+
| | | Total with VAT: | | $194.75 |
+------------------+--------------------------------------+-----------------+---------+----------+
Total Amount (+19% VAT): $625.79 | Total Amount (NET): $543.88 | Only: approved | 2011-08-04 - 2011-11-04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment