pixiGetInvoiceLinesPrinted
Liefert die Positionen einer Rechnung druckfertig aufbereitet, gruppiert pro Auftragsposition, mit optionaler Bundle-Zusammenfassung und Ersatzzeile für Rechnungen ohne Positionen.
Der Aufruf übergibt InvoiceNr an die interne Prozedur GOS_PrintInvLine und liefert deren einziges Resultset.
Ablauf:
- Die Rechnung wird über
InvoiceNrinInvoices(verknüpft mitpixi.Currency) gesucht. Gelesen werden Schlüssel, Pickliste (PLHref), Gutschriftsbezug (RefToInvoiceKey) undDiscountTotal. - Alle Rechnungspositionen (
Invlines) der Rechnung werden mit Auftragspositionen, Artikeln, Ursprungsland und dem Artikelcode vom Typ 3 (InternalItemNumber) verknüpft. Gruppiert wird nach der übergeordneten Auftragsposition (OriginalOrderlineRefbzw. die Position selbst, wenn sie nicht geteilt wurde) sowie nach Preis, MwSt., Rabatt, Seriennummer, Charge, MHD und weiteren Attributen. Mengen und Beträge werden je Gruppe summiert. - Pro Position werden der erste Lagerplatzname und die Anzahl der Picklistenpositionen aus der Pickliste der Rechnung ermittelt (
BinName,QtyFromBin). - Bundles: Ist die Einstellung
CombineBundles= 1 und die Rechnung keine Gutschrift (RefToInvoiceKeyist NULL), werden alle Komponentenpositionen eines Bundles zu einer Zeile mit den Daten der Bundle-Auftragsposition (BundleOrderlines) und des Bundle-Artikels zusammengefasst. Die Bundle-Anzahl ergibt sich aus Komponentenmenge geteilt durch Menge pro Bundle ausBundleItemsHistDetail(oder der Menge der Bundle-Auftragsposition, falls keine Historie existiert). Andernfalls wird jede Komponentenposition einzeln geliefert. - Ergibt sich keine Position (Rechnung ohne Positionen), wird eine Ersatzzeile aus dem Rechnungskopf erzeugt: Text aus
TextIfNoInvlines,OrderQty= 1, Preis = Rechnungssumme minus Versandkosten, MwSt.-Kennzeichen und Steuersatz abgeleitet aus den Bemessungsgrundlagen hoch/niedrig. In dieser Zeile enthältOrderNrden Rechnungsschlüssel undOrderNrExternaldie Rechnungsnummer. - Sortiert wird nach
ArtName. Jede Zeile enthält zusätzlich den Rechnungsrabatt alsInvoiceTotalDiscount.
Die Einstellung UseInitialOrderDate steuert OrderDate: 0 liefert das späteste Bestelldatum der gruppierten Auftragspositionen, 1 das früheste.
Hinweise
- Der Parameter ist als
varchar(50)deklariert, die interne Prozedur akzeptiert jedoch nurvarchar(25); längere Rechnungsnummern werden stillschweigend abgeschnitten. - Existiert die Rechnungsnummer nicht (oder hat die Rechnung keine passende Währung in
pixi.Currency), ist das Resultset leer; ein Fehler wird nicht gemeldet. - Alle Lesezugriffe verwenden
NOLOCK, daher können nicht festgeschriebene Daten geliefert werden. - Die Einstellungen
CombineBundlesundUseInitialOrderDatewerden zur Laufzeit überfpixi_GetSettinggelesen;ItemTagListwird vonfpixi_GetItemTAGsNamesAsStringerzeugt. Beide Funktionen liegen nicht vor. - Spalten wie
itemprice_ordercurr,ItemAmount_OrderCurr,USDamountundEURamountsind Altlasten (Kommentare markieren sie zur Entfernung); sie enthalten dieselben Werte wie die Spalten in Rechnungswährung. ItemAmountenthält die Betragsdifferenzen der Positionen (InvLineAmountDiff),ItemAmountNoVAT_OrderCurrdagegen nur die Summe der Nettobeträge.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
InvoiceNr
Pflicht
|
varchar(50) string |
– |
Rechnungsnummer ( Beispiel: |
Antwort
Result-Set 1 · Immer; leer, wenn die Rechnungsnummer nicht gefunden wird.
Druckfertige Rechnungspositionen, sortiert nach ArtName. Bei Rechnungen ohne Positionen eine Ersatzzeile aus dem Rechnungskopf.
| Spalte | Typ | Beschreibung |
|---|---|---|
InvLineKey
|
int |
Schlüssel der (höchsten) Rechnungsposition der Gruppe; 0 bei der Ersatzzeile. |
OrderlineKey
|
int |
Schlüssel der ursprünglichen Auftragsposition bzw. der Bundle-Auftragsposition bei zusammengefassten Bundles; 0, wenn nicht vorhanden. |
ArtNr
Kann leer sein |
varchar(13) string |
Artikelnummer aus der Auftragsposition. |
OrderDate
Kann leer sein |
dateTime |
Bestelldatum (spätestes oder frühestes je nach |
ArtName
Kann leer sein |
varchar(300) string |
Artikelname aus der Auftragsposition, gefolgt vom Sondervermerk in Klammern; auf 300 Zeichen gekürzt. |
OrderCurrency
Kann leer sein |
string |
Währungscode ( |
ItemText
Kann leer sein |
string |
Artikeltext der Rechnungsposition plus Sondervermerk in Klammern. |
ItemName
Kann leer sein |
varchar(300) string |
Artikelname aus dem Artikelstamm. |
OrderQty
Kann leer sein |
int |
Bestellte Menge (Anzahl Bundles bei zusammengefassten Bundles). |
ItemQty
Kann leer sein |
int |
Berechnete Menge (Anzahl Bundles bei zusammengefassten Bundles). |
RemainQty
Kann leer sein |
int |
Bestellte minus berechnete Menge; 0 bei zusammengefassten Bundles. |
BundleItemsQty
Kann leer sein |
int |
Summe der Komponentenmengen bei zusammengefassten Bundles; sonst 0. |
ItemPrice
Kann leer sein |
decimal |
Brutto-Einzelpreis. |
ShipCost
Kann leer sein |
decimal |
Versandkosten der Position. |
ItemVAT
Kann leer sein |
varchar(1) string |
MwSt.-Kennzeichen: |
ItemNr
Kann leer sein |
string |
Artikelnummer der Rechnungsposition; EAN des Bundle-Artikels bei zusammengefassten Bundles. |
itemprice_ordercurr
Kann leer sein |
decimal |
Veraltetes Duplikat von |
OrderLineRef
Kann leer sein |
int |
Von der Rechnungsposition referenzierte Auftragsposition; NULL bei zusammengefassten Bundles, 0 bei der Ersatzzeile. |
ItemAmount
Kann leer sein |
decimal |
Brutto-Positionsbetrag inklusive Betragsdifferenzen. |
ItemAmountNoVat
Kann leer sein |
decimal |
Netto-Positionsbetrag inklusive Netto-Betragsdifferenzen. |
ItemAmount_OrderCurr
Kann leer sein |
decimal |
Gleicher Wert wie |
USDamount
Kann leer sein |
money decimal |
Veraltet: Summe der Brutto-Positionsbeträge ohne Differenzen. |
EURamount
Kann leer sein |
money decimal |
Veraltet: wie |
OrderNr
Kann leer sein |
string |
Auftragsnummer; Rechnungsschlüssel bei der Ersatzzeile. |
OrderNrExternal
Kann leer sein |
string |
Externe Auftragsnummer; Rechnungsnummer bei der Ersatzzeile. |
Status
Kann leer sein |
string |
Status der Auftragsposition. |
ItemPriceNoVAT
Kann leer sein |
decimal |
Netto-Einzelpreis. |
FullPrice_Net
Kann leer sein |
decimal |
Netto-Vollpreis vor Rabatt. |
FullPrice
Kann leer sein |
decimal |
Brutto-Vollpreis vor Rabatt. |
ItemPriceNoVAT_OrderCurr
Kann leer sein |
decimal |
Gleicher Wert wie |
ItemAmountNoVAT_OrderCurr
Kann leer sein |
decimal |
Summe der Netto-Positionsbeträge (bei normalen Positionen ohne Differenzen). |
ConfigType
Kann leer sein |
string |
Zeichen 3–4 des Konfigurationstyps des Artikels. |
GIN
Kann leer sein |
string |
Interne Artikelnummer ( |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
ItemNrSuppl
Kann leer sein |
string |
Lieferanten-Artikelnummer. |
BinName
Kann leer sein |
varchar(50) string |
Erster Lagerplatz aus der Pickliste der Rechnung für diese Auftragsposition; NULL bei zusammengefassten Bundles. |
QtyFromBin
Kann leer sein |
int |
Anzahl Picklistenpositionen für diese Auftragsposition in der Pickliste der Rechnung; NULL bei zusammengefassten Bundles. |
BundledItemsInOrder
|
int |
Anzahl zusammengefasster Komponentenpositionen bei Bundles; sonst 1. |
BundleItemRef
Kann leer sein |
int |
Artikelschlüssel des Bundle-Artikels bei zusammengefassten Bundles; sonst NULL. |
oItemSpecialNote
|
string |
Sondervermerk der Auftragsposition; Leerstring, wenn keiner vorhanden. |
EanUpc
Kann leer sein |
string |
EAN/UPC des Artikels. |
SerialNr
Kann leer sein |
string |
Seriennummer der Rechnungsposition. |
DiscountValue
Kann leer sein |
decimal |
Rabattwert der Position; Rechnungsrabatt bei der Ersatzzeile. |
DiscountPerc
Kann leer sein |
decimal |
Rabatt in Prozent der Position. |
MeasuredWeight
Kann leer sein |
decimal |
Gemessenes Gewicht der Auftragsposition (bei zusammengefassten Bundles summiert). |
PriceWeightUnits_Price
Kann leer sein |
decimal |
Preis pro Gewichtseinheit (Durchschnitt bei zusammengefassten Bundles). |
DF_Type
|
string |
Direct-Fulfillment-Typ der Auftragsposition; |
CustomsTariffNumber
Kann leer sein |
string |
Zolltarifnummer des Artikels. |
CustomsCountryOfOrigin
Kann leer sein |
string |
Ursprungsland des Artikels. |
CntCodeISO2
Kann leer sein |
string |
ISO-2-Code des Ursprungslands. |
CntCodeISO3
Kann leer sein |
string |
ISO-3-Code des Ursprungslands. |
CustomsTariffText
Kann leer sein |
varchar(2048) string |
Zolltariftext des Artikels. |
BatchNumber
Kann leer sein |
string |
Charge der Auftragsposition. |
BestBeforeDate
Kann leer sein |
dateTime |
Mindesthaltbarkeitsdatum der Auftragsposition. |
lastSupplierPrice
Kann leer sein |
decimal |
Lieferantenpreis der Auftragsposition bzw. der Bundle-Auftragsposition. |
InvoiceTotalDiscount
Kann leer sein |
money decimal |
Gesamtrabatt der Rechnung ( |
InternalItemNumber
Kann leer sein |
string |
Artikelcode vom Codetyp 3 aus |
TaxRate
Kann leer sein |
numeric(6,3) decimal |
Steuersatz in Prozent. |
TaxAmount
Kann leer sein |
decimal |
Steuerbetrag der Position. |
ItemWeight
Kann leer sein |
decimal |
Gewicht aus dem Artikelstamm. |
PicLinkLarge
Kann leer sein |
string |
Link zum großen Artikelbild. |
PicLinkSmall
Kann leer sein |
string |
Link zum kleinen Artikelbild. |
ItemDescription
Kann leer sein |
string |
Artikelbeschreibung. |
ItemTagList
Kann leer sein |
string |
Kommagetrennte Liste der Tag-Namen des Artikels. |
Beispielantwort
<SqlRowSet1>
<row>
<InvLineKey>558812</InvLineKey>
<OrderlineKey>904417</OrderlineKey>
<ArtNr>4711-BL</ArtNr>
<OrderDate>2024-03-04T10:15:00</OrderDate>
<ArtName>T-Shirt Basic blau L</ArtName>
<OrderCurrency>EUR</OrderCurrency>
<ItemText>T-Shirt Basic blau L</ItemText>
<ItemName>T-Shirt Basic</ItemName>
<OrderQty>2</OrderQty>
<ItemQty>2</ItemQty>
<RemainQty>0</RemainQty>
<BundleItemsQty>0</BundleItemsQty>
<ItemPrice>19.9900</ItemPrice>
<ShipCost>0.0000</ShipCost>
<ItemVAT>H</ItemVAT>
<ItemNr>4711-BL</ItemNr>
<ItemAmount>39.9800</ItemAmount>
<ItemAmountNoVat>33.6000</ItemAmountNoVat>
<OrderNr>310245</OrderNr>
<OrderNrExternal>SHOP-100234</OrderNrExternal>
<Status>AUS</Status>
<BinName>A-01-03</BinName>
<QtyFromBin>2</QtyFromBin>
<BundledItemsInOrder>1</BundledItemsInOrder>
<oItemSpecialNote/>
<DF_Type>0</DF_Type>
<InvoiceTotalDiscount>0.0000</InvoiceTotalDiscount>
<TaxRate>19.000</TaxRate>
</row>
</SqlRowSet1>
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetInvoiceLinesPrinted>
<InvoiceNr>RE2024-001234</InvoiceNr>
</ns1:pixiGetInvoiceLinesPrinted>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetInvoiceLinesPrinted>
<InvoiceNr>RE2024-001234</InvoiceNr>
</ns1:pixiGetInvoiceLinesPrinted>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
'InvoiceNr' => 'RE2024-001234',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetInvoiceLinesPrinted', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetInvoiceLinesPrinted