Ich hatte vergeblich nach einer Möglichkeit gesucht, auch ein Betreff in die X-Rechnung zu integrieren und dann in Deinem Code gesehen, dass Du da noch ein offenes TODO dafür hattest.
Das habe ich jetzt mal schnell selbst ergänzt:
1. Neue Variable "InvoiceSubjectCode" in der Klasse "TInvoice" eingeführt (
unit intf.invoice).
2. Code in
unit 'intf.XRechnung_3_0" und
unit 'int.XRechnung_2_3' wie folgt ergänzt / geändert:
Delphi-Quellcode:
with AddChild('
ram:IncludedNote')
do
begin
AddChild('
ram:SubjectCode').Text := _Invoice.InvoiceSubjectCode;
// BT-21
for i := 0
to _Invoice.Notes.Count-1
do begin
//with AddChild('ram:IncludedNote') do
//begin
AddChild('
ram:Content').Text := _Invoice.Notes[i].Content;
// BT-22
//TODO <ram:SubjectCode>ADU</ram:SubjectCode>, bei UBL auch
end;
end;
Scheint zu funktionieren, der Validator Quba weist es jedenfalls so aus (Zeile Betreff, für BT-21), siehe screenshot in Anlage.
Wenn Du der Ansicht bist, dass das so richtig ist, wäre meine Anregung, das Du das so in Deine Implementierung übernimmst.
Generelle Frage: Ist es Dir lieber, solche Hinweise / Anregungen hier auf der
DP zu sehen, in einem Kommentar auf GitHub oder sollte man Dir das per Mail zusenden?
Übrigens: Die Basic-Implementation für ZUGFeRD habe ich somit fertig, inklusive ordnungsgemäße Einbettung der
XML-Datei "factur-x.xml" in ein PDF/A-3 Dokument (wobei ich das mit den Komponenten gemacht habe, die ich auch für mein Programm "PDF-Manager" verwende). Ich denke, das ging jetzt doch sehr viel schneller als eine Hin und Her mit ChatGPT. Hoffe der Rest geht auch flott (wobei der Rest bedeutet die Formate "Comfort und Extended" zu implementieren, dafür muss ich eine Reihe von neuen Feldern in meine Masken aufnehmen. Das wird ja wohl auch schon für die X-Rechnung B2G notwendig sein, weil da ja auch eine Reihe zusätzlicher Felder benötigt werden).
EDIT: Nee, das funktioniert so leider nicht, das hatte ich nicht richtig verstanden. SubjectCode ist wohl immer eine Erklärung für den Content.
Dh. man müsste wohl eher die Klasse TInvoiceNote um einen Member "ID" ergänzen, der kann dann "ADU", "AAI" etc. enthalten.
Aber im Betreff erhalte ich dann auch nur "ADU". Kann das so richtig sein? Wohl eher nicht, oder?