pixiGetInvoiceLines
Liefert alle Positionen einer Rechnung mit Artikel-, Auftragspositions-, Preis-, MwSt.-, Chargen- und Streckendaten, optional inklusive Versandkosten-, Gutschein- und manueller Rechnungszeilen.
Liefert die Rechnungspositionen der Rechnung, deren Nummer exakt InvoiceNr entspricht. Die Daten stammen aus der Reporting-View PV_Invlines, die echte Rechnungspositionen mit künstlichen Zeilen für Beträge auf Rechnungsebene kombiniert. Jede Zeile wird um Daten der Auftragsposition (BatchNumber, BestBeforeDate, TaxRate als VATPercent) und des Artikels (PicLinkLarge) ergänzt.
Sonderzeilen (gesteuert über IncludeSpecialInvLines):
-2: Versandkosten der Rechnung (ArtName=ZZZ Versandkosten), nur wenn die Versandkosten ungleich 0 sind.-1: Gutscheine (ArtName=ZZZ Gutscheine), Preis als negative Gutscheinsumme.-3: manuelle Rechnung ohne Rechnungspositionen (ArtName=ZZZ Manuelle Rechnung ohne Artikel), Betrag = Rechnungssumme abzüglich Versandkosten.
Mit IncludeSpecialInvLines = 0 (Standard) werden diese Zeilen ausgeschlossen, mit 1 werden sie mitgeliefert. Bei Sonderzeilen enthält OrderLineKey den Sonderwert (-1, -2, -3), ItemQty ist 1 und die meisten Artikel-/Auftragsfelder (InvoiceLineKey, ArtNr, OrderNr, BoxNr, …) sind NULL.
ItemPriceNoVAT ist der Nettopreis, gerundet auf die Anzahl Nachkommastellen aus der Einstellung PrintInvLineMoneyPrecision (2, wenn die Einstellung fehlt oder 0 ist). Eine Sortierung findet nicht statt.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK, es können also nicht festgeschriebene Daten geliefert werden. - Der Filter auf Sonderzeilen vergleicht den Artikelschlüssel mit
NOT IN (-1, -2, -3). Echte Rechnungspositionen ohne Auftragsposition oder deren Auftragsposition keinen Artikel hat, haben den ArtikelschlüsselNULLund werden beiIncludeSpecialInvLines= 0 ebenfalls ausgeschlossen. Mit dem Wert 1 werden sicher alle Zeilen der Rechnung geliefert. SerialNrgreift auf die Seriennummer einer anderen Rechnungsposition derselben Auftragsposition zurück, wenn die Zeile selbst keine hat.- Die Einstellung
PrintInvLineMoneyPrecisionwird zur Laufzeit ausSettingsgelesen; shop- oder lagerspezifische Werte werden nicht berücksichtigt. - Die Reihenfolge der Zeilen ist undefiniert; bei Bedarf clientseitig sortieren.
- Eine unbekannte Rechnungsnummer liefert eine leere Ergebnismenge, keinen Fehler.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
InvoiceNr
Pflicht
|
varchar(50) string |
– |
Nummer der Rechnung, deren Positionen geliefert werden (exakter Vergleich mit der Rechnungsnummer). Beispiel: |
IncludeSpecialInvLines
|
bit boolean |
0 |
Legt fest, ob künstliche Zeilen für Versandkosten, Gutscheine und manuelle Rechnungen mitgeliefert werden. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (leer, wenn die Rechnungsnummer nicht existiert).
Eine Zeile je Rechnungsposition der angeforderten Rechnung.
| Spalte | Typ | Beschreibung |
|---|---|---|
InvoiceLineKey
Kann leer sein |
int |
Schlüssel der Rechnungsposition; NULL bei Sonderzeilen. |
InvoiceNr
|
string |
Rechnungsnummer. |
OrderLineKey
Kann leer sein |
int |
Schlüssel der Auftragsposition; bei Sonderzeilen -1 (Gutschein), -2 (Versandkosten) oder -3 (manuelle Rechnung). |
ArtNr
Kann leer sein |
string |
Artikelnummer aus der Auftragsposition. |
ArtName
Kann leer sein |
string |
Artikelname; feste Texte wie |
SpecialNote
Kann leer sein |
string |
Sonderhinweis der Auftragsposition. |
ItemText
Kann leer sein |
string |
Text der Rechnungsposition. |
OrderDate
Kann leer sein |
dateTime |
Bestelldatum der Auftragsposition. |
OrderQty
Kann leer sein |
int |
Bestellte Menge. |
ItemQty
Kann leer sein |
int |
Berechnete Menge (negativ bei Gutschriften); 1 bei Sonderzeilen. |
ItemPrice
Kann leer sein |
decimal |
Bruttopreis der Zeile (0, wenn nicht gesetzt); bei Sonderzeilen Versandkosten, negative Gutscheinsumme bzw. Betrag der manuellen Rechnung. |
ShipCost
Kann leer sein |
decimal |
An der Rechnungsposition hinterlegte Versandkosten. |
ItemVAT
Kann leer sein |
string |
MwSt.-Kennzeichen der Rechnungsposition. |
ItemNr
Kann leer sein |
string |
Artikelnummer an der Rechnungsposition. |
ItemNrSuppl
Kann leer sein |
string |
Lieferanten-Artikelnummer. |
ItemNrInt
Kann leer sein |
string |
Interne Artikelnummer. |
EanUpc
Kann leer sein |
string |
EAN/UPC des Artikels. |
SerialNr
Kann leer sein |
string |
Seriennummer der Zeile bzw. einer anderen Rechnungsposition derselben Auftragsposition, falls leer. |
OrderNr
Kann leer sein |
string |
Auftragsnummer. |
OrderNrExternal
Kann leer sein |
string |
Externe Auftragsnummer (z. B. Shop-Bestellnummer). |
Status
Kann leer sein |
string |
Status der Auftragsposition. |
ItemPriceNoVAT
Kann leer sein |
money decimal |
Nettopreis, gerundet auf die Genauigkeit aus der Einstellung |
FullPrice
Kann leer sein |
decimal |
Vollpreis vor Rabatt. |
DiscountValue
Kann leer sein |
decimal |
Rabattbetrag. |
DiscountPerc
Kann leer sein |
decimal |
Rabatt in Prozent. |
ItemNrExternal
Kann leer sein |
string |
Externe Artikelnummer aus der Auftragsposition. |
DF_Type
Kann leer sein |
string |
Streckentyp (Direct Fulfillment) der Auftragsposition. |
DFShipDate
Kann leer sein |
dateTime |
Versanddatum der Streckenlieferung. |
DFShipmentTrackingID
Kann leer sein |
string |
Sendungsverfolgungsnummer der Streckenlieferung. |
BoxNr
Kann leer sein |
string |
Kistennummer der Rechnung; NULL bei Sonderzeilen. |
BatchNumber
Kann leer sein |
string |
Charge der Auftragsposition. |
BestBeforeDate
Kann leer sein |
dateTime |
Mindesthaltbarkeitsdatum der Auftragsposition. |
VATPercent
Kann leer sein |
decimal |
MwSt.-Satz der Auftragsposition. |
VATAmount
Kann leer sein |
numeric(17,4) decimal |
MwSt.-Betrag der Zeile. |
PicLinkLarge
Kann leer sein |
string |
Link zum großen Artikelbild. |
Beispielantwort
<SqlRowSet1>
<row>
<InvoiceLineKey>554321</InvoiceLineKey>
<InvoiceNr>100123</InvoiceNr>
<OrderLineKey>887766</OrderLineKey>
<ArtNr>A-1001</ArtNr>
<ArtName>T-Shirt blau M</ArtName>
<ItemQty>2</ItemQty>
<ItemPrice>19.9900</ItemPrice>
<ItemNrInt>A-1001</ItemNrInt>
<EanUpc>4012345678901</EanUpc>
<OrderNr>50077</OrderNr>
<OrderNrExternal>SHOP-98765</OrderNrExternal>
<ItemPriceNoVAT>16.8000</ItemPriceNoVAT>
<VATPercent>19.00</VATPercent>
<VATAmount>3.1900</VATAmount>
</row>
<row>
<InvoiceNr>100123</InvoiceNr>
<OrderLineKey>-2</OrderLineKey>
<ArtName>ZZZ Versandkosten</ArtName>
<ItemNrInt/>
<EanUpc/>
<ItemQty>1</ItemQty>
<ItemPrice>4.9500</ItemPrice>
<ItemPriceNoVAT>4.1600</ItemPriceNoVAT>
<VATAmount>0.7900</VATAmount>
</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:pixiGetInvoiceLines>
<InvoiceNr>100123</InvoiceNr>
<!-- <IncludeSpecialInvLines>1</IncludeSpecialInvLines> -->
</ns1:pixiGetInvoiceLines>
</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:pixiGetInvoiceLines>
<InvoiceNr>100123</InvoiceNr>
<!-- <IncludeSpecialInvLines>1</IncludeSpecialInvLines> -->
</ns1:pixiGetInvoiceLines>
</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' => '100123',
// 'IncludeSpecialInvLines' => '1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetInvoiceLines', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetInvoiceLines