xrechnung 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb9e44c799aaa06982ea5b1fde9dda518822ad63b88c0519f43a85f4bd29ab7d
4
- data.tar.gz: e4e84a5c0bd1c7e049b2944c513c3ab8b682d750dbaadbf37f5169e75b716315
3
+ metadata.gz: 847d896fa56b4d05bf9569e5875df86fdbc1590d6b333b665ae7e118e7c82629
4
+ data.tar.gz: 1e7d94940bcfd954e550a10a88b0c2c3bdf12b15a525c520cfd4f7cd6bed01c3
5
5
  SHA512:
6
- metadata.gz: 676b9a6e8140f39b2b12b64abf869c97cd6a5353e369e2d8d26e86d0e4242ad7c31141b084a351492b20b085901b3f891732fd4cc12ac497c4ac0e53b277ed66
7
- data.tar.gz: 50e8c1b14ae64fae08567276627446a67ea3a70a4fda48e80a8ce96024c78b24331d9487677d1f18c5fb1fbb5f71c98b64769fbccb042d50271ee2b791037157
6
+ metadata.gz: 15120534576d4080c46eab699327bed3f1b86f1c349d5f02f8a7fb20d02028abe8d0a30bfbd78a03c43e5769dae386f2507040014022835553ec4c01f39a6a4a
7
+ data.tar.gz: 48443809916284be1acb86213f609d02c6699c50560236091c5116b4661a48b3765a63ca8af771d2ad6159ab4b18568da643aa77bff595a93691f4e177a12bb4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xrechnung (0.5.0)
4
+ xrechnung (0.6.1)
5
5
  builder (~> 3.2)
6
6
 
7
7
  GEM
@@ -0,0 +1,34 @@
1
+ require "xrechnung/attachment"
2
+
3
+ module Xrechnung
4
+ class AdditionalDocumentReference
5
+ include MemberContainer
6
+
7
+ # @!attribute id
8
+ # @return [String]
9
+ member :id, type: String
10
+
11
+ # @!attribute document_type
12
+ # @return [String]
13
+ member :document_type, type: String, optional: true
14
+
15
+ # @!attribute document_description
16
+ # @return [String]
17
+ member :document_description, type: String, optional: true
18
+
19
+ # @!attribute attachment
20
+ # @return [Xrechnung::Attachment]
21
+ member :attachment, type: Xrechnung::Attachment, optional: true
22
+
23
+ # noinspection RubyResolve
24
+ def to_xml(xml)
25
+ xml.cac :AdditionalDocumentReference do
26
+ xml.cbc :ID, id
27
+ xml.cbc :DocumentType, document_type
28
+ xml.cbc :DocumentDescription, document_description
29
+
30
+ attachment&.to_xml(xml)
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ require "base64"
2
+
3
+ module Xrechnung
4
+ class Attachment
5
+ include MemberContainer
6
+
7
+ # @!attribute mime_code
8
+ # @return [String]
9
+ member :mime_code, type: String
10
+
11
+ # @!attribute filename
12
+ # @return [String]
13
+ member :filename, type: String
14
+
15
+ member :payload
16
+
17
+ # noinspection RubyResolve
18
+ def to_xml(xml)
19
+ xml.cac :Attachment do
20
+ xml.cbc :EmbeddedDocumentBinaryObject,
21
+ Base64.strict_encode64(payload),
22
+ mimeCode: mime_code,
23
+ filename: filename
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,3 +1,3 @@
1
1
  module Xrechnung
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.6.1".freeze
3
3
  end
data/lib/xrechnung.rb CHANGED
@@ -4,6 +4,7 @@ require "xrechnung/currency"
4
4
  require "xrechnung/quantity"
5
5
  require "xrechnung/id"
6
6
  require "xrechnung/member_container"
7
+ require "xrechnung/additional_document_reference"
7
8
  require "xrechnung/contact"
8
9
  require "xrechnung/party_identification"
9
10
  require "xrechnung/party_legal_entity"
@@ -34,7 +35,7 @@ module Xrechnung
34
35
 
35
36
  # Default customization specs
36
37
  DEFAULT_CUSTOMIZATION_ID = "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"
37
- DEFAULT_PROFILE_ID = "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"
38
+ DEFAULT_PROFILE_ID = "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0"
38
39
 
39
40
  # Document customization identifier
40
41
  #
@@ -187,6 +188,11 @@ module Xrechnung
187
188
  # @return [Xrechnung::InvoiceDocumentReference]
188
189
  member :billing_reference, type: Xrechnung::InvoiceDocumentReference, optional: true
189
190
 
191
+ # Additional supporting documents BG-24
192
+ # @!attribute additional_document_references
193
+ # @return [Array]
194
+ member :additional_document_references, type: Array, default: []
195
+
190
196
  # @!attribute invoice_period
191
197
  # @return [Xrechnung::InvoicePeriod]
192
198
  member :invoice_period, type: Xrechnung::InvoicePeriod, optional: true
@@ -318,7 +324,7 @@ module Xrechnung
318
324
  xml.cbc :ID, purchase_order_reference
319
325
  end
320
326
  unless self.class.members[:sales_order_reference].optional && sales_order_reference.nil?
321
- xml.cbc :SalesOrderID, sales_order_reference
327
+ xml.cbc :ID, sales_order_reference
322
328
  end
323
329
  end
324
330
  end
@@ -341,6 +347,8 @@ module Xrechnung
341
347
  end
342
348
  end
343
349
 
350
+ additional_document_references.each { _1.to_xml(xml) }
351
+
344
352
  xml.cac :AccountingSupplierParty do
345
353
  accounting_supplier_party&.to_xml(xml)
346
354
  end
@@ -359,17 +367,13 @@ module Xrechnung
359
367
  payment_means&.to_xml(xml)
360
368
  end
361
369
 
362
- unless self.class.members[:payee_party].optional && payee_party.nil?
363
- payee_party&.to_xml(xml)
364
- end
370
+ payee_party&.to_xml(xml) unless self.class.members[:payee_party].optional && payee_party.nil?
365
371
 
366
372
  xml.cac :PaymentTerms do
367
373
  xml.cbc :Note, payment_terms_note
368
374
  end
369
375
 
370
- allowance_charges.each do |allowance_charge|
371
- allowance_charge&.to_xml(xml)
372
- end
376
+ allowance_charges.each { _1.to_xml(xml) }
373
377
 
374
378
  xml.cac :TaxTotal do
375
379
  tax_total&.to_xml(xml)
@@ -379,9 +383,7 @@ module Xrechnung
379
383
  legal_monetary_total&.to_xml(xml)
380
384
  end
381
385
 
382
- invoice_lines.each do |invoice_line|
383
- invoice_line&.to_xml(xml)
384
- end
386
+ invoice_lines.each { _1.to_xml(xml) }
385
387
  end
386
388
 
387
389
  target
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xrechnung
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Kornberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-18 00:00:00.000000000 Z
11
+ date: 2025-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -73,7 +73,9 @@ files:
73
73
  - bin/console
74
74
  - bin/setup
75
75
  - lib/xrechnung.rb
76
+ - lib/xrechnung/additional_document_reference.rb
76
77
  - lib/xrechnung/allowance_charge.rb
78
+ - lib/xrechnung/attachment.rb
77
79
  - lib/xrechnung/contact.rb
78
80
  - lib/xrechnung/currency.rb
79
81
  - lib/xrechnung/id.rb