gobl 0.8.0 → 0.10.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/data/regimes/co.json +55 -1
  3. data/data/regimes/es.json +570 -64
  4. data/data/regimes/it.json +1182 -0
  5. data/lib/gobl/bill/charge.rb +1 -1
  6. data/lib/gobl/bill/delivery.rb +1 -1
  7. data/lib/gobl/bill/discount.rb +1 -1
  8. data/lib/gobl/bill/document_reference.rb +1 -1
  9. data/lib/gobl/bill/invoice.rb +19 -8
  10. data/lib/gobl/bill/line.rb +3 -3
  11. data/lib/gobl/bill/line_charge.rb +1 -1
  12. data/lib/gobl/bill/line_discount.rb +1 -1
  13. data/lib/gobl/bill/ordering.rb +1 -1
  14. data/lib/gobl/bill/outlay.rb +3 -3
  15. data/lib/gobl/bill/payment.rb +1 -1
  16. data/lib/gobl/bill/preceding.rb +23 -23
  17. data/lib/gobl/bill/tax.rb +4 -4
  18. data/lib/gobl/bill/totals.rb +5 -5
  19. data/lib/gobl/cal/date.rb +2 -2
  20. data/lib/gobl/cal/period.rb +3 -3
  21. data/lib/gobl/cbc/code.rb +3 -3
  22. data/lib/gobl/cbc/key.rb +2 -2
  23. data/lib/gobl/cbc/meta.rb +1 -1
  24. data/lib/gobl/cbc/note.rb +6 -6
  25. data/lib/gobl/cbc/stamp.rb +3 -3
  26. data/lib/gobl/currency/code.rb +4 -3
  27. data/lib/gobl/currency/exchange_rate.rb +3 -3
  28. data/lib/gobl/document.rb +5 -2
  29. data/lib/gobl/dsig/digest.rb +3 -3
  30. data/lib/gobl/dsig/signature.rb +2 -2
  31. data/lib/gobl/enum.rb +9 -67
  32. data/lib/gobl/envelope.rb +5 -5
  33. data/lib/gobl/header.rb +4 -4
  34. data/lib/gobl/i18n/string.rb +1 -1
  35. data/lib/gobl/l10n/code.rb +2 -2
  36. data/lib/gobl/l10n/country_code.rb +4 -3
  37. data/lib/gobl/note/message.rb +4 -4
  38. data/lib/gobl/org/address.rb +2 -2
  39. data/lib/gobl/org/coordinates.rb +1 -1
  40. data/lib/gobl/org/email.rb +2 -2
  41. data/lib/gobl/org/identity.rb +38 -0
  42. data/lib/gobl/org/image.rb +1 -1
  43. data/lib/gobl/org/inbox.rb +3 -3
  44. data/lib/gobl/org/item.rb +10 -10
  45. data/lib/gobl/org/name.rb +3 -3
  46. data/lib/gobl/org/party.rb +7 -7
  47. data/lib/gobl/org/person.rb +2 -7
  48. data/lib/gobl/org/registration.rb +1 -1
  49. data/lib/gobl/org/telephone.rb +2 -2
  50. data/lib/gobl/org/unit.rb +8 -3
  51. data/lib/gobl/org/website.rb +2 -2
  52. data/lib/gobl/pay/advance.rb +3 -3
  53. data/lib/gobl/pay/card.rb +3 -3
  54. data/lib/gobl/pay/credit_transfer.rb +1 -1
  55. data/lib/gobl/pay/direct_debit.rb +1 -1
  56. data/lib/gobl/pay/due_date.rb +3 -3
  57. data/lib/gobl/pay/instructions.rb +19 -4
  58. data/lib/gobl/pay/online.rb +2 -2
  59. data/lib/gobl/pay/terms.rb +19 -4
  60. data/lib/gobl/tax/category.rb +14 -4
  61. data/lib/gobl/tax/category_total.rb +5 -5
  62. data/lib/gobl/tax/combo.rb +7 -2
  63. data/lib/gobl/tax/identity.rb +16 -6
  64. data/lib/gobl/tax/key_definition.rb +38 -0
  65. data/lib/gobl/tax/preceding_definitions.rb +27 -0
  66. data/lib/gobl/tax/rate.rb +11 -4
  67. data/lib/gobl/tax/rate_total.rb +4 -4
  68. data/lib/gobl/tax/rate_total_surcharge.rb +3 -3
  69. data/lib/gobl/tax/rate_value.rb +2 -2
  70. data/lib/gobl/tax/regime.rb +19 -9
  71. data/lib/gobl/tax/scenario.rb +37 -0
  72. data/lib/gobl/tax/scenario_set.rb +29 -0
  73. data/lib/gobl/tax/set.rb +1 -1
  74. data/lib/gobl/tax/tag.rb +33 -0
  75. data/lib/gobl/tax/total.rb +2 -2
  76. data/lib/gobl/tax/zone.rb +2 -2
  77. data/lib/gobl/uuid/uuid.rb +2 -2
  78. data/lib/gobl/version.rb +1 -1
  79. metadata +10 -11
  80. data/lib/gobl/bill/invoice_type.rb +0 -32
  81. data/lib/gobl/cbc/note_key.rb +0 -50
  82. data/lib/gobl/org/item_code.rb +0 -28
  83. data/lib/gobl/pay/method_key.rb +0 -32
  84. data/lib/gobl/pay/term_key.rb +0 -35
  85. data/lib/gobl/tax/scheme.rb +0 -44
  86. data/lib/gobl/tax/source_key.rb +0 -30
  87. data/lib/gobl/value.rb +0 -77
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -17,7 +17,7 @@ module GOBL
17
17
  # When the payment is due.
18
18
  # @return [GOBL::Cal::Date]
19
19
  property :date, GOBL::Cal::Date
20
- validates :date, presence: true
20
+ validates_presence_of :date
21
21
 
22
22
  # @!attribute [r] notes
23
23
  # Other details to take into account for the due date.
@@ -28,7 +28,7 @@ module GOBL
28
28
  # How much needs to be paid by the date.
29
29
  # @return [GOBL::Num::Amount]
30
30
  property :amount, GOBL::Num::Amount
31
- validates :amount, presence: true
31
+ validates_presence_of :amount
32
32
 
33
33
  # @!attribute [r] percent
34
34
  # Percentage of the total that should be paid by the date.
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -13,11 +13,26 @@ module GOBL
13
13
  # The Schema ID of the GOBL Instructions structure
14
14
  SCHEMA_ID = 'https://gobl.org/draft-0/pay/instructions'
15
15
 
16
+ # Enumeration of possible values for {#key} with their corresponding descriptions
17
+ KEY_ENUM = {
18
+ 'any' => 'Any method available, no preference',
19
+ 'card' => 'Credit or debit card',
20
+ 'credit-transfer' => 'Sender initiated bank or wire transfer',
21
+ 'debit-transfer' => 'Receiver initiated bank or wire transfer',
22
+ 'cash' => 'Cash',
23
+ 'cheque' => 'Cheque',
24
+ 'credit' => 'Credit',
25
+ 'bank-draft' => 'Bankers Draft or Bank Cheque',
26
+ 'direct-debit' => 'Direct debit',
27
+ 'online' => 'Online or web payment'
28
+ }.freeze
29
+
16
30
  # @!attribute [r] key
17
31
  # How payment is expected or has been arranged to be collected
18
- # @return [MethodKey]
19
- property :key, MethodKey
20
- validates :key, presence: true
32
+ # @return [GOBL::CBC::Key]
33
+ property :key, GOBL::CBC::Key
34
+ validates_presence_of :key
35
+ validates_inclusion_of :key, in: KEY_ENUM.keys
21
36
 
22
37
  # @!attribute [r] detail
23
38
  # Optional text description of the payment method
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -22,7 +22,7 @@ module GOBL
22
22
  # Full URL to be used for payment.
23
23
  # @return [String]
24
24
  property :addr, String
25
- validates :addr, presence: true
25
+ validates_presence_of :addr
26
26
  end
27
27
  end
28
28
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -13,11 +13,26 @@ module GOBL
13
13
  # The Schema ID of the GOBL Terms structure
14
14
  SCHEMA_ID = 'https://gobl.org/draft-0/pay/terms'
15
15
 
16
+ # Enumeration of possible values for {#key} with their corresponding descriptions
17
+ KEY_ENUM = {
18
+ '' => 'Not yet defined',
19
+ 'end-of-month' => 'End of month',
20
+ 'due-date' => 'Due on a specific date',
21
+ 'deferred' => 'Deferred until after the due date',
22
+ 'proximo' => 'Month after the present',
23
+ 'instant' => 'On receipt of invoice',
24
+ 'elective' => 'Chosen by the buyer',
25
+ 'pending' => 'Seller to advise buyer in separate transaction',
26
+ 'advance' => 'Payment made in advance',
27
+ 'delivery' => 'Payment on Delivery'
28
+ }.freeze
29
+
16
30
  # @!attribute [r] key
17
31
  # Type of terms to be applied.
18
- # @return [TermKey]
19
- property :key, TermKey
20
- validates :key, presence: true
32
+ # @return [GOBL::CBC::Key]
33
+ property :key, GOBL::CBC::Key
34
+ validates_presence_of :key
35
+ validates_inclusion_of :key, in: KEY_ENUM.keys
21
36
 
22
37
  # @!attribute [r] detail
23
38
  # Text detail of the chosen payment terms.
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -16,12 +16,12 @@ module GOBL
16
16
  # @!attribute [r] code
17
17
  # @return [GOBL::CBC::Code]
18
18
  property :code, GOBL::CBC::Code
19
- validates :code, presence: true
19
+ validates_presence_of :code
20
20
 
21
21
  # @!attribute [r] name
22
22
  # @return [GOBL::I18n::String]
23
23
  property :name, GOBL::I18n::String
24
- validates :name, presence: true
24
+ validates_presence_of :name
25
25
 
26
26
  # @!attribute [r] desc
27
27
  # @return [GOBL::I18n::String]
@@ -36,7 +36,17 @@ module GOBL
36
36
  # Specific tax definitions inside this category.
37
37
  # @return [Array<Rate>]
38
38
  property :rates, [Rate]
39
- validates :rates, presence: true
39
+ validates_presence_of :rates
40
+
41
+ # @!attribute [r] tags
42
+ # Tags contains a set of tag definitions that can be applied for this tax category.
43
+ # @return [Array<Tag>]
44
+ property :tags, [Tag]
45
+
46
+ # @!attribute [r] meta
47
+ # Meta contains additional information about the category that is relevant for local frequently used formats.
48
+ # @return [GOBL::CBC::Meta]
49
+ property :meta, GOBL::CBC::Meta
40
50
  end
41
51
  end
42
52
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -16,7 +16,7 @@ module GOBL
16
16
  # @!attribute [r] code
17
17
  # @return [GOBL::CBC::Code]
18
18
  property :code, GOBL::CBC::Code
19
- validates :code, presence: true
19
+ validates_presence_of :code
20
20
 
21
21
  # @!attribute [r] retained
22
22
  # @return [Boolean]
@@ -25,17 +25,17 @@ module GOBL
25
25
  # @!attribute [r] rates
26
26
  # @return [Array<RateTotal>]
27
27
  property :rates, [RateTotal]
28
- validates :rates, presence: true
28
+ validates_presence_of :rates
29
29
 
30
30
  # @!attribute [r] base
31
31
  # @return [GOBL::Num::Amount]
32
32
  property :base, GOBL::Num::Amount
33
- validates :base, presence: true
33
+ validates_presence_of :base
34
34
 
35
35
  # @!attribute [r] amount
36
36
  # @return [GOBL::Num::Amount]
37
37
  property :amount, GOBL::Num::Amount
38
- validates :amount, presence: true
38
+ validates_presence_of :amount
39
39
 
40
40
  # @!attribute [r] surcharge
41
41
  # @return [GOBL::Num::Amount]
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -17,7 +17,7 @@ module GOBL
17
17
  # Tax category code from those available inside a region.
18
18
  # @return [GOBL::CBC::Code]
19
19
  property :cat, GOBL::CBC::Code
20
- validates :cat, presence: true
20
+ validates_presence_of :cat
21
21
 
22
22
  # @!attribute [r] rate
23
23
  # Rate within a category to apply.
@@ -33,6 +33,11 @@ module GOBL
33
33
  # Some countries require an additional surcharge (calculated if rate present).
34
34
  # @return [GOBL::Num::Percentage]
35
35
  property :surcharge, GOBL::Num::Percentage
36
+
37
+ # @!attribute [r] tags
38
+ # Additional data may be required in some regimes, the tags property helps reference them.
39
+ # @return [Array<GOBL::CBC::Key>]
40
+ property :tags, [GOBL::CBC::Key]
36
41
  end
37
42
  end
38
43
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -22,22 +22,32 @@ module GOBL
22
22
  # ISO country code for Where the tax identity was issued.
23
23
  # @return [GOBL::L10n::CountryCode]
24
24
  property :country, GOBL::L10n::CountryCode
25
- validates :country, presence: true
25
+ validates_presence_of :country
26
26
 
27
27
  # @!attribute [r] zone
28
28
  # Where inside the country the tax identity holder is based for tax purposes like a village, town, district, city, county, state or province. For some areas, this could be a regular post or zip code. See the regime packages for specific validation rules.
29
29
  # @return [GOBL::L10n::Code]
30
30
  property :zone, GOBL::L10n::Code
31
31
 
32
+ # Enumeration of possible values for {#source} with their corresponding descriptions
33
+ SOURCE_ENUM = {
34
+ 'tax-agency' => 'Sourced directly from a tax agency',
35
+ 'passport' => 'A passport document',
36
+ 'national' => 'National ID Card or similar',
37
+ 'permit' => 'Residential or similar permit',
38
+ 'other' => 'An other type of source not listed'
39
+ }.freeze
40
+
32
41
  # @!attribute [r] source
33
42
  # What is the source document of the tax identity.
34
- # @return [SourceKey]
35
- property :source, SourceKey
43
+ # @return [GOBL::CBC::Key]
44
+ property :source, GOBL::CBC::Key
45
+ validates_inclusion_of :source, in: SOURCE_ENUM.keys, allow_blank: true
36
46
 
37
47
  # @!attribute [r] code
38
48
  # Normalized code shown on the original identity document.
39
- # @return [String]
40
- property :code, String
49
+ # @return [GOBL::CBC::Code]
50
+ property :code, GOBL::CBC::Code
41
51
 
42
52
  # @!attribute [r] meta
43
53
  # Additional details that may be required.
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ## Generated with GOBL v0.38.0
7
+ ##
8
+
9
+ module GOBL
10
+ module Tax
11
+ # KeyDefinition defines properties of a key that is specific for a regime.
12
+ class KeyDefinition < GOBL::Object
13
+ # The Schema ID of the GOBL KeyDefinition structure
14
+ SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/KeyDefinition'
15
+
16
+ # @!attribute [r] key
17
+ # Actual key value.
18
+ # @return [GOBL::CBC::Key]
19
+ property :key, GOBL::CBC::Key
20
+ validates_presence_of :key
21
+
22
+ # @!attribute [r] name
23
+ # Short name for the key, if relevant.
24
+ # @return [GOBL::I18n::String]
25
+ property :name, GOBL::I18n::String
26
+
27
+ # @!attribute [r] desc
28
+ # Description offering more details about when the key should be used.
29
+ # @return [GOBL::I18n::String]
30
+ property :desc, GOBL::I18n::String
31
+
32
+ # @!attribute [r] meta
33
+ # Any additional data that might be relevant in some regimes?
34
+ # @return [GOBL::CBC::Meta]
35
+ property :meta, GOBL::CBC::Meta
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ## Generated with GOBL v0.38.0
7
+ ##
8
+
9
+ module GOBL
10
+ module Tax
11
+ # PrecedingDefinitions contains details about what can be defined in Invoice preceding document data.
12
+ class PrecedingDefinitions < GOBL::Object
13
+ # The Schema ID of the GOBL PrecedingDefinitions structure
14
+ SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/PrecedingDefinitions'
15
+
16
+ # @!attribute [r] corrections
17
+ # Corrections contains a list of all the keys that can be used to identify a correction.
18
+ # @return [Array<KeyDefinition>]
19
+ property :corrections, [KeyDefinition]
20
+
21
+ # @!attribute [r] correction_methods
22
+ # CorrectionMethods describe the methods used to correct an invoice.
23
+ # @return [Array<KeyDefinition>]
24
+ property :correction_methods, [KeyDefinition]
25
+ end
26
+ end
27
+ end
data/lib/gobl/tax/rate.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -17,14 +17,16 @@ module GOBL
17
17
  # Key identifies this rate within the system
18
18
  # @return [GOBL::CBC::Key]
19
19
  property :key, GOBL::CBC::Key
20
- validates :key, presence: true
20
+ validates_presence_of :key
21
21
 
22
22
  # @!attribute [r] name
23
+ # Human name of the rate
23
24
  # @return [GOBL::I18n::String]
24
25
  property :name, GOBL::I18n::String
25
- validates :name, presence: true
26
+ validates_presence_of :name
26
27
 
27
28
  # @!attribute [r] desc
29
+ # Useful description of the rate.
28
30
  # @return [GOBL::I18n::String]
29
31
  property :desc, GOBL::I18n::String
30
32
 
@@ -32,7 +34,12 @@ module GOBL
32
34
  # Values contains a list of Value objects that contain the current and historical percentage values for the rate and additional filters. Order is important, newer values should come before older values.
33
35
  # @return [Array<RateValue>]
34
36
  property :values, [RateValue]
35
- validates :values, presence: true
37
+ validates_presence_of :values
38
+
39
+ # @!attribute [r] meta
40
+ # Meta contains additional information about the rate that is relevant for local frequently used implementations.
41
+ # @return [GOBL::CBC::Meta]
42
+ property :meta, GOBL::CBC::Meta
36
43
  end
37
44
  end
38
45
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -20,18 +20,18 @@ module GOBL
20
20
  # @!attribute [r] base
21
21
  # @return [GOBL::Num::Amount]
22
22
  property :base, GOBL::Num::Amount
23
- validates :base, presence: true
23
+ validates_presence_of :base
24
24
 
25
25
  # @!attribute [r] percent
26
26
  # @return [GOBL::Num::Percentage]
27
27
  property :percent, GOBL::Num::Percentage
28
- validates :percent, presence: true
28
+ validates_presence_of :percent
29
29
 
30
30
  # @!attribute [r] amount
31
31
  # Total amount of rate, excluding surcharges
32
32
  # @return [GOBL::Num::Amount]
33
33
  property :amount, GOBL::Num::Amount
34
- validates :amount, presence: true
34
+ validates_presence_of :amount
35
35
 
36
36
  # @!attribute [r] surcharge
37
37
  # @return [RateTotalSurcharge]
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -16,12 +16,12 @@ module GOBL
16
16
  # @!attribute [r] percent
17
17
  # @return [GOBL::Num::Percentage]
18
18
  property :percent, GOBL::Num::Percentage
19
- validates :percent, presence: true
19
+ validates_presence_of :percent
20
20
 
21
21
  # @!attribute [r] amount
22
22
  # @return [GOBL::Num::Amount]
23
23
  property :amount, GOBL::Num::Amount
24
- validates :amount, presence: true
24
+ validates_presence_of :amount
25
25
  end
26
26
  end
27
27
  end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -27,7 +27,7 @@ module GOBL
27
27
  # Percent rate that should be applied
28
28
  # @return [GOBL::Num::Percentage]
29
29
  property :percent, GOBL::Num::Percentage
30
- validates :percent, presence: true
30
+ validates_presence_of :percent
31
31
 
32
32
  # @!attribute [r] surcharge
33
33
  # An additional surcharge to apply.
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -17,13 +17,13 @@ module GOBL
17
17
  # Name of the country
18
18
  # @return [GOBL::I18n::String]
19
19
  property :name, GOBL::I18n::String
20
- validates :name, presence: true
20
+ validates_presence_of :name
21
21
 
22
22
  # @!attribute [r] country
23
23
  # Country code for the region
24
24
  # @return [GOBL::L10n::CountryCode]
25
25
  property :country, GOBL::L10n::CountryCode
26
- validates :country, presence: true
26
+ validates_presence_of :country
27
27
 
28
28
  # @!attribute [r] zone
29
29
  # Specific Locality, region, city, province, county, or similar code inside the country, if needed.
@@ -39,18 +39,28 @@ module GOBL
39
39
  # Currency used by the country.
40
40
  # @return [GOBL::Currency::Code]
41
41
  property :currency, GOBL::Currency::Code
42
- validates :currency, presence: true
42
+ validates_presence_of :currency
43
43
 
44
- # @!attribute [r] schemes
45
- # Set of specific scheme definitions inside the region.
46
- # @return [Array<Scheme>]
47
- property :schemes, [Scheme]
44
+ # @!attribute [r] tags
45
+ # Tags that can be applied at the document level to identify additional considerations.
46
+ # @return [Array<Tag>]
47
+ property :tags, [Tag]
48
+
49
+ # @!attribute [r] scenarios
50
+ # Sets of scenario definitions for the regime.
51
+ # @return [Array<ScenarioSet>]
52
+ property :scenarios, [ScenarioSet]
53
+
54
+ # @!attribute [r] preceding
55
+ # Configuration details for preceding options.
56
+ # @return [PrecedingDefinitions]
57
+ property :preceding, PrecedingDefinitions
48
58
 
49
59
  # @!attribute [r] categories
50
60
  # List of tax categories.
51
61
  # @return [Array<Category>]
52
62
  property :categories, [Category]
53
- validates :categories, presence: true
63
+ validates_presence_of :categories
54
64
  end
55
65
  end
56
66
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ## Generated with GOBL v0.38.0
7
+ ##
8
+
9
+ module GOBL
10
+ module Tax
11
+ # Scenario is used to describe a tax scenario of a document based on the combination of document type and tag used.
12
+ class Scenario < GOBL::Object
13
+ # The Schema ID of the GOBL Scenario structure
14
+ SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/Scenario'
15
+
16
+ # @!attribute [r] type
17
+ # Type of document, if present.
18
+ # @return [Array<GOBL::CBC::Key>]
19
+ property :type, [GOBL::CBC::Key]
20
+
21
+ # @!attribute [r] tags
22
+ # Tag that was applied to the document
23
+ # @return [Array<GOBL::CBC::Key>]
24
+ property :tags, [GOBL::CBC::Key]
25
+
26
+ # @!attribute [r] note
27
+ # A note to be added to the document if the scenario is applied.
28
+ # @return [GOBL::CBC::Note]
29
+ property :note, GOBL::CBC::Note
30
+
31
+ # @!attribute [r] meta
32
+ # Any additional local meta data that may be useful in integrations.
33
+ # @return [GOBL::CBC::Meta]
34
+ property :meta, GOBL::CBC::Meta
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ## Generated with GOBL v0.38.0
7
+ ##
8
+
9
+ module GOBL
10
+ module Tax
11
+ # ScenarioSet is a collection of tax scenarios for a given schema that can be used to determine special codes or notes that need to be included in the final document.
12
+ class ScenarioSet < GOBL::Object
13
+ # The Schema ID of the GOBL ScenarioSet structure
14
+ SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/ScenarioSet'
15
+
16
+ # @!attribute [r] schema
17
+ # Partial or complete schema URL for the document type
18
+ # @return [String]
19
+ property :schema, String
20
+ validates_presence_of :schema
21
+
22
+ # @!attribute [r] list
23
+ # List of scenarios for the schema
24
+ # @return [Array<Scenario>]
25
+ property :list, [Scenario]
26
+ validates_presence_of :list
27
+ end
28
+ end
29
+ end
data/lib/gobl/tax/set.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ ## DO NOT EDIT - This file was generated automatically.
5
+ ##
6
+ ## Generated with GOBL v0.38.0
7
+ ##
8
+
9
+ module GOBL
10
+ module Tax
11
+ # Tag describes a tax tag that can be used to identify additional requirements in an electronic invoice.
12
+ class Tag < GOBL::Object
13
+ # The Schema ID of the GOBL Tag structure
14
+ SCHEMA_ID = 'https://gobl.org/draft-0/tax/regime#/$defs/Tag'
15
+
16
+ # @!attribute [r] key
17
+ # Key used to identify the tag
18
+ # @return [GOBL::CBC::Key]
19
+ property :key, GOBL::CBC::Key
20
+ validates_presence_of :key
21
+
22
+ # @!attribute [r] name
23
+ # Name of this tag.
24
+ # @return [GOBL::I18n::String]
25
+ property :name, GOBL::I18n::String
26
+
27
+ # @!attribute [r] meta
28
+ # Additional local
29
+ # @return [GOBL::CBC::Meta]
30
+ property :meta, GOBL::CBC::Meta
31
+ end
32
+ end
33
+ end
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -22,7 +22,7 @@ module GOBL
22
22
  # Total value of all the taxes applied.
23
23
  # @return [GOBL::Num::Amount]
24
24
  property :sum, GOBL::Num::Amount
25
- validates :sum, presence: true
25
+ validates_presence_of :sum
26
26
  end
27
27
  end
28
28
  end
data/lib/gobl/tax/zone.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  ##
4
4
  ## DO NOT EDIT - This file was generated automatically.
5
5
  ##
6
- ## Generated with GOBL v0.36.0
6
+ ## Generated with GOBL v0.38.0
7
7
  ##
8
8
 
9
9
  module GOBL
@@ -17,7 +17,7 @@ module GOBL
17
17
  # Unique zone code.
18
18
  # @return [GOBL::L10n::Code]
19
19
  property :code, GOBL::L10n::Code
20
- validates :code, presence: true
20
+ validates_presence_of :code
21
21
 
22
22
  # @!attribute [r] name
23
23
  # Name of the zone to be use if a locality or region is not applicable.