gobl 0.21.0 → 0.22.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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/data/regimes/at.json +55 -50
  3. data/data/regimes/be.json +55 -50
  4. data/data/regimes/ca.json +1 -1
  5. data/data/regimes/ch.json +55 -50
  6. data/data/regimes/co.json +113 -61
  7. data/data/regimes/de.json +61 -47
  8. data/data/regimes/el.json +204 -0
  9. data/data/regimes/es.json +66 -548
  10. data/data/regimes/fr.json +55 -50
  11. data/data/regimes/gb.json +59 -50
  12. data/data/regimes/it.json +60 -1311
  13. data/data/regimes/mx.json +38 -639
  14. data/data/regimes/nl.json +55 -50
  15. data/data/regimes/pl.json +103 -100
  16. data/data/regimes/pt.json +17 -349
  17. data/data/regimes/us.json +55 -50
  18. data/lib/generated/gobl/bill/correction_options.rb +2 -2
  19. data/lib/generated/gobl/bill/invoice.rb +49 -9
  20. data/lib/generated/gobl/bill/ordering.rb +34 -34
  21. data/lib/generated/gobl/bill/tax.rb +0 -5
  22. data/lib/generated/gobl/cbc/key_definition.rb +4 -9
  23. data/lib/generated/gobl/cbc/value_definition.rb +37 -0
  24. data/lib/generated/gobl/head/header.rb +5 -5
  25. data/lib/generated/gobl/head/link.rb +43 -0
  26. data/lib/generated/gobl/l10n/{country_code.rb → iso_country_code.rb} +3 -3
  27. data/lib/generated/gobl/l10n/tax_country_code.rb +277 -0
  28. data/lib/generated/gobl/org/address.rb +2 -3
  29. data/lib/generated/gobl/org/document_ref.rb +87 -0
  30. data/lib/generated/gobl/org/identity.rb +5 -0
  31. data/lib/generated/gobl/org/item.rb +2 -2
  32. data/lib/generated/gobl/org/name.rb +0 -2
  33. data/lib/generated/gobl/org/party.rb +5 -6
  34. data/lib/generated/gobl/org/person.rb +5 -0
  35. data/lib/generated/gobl/org/registration.rb +4 -0
  36. data/lib/generated/gobl/pay/advance.rb +5 -0
  37. data/lib/generated/gobl/pay/instructions.rb +5 -0
  38. data/lib/generated/gobl/tax/addon_def.rb +61 -0
  39. data/lib/generated/gobl/tax/{category.rb → category_def.rb} +11 -11
  40. data/lib/generated/gobl/tax/combo.rb +5 -0
  41. data/lib/generated/gobl/tax/correction_definition.rb +1 -1
  42. data/lib/generated/gobl/tax/correction_set.rb +13 -0
  43. data/lib/generated/gobl/tax/identity.rb +3 -3
  44. data/lib/generated/gobl/tax/{rate.rb → rate_def.rb} +11 -16
  45. data/lib/generated/gobl/tax/rate_total.rb +5 -0
  46. data/lib/generated/gobl/tax/{rate_value.rb → rate_value_def.rb} +4 -4
  47. data/lib/generated/gobl/tax/{regime.rb → regime_def.rb} +23 -13
  48. data/lib/generated/gobl/tax/scenario.rb +20 -10
  49. data/lib/generated/gobl/tax/scenario_set.rb +1 -1
  50. data/lib/generated/gobl/tax/source.rb +1 -1
  51. data/lib/generated/gobl/tax/tag_set.rb +28 -0
  52. data/lib/gobl/extensions/bill/invoice_helper.rb +6 -36
  53. data/lib/gobl/extensions/envelope_helper.rb +4 -0
  54. data/lib/gobl/version.rb +1 -1
  55. data/lib/gobl.rb +3 -2
  56. metadata +15 -11
  57. data/lib/generated/gobl/bill/document_reference.rb +0 -36
  58. data/lib/generated/gobl/bill/preceding.rb +0 -78
  59. data/lib/generated/gobl/cbc/code_definition.rb +0 -37
  60. data/lib/gobl/extensions/bill/scenario_summary.rb +0 -25
@@ -14,8 +14,8 @@ module GOBL
14
14
 
15
15
  # @!attribute [r] code
16
16
  # Identifier assigned by the customer or buyer for internal routing purposes.
17
- # @return [String]
18
- property :code, String
17
+ # @return [GOBL::CBC::Code]
18
+ property :code, GOBL::CBC::Code
19
19
 
20
20
  # @!attribute [r] identities
21
21
  # Any additional Codes, IDs, SKUs, or other regional or custom identifiers that may be used to identify the order.
@@ -27,50 +27,50 @@ module GOBL
27
27
  # @return [GOBL::Cal::Period]
28
28
  property :period, GOBL::Cal::Period
29
29
 
30
- # @!attribute [r] project
31
- # Project this invoice refers to.
32
- # @return [DocumentReference]
33
- property :project, DocumentReference
30
+ # @!attribute [r] buyer
31
+ # Party who is responsible for making the purchase, but is not responsible for handling taxes.
32
+ # @return [GOBL::Org::Party]
33
+ property :buyer, GOBL::Org::Party
34
+
35
+ # @!attribute [r] seller
36
+ # Party who is selling the goods but is not responsible for taxes like the supplier.
37
+ # @return [GOBL::Org::Party]
38
+ property :seller, GOBL::Org::Party
39
+
40
+ # @!attribute [r] projects
41
+ # Projects this invoice refers to.
42
+ # @return [Array<GOBL::Org::DocumentRef>]
43
+ property :projects, [GOBL::Org::DocumentRef]
34
44
 
35
- # @!attribute [r] contract
36
- # The identification of a contract.
37
- # @return [DocumentReference]
38
- property :contract, DocumentReference
45
+ # @!attribute [r] contracts
46
+ # The identification of contracts.
47
+ # @return [Array<GOBL::Org::DocumentRef>]
48
+ property :contracts, [GOBL::Org::DocumentRef]
39
49
 
40
- # @!attribute [r] purchase
41
- # Purchase order issued by the customer or buyer.
42
- # @return [DocumentReference]
43
- property :purchase, DocumentReference
50
+ # @!attribute [r] purchases
51
+ # Purchase orders issued by the customer or buyer.
52
+ # @return [Array<GOBL::Org::DocumentRef>]
53
+ property :purchases, [GOBL::Org::DocumentRef]
44
54
 
45
- # @!attribute [r] sale
46
- # Sales order issued by the supplier or seller.
47
- # @return [DocumentReference]
48
- property :sale, DocumentReference
55
+ # @!attribute [r] sales
56
+ # Sales orders issued by the supplier or seller.
57
+ # @return [Array<GOBL::Org::DocumentRef>]
58
+ property :sales, [GOBL::Org::DocumentRef]
49
59
 
50
60
  # @!attribute [r] receiving
51
61
  # Receiving Advice.
52
- # @return [DocumentReference]
53
- property :receiving, DocumentReference
62
+ # @return [Array<GOBL::Org::DocumentRef>]
63
+ property :receiving, [GOBL::Org::DocumentRef]
54
64
 
55
65
  # @!attribute [r] despatch
56
66
  # Despatch advice.
57
- # @return [DocumentReference]
58
- property :despatch, DocumentReference
67
+ # @return [Array<GOBL::Org::DocumentRef>]
68
+ property :despatch, [GOBL::Org::DocumentRef]
59
69
 
60
70
  # @!attribute [r] tender
61
71
  # Tender advice, the identification of the call for tender or lot the invoice relates to.
62
- # @return [DocumentReference]
63
- property :tender, DocumentReference
64
-
65
- # @!attribute [r] buyer
66
- # Party who is responsible for making the purchase, but is not responsible for handling taxes.
67
- # @return [GOBL::Org::Party]
68
- property :buyer, GOBL::Org::Party
69
-
70
- # @!attribute [r] seller
71
- # Party who is selling the goods but is not responsible for taxes like the supplier.
72
- # @return [GOBL::Org::Party]
73
- property :seller, GOBL::Org::Party
72
+ # @return [Array<GOBL::Org::DocumentRef>]
73
+ property :tender, [GOBL::Org::DocumentRef]
74
74
  end
75
75
  end
76
76
  end
@@ -17,11 +17,6 @@ module GOBL
17
17
  # @return [GOBL::CBC::Code]
18
18
  property :prices_include, GOBL::CBC::Code
19
19
 
20
- # @!attribute [r] tags
21
- # Special tax tags that apply to this invoice according to local requirements.
22
- # @return [Array<GOBL::CBC::Key>]
23
- property :tags, [GOBL::CBC::Key]
24
-
25
20
  # @!attribute [r] ext
26
21
  # Additional extensions that are applied to the invoice as a whole as opposed to specific sections.
27
22
  # @return [GOBL::Tax::Extensions]
@@ -34,15 +34,10 @@ module GOBL
34
34
  # @return [GOBL::CBC::Meta]
35
35
  property :meta, GOBL::CBC::Meta
36
36
 
37
- # @!attribute [r] codes
38
- # Codes describes the list of codes that can be used alongside the Key, for example with identities.
39
- # @return [Array<GOBL::CBC::CodeDefinition>]
40
- property :codes, [GOBL::CBC::CodeDefinition]
41
-
42
- # @!attribute [r] keys
43
- # Keys is used instead of codes to define a further sub-set of keys that can be used alongside this one.
44
- # @return [Array<GOBL::CBC::KeyDefinition>]
45
- property :keys, [GOBL::CBC::KeyDefinition]
37
+ # @!attribute [r] values
38
+ # Values defines the possible values associated with the key.
39
+ # @return [Array<GOBL::CBC::ValueDefinition>]
40
+ property :values, [GOBL::CBC::ValueDefinition]
46
41
 
47
42
  # @!attribute [r] pattern
48
43
  # Pattern is used to validate the key value instead of using a fixed value from the code or key definitions.
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ##
7
+
8
+ module GOBL
9
+ module CBC
10
+ # ValueDefinition describes a specific value and how it maps to a human name and description if appropriate.
11
+ class ValueDefinition < GOBL::Object
12
+ # The Schema ID of the GOBL ValueDefinition structure
13
+ SCHEMA_ID = 'https://gobl.org/draft-0/cbc/value-definition'
14
+
15
+ # @!attribute [r] value
16
+ # Value for which the definition is for.
17
+ # @return [String]
18
+ property :value, String
19
+ validates_presence_of :value
20
+
21
+ # @!attribute [r] name
22
+ # Short name for the value, if relevant.
23
+ # @return [GOBL::I18n::String]
24
+ property :name, GOBL::I18n::String
25
+
26
+ # @!attribute [r] desc
27
+ # Description offering more details about when the value should be used.
28
+ # @return [GOBL::I18n::String]
29
+ property :desc, GOBL::I18n::String
30
+
31
+ # @!attribute [r] meta
32
+ # Meta defines any additional details that may be useful or associated with the value.
33
+ # @return [GOBL::CBC::Meta]
34
+ property :meta, GOBL::CBC::Meta
35
+ end
36
+ end
37
+ end
@@ -29,6 +29,11 @@ module GOBL
29
29
  # @return [Array<GOBL::Head::Stamp>]
30
30
  property :stamps, [GOBL::Head::Stamp]
31
31
 
32
+ # @!attribute [r] links
33
+ # Links provide URLs to other resources that are related to this envelope and unlike stamps can be added even in the draft state.
34
+ # @return [Array<GOBL::Head::Link>]
35
+ property :links, [GOBL::Head::Link]
36
+
32
37
  # @!attribute [r] tags
33
38
  # Set of labels that describe but have no influence on the data.
34
39
  # @return [Array<String>]
@@ -43,11 +48,6 @@ module GOBL
43
48
  # Any information that may be relevant to other humans about this envelope
44
49
  # @return [String]
45
50
  property :notes, String
46
-
47
- # @!attribute [r] draft
48
- # When true, implies that this document should not be considered final. Digital signatures are optional.
49
- # @return [Boolean]
50
- property :draft, Boolean
51
51
  end
52
52
  end
53
53
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ##
7
+
8
+ module GOBL
9
+ module Head
10
+ # Link defines a link between this document and another resource.
11
+ class Link < GOBL::Object
12
+ # The Schema ID of the GOBL Link structure
13
+ SCHEMA_ID = 'https://gobl.org/draft-0/head/link'
14
+
15
+ # @!attribute [r] key
16
+ # Key is a unique identifier for the link.
17
+ # @return [GOBL::CBC::Key]
18
+ property :key, GOBL::CBC::Key
19
+ validates_presence_of :key
20
+
21
+ # @!attribute [r] title
22
+ # Title of the resource to use when presenting to users.
23
+ # @return [String]
24
+ property :title, String
25
+
26
+ # @!attribute [r] description
27
+ # Description of the resource to use when presenting to users.
28
+ # @return [String]
29
+ property :description, String
30
+
31
+ # @!attribute [r] mime
32
+ # Expected MIME type of the link's content.
33
+ # @return [String]
34
+ property :mime, String
35
+
36
+ # @!attribute [r] url
37
+ # URL of the resource.
38
+ # @return [String]
39
+ property :url, String
40
+ validates_presence_of :url
41
+ end
42
+ end
43
+ end
@@ -8,9 +8,9 @@
8
8
  module GOBL
9
9
  module L10n
10
10
  # Defines an ISO 3166-2 country code
11
- class CountryCode < String
12
- # The Schema ID of the GOBL CountryCode structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/l10n/country-code'
11
+ class ISOCountryCode < String
12
+ # The Schema ID of the GOBL ISOCountryCode structure
13
+ SCHEMA_ID = 'https://gobl.org/draft-0/l10n/iso-country-code'
14
14
 
15
15
  include GOBL::Enum
16
16
 
@@ -0,0 +1,277 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ##
7
+
8
+ module GOBL
9
+ module L10n
10
+ # Defines an ISO base country code used for tax purposes
11
+ class TaxCountryCode < String
12
+ # The Schema ID of the GOBL TaxCountryCode structure
13
+ SCHEMA_ID = 'https://gobl.org/draft-0/l10n/tax-country-code'
14
+
15
+ include GOBL::Enum
16
+
17
+ ENUM = {
18
+ 'AF' => 'Afghanistan',
19
+ 'AX' => 'Åland Islands',
20
+ 'AL' => 'Albania',
21
+ 'DZ' => 'Algeria',
22
+ 'AS' => 'American Samoa',
23
+ 'AD' => 'Andorra',
24
+ 'AO' => 'Angola',
25
+ 'AI' => 'Anguilla',
26
+ 'AQ' => 'Antarctica',
27
+ 'AG' => 'Antigua and Barbuda',
28
+ 'AR' => 'Argentina',
29
+ 'AM' => 'Armenia',
30
+ 'AW' => 'Aruba',
31
+ 'AU' => 'Australia',
32
+ 'AT' => 'Austria',
33
+ 'AZ' => 'Azerbaijan',
34
+ 'BS' => 'Bahamas',
35
+ 'BH' => 'Bahrain',
36
+ 'BD' => 'Bangladesh',
37
+ 'BB' => 'Barbados',
38
+ 'BY' => 'Belarus',
39
+ 'BE' => 'Belgium',
40
+ 'BZ' => 'Belize',
41
+ 'BJ' => 'Benin',
42
+ 'BM' => 'Bermuda',
43
+ 'BT' => 'Bhutan',
44
+ 'BO' => 'Bolivia, Plurinational State of',
45
+ 'BQ' => 'Bonaire, Sint Eustatius and Saba',
46
+ 'BA' => 'Bosnia and Herzegovina',
47
+ 'BW' => 'Botswana',
48
+ 'BV' => 'Bouvet Island',
49
+ 'BR' => 'Brazil',
50
+ 'IO' => 'British Indian Ocean Territory',
51
+ 'BN' => 'Brunei Darussalam',
52
+ 'BG' => 'Bulgaria',
53
+ 'BF' => 'Burkina Faso',
54
+ 'BI' => 'Burundi',
55
+ 'CV' => 'Cabo Verde',
56
+ 'KH' => 'Cambodia',
57
+ 'CM' => 'Cameroon',
58
+ 'CA' => 'Canada',
59
+ 'KY' => 'Cayman Islands',
60
+ 'CF' => 'Central African Republic',
61
+ 'TD' => 'Chad',
62
+ 'CL' => 'Chile',
63
+ 'CN' => 'China',
64
+ 'CX' => 'Christmas Island',
65
+ 'CC' => 'Cocos (Keeling) Islands',
66
+ 'CO' => 'Colombia',
67
+ 'KM' => 'Comoros',
68
+ 'CG' => 'Congo',
69
+ 'CD' => 'Congo, Democratic Republic of the',
70
+ 'CK' => 'Cook Islands',
71
+ 'CR' => 'Costa Rica',
72
+ 'CI' => 'Côte dIvoireIvoire',
73
+ 'HR' => 'Croatia',
74
+ 'CU' => 'Cuba',
75
+ 'CW' => 'Curaçao',
76
+ 'CY' => 'Cyprus',
77
+ 'CZ' => 'Czechia',
78
+ 'DK' => 'Denmark',
79
+ 'DJ' => 'Djibouti',
80
+ 'DM' => 'Dominica',
81
+ 'DO' => 'Dominican Republic',
82
+ 'EC' => 'Ecuador',
83
+ 'EG' => 'Egypt',
84
+ 'SV' => 'El Salvador',
85
+ 'GQ' => 'Equatorial Guinea',
86
+ 'ER' => 'Eritrea',
87
+ 'EE' => 'Estonia',
88
+ 'SZ' => 'Eswatini',
89
+ 'ET' => 'Ethiopia',
90
+ 'FK' => 'Falkland Islands',
91
+ 'FO' => 'Faroe Islands',
92
+ 'FJ' => 'Fiji',
93
+ 'FI' => 'Finland',
94
+ 'FR' => 'France',
95
+ 'GF' => 'French Guiana',
96
+ 'PF' => 'French Polynesia',
97
+ 'TF' => 'French Southern Territories',
98
+ 'GA' => 'Gabon',
99
+ 'GM' => 'Gambia',
100
+ 'GE' => 'Georgia',
101
+ 'DE' => 'Germany',
102
+ 'GH' => 'Ghana',
103
+ 'GI' => 'Gibraltar',
104
+ 'GL' => 'Greenland',
105
+ 'GD' => 'Grenada',
106
+ 'GP' => 'Guadeloupe',
107
+ 'GU' => 'Guam',
108
+ 'GT' => 'Guatemala',
109
+ 'GG' => 'Guernsey',
110
+ 'GN' => 'Guinea',
111
+ 'GW' => 'Guinea-Bissau',
112
+ 'GY' => 'Guyana',
113
+ 'HT' => 'Haiti',
114
+ 'HM' => 'Heard Island and McDonald Islands',
115
+ 'VA' => 'Holy See (the)',
116
+ 'HN' => 'Honduras',
117
+ 'HK' => 'Hong Kong',
118
+ 'HU' => 'Hungary',
119
+ 'IS' => 'Iceland',
120
+ 'IN' => 'India',
121
+ 'ID' => 'Indonesia',
122
+ 'IR' => 'Iran, Islamic Republic of',
123
+ 'IQ' => 'Iraq',
124
+ 'IE' => 'Ireland',
125
+ 'IM' => 'Isle of Man',
126
+ 'IL' => 'Israel',
127
+ 'IT' => 'Italy',
128
+ 'JM' => 'Jamaica',
129
+ 'JP' => 'Japan',
130
+ 'JE' => 'Jersey',
131
+ 'JO' => 'Jordan',
132
+ 'KZ' => 'Kazakhstan',
133
+ 'KE' => 'Kenya',
134
+ 'KI' => 'Kiribati',
135
+ 'KP' => 'Korea, Democratic Peoples Republic ofs Republic of',
136
+ 'KR' => 'Korea, Republic of',
137
+ 'KW' => 'Kuwait',
138
+ 'KG' => 'Kyrgyzstan',
139
+ 'LA' => 'Lao Peoples Democratic Republics Democratic Republic',
140
+ 'LV' => 'Latvia',
141
+ 'LB' => 'Lebanon',
142
+ 'LS' => 'Lesotho',
143
+ 'LR' => 'Liberia',
144
+ 'LY' => 'Libya',
145
+ 'LI' => 'Liechtenstein',
146
+ 'LT' => 'Lithuania',
147
+ 'LU' => 'Luxembourg',
148
+ 'MO' => 'Macao',
149
+ 'MK' => 'North Macedonia',
150
+ 'MG' => 'Madagascar',
151
+ 'MW' => 'Malawi',
152
+ 'MY' => 'Malaysia',
153
+ 'MV' => 'Maldives',
154
+ 'ML' => 'Mali',
155
+ 'MT' => 'Malta',
156
+ 'MH' => 'Marshall Islands',
157
+ 'MQ' => 'Martinique',
158
+ 'MR' => 'Mauritania',
159
+ 'MU' => 'Mauritius',
160
+ 'YT' => 'Mayotte',
161
+ 'MX' => 'Mexico',
162
+ 'FM' => 'Micronesia, Federated States of',
163
+ 'MD' => 'Moldova, Republic of',
164
+ 'MC' => 'Monaco',
165
+ 'MN' => 'Mongolia',
166
+ 'ME' => 'Montenegro',
167
+ 'MS' => 'Montserrat',
168
+ 'MA' => 'Morocco',
169
+ 'MZ' => 'Mozambique',
170
+ 'MM' => 'Myanmar',
171
+ 'NA' => 'Namibia',
172
+ 'NR' => 'Nauru',
173
+ 'NP' => 'Nepal',
174
+ 'NL' => 'Netherlands',
175
+ 'NC' => 'New Caledonia',
176
+ 'NZ' => 'New Zealand',
177
+ 'NI' => 'Nicaragua',
178
+ 'NE' => 'Niger',
179
+ 'NG' => 'Nigeria',
180
+ 'NU' => 'Niue',
181
+ 'NF' => 'Norfolk Island',
182
+ 'MP' => 'Northern Mariana Islands',
183
+ 'NO' => 'Norway',
184
+ 'OM' => 'Oman',
185
+ 'PK' => 'Pakistan',
186
+ 'PW' => 'Palau',
187
+ 'PS' => 'Palestine, State of',
188
+ 'PA' => 'Panama',
189
+ 'PG' => 'Papua New Guinea',
190
+ 'PY' => 'Paraguay',
191
+ 'PE' => 'Peru',
192
+ 'PH' => 'Philippines',
193
+ 'PN' => 'Pitcairn',
194
+ 'PL' => 'Poland',
195
+ 'PT' => 'Portugal',
196
+ 'PR' => 'Puerto Rico',
197
+ 'QA' => 'Qatar',
198
+ 'RE' => 'Réunion',
199
+ 'RO' => 'Romania',
200
+ 'RU' => 'Russian Federation',
201
+ 'RW' => 'Rwanda',
202
+ 'BL' => 'Saint Barthélemy',
203
+ 'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
204
+ 'KN' => 'Saint Kitts and Nevis',
205
+ 'LC' => 'Saint Lucia',
206
+ 'MF' => 'Saint Martin (French part)',
207
+ 'PM' => 'Saint Pierre and Miquelon',
208
+ 'VC' => 'Saint Vincent and the Grenadines',
209
+ 'WS' => 'Samoa',
210
+ 'SM' => 'San Marino',
211
+ 'ST' => 'Sao Tome and Principe',
212
+ 'SA' => 'Saudi Arabia',
213
+ 'SN' => 'Senegal',
214
+ 'RS' => 'Serbia',
215
+ 'SC' => 'Seychelles',
216
+ 'SL' => 'Sierra Leone',
217
+ 'SG' => 'Singapore',
218
+ 'SX' => 'Sint Maarten (Dutch part)',
219
+ 'SK' => 'Slovakia',
220
+ 'SI' => 'Slovenia',
221
+ 'SB' => 'Solomon Islands',
222
+ 'SO' => 'Somalia',
223
+ 'ZA' => 'South Africa',
224
+ 'GS' => 'South Georgia and the South Sandwich Islands',
225
+ 'SS' => 'South Sudan',
226
+ 'ES' => 'Spain',
227
+ 'LK' => 'Sri Lanka',
228
+ 'SD' => 'Sudan',
229
+ 'SR' => 'Suriname',
230
+ 'SJ' => 'Svalbard and Jan Mayen',
231
+ 'SE' => 'Sweden',
232
+ 'CH' => 'Switzerland',
233
+ 'SY' => 'Syrian Arab Republic',
234
+ 'TW' => 'Taiwan (Province of China)',
235
+ 'TJ' => 'Tajikistan',
236
+ 'TZ' => 'Tanzania, the United Republic of',
237
+ 'TH' => 'Thailand',
238
+ 'TL' => 'Timor-Leste',
239
+ 'TG' => 'Togo',
240
+ 'TK' => 'Tokelau',
241
+ 'TO' => 'Tonga',
242
+ 'TT' => 'Trinidad and Tobago',
243
+ 'TN' => 'Tunisia',
244
+ 'TR' => 'Türkiye',
245
+ 'TM' => 'Turkmenistan',
246
+ 'TC' => 'Turks and Caicos Islands',
247
+ 'TV' => 'Tuvalu',
248
+ 'UG' => 'Uganda',
249
+ 'UA' => 'Ukraine',
250
+ 'AE' => 'United Arab Emirates',
251
+ 'GB' => 'United Kingdom',
252
+ 'US' => 'United States of America',
253
+ 'UM' => 'United States Minor Outlying Islands',
254
+ 'UY' => 'Uruguay',
255
+ 'UZ' => 'Uzbekistan',
256
+ 'VU' => 'Vanuatu',
257
+ 'VE' => 'Venezuela, Bolivarian Republic of',
258
+ 'VN' => 'Viet Nam',
259
+ 'VG' => 'Virgin Islands (British)',
260
+ 'VI' => 'Virgin Islands (U.S.)',
261
+ 'WF' => 'Wallis and Futuna',
262
+ 'EH' => 'Western Sahara',
263
+ 'YE' => 'Yemen',
264
+ 'ZM' => 'Zambia',
265
+ 'ZW' => 'Zimbabwe',
266
+ 'EL' => 'Greece',
267
+ 'XI' => 'United Kingdom (Northern Ireland)',
268
+ 'XU' => 'United Kingdom (excluding Northern Ireland)',
269
+ 'EU' => 'European Union'
270
+ }.freeze
271
+
272
+ def strict_enum?
273
+ true
274
+ end
275
+ end
276
+ end
277
+ end
@@ -61,7 +61,6 @@ module GOBL
61
61
  # Village, town, district, or city, typically inside a region.
62
62
  # @return [String]
63
63
  property :locality, String
64
- validates_presence_of :locality
65
64
 
66
65
  # @!attribute [r] region
67
66
  # Province, county, or state, inside a country.
@@ -75,8 +74,8 @@ module GOBL
75
74
 
76
75
  # @!attribute [r] country
77
76
  # ISO country code.
78
- # @return [GOBL::L10n::CountryCode]
79
- property :country, GOBL::L10n::CountryCode
77
+ # @return [GOBL::L10n::ISOCountryCode]
78
+ property :country, GOBL::L10n::ISOCountryCode
80
79
 
81
80
  # @!attribute [r] coords
82
81
  # When the postal address is not sufficient, coordinates help locate the address more precisely.
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ##
7
+
8
+ module GOBL
9
+ module Org
10
+ # DocumentRef is used to describe an existing document or a specific part of it's contents.
11
+ class DocumentRef < GOBL::Object
12
+ # The Schema ID of the GOBL DocumentRef structure
13
+ SCHEMA_ID = 'https://gobl.org/draft-0/org/document-ref'
14
+
15
+ # @!attribute [r] uuid
16
+ # Universally Unique Identifier.
17
+ # @return [String]
18
+ property :uuid, String
19
+
20
+ # @!attribute [r] type
21
+ # Type of the document referenced.
22
+ # @return [GOBL::CBC::Key]
23
+ property :type, GOBL::CBC::Key
24
+
25
+ # @!attribute [r] issue_date
26
+ # IssueDate reflects the date the document was issued.
27
+ # @return [GOBL::Cal::Date]
28
+ property :issue_date, GOBL::Cal::Date
29
+
30
+ # @!attribute [r] series
31
+ # Series the referenced document belongs to.
32
+ # @return [GOBL::CBC::Code]
33
+ property :series, GOBL::CBC::Code
34
+
35
+ # @!attribute [r] code
36
+ # Source document's code or other identifier.
37
+ # @return [GOBL::CBC::Code]
38
+ property :code, GOBL::CBC::Code
39
+ validates_presence_of :code
40
+
41
+ # @!attribute [r] line
42
+ # Line index number inside the document, if relevant.
43
+ # @return [Integer]
44
+ property :line, Integer
45
+
46
+ # @!attribute [r] identities
47
+ # List of additional codes, IDs, or SKUs which can be used to identify the document or its contents, agreed upon by the supplier and customer.
48
+ # @return [Array<GOBL::Org::Identity>]
49
+ property :identities, [GOBL::Org::Identity]
50
+
51
+ # @!attribute [r] period
52
+ # Tax period in which the referred document had an effect required by some tax regimes and formats.
53
+ # @return [GOBL::Cal::Period]
54
+ property :period, GOBL::Cal::Period
55
+
56
+ # @!attribute [r] reason
57
+ # Human readable description on why this reference is here or needs to be used.
58
+ # @return [String]
59
+ property :reason, String
60
+
61
+ # @!attribute [r] description
62
+ # Additional details about the document.
63
+ # @return [String]
64
+ property :description, String
65
+
66
+ # @!attribute [r] stamps
67
+ # Seals of approval from other organisations that may need to be listed.
68
+ # @return [Array<GOBL::Head::Stamp>]
69
+ property :stamps, [GOBL::Head::Stamp]
70
+
71
+ # @!attribute [r] url
72
+ # Link to the source document.
73
+ # @return [String]
74
+ property :url, String
75
+
76
+ # @!attribute [r] ext
77
+ # Extensions for additional codes that may be required.
78
+ # @return [GOBL::Tax::Extensions]
79
+ property :ext, GOBL::Tax::Extensions
80
+
81
+ # @!attribute [r] meta
82
+ # Meta contains additional information about the document.
83
+ # @return [GOBL::CBC::Meta]
84
+ property :meta, GOBL::CBC::Meta
85
+ end
86
+ end
87
+ end
@@ -22,6 +22,11 @@ module GOBL
22
22
  # @return [String]
23
23
  property :label, String
24
24
 
25
+ # @!attribute [r] country
26
+ # Country from which the identity was issued.
27
+ # @return [GOBL::L10n::ISOCountryCode]
28
+ property :country, GOBL::L10n::ISOCountryCode
29
+
25
30
  # @!attribute [r] key
26
31
  # Uniquely classify this identity using a key instead of a code.
27
32
  # @return [GOBL::CBC::Key]
@@ -66,8 +66,8 @@ module GOBL
66
66
 
67
67
  # @!attribute [r] origin
68
68
  # Country code of where this item was from originally.
69
- # @return [GOBL::L10n::CountryCode]
70
- property :origin, GOBL::L10n::CountryCode
69
+ # @return [GOBL::L10n::ISOCountryCode]
70
+ property :origin, GOBL::L10n::ISOCountryCode
71
71
 
72
72
  # @!attribute [r] ext
73
73
  # Extension code map for any additional regime specific codes that may be required.
@@ -31,7 +31,6 @@ module GOBL
31
31
  # Person's given or first name
32
32
  # @return [String]
33
33
  property :given, String
34
- validates_presence_of :given
35
34
 
36
35
  # @!attribute [r] middle
37
36
  # Middle names or initials
@@ -42,7 +41,6 @@ module GOBL
42
41
  # Second or Family name.
43
42
  # @return [String]
44
43
  property :surname, String
45
- validates_presence_of :surname
46
44
 
47
45
  # @!attribute [r] surname2
48
46
  # Additional second of family name.