gobl 0.21.0 → 0.23.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/data/regimes/ae.json +173 -0
  3. data/data/regimes/at.json +56 -50
  4. data/data/regimes/be.json +56 -50
  5. data/data/regimes/br.json +135 -0
  6. data/data/regimes/ca.json +2 -1
  7. data/data/regimes/ch.json +56 -50
  8. data/data/regimes/co.json +34 -203
  9. data/data/regimes/de.json +74 -47
  10. data/data/regimes/el.json +211 -0
  11. data/data/regimes/es.json +69 -550
  12. data/data/regimes/fr.json +56 -50
  13. data/data/regimes/gb.json +60 -50
  14. data/data/regimes/in.json +128 -0
  15. data/data/regimes/it.json +48 -1311
  16. data/data/regimes/mx.json +39 -639
  17. data/data/regimes/nl.json +56 -50
  18. data/data/regimes/pl.json +101 -97
  19. data/data/regimes/pt.json +1459 -227
  20. data/data/regimes/us.json +55 -50
  21. data/lib/generated/gobl/bill/charge.rb +34 -19
  22. data/lib/generated/gobl/bill/correction_options.rb +8 -3
  23. data/lib/generated/gobl/bill/delivery.rb +184 -16
  24. data/lib/generated/gobl/bill/delivery_details.rb +41 -0
  25. data/lib/generated/gobl/bill/discount.rb +36 -13
  26. data/lib/generated/gobl/bill/invoice.rb +88 -41
  27. data/lib/generated/gobl/bill/line.rb +39 -4
  28. data/lib/generated/gobl/bill/line_charge.rb +56 -11
  29. data/lib/generated/gobl/bill/line_discount.rb +45 -12
  30. data/lib/generated/gobl/bill/order.rb +208 -0
  31. data/lib/generated/gobl/bill/ordering.rb +40 -35
  32. data/lib/generated/gobl/bill/payment.rb +155 -15
  33. data/lib/generated/gobl/bill/payment_details.rb +36 -0
  34. data/lib/generated/gobl/bill/payment_line.rb +77 -0
  35. data/lib/generated/gobl/bill/sub_line.rb +83 -0
  36. data/lib/generated/gobl/bill/tax.rb +19 -5
  37. data/lib/generated/gobl/bill/totals.rb +18 -18
  38. data/lib/generated/gobl/bill/tracking.rb +26 -0
  39. data/lib/generated/gobl/cal/date_time.rb +1 -1
  40. data/lib/generated/gobl/cal/time.rb +16 -0
  41. data/lib/generated/gobl/cbc/code.rb +2 -1
  42. data/lib/generated/gobl/cbc/{key_definition.rb → definition.rb} +18 -14
  43. data/lib/generated/gobl/cbc/source.rb +37 -0
  44. data/lib/generated/gobl/currency/code.rb +16 -16
  45. data/lib/generated/gobl/currency/exchange_rate.rb +10 -5
  46. data/lib/generated/gobl/head/header.rb +5 -5
  47. data/lib/generated/gobl/head/link.rb +43 -0
  48. data/lib/generated/gobl/l10n/{country_code.rb → iso_country_code.rb} +3 -3
  49. data/lib/generated/gobl/l10n/tax_country_code.rb +277 -0
  50. data/lib/generated/gobl/org/address.rb +11 -7
  51. data/lib/generated/gobl/org/attachment.rb +62 -0
  52. data/lib/generated/gobl/org/document_ref.rb +102 -0
  53. data/lib/generated/gobl/org/identity.rb +11 -1
  54. data/lib/generated/gobl/org/inbox.rb +22 -14
  55. data/lib/generated/gobl/org/item.rb +4 -5
  56. data/lib/generated/gobl/org/name.rb +0 -2
  57. data/lib/generated/gobl/{cbc → org}/note.rb +16 -5
  58. data/lib/generated/gobl/org/party.rb +9 -6
  59. data/lib/generated/gobl/org/person.rb +5 -0
  60. data/lib/generated/gobl/org/registration.rb +4 -0
  61. data/lib/generated/gobl/org/telephone.rb +1 -1
  62. data/lib/generated/gobl/org/unit.rb +2 -1
  63. data/lib/generated/gobl/pay/advance.rb +8 -1
  64. data/lib/generated/gobl/pay/card.rb +5 -2
  65. data/lib/generated/gobl/pay/instructions.rb +10 -3
  66. data/lib/generated/gobl/pay/terms.rb +7 -2
  67. data/lib/generated/gobl/regimes/mx/food_vouchers_line.rb +5 -0
  68. data/lib/generated/gobl/regimes/mx/fuel_account_line.rb +5 -0
  69. data/lib/generated/gobl/tax/addon_def.rb +76 -0
  70. data/lib/generated/gobl/tax/catalogue_def.rb +39 -0
  71. data/lib/generated/gobl/tax/{category.rb → category_def.rb} +14 -14
  72. data/lib/generated/gobl/tax/combo.rb +5 -0
  73. data/lib/generated/gobl/tax/correction_definition.rb +6 -1
  74. data/lib/generated/gobl/tax/correction_set.rb +13 -0
  75. data/lib/generated/gobl/tax/identity.rb +8 -3
  76. data/lib/generated/gobl/tax/{rate.rb → rate_def.rb} +11 -16
  77. data/lib/generated/gobl/tax/rate_total.rb +5 -0
  78. data/lib/generated/gobl/tax/{rate_value.rb → rate_value_def.rb} +4 -4
  79. data/lib/generated/gobl/tax/{regime.rb → regime_def.rb} +38 -33
  80. data/lib/generated/gobl/tax/scenario.rb +22 -12
  81. data/lib/generated/gobl/tax/scenario_note.rb +42 -0
  82. data/lib/generated/gobl/tax/scenario_set.rb +1 -1
  83. data/lib/generated/gobl/tax/tag_set.rb +28 -0
  84. data/lib/generated/gobl/tax/total.rb +6 -1
  85. data/lib/gobl/extensions/bill/invoice_helper.rb +6 -36
  86. data/lib/gobl/extensions/envelope_helper.rb +4 -0
  87. data/lib/gobl/version.rb +1 -1
  88. data/lib/gobl.rb +3 -2
  89. metadata +36 -21
  90. data/lib/generated/gobl/bill/document_reference.rb +0 -36
  91. data/lib/generated/gobl/bill/outlay.rb +0 -58
  92. data/lib/generated/gobl/bill/preceding.rb +0 -78
  93. data/lib/generated/gobl/cbc/code_definition.rb +0 -37
  94. data/lib/generated/gobl/tax/source.rb +0 -27
  95. data/lib/gobl/extensions/bill/scenario_summary.rb +0 -25
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luismi Cavalle
8
8
  - Sam Lown
9
9
  - David Lilue
10
10
  - Juanjo Molinero
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2024-07-18 00:00:00.000000000 Z
14
+ date: 2025-06-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport
@@ -55,23 +55,27 @@ dependencies:
55
55
  - - ">="
56
56
  - !ruby/object:Gem::Version
57
57
  version: '1'
58
- description:
59
- email:
58
+ description:
59
+ email:
60
60
  executables: []
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
64
64
  - README.md
65
+ - data/regimes/ae.json
65
66
  - data/regimes/at.json
66
67
  - data/regimes/be.json
68
+ - data/regimes/br.json
67
69
  - data/regimes/ca.json
68
70
  - data/regimes/ch.json
69
71
  - data/regimes/co.json
70
72
  - data/regimes/de.json
73
+ - data/regimes/el.json
71
74
  - data/regimes/es.json
72
75
  - data/regimes/fr.json
73
76
  - data/regimes/gb.json
74
77
  - data/regimes/gr.json
78
+ - data/regimes/in.json
75
79
  - data/regimes/it.json
76
80
  - data/regimes/mx.json
77
81
  - data/regimes/nl.json
@@ -81,28 +85,31 @@ files:
81
85
  - lib/generated/gobl/bill/charge.rb
82
86
  - lib/generated/gobl/bill/correction_options.rb
83
87
  - lib/generated/gobl/bill/delivery.rb
88
+ - lib/generated/gobl/bill/delivery_details.rb
84
89
  - lib/generated/gobl/bill/discount.rb
85
- - lib/generated/gobl/bill/document_reference.rb
86
90
  - lib/generated/gobl/bill/invoice.rb
87
91
  - lib/generated/gobl/bill/line.rb
88
92
  - lib/generated/gobl/bill/line_charge.rb
89
93
  - lib/generated/gobl/bill/line_discount.rb
94
+ - lib/generated/gobl/bill/order.rb
90
95
  - lib/generated/gobl/bill/ordering.rb
91
- - lib/generated/gobl/bill/outlay.rb
92
96
  - lib/generated/gobl/bill/payment.rb
93
- - lib/generated/gobl/bill/preceding.rb
97
+ - lib/generated/gobl/bill/payment_details.rb
98
+ - lib/generated/gobl/bill/payment_line.rb
99
+ - lib/generated/gobl/bill/sub_line.rb
94
100
  - lib/generated/gobl/bill/tax.rb
95
101
  - lib/generated/gobl/bill/totals.rb
102
+ - lib/generated/gobl/bill/tracking.rb
96
103
  - lib/generated/gobl/cal/date.rb
97
104
  - lib/generated/gobl/cal/date_time.rb
98
105
  - lib/generated/gobl/cal/period.rb
106
+ - lib/generated/gobl/cal/time.rb
99
107
  - lib/generated/gobl/cbc/code.rb
100
- - lib/generated/gobl/cbc/code_definition.rb
101
108
  - lib/generated/gobl/cbc/code_map.rb
109
+ - lib/generated/gobl/cbc/definition.rb
102
110
  - lib/generated/gobl/cbc/key.rb
103
- - lib/generated/gobl/cbc/key_definition.rb
104
111
  - lib/generated/gobl/cbc/meta.rb
105
- - lib/generated/gobl/cbc/note.rb
112
+ - lib/generated/gobl/cbc/source.rb
106
113
  - lib/generated/gobl/currency/amount.rb
107
114
  - lib/generated/gobl/currency/code.rb
108
115
  - lib/generated/gobl/currency/exchange_rate.rb
@@ -110,19 +117,24 @@ files:
110
117
  - lib/generated/gobl/dsig/signature.rb
111
118
  - lib/generated/gobl/envelope.rb
112
119
  - lib/generated/gobl/head/header.rb
120
+ - lib/generated/gobl/head/link.rb
113
121
  - lib/generated/gobl/head/stamp.rb
114
122
  - lib/generated/gobl/i18n/string.rb
115
123
  - lib/generated/gobl/l10n/code.rb
116
- - lib/generated/gobl/l10n/country_code.rb
124
+ - lib/generated/gobl/l10n/iso_country_code.rb
125
+ - lib/generated/gobl/l10n/tax_country_code.rb
117
126
  - lib/generated/gobl/note/message.rb
118
127
  - lib/generated/gobl/org/address.rb
128
+ - lib/generated/gobl/org/attachment.rb
119
129
  - lib/generated/gobl/org/coordinates.rb
130
+ - lib/generated/gobl/org/document_ref.rb
120
131
  - lib/generated/gobl/org/email.rb
121
132
  - lib/generated/gobl/org/identity.rb
122
133
  - lib/generated/gobl/org/image.rb
123
134
  - lib/generated/gobl/org/inbox.rb
124
135
  - lib/generated/gobl/org/item.rb
125
136
  - lib/generated/gobl/org/name.rb
137
+ - lib/generated/gobl/org/note.rb
126
138
  - lib/generated/gobl/org/party.rb
127
139
  - lib/generated/gobl/org/person.rb
128
140
  - lib/generated/gobl/org/registration.rb
@@ -145,27 +157,30 @@ files:
145
157
  - lib/generated/gobl/regimes/mx/fuel_account_line.rb
146
158
  - lib/generated/gobl/regimes/mx/fuel_account_tax.rb
147
159
  - lib/generated/gobl/schema/object.rb
148
- - lib/generated/gobl/tax/category.rb
160
+ - lib/generated/gobl/tax/addon_def.rb
161
+ - lib/generated/gobl/tax/catalogue_def.rb
162
+ - lib/generated/gobl/tax/category_def.rb
149
163
  - lib/generated/gobl/tax/category_total.rb
150
164
  - lib/generated/gobl/tax/combo.rb
151
165
  - lib/generated/gobl/tax/correction_definition.rb
166
+ - lib/generated/gobl/tax/correction_set.rb
152
167
  - lib/generated/gobl/tax/extensions.rb
153
168
  - lib/generated/gobl/tax/identity.rb
154
- - lib/generated/gobl/tax/rate.rb
169
+ - lib/generated/gobl/tax/rate_def.rb
155
170
  - lib/generated/gobl/tax/rate_total.rb
156
171
  - lib/generated/gobl/tax/rate_total_surcharge.rb
157
- - lib/generated/gobl/tax/rate_value.rb
158
- - lib/generated/gobl/tax/regime.rb
172
+ - lib/generated/gobl/tax/rate_value_def.rb
173
+ - lib/generated/gobl/tax/regime_def.rb
159
174
  - lib/generated/gobl/tax/scenario.rb
175
+ - lib/generated/gobl/tax/scenario_note.rb
160
176
  - lib/generated/gobl/tax/scenario_set.rb
161
177
  - lib/generated/gobl/tax/set.rb
162
- - lib/generated/gobl/tax/source.rb
178
+ - lib/generated/gobl/tax/tag_set.rb
163
179
  - lib/generated/gobl/tax/total.rb
164
180
  - lib/gobl.rb
165
181
  - lib/gobl/config.rb
166
182
  - lib/gobl/enum.rb
167
183
  - lib/gobl/extensions/bill/invoice_helper.rb
168
- - lib/gobl/extensions/bill/scenario_summary.rb
169
184
  - lib/gobl/extensions/envelope_helper.rb
170
185
  - lib/gobl/extensions/i18n/value_keys_helper.rb
171
186
  - lib/gobl/extensions/schema/object_helper.rb
@@ -185,7 +200,7 @@ licenses:
185
200
  - Apache-2.0
186
201
  metadata:
187
202
  rubygems_mfa_required: 'true'
188
- post_install_message:
203
+ post_install_message:
189
204
  rdoc_options: []
190
205
  require_paths:
191
206
  - lib
@@ -200,8 +215,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
215
  - !ruby/object:Gem::Version
201
216
  version: 3.1.4
202
217
  requirements: []
203
- rubygems_version: 3.4.20
204
- signing_key:
218
+ rubygems_version: 3.4.5
219
+ signing_key:
205
220
  specification_version: 4
206
221
  summary: Minimalist ruby version of the GOBL library
207
222
  test_files: []
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- ## DO NOT EDIT - This file was generated automatically.
5
- ##
6
- ##
7
-
8
- module GOBL
9
- module Bill
10
- # DocumentReference provides a link to a existing document.
11
- class DocumentReference < GOBL::Object
12
- # The Schema ID of the GOBL DocumentReference structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/bill/invoice#/$defs/DocumentReference'
14
-
15
- # @!attribute [r] uuid
16
- # Unique ID copied from the source document.
17
- # @return [String]
18
- property :uuid, String
19
-
20
- # @!attribute [r] series
21
- # Series the reference document belongs to.
22
- # @return [String]
23
- property :series, String
24
-
25
- # @!attribute [r] code
26
- # Source document's code or other identifier.
27
- # @return [String]
28
- property :code, String
29
-
30
- # @!attribute [r] url
31
- # Link to the source document.
32
- # @return [String]
33
- property :url, String
34
- end
35
- end
36
- end
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- ## DO NOT EDIT - This file was generated automatically.
5
- ##
6
- ##
7
-
8
- module GOBL
9
- module Bill
10
- # Outlay represents a reimbursable expense that was paid for by the supplier and invoiced separately by the third party directly to the customer.
11
- class Outlay < GOBL::Object
12
- # The Schema ID of the GOBL Outlay structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/bill/invoice#/$defs/Outlay'
14
-
15
- # @!attribute [r] uuid
16
- # Universally Unique Identifier.
17
- # @return [String]
18
- property :uuid, String
19
-
20
- # @!attribute [r] i
21
- # Outlay number index inside the invoice for ordering (calculated).
22
- # @return [Integer]
23
- property :i, Integer
24
-
25
- # @!attribute [r] date
26
- # When was the outlay made.
27
- # @return [GOBL::Cal::Date]
28
- property :date, GOBL::Cal::Date
29
-
30
- # @!attribute [r] code
31
- # Invoice number or other reference detail used to identify the outlay.
32
- # @return [String]
33
- property :code, String
34
-
35
- # @!attribute [r] series
36
- # Series of the outlay invoice.
37
- # @return [String]
38
- property :series, String
39
-
40
- # @!attribute [r] description
41
- # Details on what the outlay was.
42
- # @return [String]
43
- property :description, String
44
- validates_presence_of :description
45
-
46
- # @!attribute [r] supplier
47
- # Who was the supplier of the outlay
48
- # @return [GOBL::Org::Party]
49
- property :supplier, GOBL::Org::Party
50
-
51
- # @!attribute [r] amount
52
- # Amount paid by the supplier.
53
- # @return [GOBL::Num::Amount]
54
- property :amount, GOBL::Num::Amount
55
- validates_presence_of :amount
56
- end
57
- end
58
- end
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- ## DO NOT EDIT - This file was generated automatically.
5
- ##
6
- ##
7
-
8
- module GOBL
9
- module Bill
10
- # Preceding allows for information to be provided about a previous invoice that this one will replace, subtract from, or add to.
11
- class Preceding < GOBL::Object
12
- # The Schema ID of the GOBL Preceding structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/bill/invoice#/$defs/Preceding'
14
-
15
- # @!attribute [r] uuid
16
- # Preceding document's UUID.
17
- # @return [String]
18
- property :uuid, String
19
-
20
- # Enumeration of possible values for {#type} with their corresponding descriptions
21
- TYPE_ENUM = {
22
- 'standard' => 'A regular commercial invoice document between a supplier and customer.',
23
- 'proforma' => 'For a clients validation before sending a final invoice.',
24
- 'corrective' => 'Corrected invoice that completely *replaces* the preceding document.',
25
- 'credit-note' => 'Reflects a refund either partial or complete of the preceding document. A
26
- credit note effectively *extends* the previous document.',
27
- 'debit-note' => 'An additional set of charges to be added to the preceding document.'
28
- }.freeze
29
-
30
- # @!attribute [r] type
31
- # Type of the preceding document
32
- # @return [GOBL::CBC::Key]
33
- property :type, GOBL::CBC::Key
34
- validates_inclusion_of :type, in: TYPE_ENUM.keys, allow_blank: true
35
-
36
- # @!attribute [r] series
37
- # Series identification code
38
- # @return [String]
39
- property :series, String
40
-
41
- # @!attribute [r] code
42
- # Code of the previous document.
43
- # @return [String]
44
- property :code, String
45
- validates_presence_of :code
46
-
47
- # @!attribute [r] issue_date
48
- # The issue date of the previous document.
49
- # @return [GOBL::Cal::Date]
50
- property :issue_date, GOBL::Cal::Date
51
-
52
- # @!attribute [r] reason
53
- # Human readable description on why the preceding invoice is being replaced.
54
- # @return [String]
55
- property :reason, String
56
-
57
- # @!attribute [r] stamps
58
- # Seals of approval from other organisations that may need to be listed.
59
- # @return [Array<GOBL::Head::Stamp>]
60
- property :stamps, [GOBL::Head::Stamp]
61
-
62
- # @!attribute [r] period
63
- # Tax period in which the previous invoice had an effect required by some tax regimes and formats.
64
- # @return [GOBL::Cal::Period]
65
- property :period, GOBL::Cal::Period
66
-
67
- # @!attribute [r] ext
68
- # Extensions for region specific requirements.
69
- # @return [GOBL::Tax::Extensions]
70
- property :ext, GOBL::Tax::Extensions
71
-
72
- # @!attribute [r] meta
73
- # Additional semi-structured data that may be useful in specific regions
74
- # @return [GOBL::CBC::Meta]
75
- property :meta, GOBL::CBC::Meta
76
- end
77
- end
78
- end
@@ -1,37 +0,0 @@
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
- # CodeDefinition describes a specific code and how it maps to a human name and description if appropriate.
11
- class CodeDefinition < GOBL::Object
12
- # The Schema ID of the GOBL CodeDefinition structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/cbc/code-definition'
14
-
15
- # @!attribute [r] code
16
- # Code for which the definition is for.
17
- # @return [GOBL::CBC::Code]
18
- property :code, GOBL::CBC::Code
19
- validates_presence_of :code
20
-
21
- # @!attribute [r] name
22
- # Short name for the code, 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 code 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 code.
33
- # @return [GOBL::CBC::Meta]
34
- property :meta, GOBL::CBC::Meta
35
- end
36
- end
37
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- ## DO NOT EDIT - This file was generated automatically.
5
- ##
6
- ##
7
-
8
- module GOBL
9
- module Tax
10
- # Source describes where the information for the taxes comes from.
11
- class Source < GOBL::Object
12
- # The Schema ID of the GOBL Source structure
13
- SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/Source'
14
-
15
- # @!attribute [r] title
16
- # Title of the linked source to help distinguish between this and other links.
17
- # @return [GOBL::I18n::String]
18
- property :title, GOBL::I18n::String
19
-
20
- # @!attribute [r] url
21
- # URL for the website.
22
- # @return [String]
23
- property :url, String
24
- validates_presence_of :url
25
- end
26
- end
27
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module GOBL
4
- module Extensions
5
- module Bill
6
- # Aggregates the data of collection of scenarios
7
- class ScenarioSummary
8
- def initialize(scenarios)
9
- @scenarios = scenarios
10
- end
11
-
12
- # Returns the aggregated codes of the scenarios
13
- def codes
14
- scenarios.inject({}) do |codes, scenario|
15
- codes.merge(scenario.codes.to_h)
16
- end
17
- end
18
-
19
- private
20
-
21
- attr_reader :scenarios
22
- end
23
- end
24
- end
25
- end