colissimo_label 0.14.0 → 0.19.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: 564e96baddfb8b526dabff4637e429276260607de36d8cedb9eba0481d06a2b6
4
- data.tar.gz: d26257b2781922ee6b754a83891bbc3cfc20b601de30ee84f0ef188508cb57b1
3
+ metadata.gz: d58ca859be28bd4c1904888ffd0a04ce9f2a0fe3eb4685d530a9c63ac64fc24d
4
+ data.tar.gz: b0101152eecda5a85baaf0f02e337abde20d525646e4c91751104dbc423cb554
5
5
  SHA512:
6
- metadata.gz: 0dc4e1d6b1f179db83e007d469863d353c98958946b2fd6724fcda899fa482933d5e611936220efa2d459acb4fb95a5d4fc7ac1b46e23634250c593a5fe59d91
7
- data.tar.gz: 26f97fa5cec2b359d45c06c0350445766f76142eaf36f3a9bfea2c28cdc8697aa1a44dc1b62ab339eb0f3708300148501a806aabe18e07de1a89f3f78e5f5807
6
+ metadata.gz: cf756d30f2c61764de70d2e60dbc0d5d0ecd1dbe75a6411a05457e8981042cddec79ebf37143fd5048a60a057e39649060a2e84614233c0f671be3fa97b012d9
7
+ data.tar.gz: 01c0681b6bc6c1a619299a6bd94f3151cd8a01ed3ccf4bfe22a8f4fcff77b7b4232cb9f833c5c46d72e2a5fd648869a25bf389f4ad02b5808b5bc3e1576cc423
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 0.19.0
2
+
3
+ - Add new option field: specific TVA number for customs
4
+
5
+ ## 0.18.0
6
+
7
+ - Add new fields for UK after Brexit
8
+
9
+ ## 0.17.0
10
+
11
+ - Add Sweden to mandatory signature countries
12
+
13
+ ## 0.16.0
14
+
15
+ - Use correct default value for insurance
16
+
17
+ ## 0.15.0
18
+
19
+ - Comment insurance value
20
+
1
21
  ## 0.14.0
2
22
 
3
23
  - Ensure local path is present
@@ -14,9 +14,11 @@ class ColissimoLabel::GenerateLabel
14
14
  @pickup_type = options.fetch(:pickup_type, nil)
15
15
  @total_weight = options.fetch(:total_weight, nil)
16
16
  @customs_total_weight = options.fetch(:customs_total_weight, nil)
17
+ @customs_tva_number = options.fetch(:customs_tva_number, nil)
17
18
  @customs_data = options.fetch(:customs_data, nil)
18
19
  @with_signature = options.fetch(:with_signature, false)
19
- @insurance_value = options.fetch(:insurance_value, false)
20
+ @insurance_value = options.fetch(:insurance_value, nil)
21
+ @eori_number = options.fetch(:eori_number, nil)
20
22
  @label_output_format = options.fetch(:label_output_format, 'PDF_10x15_300dpi')
21
23
  @errors = []
22
24
  end
@@ -50,7 +52,7 @@ class ColissimoLabel::GenerateLabel
50
52
  end
51
53
  end
52
54
 
53
- if status == 400
55
+ if status == 400 || status == 500
54
56
  error_message = response.body.to_s.encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '').scan(/"messageContent":"(.*?)"/).last&.first
55
57
  raise StandardError, error_message
56
58
  elsif status == 503
@@ -98,8 +100,9 @@ class ColissimoLabel::GenerateLabel
98
100
  "addressee": {
99
101
  "address": format_addressee
100
102
  }
101
- }.merge(customs)
102
- }.compact)
103
+ }.merge(customs_letter)
104
+ }.merge(customs_fields)
105
+ .compact)
103
106
  end
104
107
 
105
108
  # Services =>
@@ -168,11 +171,12 @@ class ColissimoLabel::GenerateLabel
168
171
  end
169
172
 
170
173
  # Déclaration douanière de type CN23
171
- def customs
174
+ def customs_letter
172
175
  if require_customs?
173
176
  {
174
177
  "customsDeclarations": {
175
- "includeCustomsDeclarations": 1, # Inclure déclaration
178
+ "includeCustomsDeclarations": 1, # Inclure déclaration,
179
+ "importersReference": @customs_tva_number, # Numéro TVA pour la douane, si besoin
176
180
  "contents": {
177
181
  "article": @customs_data.map { |customs|
178
182
  {
@@ -203,8 +207,25 @@ class ColissimoLabel::GenerateLabel
203
207
  end
204
208
  end
205
209
 
210
+ def customs_fields
211
+ if require_customs?
212
+ {
213
+ "fields": {
214
+ "customField": [
215
+ {
216
+ "key": 'EORI',
217
+ "value": @eori_number
218
+ }
219
+ ]
220
+ }
221
+ }
222
+ else
223
+ {}
224
+ end
225
+ end
226
+
206
227
  def require_customs?
207
- %w[CH NO US].include?(@destination_country)
228
+ %w[CH NO US GB].include?(@destination_country)
208
229
  end
209
230
 
210
231
  # Certains pays, comme l'Allemagne, requiert une signature pour la livraison
@@ -214,7 +235,7 @@ class ColissimoLabel::GenerateLabel
214
235
  # BPR : Colissimo - Point Retrait – en Bureau de Poste
215
236
  # A2P : Colissimo - Point Retrait – en relais Pickup ou en consigne Pickup Station
216
237
  def product_code
217
- if %w[DE IT ES GB LU NL DK AT].include?(@destination_country)
238
+ if %w[DE IT ES GB LU NL DK AT SE].include?(@destination_country)
218
239
  'DOS'
219
240
  elsif !@pickup_id.nil? && %w[FR].include?(@destination_country)
220
241
  @pickup_type || 'BPR'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ColissimoLabel
4
- VERSION = '0.14.0'.freeze
4
+ VERSION = '0.19.0'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colissimo_label
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - FloXcoder
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-07 00:00:00.000000000 Z
11
+ date: 2021-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0'
184
184
  requirements: []
185
- rubygems_version: 3.1.3
185
+ rubygems_version: 3.2.3
186
186
  signing_key:
187
187
  specification_version: 4
188
188
  summary: Generate Colissimo label for all countries