ZUGFeRD API

Verwendung

Die ZUGFeRD API ermöglicht die automatische Auslesung von Metadaten aus einer ZUGFeRD-PDF und überführt aufbereiteten Metadaten an ein anderes System zur Weiterverarbeitung.

Das Auslesen der Metadaten erfolgt über eine COM-Schnittstelle, die auf den eingebetteten XML-Datenstrom zugreift und die Metadaten automatisch speichert. Nachfolgend werden diese Daten entsprechend ausgelesen und an ein bereitgestelltes Feldschema übertragen.

Voraussetzung

Die DLL muss in Windows via regsvr32 registriert werden, da ansonsten die OLE-Objekte nicht auf die Methoden zugreifen können. Siehe auch https://de.wikipedia.org/wiki/Object_Linking_and_Embedding

Funktionen

Folgende Funktionen stehen zur Verfügung:

getDeliveryCount : Integer;

Gibt die Anzahl der Lieferinformationen zurück.

Beispiel

deliveryCount := document.getDeliveryCount;

for i := 0 to deliveryCount-1 do
begin
  document.deliveryIndex := i;
  showMessage('Delivery: '+ DateToStr(document.deliveryDate));
end;

getDeliveryNoteCount : Integer;

Gibt die Anzahl der Lieferscheininformationen zurück.

getLineItemCount : Integer;

Gibt die Anzahl der Positionen zurück

Beispiel

lineCount := document.getLineItemCount;

for i := 0 to lineCount-1 do
begin
  document.lineIndex   := i;
  allowanceChargeCount := -1;
  lineText := '';
  lineText := 'Line: '+ document.lineId +' '+document.lineName+' ';
  lineText := lineText + FloatToStr(document.lineQuantity)+' '+document.lineUnit+' pro';
  lineText := lineText + floatToStr(document.linePriceBasisQuantity) +' '+ floatToStr(document.lineSinglePrice)+'+FloatToStr(document.lineTradeTax)+ ' ';
  lineText := lineText + document.lineGlobalArticleId+ ' ' +document.lineSellerArticleId + ' '+document.lineDeliveryId+' ';
  lineText := lineText + document.lineOrderId + ' ' + FloatToStr(document.lineTotalAmount);
  allowanceChargeCount := document.getAllowanceChargeCount(i);
  for j := 0 to allowanceChargeCount-1 do
  begin
    document.allowanceChargeIndex := j;                            
    lineText := lineText + CRLF;
    lineText := lineText + IntToStr(document.allChargeIndexTypeID)+ ' ';
    lineText := lineText + document.allChargeAmountDescription+ ' ';
    lineText := lineText + document.allChargeAmountCurrency+ ' ';
    lineText := lineText + floatToStr(document.allChargeAmountValue)+ ' ';
    lineText := lineText + floatToStr(document.allChargeCalculationPercent)+ ' ';
    lineText := lineText + floatToStr(document.allChargeAmountValue * document.allChargeCalculationPercent/100)+ ' ';
  end;
  showMessage(lineText);
end;

getOrderCount : Integer;

Gibt die Anzahl der Bestellinformationen zurück.

Beispiel

orderCount := document.getOrderCount;

for i := 0 to orderCount-1 do
begin
  document.orderIndex := i;
  showMessage('Order: '+ document.paymentCurrencyCode+' '+document.paymentID);
end;

 getTaxCount : Integer;

Gibt die Anzahl der Steuerbeträgen zurück.

Beispiel

taxCount := document.getTaxCount;

for i := 0 to taxCount-1 do
begin
  document.taxIndex := i;
  showMessage('Tax: '+ FloatToStr(document.taxBasisAmount)+' '+FloatToStr(document.taxApplicablePercent)+' '+FloatToStr(document.taxCalculatedAmount)+' '+document.taxTypeCode);
end;

getSellerBankCount : Integer;

Gibt die Anzahl der Bankverbindungen des Rechnungserstellers zurück.

Beispiel

bankCount := document.getSellerBankCount;

for i := 0 to bankCount-1 do
begin
  document.bankIndex := i;
  showMessage('Bank-Data: '+ document.bankName+', '+document.bankBiC+', '+document.bankIBAN+', '+document.bankID+', '+document.bankBLZ);
end;

Technische Bezeichnung

cczugferdreader.dll