class RubyPaypalNvp::Model::Statement
Constants
- IGNORED_STATUSES
Attributes
amount_sum[RW]
currency_code[RW]
end_date[RW]
fee_amount_sum[RW]
items[RW]
items_count[RW]
net_amount_sum[RW]
start_date[RW]
subject[RW]
timestamp[RW]
Public Class Methods
new(result)
click to toggle source
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength
# File lib/ruby_paypal_nvp/model/statement.rb, line 14 def initialize(result) @timestamp = result[:meta]['timestamp'] @start_date = result[:meta]['start_date'] @end_date = result[:meta]['end_date'] @subject = result[:meta]['subject'] @currency_code = result[:meta]['currency_code'] @items = result[:values].map do |value| Item.new(value) unless IGNORED_STATUSES.include?(value['L_STATUS']) end.compact.uniq(&:transaction_id) @items_count = @items.count @amount_sum = @items.sum(&:amount) @fee_amount_sum = @items.sum(&:fee_amount) @net_amount_sum = @items.sum(&:net_amount) @raw = result end
Public Instance Methods
generate_csv(filename = nil)
click to toggle source
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength
# File lib/ruby_paypal_nvp/model/statement.rb, line 34 def generate_csv(filename = nil) raise 'Missing filename/path' unless filename ::CSV.open(filename, 'w') do |csv| csv << ['HEADER'] csv << ['', 'timestamp', @timestamp] csv << ['', 'start_date', @start_date] csv << ['', 'end_date', @end_date] csv << ['', 'subject', @subject] csv << ['', 'currency_code', @currency_code] csv << ['', 'items_count', @items_count] csv << ['', 'amount_sum', @amount_sum] csv << ['', 'fee_amount_sum', @fee_amount_sum] csv << ['', 'net_amount_sum', @net_amount_sum] csv << ['ITEMS'] csv << RubyPaypalNvp::Model::Item.attributes @items.each do |item| csv << item.to_csv end end end
to_iis_json()
click to toggle source
# File lib/ruby_paypal_nvp/model/statement.rb, line 61 def to_iis_json { 'meta': { 'timestamp': @timestamp, 'start_date': @start_date, 'end_date': @end_date, 'subject': @subject, 'currency_code': @currency_code }, 'values': raw_items }.to_json end
to_json()
click to toggle source
rubocop:enable Metrics/AbcSize rubocop:enable Metrics/MethodLength
# File lib/ruby_paypal_nvp/model/statement.rb, line 57 def to_json raw_items.to_json end
Private Instance Methods
raw_items()
click to toggle source
# File lib/ruby_paypal_nvp/model/statement.rb, line 76 def raw_items @raw[:values].compact.uniq { |i| i['L_TRANSACTIONID'] } end