Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Wie ZUGFeRD Demo von SH17 verwenden?

  Alt 26. Okt 2024, 14:27
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?
Miniaturansicht angehängter Grafiken
bt21.jpg  

Geändert von Harry Stahl (26. Okt 2024 um 23:25 Uhr)
  Mit Zitat antworten Zitat