Created
November 4, 2011 01:39
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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") | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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