@@ -52,8 +52,8 @@ public void TestReferenceEReportingFacturXInvoice()
52
52
Assert . AreEqual ( desc . TradeLineItems . Count , 0 ) ;
53
53
Assert . AreEqual ( desc . LineTotalAmount , 0.0m ) ; // not present in file
54
54
Assert . AreEqual ( desc . TaxBasisAmount , 198.0m ) ;
55
- }
56
-
55
+ }
56
+
57
57
[ TestMethod ]
58
58
public void TestReferenceBasicFacturXInvoice ( )
59
59
{
@@ -71,7 +71,7 @@ public void TestReferenceBasicFacturXInvoice()
71
71
Assert . AreEqual ( desc . LineTotalAmount , 198.0m ) ;
72
72
} // !TestReferenceBasicFacturXInvoice()
73
73
74
-
74
+
75
75
[ TestMethod ]
76
76
public void TestStoringReferenceBasicFacturXInvoice ( )
77
77
{
@@ -1665,7 +1665,7 @@ public void TestAltteilSteuer()
1665
1665
unitCode : QuantityCodes . C62 ,
1666
1666
unitQuantity : 1 ,
1667
1667
billedQuantity : 1 ,
1668
- netUnitPrice : 1000 ,
1668
+ netUnitPrice : 1000 ,
1669
1669
taxType : TaxTypes . VAT ,
1670
1670
categoryCode : TaxCategoryCodes . S ,
1671
1671
taxPercent : 19 ) ;
@@ -1691,7 +1691,7 @@ public void TestAltteilSteuer()
1691
1691
desc . AddApplicableTradeTax ( basisAmount : 1000 ,
1692
1692
percent : 19 ,
1693
1693
TaxTypes . VAT ,
1694
- TaxCategoryCodes . S ) ;
1694
+ TaxCategoryCodes . S ) ;
1695
1695
1696
1696
desc . SetTotals ( lineTotalAmount : 1500m ,
1697
1697
taxBasisAmount : 1500m ,
@@ -1704,7 +1704,7 @@ public void TestAltteilSteuer()
1704
1704
1705
1705
desc . Save ( ms , ZUGFeRDVersion . Version21 , Profile . XRechnung ) ;
1706
1706
ms . Seek ( 0 , SeekOrigin . Begin ) ;
1707
-
1707
+
1708
1708
InvoiceDescriptor loadedInvoice = InvoiceDescriptor . Load ( ms ) ;
1709
1709
Assert . AreEqual ( loadedInvoice . Invoicee , null ) ;
1710
1710
} // !TestAltteilSteuer()
@@ -1780,5 +1780,86 @@ public void TestBasisQuantityMultiple()
1780
1780
XmlNode node = doc . SelectSingleNode ( "//ram:SpecifiedTradeSettlementLineMonetarySummation//ram:LineTotalAmount" , nsmgr ) ;
1781
1781
Assert . AreEqual ( "27.50" , node . InnerText ) ;
1782
1782
} // !TestBasisQuantityMultiple()
1783
+
1784
+ [ TestMethod ]
1785
+ public void TestReferenceXRechnung21UBL ( )
1786
+ {
1787
+ string path = @"..\..\..\..\demodata\xRechnung\xRechnung UBL.xml" ;
1788
+ path = _makeSurePathIsCrossPlatformCompatible ( path ) ;
1789
+
1790
+ InvoiceDescriptor desc = InvoiceDescriptor . Load ( path ) ;
1791
+
1792
+ Assert . AreEqual ( desc . Profile , Profile . XRechnung ) ;
1793
+ Assert . AreEqual ( desc . Type , InvoiceType . Invoice ) ;
1794
+
1795
+ Assert . AreEqual ( desc . InvoiceNo , "0815-99-1-a" ) ;
1796
+ Assert . AreEqual ( desc . InvoiceDate , new DateTime ( 2020 , 6 , 21 ) ) ;
1797
+ Assert . AreEqual ( desc . PaymentReference , "0815-99-1-a" ) ;
1798
+ Assert . AreEqual ( desc . OrderNo , "0815-99-1" ) ;
1799
+ Assert . AreEqual ( desc . Currency , CurrencyCodes . EUR ) ;
1800
+
1801
+ Assert . AreEqual ( desc . Buyer . Name , "Rechnungs Roulette GmbH & Co KG" ) ;
1802
+ Assert . AreEqual ( desc . Buyer . City , "Klein Schlappstadt a.d. Lusche" ) ;
1803
+ Assert . AreEqual ( desc . Buyer . Postcode , "12345" ) ;
1804
+ Assert . AreEqual ( desc . Buyer . Country , ( CountryCodes ) 276 ) ;
1805
+ Assert . AreEqual ( desc . Buyer . Street , "Beispielgasse 17b" ) ;
1806
+ Assert . AreEqual ( desc . Buyer . SpecifiedLegalOrganization . TradingBusinessName , "Rechnungs Roulette GmbH & Co KG" ) ;
1807
+
1808
+ Assert . AreEqual ( desc . BuyerContact . Name , "Manfred Mustermann" ) ;
1809
+ Assert . AreEqual ( desc . BuyerContact . EmailAddress , "[email protected] " ) ;
1810
+ Assert . AreEqual ( desc . BuyerContact . PhoneNo , "012345 98 765 - 44" ) ;
1811
+
1812
+ Assert . AreEqual ( desc . Seller . Name , "Harry Hirsch Holz- und Trockenbau" ) ;
1813
+ Assert . AreEqual ( desc . Seller . City , "Klein Schlappstadt a.d. Lusche" ) ;
1814
+ Assert . AreEqual ( desc . Seller . Postcode , "12345" ) ;
1815
+ Assert . AreEqual ( desc . Seller . Country , ( CountryCodes ) 276 ) ;
1816
+ Assert . AreEqual ( desc . Seller . Street , "Beispielgasse 17a" ) ;
1817
+ Assert . AreEqual ( desc . Seller . SpecifiedLegalOrganization . TradingBusinessName , "Harry Hirsch Holz- und Trockenbau" ) ;
1818
+
1819
+ Assert . AreEqual ( desc . SellerContact . Name , "Harry Hirsch" ) ;
1820
+ Assert . AreEqual ( desc . SellerContact . EmailAddress , "[email protected] " ) ;
1821
+ Assert . AreEqual ( desc . SellerContact . PhoneNo , "012345 78 657 - 8" ) ;
1822
+
1823
+ Assert . AreEqual ( desc . TradeLineItems . Count , 2 ) ;
1824
+
1825
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . SellerAssignedID , "0815" ) ;
1826
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . Name , "Leimbinder" ) ;
1827
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . Description , "Leimbinder 2x18m; Birke" ) ;
1828
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . BilledQuantity , 1 ) ;
1829
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . LineTotalAmount , 1245.98m ) ;
1830
+ Assert . AreEqual ( desc . TradeLineItems [ 0 ] . TaxPercent , 19 ) ;
1831
+
1832
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . SellerAssignedID , "MON" ) ;
1833
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . Name , "Montage" ) ;
1834
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . Description , "Montage durch Fachpersonal" ) ;
1835
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . BilledQuantity , 1 ) ;
1836
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . LineTotalAmount , 200.00m ) ;
1837
+ Assert . AreEqual ( desc . TradeLineItems [ 1 ] . TaxPercent , 7 ) ;
1838
+
1839
+ Assert . AreEqual ( desc . LineTotalAmount , 1445.98m ) ;
1840
+ Assert . AreEqual ( desc . TaxTotalAmount , 250.74m ) ;
1841
+ Assert . AreEqual ( desc . GrandTotalAmount , 1696.72m ) ;
1842
+ Assert . AreEqual ( desc . DuePayableAmount , 1696.72m ) ;
1843
+
1844
+ Assert . AreEqual ( desc . Taxes [ 0 ] . TaxAmount , 236.7362m ) ;
1845
+ Assert . AreEqual ( desc . Taxes [ 0 ] . BasisAmount , 1245.98m ) ;
1846
+ Assert . AreEqual ( desc . Taxes [ 0 ] . Percent , 19 ) ;
1847
+ Assert . AreEqual ( desc . Taxes [ 0 ] . TypeCode , ( TaxTypes ) 53 ) ;
1848
+ Assert . AreEqual ( desc . Taxes [ 0 ] . CategoryCode , ( TaxCategoryCodes ) 19 ) ;
1849
+
1850
+ Assert . AreEqual ( desc . Taxes [ 1 ] . TaxAmount , 14.0000m ) ;
1851
+ Assert . AreEqual ( desc . Taxes [ 1 ] . BasisAmount , 200.00m ) ;
1852
+ Assert . AreEqual ( desc . Taxes [ 1 ] . Percent , 7 ) ;
1853
+ Assert . AreEqual ( desc . Taxes [ 1 ] . TypeCode , ( TaxTypes ) 53 ) ;
1854
+ Assert . AreEqual ( desc . Taxes [ 1 ] . CategoryCode , ( TaxCategoryCodes ) 19 ) ;
1855
+
1856
+ Assert . AreEqual ( desc . PaymentTerms . DueDate , new DateTime ( 2020 , 6 , 21 ) ) ;
1857
+
1858
+ Assert . AreEqual ( desc . CreditorBankAccounts [ 0 ] . IBAN , "DE12500105170648489890" ) ;
1859
+ Assert . AreEqual ( desc . CreditorBankAccounts [ 0 ] . BIC , "INGDDEFFXXX" ) ;
1860
+ Assert . AreEqual ( desc . CreditorBankAccounts [ 0 ] . Name , "Harry Hirsch" ) ;
1861
+
1862
+ Assert . AreEqual ( desc . PaymentMeans . TypeCode , ( PaymentMeansTypeCodes ) 30 ) ;
1863
+ } // !TestReferenceXRechnung21UBL()
1783
1864
}
1784
1865
}
0 commit comments