stripe_invoice 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c6dfe686b7a97782882f7c40fb6417fd8204059
4
- data.tar.gz: 7a8d2c46029a2feac984008368a74ebd189d9093
3
+ metadata.gz: 3ad53fd68f8da537d3b3c8678665e7bc9d54e7bd
4
+ data.tar.gz: df9c890143329314f5feed0dbcdcb0791725f6be
5
5
  SHA512:
6
- metadata.gz: 18db738a95d002fb29994f0334d7facf8fb26707578a03d24f95315c0295a7b21f4062a65eb64a8f383218ab4be726317e8742ccaa30a6bf82f54d26f95e68b8
7
- data.tar.gz: b7e3840dcd02bf295113d009e9b94abd72ae7eb87175dcb0bd0603a36fb240629b9eb6d61466d78c575e13e4b1969ac72a46d2201682764fc4c58f51a9a3f826
6
+ metadata.gz: 8130919e62dbfe5a315297d1bec62b961661a6872111f5a35cf4fe408b441b65c797eac57483070b101a851fecc41695f5eb2af24694ce40d22d8b0c8c93b9c3
7
+ data.tar.gz: 407af7e36edaa23db23b90f7f7796e140a85d41c4b6e234089b2e56b92ec5e5a750cd7fe4f0c39665a060c27636ab63ea2da63514d47e78fcdd5042b4636c6d1
@@ -1,19 +1,20 @@
1
1
  module StripeInvoice
2
2
  class DJTaxReport
3
3
  def initialize(year = 1.year.ago.year)
4
+ year = 2015
4
5
  @year = year
5
6
  end
6
7
 
7
8
 
8
9
  def perform
9
- puts "[DJTaxReport] computing tax report for #{@year}"
10
+ puts "[#{self.class.name}##{__method__.to_s}] computing tax report for #{@year}"
10
11
 
11
12
  sicharges = StripeInvoice::Charge.where(
12
13
  "date >= ? and date <= ?",
13
14
  date_to_epoch("#{@year}-01-01"),
14
15
  date_to_epoch("#{@year}-12-31"))
15
16
 
16
- puts "[DJTaxReport] number of charges in year: #{sicharges.size}"
17
+ puts "[#{self.class.name}##{__method__.to_s}] number of charges in year: #{sicharges.size}"
17
18
  arr_data = []
18
19
  sicharges.each do |charge|
19
20
  owner = charge.owner
@@ -30,7 +31,7 @@ module StripeInvoice
30
31
  bt: Stripe::BalanceTransaction.retrieve(charge.indifferent_json[:balance_transaction]),
31
32
  owner: owner,
32
33
  }
33
- puts "[DJTaxReport] aggregating data #{charge.stripe_id}"
34
+ puts "[#{self.class.name}##{__method__.to_s}] aggregating data #{charge.stripe_id}"
34
35
  if charge.indifferent_json[:refunds].count > 0
35
36
  arr_refunds = []
36
37
  charge.indifferent_json[:refunds].each do |refund|
@@ -48,10 +49,13 @@ module StripeInvoice
48
49
  arr_data << data
49
50
  end
50
51
 
51
- puts "[DJTaxReport] data collected; rendering view"
52
+ puts "[#{self.class.name}##{__method__.to_s}] data collected; rendering view"
52
53
  #res = InvoicesController.new.tax_report arr_data
53
54
  res = Renderer.render template: "stripe_invoice/invoices/tax_report",
54
- locals: {sicharges: arr_data, year: @year, totals: totals(arr_data)},
55
+ locals: {sicharges: arr_data,
56
+ year: @year,
57
+ totals: totals(arr_data),
58
+ volume_per_tax_number: volume_per_tax_number(arr_data)},
55
59
  formats: [:pdf]
56
60
 
57
61
  InvoiceMailer.tax_report(res).deliver! #unless ::Rails.env.development?
@@ -70,6 +74,25 @@ module StripeInvoice
70
74
  }
71
75
  end
72
76
 
77
+ def volume_per_tax_number(sicharges)
78
+ puts "[#{self.class.name}##{__method__.to_s}] calculating volume per tax id"
79
+ charges = sicharges.group_by do |charge|
80
+ charge[:tax_number]
81
+ end
82
+ result = []
83
+ charges.each_key do |key|
84
+ next if key.blank?
85
+
86
+ result << {
87
+ amount: charges[key].sum{|char| char[:total] - char.sum{|ref| ref[:amount]}},
88
+ currency: charges[key].first[:currency],
89
+ tax_number: key
90
+ }
91
+ end
92
+
93
+ result
94
+ end
95
+
73
96
  include ActionView::Helpers::NumberHelper
74
97
  def total_transaction_volume(sicharges)
75
98
  number_to_currency(sicharges.inject(0) {|sum, hash_ch| sum + hash_ch[:bt][:amount]} / 100.0,
@@ -26,6 +26,11 @@ prawn_document(:page_layout => :portrait) do |pdf|
26
26
  table.column(1).width = 140
27
27
  table.row(0).style(:border_width => 1, :borders => [:top], :color => 'dddddd')
28
28
  end
29
+ pdf.start_new_page
30
+ pdf.font_size(17.5) { pdf.text "Volume per tax ID", :style => :bold }
31
+ volume_per_tax_number.each do |vptn_hash|
32
+ pdf.text "#{vptn_hash[:tax_number]}: #{format_stripe_currency(vptn_hash,:amount)}"
33
+ end
29
34
 
30
35
  pdf.start_new_page
31
36
  sicharges.each do |hash_ch|
@@ -1,3 +1,3 @@
1
1
  module StripeInvoice
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe_invoice
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Engelhardt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-23 00:00:00.000000000 Z
11
+ date: 2016-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -342,7 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
342
  version: '0'
343
343
  requirements: []
344
344
  rubyforge_project:
345
- rubygems_version: 2.2.2
345
+ rubygems_version: 2.4.5.1
346
346
  signing_key:
347
347
  specification_version: 4
348
348
  summary: Adds views, PDFs and automated emails if you are using Stripe/Koudoku for