moss_generator 0.4.1.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []