xrechnung 0.2.0 → 0.3.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: 4f041dd061b2cbafddf1f119d5dd735030f5090385ae705e4a078fba9308e3c4
4
- data.tar.gz: bdb51353f944c7560ef64f6f908f45eed508212d357d3e28bd95ba4c8a0b24d7
3
+ metadata.gz: bb95657d503486400ca7f7ff6664ae22a0cbbeb4e6e6588ed9edab03ebd31ee9
4
+ data.tar.gz: '0926fa0b0dfb0ffd51cc271cfca28897936bbe9b5a93a38c577a17da415925fe'
5
5
  SHA512:
6
- metadata.gz: 01ecec735fd1d6df67c83ff14a722b48d8fae9191d27f200b12efeb9d810045c54cf8534a0dee6d41d9935a24edf25589b4b872c9c37d14bf11b0b12263bfef9
7
- data.tar.gz: 682358abc94767c051821749ef42d7bb92f8e687bd6d47b4085dda99e95f5fe52ee4edf8fd99029a2bc37426afd4699ab397eb55c5adeca24a3d56cc5918db7d
6
+ metadata.gz: 84a2cc18d6ace05c0355154f0ae0addd91d23516d5654f50f11d9ea6c01d94e12ac8ea7d615d5feaf18d2e90fb20bc7fe9b9f700f93351c0ae6aa43272f057ae
7
+ data.tar.gz: edb7fb59d4435c67acd2e54bce2222a534d0752cb17572873005de1e99f44fabc06cecd8d4b328ccd05be70b0ac62ae75b68e3183bd9dff957429c587f3905b2
@@ -1,6 +1,6 @@
1
1
  name: Ruby
2
2
 
3
- on: [push, fork]
3
+ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  test:
@@ -1,6 +1,6 @@
1
1
  name: Validate spec fixtures
2
2
 
3
- on: push
3
+ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
6
  validate:
@@ -16,7 +16,7 @@ jobs:
16
16
 
17
17
  - uses: ruby/setup-ruby@v1
18
18
  with:
19
- ruby-version: "2.7"
19
+ ruby-version: "3.2"
20
20
  bundler-cache: true
21
21
 
22
22
  - name: Prepare validator
data/Gemfile.lock CHANGED
@@ -1,45 +1,48 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xrechnung (0.2.0)
4
+ xrechnung (0.3.0)
5
5
  builder (~> 3.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  ast (2.4.2)
11
- builder (3.2.4)
11
+ builder (3.3.0)
12
+ csv (3.3.0)
12
13
  diff-lcs (1.5.1)
13
- httparty (0.21.0)
14
+ httparty (0.22.0)
15
+ csv
14
16
  mini_mime (>= 1.0.0)
15
17
  multi_xml (>= 0.5.2)
16
- json (2.7.1)
18
+ json (2.7.2)
17
19
  language_server-protocol (3.17.0.3)
18
20
  mini_mime (1.1.5)
19
21
  multi_xml (0.6.0)
20
- parallel (1.24.0)
21
- parser (3.3.0.5)
22
+ parallel (1.25.1)
23
+ parser (3.3.3.0)
22
24
  ast (~> 2.4.1)
23
25
  racc
24
- racc (1.7.3)
26
+ racc (1.8.0)
25
27
  rainbow (3.1.1)
26
- rake (13.1.0)
27
- regexp_parser (2.9.0)
28
- rexml (3.2.6)
28
+ rake (13.2.1)
29
+ regexp_parser (2.9.2)
30
+ rexml (3.3.1)
31
+ strscan
29
32
  rspec (3.13.0)
30
33
  rspec-core (~> 3.13.0)
31
34
  rspec-expectations (~> 3.13.0)
32
35
  rspec-mocks (~> 3.13.0)
33
36
  rspec-core (3.13.0)
34
37
  rspec-support (~> 3.13.0)
35
- rspec-expectations (3.13.0)
38
+ rspec-expectations (3.13.1)
36
39
  diff-lcs (>= 1.2.0, < 2.0)
37
40
  rspec-support (~> 3.13.0)
38
- rspec-mocks (3.13.0)
41
+ rspec-mocks (3.13.1)
39
42
  diff-lcs (>= 1.2.0, < 2.0)
40
43
  rspec-support (~> 3.13.0)
41
44
  rspec-support (3.13.1)
42
- rubocop (1.62.1)
45
+ rubocop (1.64.1)
43
46
  json (~> 2.3)
44
47
  language_server-protocol (>= 3.17.0)
45
48
  parallel (~> 1.10)
@@ -50,25 +53,29 @@ GEM
50
53
  rubocop-ast (>= 1.31.1, < 2.0)
51
54
  ruby-progressbar (~> 1.7)
52
55
  unicode-display_width (>= 2.4.0, < 3.0)
53
- rubocop-ast (1.31.2)
54
- parser (>= 3.3.0.4)
55
- rubocop-capybara (2.20.0)
56
+ rubocop-ast (1.31.3)
57
+ parser (>= 3.3.1.0)
58
+ rubocop-capybara (2.21.0)
56
59
  rubocop (~> 1.41)
57
- rubocop-factory_bot (2.25.1)
58
- rubocop (~> 1.41)
59
- rubocop-rspec (2.27.1)
60
+ rubocop-factory_bot (2.26.1)
61
+ rubocop (~> 1.61)
62
+ rubocop-rspec (2.31.0)
60
63
  rubocop (~> 1.40)
61
64
  rubocop-capybara (~> 2.17)
62
65
  rubocop-factory_bot (~> 2.22)
66
+ rubocop-rspec_rails (~> 2.28)
67
+ rubocop-rspec_rails (2.29.1)
68
+ rubocop (~> 1.61)
63
69
  ruby-progressbar (1.13.0)
64
70
  rubyzip (2.3.2)
71
+ strscan (3.1.0)
65
72
  unicode-display_width (2.5.0)
66
73
 
67
74
  PLATFORMS
68
75
  ruby
69
76
 
70
77
  DEPENDENCIES
71
- httparty
78
+ httparty (~> 0.22)
72
79
  rake (~> 13.0)
73
80
  rspec (~> 3.0)
74
81
  rubocop-rspec (~> 2.1)
@@ -29,7 +29,9 @@ module Xrechnung
29
29
  member :price, type: Xrechnung::Price
30
30
 
31
31
  def initialize(**kwargs)
32
- kwargs[:line_extension_amount] = Currency::EUR(kwargs[:line_extension_amount])
32
+ unless kwargs[:line_extension_amount].is_a?(Currency)
33
+ kwargs[:line_extension_amount] = Currency::EUR(kwargs[:line_extension_amount])
34
+ end
33
35
  super(**kwargs)
34
36
  end
35
37
 
@@ -3,7 +3,7 @@ module Xrechnung
3
3
  include MemberContainer
4
4
 
5
5
  transform_currency = ->(v) {
6
- Currency::EUR(v)
6
+ v.is_a?(Currency) ? v : Currency::EUR(v)
7
7
  }
8
8
 
9
9
  # @!attribute line_extension_amount
@@ -2,6 +2,10 @@ module Xrechnung
2
2
  class PartyLegalEntity
3
3
  include MemberContainer
4
4
 
5
+ # @!attribute company_id
6
+ # @return [String]
7
+ member :company_id, type: String
8
+
5
9
  # @!attribute registration_name
6
10
  # @return [String]
7
11
  member :registration_name, type: String
@@ -9,6 +13,7 @@ module Xrechnung
9
13
  # noinspection RubyResolve
10
14
  def to_xml(xml)
11
15
  xml.cac :PartyLegalEntity do
16
+ xml.cbc(:CompanyID, company_id) unless company_id.nil?
12
17
  xml.cbc :RegistrationName, registration_name
13
18
  end
14
19
  end
@@ -15,7 +15,9 @@ module Xrechnung
15
15
  member :allowance_charge, type: Xrechnung::AllowanceCharge
16
16
 
17
17
  def initialize(**kwargs)
18
- kwargs[:price_amount] = Currency::EUR(kwargs[:price_amount])
18
+ unless kwargs[:price_amount].is_a?(Currency)
19
+ kwargs[:price_amount] = Currency::EUR(kwargs[:price_amount])
20
+ end
19
21
  super(**kwargs)
20
22
  end
21
23
 
@@ -23,7 +25,7 @@ module Xrechnung
23
25
  def to_xml(xml)
24
26
  xml.cac :Price do
25
27
  xml.cbc :PriceAmount, *price_amount.xml_args
26
- xml.cbc :BaseQuantity, *base_quantity.xml_args
28
+ xml.cbc(:BaseQuantity, *base_quantity.xml_args) unless base_quantity.nil?
27
29
  allowance_charge&.to_xml(xml)
28
30
  end
29
31
  end
@@ -29,6 +29,14 @@ module Xrechnung
29
29
  # @return [String]
30
30
  member :tax_scheme_id, type: String, default: "VAT"
31
31
 
32
+ # @!attribute tax_exemption_reason_code
33
+ # @return [String]
34
+ member :tax_exemption_reason_code, type: String
35
+
36
+ # @!attribute tax_exemption_reason
37
+ # @return [String]
38
+ member :tax_exemption_reason, type: String
39
+
32
40
  # noinspection RubyResolve
33
41
  def to_xml(xml, root_tag_name: :TaxCategory)
34
42
  xml.cac root_tag_name do
@@ -37,6 +45,11 @@ module Xrechnung
37
45
  xml.cac :TaxScheme do
38
46
  xml.cbc :ID, tax_scheme_id
39
47
  end
48
+
49
+ unless tax_exemption_reason_code.nil?
50
+ xml.cbc :TaxExemptionReasonCode, tax_exemption_reason_code
51
+ xml.cbc :TaxExemptionReason, tax_exemption_reason
52
+ end
40
53
  end
41
54
  end
42
55
  end
@@ -1,3 +1,3 @@
1
1
  module Xrechnung
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/xrechnung.gemspec CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_dependency "builder", "~> 3.2"
26
26
 
27
- spec.add_development_dependency "httparty"
27
+ spec.add_development_dependency "httparty", "~> 0.22"
28
28
  spec.add_development_dependency "rubyzip", "~> 2.0"
29
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xrechnung
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Kornberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-18 00:00:00.000000000 Z
11
+ date: 2024-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.22'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.22'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubyzip
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  requirements: []
121
- rubygems_version: 3.1.6
121
+ rubygems_version: 3.4.19
122
122
  signing_key:
123
123
  specification_version: 4
124
124
  summary: Library to create invoices in the XRechnung format.