From a4e9af8b337224d3f6d875849ae9758fad8fe30c Mon Sep 17 00:00:00 2001 From: Ronald Sacher Date: Mon, 1 Dec 2025 16:16:12 +0100 Subject: [PATCH] add buyer#person_name (BT-56) --- lib/secretariat/trade_party.rb | 8 ++++++++ test/invoice_test.rb | 2 ++ 2 files changed, 10 insertions(+) diff --git a/lib/secretariat/trade_party.rb b/lib/secretariat/trade_party.rb index ebd1afb..c70a97d 100644 --- a/lib/secretariat/trade_party.rb +++ b/lib/secretariat/trade_party.rb @@ -19,6 +19,7 @@ module Secretariat TradeParty = Struct.new('TradeParty', :name, :street1, :street2, :city, :postal_code, :country_id, :vat_id, :global_id, :global_id_scheme_id, :tax_id, + :person_name, keyword_init: true, ) do def to_xml(xml, exclude_tax: false, version: 2) @@ -28,6 +29,11 @@ def to_xml(xml, exclude_tax: false, version: 2) end end xml['ram'].Name name + if person_name + xml['ram'].DefinedTradeContact do + xml['ram'].PersonName person_name + end + end xml['ram'].PostalTradeAddress do xml['ram'].PostcodeCode postal_code xml['ram'].LineOne street1 @@ -53,3 +59,5 @@ def to_xml(xml, exclude_tax: false, version: 2) end end end + +# assert_match(%r{\s*Max Mustermann\s*}, xml) \ No newline at end of file diff --git a/test/invoice_test.rb b/test/invoice_test.rb index cf7fbb7..3dd0b0f 100644 --- a/test/invoice_test.rb +++ b/test/invoice_test.rb @@ -174,6 +174,7 @@ def make_de_invoice ) buyer = TradeParty.new( name: 'Depfu inc', + person_name: 'Max Mustermann', street1: 'Quickbornstr. 46', city: 'Hamburg', postal_code: '20253', @@ -596,6 +597,7 @@ def test_invoice_object_extensions xml = invoice.to_xml(version: 2) assert_match(/#{invoice.payment_reference}<\/ram:PaymentReference>/, xml) + assert_match(%r{\s*Max Mustermann\s*}, xml) end end end