From 7a4cc8b5f2f7b6fd99324c7446f7f5cab69c32f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stas=20SU=C8=98COV?= Date: Sat, 22 Jun 2024 13:47:24 +0100 Subject: [PATCH] Allow native Currency. Fixed in LegalMonetaryTotal, InvoiceLine, Price. --- lib/xrechnung/invoice_line.rb | 4 +++- lib/xrechnung/legal_monetary_total.rb | 2 +- lib/xrechnung/price.rb | 4 +++- spec/fixtures/ruby/legal_monetary_total.rb | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/xrechnung/invoice_line.rb b/lib/xrechnung/invoice_line.rb index 74cc6a4..375cea0 100644 --- a/lib/xrechnung/invoice_line.rb +++ b/lib/xrechnung/invoice_line.rb @@ -29,7 +29,9 @@ class InvoiceLine member :price, type: Xrechnung::Price def initialize(**kwargs) - kwargs[:line_extension_amount] = Currency::EUR(kwargs[:line_extension_amount]) + unless kwargs[:line_extension_amount].is_a?(Currency) + kwargs[:line_extension_amount] = Currency::EUR(kwargs[:line_extension_amount]) + end super(**kwargs) end diff --git a/lib/xrechnung/legal_monetary_total.rb b/lib/xrechnung/legal_monetary_total.rb index f6b4038..4536be9 100644 --- a/lib/xrechnung/legal_monetary_total.rb +++ b/lib/xrechnung/legal_monetary_total.rb @@ -3,7 +3,7 @@ class LegalMonetaryTotal include MemberContainer transform_currency = ->(v) { - Currency::EUR(v) + v.is_a?(Currency) ? v : Currency::EUR(v) } # @!attribute line_extension_amount diff --git a/lib/xrechnung/price.rb b/lib/xrechnung/price.rb index 210399a..94e18fd 100644 --- a/lib/xrechnung/price.rb +++ b/lib/xrechnung/price.rb @@ -15,7 +15,9 @@ class Price member :allowance_charge, type: Xrechnung::AllowanceCharge def initialize(**kwargs) - kwargs[:price_amount] = Currency::EUR(kwargs[:price_amount]) + unless kwargs[:price_amount].is_a?(Currency) + kwargs[:price_amount] = Currency::EUR(kwargs[:price_amount]) + end super(**kwargs) end diff --git a/spec/fixtures/ruby/legal_monetary_total.rb b/spec/fixtures/ruby/legal_monetary_total.rb index d5b75f7..eab5354 100644 --- a/spec/fixtures/ruby/legal_monetary_total.rb +++ b/spec/fixtures/ruby/legal_monetary_total.rb @@ -3,7 +3,7 @@ def build_legal_monetary_total line_extension_amount: 2580, tax_exclusive_amount: 2580, tax_inclusive_amount: 2877.09, - allowance_total_amount: 0, + allowance_total_amount: Xrechnung::Currency::EUR(0), charge_total_amount: 0, prepaid_amount: 0, payable_rounding_amount: 0,