Skip to content

Commit e7739cc

Browse files
committedJul 30, 2024
sync with c# lib 2024 07 30
1 parent 1ca1e74 commit e7739cc

26 files changed

+4503
-1779
lines changed
 

‎Samples/ZUGFeRDProject.dproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@
9595
</PropertyGroup>
9696
<PropertyGroup Condition="'$(Cfg_1)'!=''">
9797
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
98-
<DCC_DebugDCUs>true</DCC_DebugDCUs>
9998
<DCC_Optimize>false</DCC_Optimize>
10099
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
101100
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
@@ -111,6 +110,8 @@
111110
</PropertyGroup>
112111
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
113112
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
113+
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
114+
<VerInfo_Locale>1033</VerInfo_Locale>
114115
</PropertyGroup>
115116
<PropertyGroup Condition="'$(Cfg_2)'!=''">
116117
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>

‎Samples/ZUGFeRDUnit1.dfm

+9
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,13 @@ object Form1: TForm1
5353
TabOrder = 3
5454
OnClick = Button2Click
5555
end
56+
object Button3: TButton
57+
Left = 8
58+
Top = 70
59+
Width = 209
60+
Height = 25
61+
Caption = 'XML-Datei aus PDF mit PdfTkServer'
62+
TabOrder = 7
63+
OnClick = Button3Click
64+
end
5665
end

‎Samples/ZUGFeRDUnit1.pas

+48-4
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
interface
2121

2222
uses
23-
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
24-
Vcl.Controls, Vcl.Forms, Vcl.Dialogs
25-
,intf.ZUGFeRDHelper, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw
23+
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
24+
System.Classes, Vcl.Graphics, SHDocVw,
25+
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls
26+
,intf.ZUGFeRDHelper
27+
,intf.ZUGFeRDInvoiceDescriptor
2628
;
2729

2830
type
@@ -31,9 +33,11 @@ TForm1 = class(TForm)
3133
WebBrowser2: TWebBrowser;
3234
Memo3: TMemo;
3335
Button2: TButton;
36+
Button3: TButton;
3437
procedure FormCreate(Sender: TObject);
3538
procedure Button1Click(Sender: TObject);
3639
procedure Button2Click(Sender: TObject);
40+
procedure Button3Click(Sender: TObject);
3741
private
3842
WebBrowserContent : TStringList;
3943
WebBrowserContentFilename : String;
@@ -104,7 +108,7 @@ procedure TForm1.Button2Click(Sender: TObject);
104108
begin
105109
WebBrowser2.Navigate2('about:blank');
106110

107-
ShowMessage('Geht nicht nicht: https://github.com/ZUGFeRD/mustangproject/issues/387');
111+
ShowMessage('Geht nicht: https://github.com/ZUGFeRD/mustangproject/issues/387');
108112

109113
od := TOpenDialog.Create(nil);
110114
try
@@ -134,4 +138,44 @@ procedure TForm1.Button2Click(Sender: TObject);
134138
end;
135139
end;
136140

141+
procedure TForm1.Button3Click(Sender: TObject);
142+
var
143+
od : TOpenDialog;
144+
cmdoutput : String;
145+
xmlresult : TStream;
146+
begin
147+
WebBrowser2.Navigate2('about:blank');
148+
149+
od := TOpenDialog.Create(nil);
150+
try
151+
if not od.Execute then
152+
exit;
153+
154+
GetZUGFeRDPdfHelper.SetPdfTkServerPath('C:\Program Files (x86)\PDFtk Server\')
155+
.PdfTkServerGetZUGFeRDPdfAttachment(od.FileName,xmlresult,cmdoutput);
156+
157+
//Memo3.Lines.Text := cmdoutput;
158+
159+
if xmlresult <> nil then
160+
begin
161+
xmlresult.Position := 0;
162+
Memo3.Lines.LoadFromStream(xmlresult);
163+
xmlresult.Position := 0;
164+
165+
var inv : TZUGFeRDInvoiceDescriptor := TZUGFeRDInvoiceDescriptor.Load(xmlresult);
166+
inv.Free;
167+
xmlresult.Free;
168+
//WebBrowser2.Navigate2('file:///'+WebBrowserContentFilenamePdf);
169+
end else
170+
begin
171+
WebBrowserContent.Text := '<html><body>Export nicht erfolgreich.</body></html>';
172+
WebBrowserContent.SaveToFile(WebBrowserContentFilename,TEncoding.UTF8);
173+
WebBrowser2.Navigate2('file:///'+WebBrowserContentFilename);
174+
end;
175+
176+
finally
177+
od.Free;
178+
end;
179+
end;
180+
137181
end.

‎Test/DUnitXZUGFeRDTest.dpr

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ uses
8383
intf.ZUGFeRDInvoiceDescriptorReader,intf.ZUGFeRDInvoiceDescriptorWriter,
8484
intf.ZUGFeRDInvoiceDescriptor1Reader,intf.ZUGFeRDInvoiceDescriptor1Writer,intf.ZUGFeRD10Tests.UnitTests,
8585
intf.ZUGFeRDInvoiceDescriptor20Reader,intf.ZUGFeRDInvoiceDescriptor20Writer,intf.ZUGFeRD20Tests.UnitTests,
86-
intf.ZUGFeRDInvoiceDescriptor22Reader,intf.ZUGFeRDInvoiceDescriptor22Writer,intf.ZUGFeRD22Tests.UnitTests,
87-
intf.ZUGFeRDInvoiceDescriptor22UblReader,
86+
intf.ZUGFeRDInvoiceDescriptor22CIIReader,intf.ZUGFeRDInvoiceDescriptor22Writer,intf.ZUGFeRD22Tests.UnitTests,
87+
intf.ZUGFeRDInvoiceDescriptor22UBLReader,
8888
intf.ZUGFeRDBaseTests.UnitTests
8989
;
9090

‎Test/intf.ZUGFeRD22Tests.UnitTests.pas

+30-1
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ TZUGFeRD22Tests = class
131131
procedure TestUBLInvoiceCreation;
132132
[Test]
133133
procedure TestUBLTradelineitemProductCharacterstics;
134+
[Test]
135+
procedure TestSellerDescription;
134136
end;
135137

136138
implementation
@@ -144,7 +146,7 @@ procedure TZUGFeRD22Tests.TestReferenceBasicFacturXInvoice;
144146

145147
desc := TZUGFeRDInvoiceDescriptor.Load(path);
146148
try
147-
desc.Save(ExtractFilePath(ParamStr(0))+'test_zugferd21.xml', TZUGFeRDVersion.Version21, TZUGFeRDProfile.Basic);
149+
desc.Save(ExtractFilePath(ParamStr(0))+'test_zugferd21.xml', TZUGFeRDVersion.Version22, TZUGFeRDProfile.Basic);
148150

149151
Assert.AreEqual(desc.Profile, TZUGFeRDProfile.Basic);
150152
Assert.AreEqual(desc.Type_, TZUGFeRDInvoiceType.Invoice);
@@ -1243,6 +1245,33 @@ procedure TZUGFeRD22Tests.TestOrderInformation;
12431245
//
12441246
end;
12451247

1248+
procedure TZUGFeRD22Tests.TestSellerDescription;
1249+
begin
1250+
// InvoiceDescriptor invoice = InvoiceProvider.CreateInvoice();
1251+
//
1252+
// string description = "Test description";
1253+
//
1254+
// invoice.SetSeller(name: "Lieferant GmbH",
1255+
// postcode: "80333",
1256+
// city: "München",
1257+
// street: "Lieferantenstraße 20",
1258+
// country: CountryCodes.DE,
1259+
// id: "",
1260+
// globalID: new GlobalID(GlobalIDSchemeIdentifiers.GLN, "4000001123452"),
1261+
// legalOrganization: new LegalOrganization(GlobalIDSchemeIdentifiers.GLN, "4000001123452", "Lieferant GmbH"),
1262+
// description: description
1263+
// );
1264+
//
1265+
// MemoryStream ms = new MemoryStream();
1266+
// invoice.Save(ms, ZUGFeRDVersion.Version22, Profile.Extended);
1267+
// ms.Position = 0;
1268+
//
1269+
// InvoiceDescriptor loadedInvoice = InvoiceDescriptor.Load(ms);
1270+
//
1271+
// Assert.AreEqual(loadedInvoice.Seller.Description, description);
1272+
// } // !TestSellerDescription()
1273+
end;
1274+
12461275
procedure TZUGFeRD22Tests.TestSellerOrderReferencedDocument;
12471276
begin
12481277
// string uuid = System.Guid.NewGuid().ToString();

‎Test/intf.ZUGFeRDInvoiceProvider.pas

+68-70
Original file line numberDiff line numberDiff line change
@@ -44,88 +44,86 @@ implementation
4444
class function TZUGFeRDInvoiceProvider.CreateInvoice: TZUGFeRDInvoiceDescriptor;
4545
begin
4646
Result := TZUGFeRDInvoiceDescriptor.CreateInvoice('471102', EncodeDate(2018, 03, 05), TZUGFeRDCurrencyCodes.EUR);
47+
Result.Name := 'WARENRECHNUNG';
4748
Result.AddNote('Rechnung gemäß Bestellung vom 01.03.2018.');
4849
Result.AddNote('Lieferant GmbH'+#13#10+'Lieferantenstraße 20'+#13#10+'80333 München'+#13#10+'Deutschland'+#13#10+'Geschäftsführer: Hans Muster'+#13#10+'Handelsregisternummer: H A 123',
4950
TZUGFeRDSubjectCodes.REG);
5051

51-
// Result.AddTradeLineItem('Trennblätter A4',
52-
// TZUGFeRDQuantityCodes.H87,
53-
// 'TB100A4',
54-
// id: new GlobalID(GlobalIDSchemeIdentifiers.EAN, "4012345001235"),
55-
// grossUnitPrice: 9.9m,
56-
// netUnitPrice: 9.9m,
57-
// billedQuantity: 20m,
58-
// taxType: TaxTypes.VAT,
59-
// categoryCode: TaxCategoryCodes.S,
60-
// taxPercent: 19m
61-
// );
62-
//
63-
// desc.AddTradeLineItem(name: "Joghurt Banane",
64-
// unitCode: QuantityCodes.H87,
65-
// sellerAssignedID: "ARNR2",
66-
// id: new GlobalID(GlobalIDSchemeIdentifiers.EAN, "4000050986428"),
67-
// grossUnitPrice: 5.5m,
68-
// netUnitPrice: 5.5m,
69-
// billedQuantity: 50,
70-
// taxType: TaxTypes.VAT,
71-
// categoryCode: TaxCategoryCodes.S,
72-
// taxPercent: 7
73-
// );
52+
// desc.AddTradeLineItem(name: "Trennblätter A4",
53+
// unitCode: QuantityCodes.H87,
54+
// sellerAssignedID: "TB100A4",
55+
// id: new GlobalID(GlobalIDSchemeIdentifiers.EAN, "4012345001235"),
56+
// grossUnitPrice: 9.9m,
57+
// netUnitPrice: 9.9m,
58+
// billedQuantity: 20m,
59+
// taxType: TaxTypes.VAT,
60+
// categoryCode: TaxCategoryCodes.S,
61+
// taxPercent: 19m
62+
// );
7463
//
64+
// desc.AddTradeLineItem(name: "Joghurt Banane",
65+
// unitCode: QuantityCodes.H87,
66+
// sellerAssignedID: "ARNR2",
67+
// id: new GlobalID(GlobalIDSchemeIdentifiers.EAN, "4000050986428"),
68+
// grossUnitPrice: 5.5m,
69+
// netUnitPrice: 5.5m,
70+
// billedQuantity: 50,
71+
// taxType: TaxTypes.VAT,
72+
// categoryCode: TaxCategoryCodes.S,
73+
// taxPercent: 7
74+
// );
75+
7576
Result.ReferenceOrderNo := '04011000-12345-34';
76-
// desc.SetSeller(name: "Lieferant GmbH",
77-
// postcode: "80333",
78-
// city: "München",
79-
// street: "Lieferantenstraße 20",
80-
// country: CountryCodes.DE,
81-
// id: "",
82-
// globalID: new GlobalID(GlobalIDSchemeIdentifiers.GLN, "4000001123452"),
83-
// legalOrganization: new LegalOrganization(GlobalIDSchemeIdentifiers.GLN, "4000001123452", "Lieferant GmbH")
84-
// );
85-
// desc.SetSellerContact(name: "Max Mustermann",
86-
// orgunit: "Muster-Einkauf",
87-
// emailAddress: "Max@Mustermann.de",
88-
// phoneno: "+49891234567"
89-
// );
77+
// desc.SetSeller(name: "Lieferant GmbH",
78+
// postcode: "80333",
79+
// city: "München",
80+
// street: "Lieferantenstraße 20",
81+
// country: CountryCodes.DE,
82+
// id: "",
83+
// globalID: new GlobalID(GlobalIDSchemeIdentifiers.GLN, "4000001123452"),
84+
// legalOrganization: new LegalOrganization(GlobalIDSchemeIdentifiers.GLN, "4000001123452", "Lieferant GmbH")
85+
// );
86+
// desc.SetSellerContact(name: "Max Mustermann",
87+
// orgunit: "Muster-Einkauf",
88+
// emailAddress: "Max@Mustermann.de",
89+
// phoneno: "+49891234567"
90+
// );
9091
Result.AddSellerTaxRegistration('201/113/40209', TZUGFeRDTaxRegistrationSchemeID.FC);
9192
Result.AddSellerTaxRegistration('DE123456789', TZUGFeRDTaxRegistrationSchemeID.VA);
93+
94+
// desc.SetBuyer(name: "Kunden AG Mitte",
95+
// postcode: "69876",
96+
// city: "Frankfurt",
97+
// street: "Kundenstraße 15",
98+
// country: CountryCodes.DE,
99+
// id: "GE2020211"
100+
// );
92101
//
93-
// desc.SetBuyer(name: "Kunden AG Mitte",
94-
// postcode: "69876",
95-
// city: "Frankfurt",
96-
// street: "Kundenstraße 15",
97-
// country: CountryCodes.DE,
98-
// id: "GE2020211"
99-
// );
100-
//
101-
// desc.ActualDeliveryDate = new DateTime(2018, 03, 05);
102-
// desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, "Zahlung per SEPA Überweisung.");
103-
// desc.AddCreditorFinancialAccount(iban: "DE02120300000000202051", bic: "BYLADEM1001", name: "Kunden AG");
104-
// //desc.AddDebitorFinancialAccount(iban: "DB02120300000000202051", bic: "DBBYLADEM1001", bankName: "KundenDB AG");
105-
//
106-
// desc.AddApplicableTradeTax(basisAmount: 275.0m,
107-
// percent: 7m,
108-
// typeCode: TaxTypes.VAT,
109-
// categoryCode: TaxCategoryCodes.S
110-
// );
102+
// desc.ActualDeliveryDate = new DateTime(2018, 03, 05);
103+
// desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, "Zahlung per SEPA Überweisung.");
104+
// desc.AddCreditorFinancialAccount(iban: "DE02120300000000202051", bic: "BYLADEM1001", name: "Kunden AG");
105+
// //desc.AddDebitorFinancialAccount(iban: "DB02120300000000202051", bic: "DBBYLADEM1001", bankName: "KundenDB AG");
106+
// desc.AddApplicableTradeTax(basisAmount: 275.0m,
107+
// percent: 7m,
108+
// typeCode: TaxTypes.VAT,
109+
// categoryCode: TaxCategoryCodes.S
110+
// );
111111
//
112-
// desc.AddApplicableTradeTax(basisAmount: 198.0m,
113-
// percent: 19m,
114-
// typeCode: TaxTypes.VAT,
115-
// categoryCode: TaxCategoryCodes.S
116-
// );
112+
// desc.AddApplicableTradeTax(basisAmount: 198.0m,
113+
// percent: 19m,
114+
// typeCode: TaxTypes.VAT,
115+
// categoryCode: TaxCategoryCodes.S
116+
// );
117117
//
118-
// desc.SetTradePaymentTerms("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018");
119-
// desc.SetTotals(lineTotalAmount: 473.0m,
120-
// taxBasisAmount: 473.0m,
121-
// taxTotalAmount: 56.87m,
122-
// grandTotalAmount: 529.87m,
123-
// duePayableAmount: 529.87m
124-
// );
118+
// desc.SetTradePaymentTerms("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018");
119+
// desc.SetTotals(lineTotalAmount: 473.0m,
120+
// taxBasisAmount: 473.0m,
121+
// taxTotalAmount: 56.87m,
122+
// grandTotalAmount: 529.87m,
123+
// duePayableAmount: 529.87m
124+
// );
125125
//
126-
// return desc;
127-
// } // !CreateInvoice()
128-
126+
// return desc;
129127
end;
130128

131129
end.

‎Test/intf.ZUGFeRDProfile.UnitTests.pas

+9-9
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,17 @@ procedure TZUGFeRDProfileTest.TestEnumToString;
8484
Assert.AreEqual('urn:cen.eu:en16931:2017',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Comfort, TZUGFeRDVersion.Version20));
8585
Assert.AreEqual('urn:cen.eu:en16931:2017#conformant#urn:zugferd.de:2p0:extended',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Extended, TZUGFeRDVersion.Version20));
8686

87-
Assert.AreEqual('urn:factur-x.eu:1p0:minimum',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Minimum, TZUGFeRDVersion.Version21));
88-
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Basic, TZUGFeRDVersion.Version21));
89-
Assert.AreEqual('urn:factur-x.eu:1p0:basicwl',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.BasicWL, TZUGFeRDVersion.Version21));
90-
Assert.AreEqual('urn:cen.eu:en16931:2017',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Comfort, TZUGFeRDVersion.Version21));
91-
Assert.AreEqual('urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Extended, TZUGFeRDVersion.Version21));
92-
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung1, TZUGFeRDVersion.Version21));
87+
Assert.AreEqual('urn:factur-x.eu:1p0:minimum',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Minimum, TZUGFeRDVersion.Version22));
88+
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Basic, TZUGFeRDVersion.Version22));
89+
Assert.AreEqual('urn:factur-x.eu:1p0:basicwl',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.BasicWL, TZUGFeRDVersion.Version22));
90+
Assert.AreEqual('urn:cen.eu:en16931:2017',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Comfort, TZUGFeRDVersion.Version22));
91+
Assert.AreEqual('urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.Extended, TZUGFeRDVersion.Version22));
92+
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung1, TZUGFeRDVersion.Version22));
9393
if Now >= EncodeDate(2024, 2, 1) then
94-
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung, TZUGFeRDVersion.Version21))
94+
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung, TZUGFeRDVersion.Version22))
9595
else
96-
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.3',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung, TZUGFeRDVersion.Version21));
97-
Assert.AreEqual('urn.cpro.gouv.fr:1p0:ereporting',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.EReporting, TZUGFeRDVersion.Version21));
96+
Assert.AreEqual('urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.3',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.XRechnung, TZUGFeRDVersion.Version22));
97+
Assert.AreEqual('urn.cpro.gouv.fr:1p0:ereporting',TZUGFeRDProfileExtensions.EnumToString(TZUGFeRDProfile.EReporting, TZUGFeRDVersion.Version22));
9898
end;
9999

100100
initialization

‎Test/intf.ZUGFeRDQuantityCodes.UnitTests.pas

+2-4
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ procedure TZUGFeRDQuantityCodesTest.TestFromString;
5757
Assert.AreEqual(TZUGFeRDQuantityCodes.MTQ, TZUGFeRDQuantityCodesExtensions.FromString('MTQ'));
5858
Assert.AreEqual(TZUGFeRDQuantityCodes.MTR, TZUGFeRDQuantityCodesExtensions.FromString('MTR'));
5959
Assert.AreEqual(TZUGFeRDQuantityCodes.NAR, TZUGFeRDQuantityCodesExtensions.FromString('NAR'));
60-
Assert.AreEqual(TZUGFeRDQuantityCodes.NPR, TZUGFeRDQuantityCodesExtensions.FromString('NPR'));
60+
Assert.AreEqual(TZUGFeRDQuantityCodes.PR, TZUGFeRDQuantityCodesExtensions.FromString('NPR'));
6161
Assert.AreEqual(TZUGFeRDQuantityCodes.P1, TZUGFeRDQuantityCodesExtensions.FromString('P1'));
62-
Assert.AreEqual(TZUGFeRDQuantityCodes.PCE, TZUGFeRDQuantityCodesExtensions.FromString('PCE'));
62+
Assert.AreEqual(TZUGFeRDQuantityCodes.C62, TZUGFeRDQuantityCodesExtensions.FromString('PCE'));
6363
Assert.AreEqual(TZUGFeRDQuantityCodes.SET_, TZUGFeRDQuantityCodesExtensions.FromString('SET'));
6464
Assert.AreEqual(TZUGFeRDQuantityCodes.TNE, TZUGFeRDQuantityCodesExtensions.FromString('TNE'));
6565
Assert.AreEqual(TZUGFeRDQuantityCodes.WEE, TZUGFeRDQuantityCodesExtensions.FromString('WEE'));
@@ -113,9 +113,7 @@ procedure TZUGFeRDQuantityCodesTest.TestEnumToString;
113113
Assert.AreEqual('MTQ', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.MTQ));
114114
Assert.AreEqual('MTR', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.MTR));
115115
Assert.AreEqual('NAR', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.NAR));
116-
Assert.AreEqual('NPR', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.NPR));
117116
Assert.AreEqual('P1', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.P1));
118-
Assert.AreEqual('PCE', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.PCE));
119117
Assert.AreEqual('SET', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.SET_));
120118
Assert.AreEqual('TNE', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.TNE));
121119
Assert.AreEqual('WEE', TZUGFeRDQuantityCodesExtensions.EnumToString(TZUGFeRDQuantityCodes.WEE));

‎intf.ZUGFeRDExceptions.pas

+3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ TZUGFeRDFileNotFoundException = class(Exception)
4646
TZUGFeRDArgumentException = class(Exception)
4747
end;
4848

49+
TZUGFeRDNotImplementedException = class(Exception)
50+
end;
51+
4952
implementation
5053

5154

0 commit comments

Comments
 (0)
Please sign in to comment.