moss_generator 0.4.1.1 → 0.6.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
  SHA256:
3
- metadata.gz: c5a596216f6d84e6178eed61ca60146695d1442651cd4d1193b8d430a061d01e
4
- data.tar.gz: 511e5e30a8e24910c05abd028a977fcebb039353073476ca3afaa05a4975a4f5
3
+ metadata.gz: b22a165ad650e03060e839cd9ea483817eec530a42836fc8f5e9d935aa2cebd5
4
+ data.tar.gz: 3989024f80875480c50112e1360d6100e14d75cfceff9ab99a569a447de1becb
5
5
  SHA512:
6
- metadata.gz: b9c353f6e72d5586820db41c452ecf1b3d6f9c2db7ff1713ffc4ffe5fe03a5e0a0bfb3872c5d4959bec6aad36b0e64fe75836d152eec0923c32e45bc410acc81
7
- data.tar.gz: d3f0b382e87bcf84e3473811d1ff54da883cebe614b81d6ce46aad7ad63822bb9c6adcc5e449da0d7ef14d80bde0e1e7ea552c20f7d641c395bf91ecec78f0ec
6
+ metadata.gz: 45da0e44d80d6f5f04f762c948af8e91127b2deedd6d67ea23b77a8f731797a98e5674272d8084e9bfbff391803d18cefcbe0716ef802d000dc15aac58420416
7
+ data.tar.gz: 3ab6c4be61713bf7032db78373d156c7a397a41d8ee1173097316d059229dfa7133e2416c01b1b60e29ad6fef43545cc3fe218e2553eda2ac42f6173a7da9eae
data/.rubocop.yml CHANGED
@@ -10,9 +10,15 @@ AllCops:
10
10
  Layout/LineLength:
11
11
  Max: 80
12
12
 
13
+ Metrics/ClassLength:
14
+ Max: 120
15
+
16
+ Metrics/ParameterLists:
17
+ Max: 6
18
+
13
19
  Metrics/BlockLength:
14
20
  Exclude:
15
21
  - 'spec/**/*'
16
22
 
17
23
  RSpec/NestedGroups:
18
- Max: 5
24
+ Max: 6
data/Gemfile.lock CHANGED
@@ -1,15 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moss_generator (0.4.1.1)
5
- countries (~> 3.1)
4
+ moss_generator (0.6.0)
5
+ countries (~> 4.0)
6
6
  money (~> 6.14)
7
7
  valvat (~> 1.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.7.0)
12
+ addressable (2.8.0)
13
13
  public_suffix (>= 2.0.2, < 5.0)
14
14
  akami (1.3.1)
15
15
  gyoku (>= 0.4.0)
@@ -18,24 +18,27 @@ GEM
18
18
  builder (3.2.4)
19
19
  byebug (11.1.3)
20
20
  coderay (1.1.3)
21
- concurrent-ruby (1.1.8)
22
- countries (3.1.0)
23
- i18n_data (~> 0.11.0)
21
+ concurrent-ruby (1.1.9)
22
+ countries (4.0.1)
23
+ i18n_data (~> 0.13.0)
24
24
  sixarm_ruby_unaccent (~> 1.1)
25
- unicode_utils (~> 1.4)
26
25
  diff-lcs (1.4.4)
27
26
  gyoku (1.3.1)
28
27
  builder (>= 2.1.2)
29
- httpi (2.4.5)
28
+ httpi (2.5.0)
30
29
  rack
31
30
  socksify
32
- i18n (1.8.10)
31
+ i18n (1.8.11)
33
32
  concurrent-ruby (~> 1.0)
34
- i18n_data (0.11.0)
33
+ i18n_data (0.13.0)
35
34
  method_source (1.0.0)
36
- money (6.14.1)
35
+ mini_portile2 (2.6.1)
36
+ money (6.16.0)
37
37
  i18n (>= 0.6.4, <= 2)
38
- nokogiri (1.11.3-x86_64-darwin)
38
+ nokogiri (1.12.5)
39
+ mini_portile2 (~> 2.6.1)
40
+ racc (~> 1.4)
41
+ nokogiri (1.12.5-x86_64-darwin)
39
42
  racc (~> 1.4)
40
43
  nori (2.6.0)
41
44
  parallel (1.20.1)
@@ -48,7 +51,7 @@ GEM
48
51
  byebug (~> 11.0)
49
52
  pry (~> 0.13.0)
50
53
  public_suffix (4.0.6)
51
- racc (1.5.2)
54
+ racc (1.6.0)
52
55
  rack (2.2.3)
53
56
  rainbow (3.0.0)
54
57
  rake (13.0.3)
@@ -98,8 +101,7 @@ GEM
98
101
  sixarm_ruby_unaccent (1.2.0)
99
102
  socksify (1.7.1)
100
103
  unicode-display_width (1.7.0)
101
- unicode_utils (1.4.0)
102
- valvat (1.1.0)
104
+ valvat (1.1.2)
103
105
  savon (>= 2.3.0)
104
106
  wasabi (3.6.1)
105
107
  addressable
@@ -107,6 +109,7 @@ GEM
107
109
  nokogiri (>= 1.4.2)
108
110
 
109
111
  PLATFORMS
112
+ ruby
110
113
  x86_64-darwin-19
111
114
 
112
115
  DEPENDENCIES
@@ -8,18 +8,19 @@ module MossGenerator
8
8
  class Stripe
9
9
  class NoTurnoverCountryError < StandardError; end
10
10
 
11
- attr_reader :charges, :vat_number, :period, :year, :rates
11
+ attr_reader :charges, :vat_number, :period, :year, :rates, :sale_type
12
12
 
13
- def initialize(charges, vat_number, period, year, rates)
13
+ def initialize(charges, vat_number, period, year, rates, sale_type)
14
14
  @charges = charges
15
15
  @vat_number = vat_number
16
16
  @period = period
17
17
  @year = year
18
18
  @rates = rates
19
+ @sale_type = sale_type
19
20
  end
20
21
 
21
- def self.call(charges, vat_number, period, year, rates)
22
- new(charges, vat_number, period, year, rates).call
22
+ def self.call(charges, vat_number, period, year, rates, sale_type)
23
+ new(charges, vat_number, period, year, rates, sale_type).call
23
24
  end
24
25
 
25
26
  def call
@@ -33,7 +34,7 @@ module MossGenerator
33
34
  private
34
35
 
35
36
  def first_row
36
- ['MOSS_001']
37
+ ['OSS_001']
37
38
  end
38
39
 
39
40
  def second_row
@@ -67,10 +68,11 @@ module MossGenerator
67
68
 
68
69
  def country_row(country, charges, vat)
69
70
  [turnover_country,
70
- country,
71
+ country_code(country),
71
72
  format_to_two_decimals(vat),
72
73
  format_to_two_decimals(charges.sum(&:amount_without_vat)),
73
- format_to_two_decimals(charges.sum(&:vat_amount))]
74
+ format_to_two_decimals(charges.sum(&:vat_amount)),
75
+ sale_type]
74
76
  end
75
77
 
76
78
  def csv_options
@@ -85,6 +87,12 @@ module MossGenerator
85
87
  ';'
86
88
  end
87
89
 
90
+ def country_code(country)
91
+ return 'EL' if country == 'GR'
92
+
93
+ country
94
+ end
95
+
88
96
  def format_to_two_decimals(number)
89
97
  format('%.2f', number).sub('.', ',')
90
98
  end
@@ -98,7 +98,37 @@ module MossGenerator
98
98
  end
99
99
 
100
100
  def fetch_country_code
101
- charge.dig('payment_method_details', 'card', 'country')
101
+ source_country || payment_method_country || fallback_country
102
+ end
103
+
104
+ def source_country
105
+ return source_owner_country if source_type.nil?
106
+
107
+ charge.dig('source', source_type, 'country') ||
108
+ charge.dig('source', source_type, 'address_country')
109
+ end
110
+
111
+ def payment_method_country
112
+ return if payment_type.nil?
113
+
114
+ charge.dig('payment_method_details', payment_type, 'country') ||
115
+ charge.dig('payment_method_details', payment_type, 'address_country')
116
+ end
117
+
118
+ def source_type
119
+ charge.dig('source', 'type') || charge.dig('source', 'object')
120
+ end
121
+
122
+ def source_owner_country
123
+ charge.dig('source', 'owner', 'address', 'country')
124
+ end
125
+
126
+ def payment_type
127
+ charge.dig('payment_method_details', 'type')
128
+ end
129
+
130
+ def fallback_country
131
+ charge.dig('shipping', 'address', 'country')
102
132
  end
103
133
 
104
134
  def amount_with_vat
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MossGenerator
4
- VERSION = '0.4.1.1'
4
+ VERSION = '0.6.0'
5
5
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ['frdrkolsson']
9
9
  spec.email = ['fredrik.olsson@standout.se']
10
10
 
11
- spec.summary = 'Skatteverket Mini One Stop Shop (MOSS) generator.'
11
+ spec.summary = 'Skatteverket One Stop Shop (OSS) generator.'
12
12
  spec.description = spec.summary
13
13
  spec.homepage = 'https://github.com/standout/moss_generator'
14
14
  spec.license = 'MIT'
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ['lib']
32
32
 
33
33
  # spec.add_dependency to register a new dependency of your gem
34
- spec.add_dependency 'countries', '~> 3.1'
34
+ spec.add_dependency 'countries', '~> 4.0'
35
35
  spec.add_dependency 'money', '~> 6.14'
36
36
  spec.add_dependency 'valvat', '~> 1.1'
37
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moss_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - frdrkolsson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-14 00:00:00.000000000 Z
11
+ date: 2022-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: countries
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: money
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: Skatteverket Mini One Stop Shop (MOSS) generator.
69
+ description: Skatteverket One Stop Shop (OSS) generator.
70
70
  email:
71
71
  - fredrik.olsson@standout.se
72
72
  executables: []
@@ -115,8 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubygems_version: 3.2.3
118
+ rubygems_version: 3.2.32
119
119
  signing_key:
120
120
  specification_version: 4
121
- summary: Skatteverket Mini One Stop Shop (MOSS) generator.
121
+ summary: Skatteverket One Stop Shop (OSS) generator.
122
122
  test_files: []