einvoice 1.4.0 → 1.5.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 +4 -4
- data/.coderabbit.yaml +14 -0
- data/.github/workflows/build.yml +3 -3
- data/CHANGELOG.md +21 -0
- data/Gemfile +8 -0
- data/README.md +80 -8
- data/Rakefile +44 -6
- data/einvoice.gemspec +11 -6
- data/lib/einvoice/configuration.rb +1 -1
- data/lib/einvoice/connection.rb +1 -1
- data/lib/einvoice/donation_unit_list.json +1186 -1183
- data/lib/einvoice/provider.rb +1 -2
- data/lib/einvoice/tradevan/model/issue_data.rb +2 -2
- data/lib/einvoice/tradevan/model/issue_item.rb +1 -1
- data/lib/einvoice/tradevan/model/void_data.rb +2 -2
- data/lib/einvoice/tradevan/provider.rb +0 -1
- data/lib/einvoice/version.rb +1 -1
- data/lib/einvoice.rb +0 -1
- data/lib/faraday/response/decode_tradevan.rb +4 -5
- data/lib/faraday/response/parse_xml.rb +14 -0
- metadata +17 -40
- data/lib/einvoice/utils.rb +0 -13
data/lib/einvoice/provider.rb
CHANGED
|
@@ -52,7 +52,7 @@ module Einvoice
|
|
|
52
52
|
:itemList
|
|
53
53
|
].freeze
|
|
54
54
|
|
|
55
|
-
attr_accessor
|
|
55
|
+
attr_accessor(*VALID_OPTIONS_KEYS)
|
|
56
56
|
|
|
57
57
|
validates :companyUn, presence: true, length: { is: 8 }
|
|
58
58
|
validates :orgId, presence: true, length: { is: 5 }
|
|
@@ -121,7 +121,7 @@ module Einvoice
|
|
|
121
121
|
validates :invoiceType, allow_blank: true, length: { is: 2 }, inclusion: { in: %w(07 08) }, if: proc { self.type == 'G' }
|
|
122
122
|
|
|
123
123
|
def payload
|
|
124
|
-
serializable_hash(except: [:errors, :validation_context], include: [:itemList])
|
|
124
|
+
serializable_hash(except: [:errors, :validation_context, :context_for_validation], include: [:itemList])
|
|
125
125
|
end
|
|
126
126
|
end
|
|
127
127
|
end
|
|
@@ -19,7 +19,7 @@ module Einvoice
|
|
|
19
19
|
:description
|
|
20
20
|
]
|
|
21
21
|
|
|
22
|
-
attr_accessor
|
|
22
|
+
attr_accessor(*VALID_OPTIONS_KEYS)
|
|
23
23
|
|
|
24
24
|
validates :saleIdentifier, presence: true, length: { maximum: 100 }
|
|
25
25
|
validates :serialNumber, presence: true, length: { is: 4 }, numericality: true
|
|
@@ -12,7 +12,7 @@ module Einvoice
|
|
|
12
12
|
:companyUn
|
|
13
13
|
].freeze
|
|
14
14
|
|
|
15
|
-
attr_accessor
|
|
15
|
+
attr_accessor(*VALID_OPTIONS_KEYS)
|
|
16
16
|
|
|
17
17
|
validates :type, presence: true, length: { is: 1 }, inclusion: { in: %w(C I A) }
|
|
18
18
|
|
|
@@ -27,7 +27,7 @@ module Einvoice
|
|
|
27
27
|
validates :allowancePaperReturned, presence: true, length: { is: 1 }, inclusion: { in: %w(Y N) }, if: proc { self.type == 'A' }
|
|
28
28
|
|
|
29
29
|
def payload
|
|
30
|
-
serializable_hash(except: [:errors, :validation_context, :itemList])
|
|
30
|
+
serializable_hash(except: [:errors, :validation_context, :context_for_validation, :itemList])
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
end
|
data/lib/einvoice/version.rb
CHANGED
data/lib/einvoice.rb
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
require 'base64'
|
|
2
|
+
require 'json'
|
|
3
|
+
require 'openssl'
|
|
4
|
+
|
|
1
5
|
require 'faraday'
|
|
2
6
|
|
|
3
7
|
module Faraday
|
|
4
8
|
class Response::DecodeTradevan < Faraday::Middleware
|
|
5
|
-
dependency do
|
|
6
|
-
require 'base64' unless defined?(::Base64)
|
|
7
|
-
require 'openssl' unless defined?(::OpenSSL)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
9
|
def initialize(app, key)
|
|
11
10
|
super(app)
|
|
12
11
|
@key = key
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
require 'faraday'
|
|
2
|
+
require 'multi_xml'
|
|
3
|
+
|
|
4
|
+
module Faraday
|
|
5
|
+
class Response::ParseXml < Faraday::Middleware
|
|
6
|
+
def on_complete(env)
|
|
7
|
+
return unless env[:body].is_a?(String) && !env[:body].strip.empty?
|
|
8
|
+
|
|
9
|
+
env[:body] = ::MultiXml.parse(env[:body])
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
Faraday::Response.register_middleware xml: Faraday::Response::ParseXml
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: einvoice
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Yun
|
|
@@ -13,30 +13,16 @@ dependencies:
|
|
|
13
13
|
name: faraday
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
-
- - "
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0'
|
|
19
|
-
type: :runtime
|
|
20
|
-
prerelease: false
|
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
-
requirements:
|
|
23
|
-
- - ">="
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: '0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: faraday_middleware
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - ">="
|
|
16
|
+
- - "~>"
|
|
31
17
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
18
|
+
version: '2.1'
|
|
33
19
|
type: :runtime
|
|
34
20
|
prerelease: false
|
|
35
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
22
|
requirements:
|
|
37
|
-
- - "
|
|
23
|
+
- - "~>"
|
|
38
24
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '
|
|
25
|
+
version: '2.1'
|
|
40
26
|
- !ruby/object:Gem::Dependency
|
|
41
27
|
name: multi_xml
|
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -79,20 +65,6 @@ dependencies:
|
|
|
79
65
|
- - ">="
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
67
|
version: '0'
|
|
82
|
-
- !ruby/object:Gem::Dependency
|
|
83
|
-
name: gyoku
|
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - ">="
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0'
|
|
89
|
-
type: :runtime
|
|
90
|
-
prerelease: false
|
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - ">="
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0'
|
|
96
68
|
- !ruby/object:Gem::Dependency
|
|
97
69
|
name: bundler
|
|
98
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -113,14 +85,14 @@ dependencies:
|
|
|
113
85
|
requirements:
|
|
114
86
|
- - "~>"
|
|
115
87
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '
|
|
88
|
+
version: '13.0'
|
|
117
89
|
type: :development
|
|
118
90
|
prerelease: false
|
|
119
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
92
|
requirements:
|
|
121
93
|
- - "~>"
|
|
122
94
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '
|
|
95
|
+
version: '13.0'
|
|
124
96
|
- !ruby/object:Gem::Dependency
|
|
125
97
|
name: pry
|
|
126
98
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -211,6 +183,7 @@ executables: []
|
|
|
211
183
|
extensions: []
|
|
212
184
|
extra_rdoc_files: []
|
|
213
185
|
files:
|
|
186
|
+
- ".coderabbit.yaml"
|
|
214
187
|
- ".github/workflows/build.yml"
|
|
215
188
|
- ".github/workflows/cron.yml"
|
|
216
189
|
- ".gitignore"
|
|
@@ -239,13 +212,17 @@ files:
|
|
|
239
212
|
- lib/einvoice/tradevan/provider.rb
|
|
240
213
|
- lib/einvoice/tradevan/result.rb
|
|
241
214
|
- lib/einvoice/tradevan/validator/issue_data_validator.rb
|
|
242
|
-
- lib/einvoice/utils.rb
|
|
243
215
|
- lib/einvoice/version.rb
|
|
244
216
|
- lib/faraday/response/decode_tradevan.rb
|
|
217
|
+
- lib/faraday/response/parse_xml.rb
|
|
245
218
|
homepage: https://github.com/abookyun/einvoice
|
|
246
219
|
licenses:
|
|
247
220
|
- MIT
|
|
248
|
-
metadata:
|
|
221
|
+
metadata:
|
|
222
|
+
source_code_uri: https://github.com/abookyun/einvoice
|
|
223
|
+
changelog_uri: https://github.com/abookyun/einvoice/blob/main/CHANGELOG.md
|
|
224
|
+
bug_tracker_uri: https://github.com/abookyun/einvoice/issues
|
|
225
|
+
rubygems_mfa_required: 'true'
|
|
249
226
|
rdoc_options: []
|
|
250
227
|
require_paths:
|
|
251
228
|
- lib
|
|
@@ -253,14 +230,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
253
230
|
requirements:
|
|
254
231
|
- - ">="
|
|
255
232
|
- !ruby/object:Gem::Version
|
|
256
|
-
version:
|
|
233
|
+
version: '3.1'
|
|
257
234
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
258
235
|
requirements:
|
|
259
236
|
- - ">="
|
|
260
237
|
- !ruby/object:Gem::Version
|
|
261
238
|
version: '0'
|
|
262
239
|
requirements: []
|
|
263
|
-
rubygems_version: 4.0.
|
|
240
|
+
rubygems_version: 4.0.20
|
|
264
241
|
specification_version: 4
|
|
265
|
-
summary:
|
|
242
|
+
summary: An API wrapper for Taiwan e-invoice services.
|
|
266
243
|
test_files: []
|