Skip to content

Commit

Permalink
Merge pull request #4 from projo-berlin/adam/add-fields-to-delivery
Browse files Browse the repository at this point in the history
Add fields to delivery
  • Loading branch information
adamniedzielski authored Feb 7, 2025
2 parents 1aafb4c + 90469db commit 1569650
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 1 deletion.
11 changes: 10 additions & 1 deletion lib/xrechnung/delivery.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ class Delivery
# @return [String]
member :party_name, type: String

# @!attribute street_name
# @return [String]
member :street_name, type: String

# @!attribute city_name
# @return [String]
member :city_name, type: String
Expand All @@ -18,17 +22,22 @@ class Delivery
# @return [String]
member :postal_zone, type: String

# @!attribute country_id
# @return [String]
member :country_id, type: String

# noinspection RubyResolve
def to_xml(xml)
xml.cac :Delivery do
xml.cbc :ActualDeliveryDate, actual_delivery_date unless actual_delivery_date.nil?
if city_name.present? || postal_zone.present?
xml.cac :DeliveryLocation do
xml.cac :Address do
xml.cbc :StreetName, street_name unless street_name.nil?
xml.cbc :CityName, city_name unless city_name.nil?
xml.cbc :PostalZone, postal_zone unless postal_zone.nil?
xml.cac :Country do
xml.cbc :IdentificationCode, "DE"
xml.cbc :IdentificationCode, country_id
end
end
end
Expand Down
8 changes: 8 additions & 0 deletions spec/fixtures/ruby/delivery.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
def build_delivery
Xrechnung::Delivery.new(
street_name: "Beispielgasse 17",
city_name: "Baustadt",
postal_zone: "12345",
country_id: "DE",
)
end
12 changes: 12 additions & 0 deletions spec/fixtures/scraps/delivery.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Beispielgasse 17</cbc:StreetName>
<cbc:CityName>Baustadt</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>
8 changes: 8 additions & 0 deletions spec/xrechnung/delivery_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
require "spec_helper"
load("spec/fixtures/ruby/delivery.rb")

RSpec.describe Xrechnung::Delivery do
it "generates xml" do
expect_xml_eq_fixture(build_delivery, "delivery")
end
end

0 comments on commit 1569650

Please sign in to comment.