gobl 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
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.