czech_post_b2b_client 1.2.1 → 1.2.6
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 +5 -5
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +23 -1
- data/README.md +41 -0
- data/lib/czech_post_b2b_client.rb +2 -1
- data/lib/czech_post_b2b_client/b2b_errors.rb +8 -3
- data/lib/czech_post_b2b_client/configuration.rb +10 -7
- data/lib/czech_post_b2b_client/logger.rb +30 -0
- data/lib/czech_post_b2b_client/post_services.rb +2 -1
- data/lib/czech_post_b2b_client/printing_templates.rb +67 -28
- data/lib/czech_post_b2b_client/request_builders/get_parcels_printing_builder.rb +0 -4
- data/lib/czech_post_b2b_client/request_builders/parcel_service_sync_builder.rb +36 -61
- data/lib/czech_post_b2b_client/request_builders/send_parcels_builder.rb +39 -20
- data/lib/czech_post_b2b_client/response_codes.rb +320 -205
- data/lib/czech_post_b2b_client/response_parsers/base_parser.rb +1 -3
- data/lib/czech_post_b2b_client/response_parsers/get_result_parcels_parser.rb +1 -3
- data/lib/czech_post_b2b_client/response_parsers/parcel_service_sync_parser.rb +6 -5
- data/lib/czech_post_b2b_client/services/api_caller.rb +14 -2
- data/lib/czech_post_b2b_client/services/parcels_send_process_updater.rb +1 -1
- data/lib/czech_post_b2b_client/services/parcels_sync_sender.rb +1 -1
- data/lib/czech_post_b2b_client/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 74fa378ca71040acf1adb94fb61fa1d371ae2491273b3585bed2ef14ce6911e8
|
|
4
|
+
data.tar.gz: efda7da207ddf3146be8181c4765f8cca645020131f3cda81e211fb5ff9ea828
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9752291d61873388331118b6167d212e40aab3ce344d0306f664ba245ac5e6515296dba98a97788b0604a39355a4514ac3d409b548d14e63efe3786f920cb627
|
|
7
|
+
data.tar.gz: 257ceece993bb225b3ec020667af0fab9c26edd0b2eb16c35d41c470f70c7b8377443da68dc7c057e9d1d237e4bc74743cf70a585a5ad7c6fe10152c86990a63
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All changes to the gem are documented here.
|
|
4
4
|
|
|
5
|
+
## [1.2.6] - 2020-10-27
|
|
6
|
+
|
|
7
|
+
- fixed passing all errors from `parcelsServiceSync` response.
|
|
8
|
+
|
|
9
|
+
## [1.2.5] - 2020-10-06
|
|
10
|
+
|
|
11
|
+
- `errorDescription` from `B2BError` response is now merged into error message.
|
|
12
|
+
|
|
13
|
+
## [1.2.4] - 2020-10-06
|
|
14
|
+
|
|
15
|
+
- Added `configuration.log_messages_at_least_as` option, to be able debug client behaviour when app log level is higher (eg. production)
|
|
16
|
+
|
|
17
|
+
## [1.2.3] - 2020-08-21
|
|
18
|
+
|
|
19
|
+
- Corrected order in XML `sequence` elements
|
|
20
|
+
- Added `schemaLocation` to root element and placed publicly accessible XSDs into Github repo
|
|
21
|
+
|
|
22
|
+
## [1.2.2] - 2020-08-19
|
|
23
|
+
|
|
24
|
+
- Printing templates now include @page_dimensions
|
|
25
|
+
- Forced secure SSL ciphers for requests
|
|
26
|
+
- `examples/try_api_call.rb` refactored to be more versatile (download XSDs [:do not work], pritn_selected_combinations)
|
|
27
|
+
|
|
5
28
|
## [1.2.0] - 2020-06-07
|
|
6
29
|
|
|
7
30
|
- **Breaking** Introducing new Printing templates, improved some template names and scopes
|
|
@@ -33,4 +56,3 @@ Production ready release
|
|
|
33
56
|
### Added
|
|
34
57
|
- All the stuff
|
|
35
58
|
|
|
36
|
-
|
data/README.md
CHANGED
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
# FRESH NEWS
|
|
3
|
+
After full usage in production (vyvolej.to, squared.one), we found that Czech POst have trouble with `parcelServiceSync` (maybe `sendParcels` too). When You try to register package with `:customs_documents`, you get `INVALID_BATCH` response with no error, but with `parcelCode`:
|
|
4
|
+
```
|
|
5
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
6
|
+
<v1:b2bSyncResponse xmlns:v1="https://b2b.postaonline.cz/schema/B2BCommon-v1" xmlns:v1_1="https://b2b.postaonline.cz/schema/POLServices-v1">
|
|
7
|
+
<v1:header>
|
|
8
|
+
<v1:b2bRequestHeader>
|
|
9
|
+
<v1:idExtTransaction>1</v1:idExtTransaction>
|
|
10
|
+
<v1:timeStamp>2020-08-22T07:32:20.496Z</v1:timeStamp>
|
|
11
|
+
<v1:idContract>356936003</v1:idContract>
|
|
12
|
+
</v1:b2bRequestHeader>
|
|
13
|
+
</v1:header>
|
|
14
|
+
<v1:serviceData><v1_1:parcelServiceSyncResponse>
|
|
15
|
+
<v1_1:responseHeader>
|
|
16
|
+
<v1_1:resultHeader>
|
|
17
|
+
<v1_1:responseCode>19</v1_1:responseCode>
|
|
18
|
+
<v1_1:responseText>BATCH_INVALID</v1_1:responseText>
|
|
19
|
+
</v1_1:resultHeader>
|
|
20
|
+
<v1_1:resultParcelData>
|
|
21
|
+
<v1_1:recordNumber>52427</v1_1:recordNumber>
|
|
22
|
+
<v1_1:parcelCode>RR950819194CZ</v1_1:parcelCode>
|
|
23
|
+
<v1_1:parcelDataResponse>
|
|
24
|
+
<v1_1:responseCode>1</v1_1:responseCode>
|
|
25
|
+
<v1_1:responseText>OK</v1_1:responseText>
|
|
26
|
+
</v1_1:parcelDataResponse>
|
|
27
|
+
</v1_1:resultParcelData>
|
|
28
|
+
</v1_1:responseHeader>
|
|
29
|
+
</v1_1:parcelServiceSyncResponse></v1:serviceData>
|
|
30
|
+
</v1:b2bSyncResponse>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
*Reality is, that Parcel IS NOT registered!*
|
|
34
|
+
|
|
35
|
+
They say, that this should be fixed in 2020-10-01 release. But I still can not grab new XSD.
|
|
36
|
+
|
|
37
|
+
|
|
1
38
|
# CzechPostB2bClient
|
|
2
39
|
Accessing B2B API of Czech Post for bulk processing of parcels ("B2B - WS PodáníOnline").
|
|
3
40
|
|
|
@@ -10,6 +47,7 @@ There are these supported operations of API:
|
|
|
10
47
|
- *getParcelState* - returns all known states for listed parcels [HTTP GET - sync response]
|
|
11
48
|
- *getParcelsPrinting* - returns PDF with address labels/stickers for listed parcels [HTTP GET - sync response]
|
|
12
49
|
|
|
50
|
+
## Development of this gem is donated by [Squared s.r.o.](https://www.vyvolej.to)
|
|
13
51
|
|
|
14
52
|
## Installation
|
|
15
53
|
### 1) Registration at Czech Post (CP)
|
|
@@ -70,6 +108,7 @@ CzechPostB2bClient.configure do |config|
|
|
|
70
108
|
# config.language => :cs # other languages are not supported now
|
|
71
109
|
# config.logger => ::Rails.logger or ::Logger.new(STDOUT),
|
|
72
110
|
# config.b2b_api_base_uri => 'https://b2b.postaonline.cz/services/POLService/v1'
|
|
111
|
+
# config.log_messages_at_least_as = :debug
|
|
73
112
|
end
|
|
74
113
|
```
|
|
75
114
|
|
|
@@ -277,6 +316,8 @@ end
|
|
|
277
316
|
|
|
278
317
|
## Troubleshooting
|
|
279
318
|
|
|
319
|
+
You can validate request XML against XSD in [`documents/latest_xsds`](./documents/latest_xsds) (There are no public files from Czech Post :-( )
|
|
320
|
+
|
|
280
321
|
1) Read all stuff in [`./documents`](./documents/) and [Yard docs](./doc/index.html), maybe it helps.
|
|
281
322
|
2) If You get "handshake protocol failed" You do not have correct setup for certificates. If You get any xml response (see logger in debug mode) certificates are ok.
|
|
282
323
|
You can always try `TimePeriodStatisticator` for that check, it do not need any "before" actions.
|
|
@@ -5,6 +5,7 @@ require 'stepped_service'
|
|
|
5
5
|
|
|
6
6
|
require 'czech_post_b2b_client/version'
|
|
7
7
|
require 'czech_post_b2b_client/configuration'
|
|
8
|
+
require 'czech_post_b2b_client/logger'
|
|
8
9
|
|
|
9
10
|
require 'czech_post_b2b_client/b2b_errors'
|
|
10
11
|
require 'czech_post_b2b_client/response_codes'
|
|
@@ -26,7 +27,7 @@ module CzechPostB2bClient
|
|
|
26
27
|
end
|
|
27
28
|
|
|
28
29
|
def self.logger
|
|
29
|
-
self.configuration
|
|
30
|
+
CzechPostB2bClient::Logger.new(self.configuration)
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
def self.root
|
|
@@ -35,12 +35,17 @@ module CzechPostB2bClient
|
|
|
35
35
|
attr_reader :message
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
+
def initialize(details = '')
|
|
39
|
+
self.details = details
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
attr_accessor :details
|
|
38
43
|
def code
|
|
39
44
|
self.class.code
|
|
40
45
|
end
|
|
41
46
|
|
|
42
47
|
def message
|
|
43
|
-
self.class.message
|
|
48
|
+
"#{self.class.message} -- #{details}"
|
|
44
49
|
end
|
|
45
50
|
end
|
|
46
51
|
|
|
@@ -94,11 +99,11 @@ module CzechPostB2bClient
|
|
|
94
99
|
ObjectSpace.each_object(CzechPostB2bClient::B2BErrors::BaseError.singleton_class)
|
|
95
100
|
end
|
|
96
101
|
|
|
97
|
-
def self.new_by_code(code)
|
|
102
|
+
def self.new_by_code(code, details = '')
|
|
98
103
|
klass = all_error_classes.detect { |k| k.code == code }
|
|
99
104
|
raise "B2BError with code: #{code} is unknown!" unless klass
|
|
100
105
|
|
|
101
|
-
klass.new
|
|
106
|
+
klass.new(details)
|
|
102
107
|
end
|
|
103
108
|
end
|
|
104
109
|
end
|
|
@@ -16,25 +16,28 @@ module CzechPostB2bClient
|
|
|
16
16
|
:logger,
|
|
17
17
|
:b2b_api_base_uri,
|
|
18
18
|
:print_options,
|
|
19
|
-
:custom_card_number
|
|
19
|
+
:custom_card_number,
|
|
20
|
+
:log_messages_at_least_as
|
|
20
21
|
|
|
21
22
|
def initialize
|
|
22
23
|
# set defaults here
|
|
23
24
|
|
|
24
25
|
# ours, accessible, but maybe out of date, for test usage
|
|
25
|
-
@namespaces = {
|
|
26
|
-
'xmlns' => 'https://raw.githubusercontent.com/foton/czech_post_b2b_client/master/documents/B2B_CP_POL_2020-05-21/B2BCommon-v1.1.xsd',
|
|
27
|
-
'xmlns:ns2' => 'https://raw.githubusercontent.com/foton/czech_post_b2b_client/master/documents/B2B_CP_POL_2020-05-21/B2B-POLServices-v1.8.xsd'
|
|
28
|
-
}
|
|
29
|
-
# original, accessible only with setup certificates
|
|
30
26
|
@namespaces = {
|
|
31
27
|
'xmlns' => 'https://b2b.postaonline.cz/schema/B2BCommon-v1',
|
|
32
|
-
'xmlns:ns2' => 'https://b2b.postaonline.cz/schema/POLServices-v1'
|
|
28
|
+
'xmlns:ns2' => 'https://b2b.postaonline.cz/schema/POLServices-v1',
|
|
29
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
|
|
30
|
+
'xsi:noNamespaceSchemaLocation' => 'https://raw.githubusercontent.com/foton/czech_post_b2b_client/master/documents/latest_xsds/B2BCommon.xsd',
|
|
31
|
+
'xsi:schemaLocation' => 'https://b2b.postaonline.cz/schema/POLServices-v1 https://raw.githubusercontent.com/foton/czech_post_b2b_client/master/documents/latest_xsds/B2BPOLServices.xsd'
|
|
33
32
|
}
|
|
33
|
+
|
|
34
34
|
@language = :cs
|
|
35
35
|
@logger = defined?(Rails) ? ::Rails.logger : ::Logger.new(STDOUT)
|
|
36
36
|
@b2b_api_base_uri = 'https://b2b.postaonline.cz/services/POLService/v1'
|
|
37
37
|
@sending_post_office_location_number = 1
|
|
38
|
+
|
|
39
|
+
# set this to :error in production for API debug logs in production.log
|
|
40
|
+
@log_messages_at_least_as = :debug # so all logs keeps their level
|
|
38
41
|
end
|
|
39
42
|
end
|
|
40
43
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'logger'
|
|
4
|
+
|
|
5
|
+
module CzechPostB2bClient
|
|
6
|
+
class Logger
|
|
7
|
+
attr_reader :target_logger, :min_log_level
|
|
8
|
+
|
|
9
|
+
LEVELS = { debug: 0, info: 1, error: 2 }.freeze
|
|
10
|
+
|
|
11
|
+
def initialize(configuration)
|
|
12
|
+
@target_logger = configuration.logger
|
|
13
|
+
@min_log_level = configuration.log_messages_at_least_as
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def log(original_level, message)
|
|
17
|
+
target_logger.send(modified_log_level(original_level), message)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
LEVELS.each_key do |level|
|
|
21
|
+
define_method(level) { |message| log(level, message) }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def modified_log_level(original_level)
|
|
27
|
+
LEVELS[original_level] > LEVELS[min_log_level] ? original_level : min_log_level
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -768,7 +768,8 @@ module CzechPostB2bClient
|
|
|
768
768
|
|
|
769
769
|
# has to be at the end, to load all subcasses before
|
|
770
770
|
def self.all_classes
|
|
771
|
-
|
|
771
|
+
base_class = CzechPostB2bClient::PostServices::Base
|
|
772
|
+
ObjectSpace.each_object(base_class.singleton_class).reject { |c| c == base_class }
|
|
772
773
|
end
|
|
773
774
|
end
|
|
774
775
|
end
|
|
@@ -10,70 +10,82 @@ module CzechPostB2bClient
|
|
|
10
10
|
module PrintingTemplates
|
|
11
11
|
class Base
|
|
12
12
|
class << self
|
|
13
|
-
attr_reader :id, :description
|
|
13
|
+
attr_reader :id, :description, :page_dimensions
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
module AddressLabel
|
|
18
18
|
class Simple < Base
|
|
19
19
|
@id = 7
|
|
20
|
-
@description = 'adresní štítek (alonž)
|
|
20
|
+
@description = 'adresní štítek (alonž) [1x1/4 A4'
|
|
21
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
21
22
|
end
|
|
22
23
|
|
|
23
24
|
class SimpleA6FourOnPage < Base
|
|
24
25
|
@id = 103
|
|
25
|
-
@description = 'Adresní štítek A6
|
|
26
|
+
@description = 'Adresní štítek A6 : 4x'
|
|
27
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
26
28
|
end
|
|
27
29
|
|
|
28
30
|
class SimpleWithCODVoucherA < Base
|
|
29
31
|
@id = 8
|
|
30
|
-
@description = 'adresní štítek (alonž) + dobírková poukázka A'
|
|
32
|
+
@description = 'adresní štítek (alonž) + dobírková poukázka A [(1x1/4 A4 + 1x1/2 A4)'
|
|
33
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
31
34
|
end
|
|
32
35
|
|
|
33
36
|
class BiancoFourOnPage < Base
|
|
34
37
|
@id = 20
|
|
35
|
-
@description = 'adresní štítek bianco
|
|
38
|
+
@description = 'adresní štítek bianco : 4x'
|
|
39
|
+
@page_dimensions = 'A4 landscape (297 × 210 mm)'
|
|
36
40
|
end
|
|
37
41
|
|
|
38
42
|
class Bianco < Base
|
|
39
43
|
@id = 21
|
|
40
|
-
@description = 'adresní štítek bianco
|
|
44
|
+
@description = 'adresní štítek bianco'
|
|
45
|
+
@page_dimensions = 'A6 portrait (105 × 148 mm)'
|
|
41
46
|
end
|
|
42
47
|
|
|
43
48
|
class BiancoLandscape < Base
|
|
44
49
|
@id = 39
|
|
45
|
-
@description = 'adresní štítek bianco -
|
|
50
|
+
@description = 'adresní štítek bianco - na šířku'
|
|
51
|
+
@page_dimensions = 'A6 landscape (148 × 105 mm)'
|
|
46
52
|
end
|
|
47
53
|
|
|
48
54
|
module ForeignPackage
|
|
49
55
|
class Standard < Base
|
|
50
56
|
@id = 58
|
|
51
57
|
@description = 'CP72 - standardní balík do zahraničí' # or 'AŠ - samostatný Standardní balík do zahraničí'
|
|
58
|
+
@page_dimensions = 'A5 landscape (210 × 148 mm)'
|
|
52
59
|
end
|
|
53
60
|
|
|
54
61
|
class StandardTwoOnPage < Base
|
|
55
62
|
@id = 59
|
|
56
|
-
@description = 'CP72 - standardní balík do zahraničí
|
|
63
|
+
@description = 'CP72 - standardní balík do zahraničí : 2x' # or 'AŠ - 4xA4 Standardní balík do zahraničí'
|
|
64
|
+
@page_dimensions = 'A4 portrait (297 × 210 mm)'
|
|
57
65
|
end
|
|
58
66
|
|
|
59
67
|
class Insured < Base
|
|
60
68
|
@id = 60
|
|
61
69
|
@description = 'CP72 - cenný balík do zahraničí' # or 'AŠ - samostatný Cenný balík do zahraničí'
|
|
70
|
+
@page_dimensions = 'A5 landscape (210 × 148 mm)'
|
|
62
71
|
end
|
|
63
72
|
|
|
64
73
|
class InsuredFourOnPage < Base
|
|
65
74
|
@id = 61
|
|
66
|
-
@description = 'CP72 - cenný balík do zahraničí
|
|
75
|
+
@description = 'CP72 - cenný balík do zahraničí : 2x' # or '4xA4 Cenný balík do zahraničí'
|
|
76
|
+
@page_dimensions = 'A4 portrait (297 × 210 mm)'
|
|
67
77
|
end
|
|
68
78
|
|
|
69
79
|
class EMS < Base
|
|
70
80
|
@id = 62
|
|
71
81
|
@description = 'AŠ - samostatný EMS zahraničí'
|
|
82
|
+
@page_dimensions = 'unverified'
|
|
72
83
|
end
|
|
73
84
|
|
|
74
85
|
class EMSTwoOnPage < Base
|
|
75
86
|
@id = 63
|
|
76
|
-
@description = 'AŠ -
|
|
87
|
+
@description = 'AŠ - EMS do zahraničí : 2x'
|
|
88
|
+
@page_dimensions = 'unverified A4'
|
|
77
89
|
end
|
|
78
90
|
end
|
|
79
91
|
end
|
|
@@ -82,94 +94,112 @@ module CzechPostB2bClient
|
|
|
82
94
|
class EnvelopeC6 < Base
|
|
83
95
|
@id = 22
|
|
84
96
|
@description = 'obálka 1 - C6'
|
|
97
|
+
@page_dimensions = 'C6 portrait (114 × 162 mm)'
|
|
85
98
|
end
|
|
86
99
|
|
|
87
100
|
class EnvelopeC5 < Base
|
|
88
101
|
@id = 23
|
|
89
102
|
@description = 'obálka 2 - C5'
|
|
103
|
+
@page_dimensions = 'C5/prc7 portrait (162 × 229 mm)'
|
|
90
104
|
end
|
|
91
105
|
|
|
92
106
|
class EnvelopeB4 < Base
|
|
93
107
|
@id = 24
|
|
94
108
|
@description = 'obálka 3 - B4'
|
|
109
|
+
@page_dimensions = 'B4 portrait (250 × 353 mm)'
|
|
95
110
|
end
|
|
96
111
|
|
|
97
112
|
class EnvelopeDL < Base
|
|
98
113
|
@id = 25
|
|
99
114
|
@description = 'obálka 4 - DL bez okénka'
|
|
115
|
+
@page_dimensions = 'DL/prc5 portrait (109 × 219 mm)'
|
|
100
116
|
end
|
|
101
117
|
end
|
|
102
118
|
|
|
103
119
|
class CODVoucherA < Base
|
|
104
120
|
@id = 10
|
|
105
121
|
@description = 'poštovní dobírková poukázka A - samostatná'
|
|
122
|
+
@page_dimensions = '102 × 210 mm'
|
|
106
123
|
end
|
|
107
124
|
|
|
108
125
|
class CODVoucherAThreeOnPage < Base
|
|
109
126
|
@id = 11
|
|
110
|
-
@description = 'poštovní dobírková poukázka A - 3x
|
|
127
|
+
@description = 'poštovní dobírková poukázka A - 3x'
|
|
128
|
+
@page_dimensions = '210 × 306 mm'
|
|
111
129
|
end
|
|
112
130
|
|
|
113
131
|
class CODVoucherC < Base
|
|
114
132
|
@id = 12
|
|
115
133
|
@description = 'Poštovní dobírková poukázka C'
|
|
134
|
+
@page_dimensions = 'unverified'
|
|
116
135
|
end
|
|
117
136
|
|
|
118
137
|
class CODVoucherForCSOB < Base
|
|
119
138
|
@id = 13
|
|
120
139
|
@description = 'Dobírková složenka ČSOB'
|
|
140
|
+
@page_dimensions = 'unverified'
|
|
121
141
|
end
|
|
122
142
|
|
|
123
143
|
class RRLabels3x8 < Base
|
|
124
144
|
@id = 26
|
|
125
|
-
@description = 'štítky pro RR
|
|
145
|
+
@description = 'štítky pro RR : 3x8'
|
|
146
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
126
147
|
end
|
|
127
148
|
|
|
128
149
|
class IntegratedDocument < Base
|
|
129
150
|
@id = 38
|
|
130
151
|
@description = 'Integrovaný doklad'
|
|
152
|
+
@page_dimensions = 'unverified'
|
|
131
153
|
end
|
|
132
154
|
|
|
133
155
|
class AddressData3x8 < Base
|
|
134
156
|
@id = 40
|
|
135
|
-
@description = 'Adresní údaje 3x8
|
|
157
|
+
@description = 'Adresní údaje : 3x8'
|
|
158
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
136
159
|
end
|
|
137
160
|
|
|
138
161
|
class DeliveryTicket < Base
|
|
139
162
|
@id = 41
|
|
140
163
|
@description = 'Dodejka'
|
|
164
|
+
@page_dimensions = 'unverified'
|
|
141
165
|
end
|
|
142
166
|
|
|
143
167
|
module CustomsDeclaration
|
|
144
168
|
class CN22 < Base
|
|
145
169
|
@id = 56
|
|
146
|
-
@description = 'Celní prohlášení CN22
|
|
170
|
+
@description = 'Celní prohlášení CN22 [samotný tisk je velikosti cca A6 vlevo nahořu od středu]'
|
|
171
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
147
172
|
end
|
|
148
173
|
|
|
149
174
|
class CN23 < Base
|
|
150
175
|
@id = 57
|
|
151
|
-
@description = 'Celní prohlášení CN23
|
|
176
|
+
@description = 'Celní prohlášení CN23'
|
|
177
|
+
@page_dimensions = 'A5 landscape (210 × 148 mm)'
|
|
152
178
|
end
|
|
153
179
|
|
|
154
180
|
class CN22FourOnPage < Base
|
|
155
181
|
@id = 74
|
|
156
|
-
@description = 'Celní prohlášení CN22
|
|
182
|
+
@description = 'Celní prohlášení CN22 : 4x (A4)'
|
|
183
|
+
@page_dimensions = 'unverified A4'
|
|
157
184
|
end
|
|
158
185
|
|
|
159
186
|
class CN22WithCK < Base
|
|
160
187
|
@id = 75
|
|
161
|
-
@description = 'Celní prohlášení CN22
|
|
188
|
+
@description = 'Celní prohlášení CN22 s ČK (A4)'
|
|
189
|
+
@page_dimensions = 'unverified A4'
|
|
162
190
|
end
|
|
163
191
|
|
|
164
192
|
class CN22WithCKFourOnPage < Base
|
|
165
193
|
@id = 76
|
|
166
|
-
@description = 'Celní prohlášení CN22
|
|
194
|
+
@description = 'Celní prohlášení CN22 s ČK : 4x (A4)'
|
|
195
|
+
@page_dimensions = 'unverified A4'
|
|
167
196
|
end
|
|
168
197
|
end
|
|
169
198
|
|
|
170
199
|
class CN22FourOnPage < Base
|
|
171
200
|
@id = 74
|
|
172
|
-
@description = 'Celní prohlášení CN22
|
|
201
|
+
@description = 'Celní prohlášení CN22 : 4x'
|
|
202
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
173
203
|
end
|
|
174
204
|
|
|
175
205
|
module HarmonizedLabel
|
|
@@ -177,48 +207,57 @@ module CzechPostB2bClient
|
|
|
177
207
|
# do zemi AT, DE, FR, GR, HR, CH, IS, LU, LV, NO, PL, SK
|
|
178
208
|
class Simple < Base
|
|
179
209
|
@id = 72
|
|
180
|
-
@description = 'Obchodní balík do zahraničí
|
|
210
|
+
@description = 'Obchodní balík do zahraničí' # or 'Harmonizovaný štítek pro MZ produkty-samostatný'
|
|
211
|
+
@page_dimensions = 'unverified'
|
|
181
212
|
end
|
|
182
213
|
|
|
183
214
|
class SimpleFourOnPage < Base
|
|
184
215
|
@id = 73
|
|
185
|
-
@description = 'Obchodní balík do zahraničí
|
|
216
|
+
@description = 'Obchodní balík do zahraničí : 4x (A4)' # or 'Harmonizovaný štítek pro MZ produkty – 4x (A4)'
|
|
217
|
+
@page_dimensions = 'unverified A4'
|
|
186
218
|
end
|
|
187
219
|
|
|
188
220
|
class BiancoFourOnPage < Base
|
|
189
221
|
@id = 100
|
|
190
|
-
@description = 'Harmonizovaný štítek bianco
|
|
222
|
+
@description = 'Harmonizovaný štítek bianco : 4x'
|
|
223
|
+
@page_dimensions = 'A4 portrait (210 × 297 mm)'
|
|
191
224
|
end
|
|
192
225
|
|
|
193
226
|
class Bianco < Base
|
|
194
227
|
@id = 101
|
|
195
|
-
@description = 'Harmonizovaný štítek bianco
|
|
228
|
+
@description = 'Harmonizovaný štítek bianco'
|
|
229
|
+
@page_dimensions = 'A6 portrait (105 × 148 mm)'
|
|
196
230
|
end
|
|
197
231
|
|
|
198
232
|
class BiancoPortrait < Base
|
|
199
233
|
@id = 102
|
|
200
|
-
@description = 'Harmonizovaný štítek bianco
|
|
234
|
+
@description = 'Harmonizovaný štítek bianco - na výšku'
|
|
235
|
+
@page_dimensions = 'A6 landscape (148 × 105 mm)'
|
|
201
236
|
end
|
|
202
237
|
|
|
203
238
|
class ZebraBianco105x148 < Base
|
|
204
239
|
@id = 200
|
|
205
|
-
@description = 'Harmonizovaný štítek bianco - (Zebra - 105x148)'
|
|
240
|
+
@description = 'Harmonizovaný štítek bianco - (Zebra - 105x148); nejde o PDF'
|
|
241
|
+
@page_dimensions = 'unverified 105 × 148 mm'
|
|
206
242
|
end
|
|
207
243
|
|
|
208
244
|
class ZebraBianco100x150 < Base
|
|
209
245
|
@id = 201
|
|
210
|
-
@description = 'Harmonizovaný štítek bianco - (Zebra - 100x150)'
|
|
246
|
+
@description = 'Harmonizovaný štítek bianco - (Zebra - 100x150); nejde o PDF'
|
|
247
|
+
@page_dimensions = 'unverified 100 × 150 mm'
|
|
211
248
|
end
|
|
212
249
|
|
|
213
250
|
class ZebraBianco100x125 < Base
|
|
214
251
|
@id = 202
|
|
215
|
-
@description = 'Harmonizovaný štítek bianco - (Zebra - 100x125)'
|
|
252
|
+
@description = 'Harmonizovaný štítek bianco - (Zebra - 100x125); nejde o PDF'
|
|
253
|
+
@page_dimensions = 'unverified 100 × 125 mm'
|
|
216
254
|
end
|
|
217
255
|
end
|
|
218
256
|
|
|
219
257
|
# has to be at the end, to load all subcasses before
|
|
220
258
|
def self.all_classes
|
|
221
|
-
|
|
259
|
+
base_class = CzechPostB2bClient::PrintingTemplates::Base
|
|
260
|
+
ObjectSpace.each_object(base_class.singleton_class).reject { |c| c == base_class }
|
|
222
261
|
end
|
|
223
262
|
end
|
|
224
263
|
end
|