pixiReport_InvoicesList
Liefert eine detaillierte Liste der Rechnungen und Gutschriften eines Zeitraums mit Beträgen, MwSt., Einkaufswerten, Adress- und Zahlungsdaten.
Wrapper um die interne Report-Prozedur Report_InvoicesList. Leere Strings in ShopID, Payment, ShipCountry und DocumentType werden als NULL (kein Filter) behandelt. Der Report liefert immer eine Zeile je Rechnung; der Summenmodus und der Filter auf unbezahlte Rechnungen der internen Prozedur sind über diesen Call nicht verfügbar.
Ablauf:
- Zuerst wird der Cache der Lieferantenpreise aktualisiert (
Report_SaveSupplierPrices). DateFromwird auf den Tagesbeginn,DateToauf das Tagesende gesetzt. Ausgewählt werden Rechnungen mitInvDatein diesem Zeitraum.- Optionale Filter:
ShopID: nur Rechnungen, deren Lieferadresse zu diesem Shop gehört (AddrShopID). Rechnungen ohne Lieferadresse fallen dann heraus.Payment: nur Rechnungen mit diesem Zahlungsart-Code.ShipCountry: nur Rechnungen, deren Lieferadresse diesen Ländercode hat.DocumentType:R= nur Rechnungen (ohne Bezugsrechnung),G= nur Gutschriften (mit Bezugsrechnung).
- Währung der Beträge:
- Mit
ShopID: Beträge in der Basiswährung der Rechnung (bei aktivierter Mehrwährung durch den Rechnungskurs geteilt);BaseCurrencyenthält diesen Währungscode. - Ohne
ShopID: Beträge werden über den Wechselkurs der Datenbankquelle zum selben Datum und zur selben Währung in die Datenbankwährung umgerechnet;BaseCurrencyenthält den Code der Datenbankwährung.
- Mit
- Je Rechnung werden die Artikelmenge (
SumQtyItems) und der Einkaufswert (SumEKItems, Menge × historischer Lieferantenpreis) aus den Rechnungspositionen summiert. Die externe Auftragsnummer wird über den mit der Rechnung verknüpften Auftrag ermittelt (bei Gutschriften über die Bezugsrechnung). - Netto- und MwSt.-Beträge werden auf die Anzahl Nachkommastellen aus der Einstellung
NumberOfDecimalPlacesForPrices(Standard 2) gerundet.TotalundTotal_ShipCostwerden nicht gerundet.
Name, Anschrift, Telefon und Fax stammen aus der Lieferadresse; Country, CountryName und usStID aus der Rechnungsadresse. Fehlende Textwerte werden als / geliefert. Sortiert wird nach InvoiceNR. Die par_*-Spalten geben die wirksamen Filterwerte zurück (-alle-, wenn kein Filter gesetzt ist).
Hinweise
- Nebeneffekt: Vor dem Lesen wird die interne Prozedur
Report_SaveSupplierPricesausgeführt, die laut Code-Kommentar eine Cache-Tabelle füllt (vermutlich die Lieferantenpreis-Historie). Ihre Definition liegt nicht vor, die genauen Schreibvorgänge sind daher unbekannt. - Alle Lesezugriffe erfolgen mit
NOLOCK; das Ergebnis kann nicht festgeschriebene Daten enthalten. - Rechnungen ohne passenden Wechselkurs-Datensatz werden nicht geliefert (Inner Joins auf
pixi.ExchRate). OhneShopIDmuss ein Kurs der Datenbankquelle zum selben Datum und zur selben Währung existieren. - Ein
DocumentTypeaußerRoderGliefert keine Zeilen. payedwird bei unbezahlten Rechnungen als1900-01-01T00:00:00geliefert, daNULLbei einer Datetime-Spalte durch einen Leerstring ersetzt wird.SumEKItemsist 0 oder unvollständig, wenn für die Rechnungspositionen keine Lieferantenpreis-Historie existiert.- Liefert die Funktion zur Auftragsermittlung mehrere Aufträge für eine Rechnung, kann die Rechnung mehrfach erscheinen.
- Das Verhalten hängt von den Einstellungen
MultiCurrencyEnabledundNumberOfDecimalPlacesForPricesab. - Große Zeiträume können langsam sein, da alle Rechnungspositionen aggregiert werden.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DateFrom
Pflicht
|
datetime dateTime |
– |
Beginn des Rechnungsdatum-Zeitraums; die Uhrzeit wird auf den Tagesbeginn gesetzt. Beispiel: |
DateTo
Pflicht
|
datetime dateTime |
– |
Ende des Rechnungsdatum-Zeitraums; die Uhrzeit wird auf das Tagesende gesetzt. Beispiel: |
ShopID
|
char(3) string |
NULL |
Shop der Lieferadresse. Wenn gesetzt, werden nur Rechnungen dieses Shops geliefert und Beträge in der Basiswährung der Rechnung ausgegeben, sonst in der Datenbankwährung. Leer = alle Shops. Beispiel: |
Payment
|
char(1) string |
NULL |
Zahlungsart-Code der Rechnung. Leer = alle Zahlungsarten. Beispiel: |
ShipCountry
|
varchar(3) string |
NULL |
Ländercode der Lieferadresse. Leer = alle Länder. Beispiel: |
DocumentType
|
char(1) string |
NULL |
Filter auf den Belegtyp. Leer = Rechnungen und Gutschriften. Erlaubte Werte
Beispiel: |
Antwort
Result-Set 1 · Immer (eine Zeile je passender Rechnung, kann leer sein)
Rechnungsliste, sortiert nach InvoiceNR.
| Spalte | Typ | Beschreibung |
|---|---|---|
InvoiceKey
|
int |
Interner Schlüssel der Rechnung. |
RefInvoiceNR
|
varchar(20) string |
Nummer der Bezugsrechnung bei Gutschriften, sonst leer. |
payed
|
datetime dateTime |
Bezahltdatum; 1900-01-01, wenn nicht bezahlt. |
InvDate
Kann leer sein |
datetime dateTime |
Rechnungsdatum. |
InvoiceNR
Kann leer sein |
varchar(20) string |
Rechnungsnummer. |
Total
Kann leer sein |
decimal(19,9) decimal |
Bruttosumme (ungerundet). |
Total_NoVAT
Kann leer sein |
decimal(19,9) decimal |
Nettosumme, gerundet. |
Total_Items_NoVAT
Kann leer sein |
decimal(19,9) decimal |
Nettosumme ohne Netto-Versandkosten, gerundet. |
ShipCost_NoVAT
Kann leer sein |
decimal(19,9) decimal |
Netto-Versandkosten, gerundet. |
Total_ShipCost
Kann leer sein |
decimal(19,9) decimal |
Brutto-Versandkosten (ungerundet). |
VATHigh
Kann leer sein |
decimal(19,9) decimal |
MwSt. zum vollen Satz inkl. Versand- und Rücksendekosten, gerundet. |
VATLow
Kann leer sein |
decimal(19,9) decimal |
MwSt. zum ermäßigten Satz inkl. Versand- und Rücksendekosten, gerundet. |
VATHighPerc
Kann leer sein |
numeric(18,4) decimal |
Voller MwSt.-Satz in Prozent. |
VATLowPerc
Kann leer sein |
numeric(18,4) decimal |
Ermäßigter MwSt.-Satz in Prozent. |
SumQtyItems
|
int |
Gesamtmenge der Rechnungspositionen. |
Order_Nr_Extern
Kann leer sein |
varchar(50) string |
Externe Auftragsnummer des zugehörigen Auftrags. |
SumEKItems
|
decimal(19,9) decimal |
Einkaufswert: Summe aus Menge × historischem Lieferantenpreis. |
AccountNR
Kann leer sein |
varchar(10) string |
DATEV-Kontonummer des Kunden. |
Anrede
|
varchar(60) string |
Anrede (Lieferadresse), |
Name
|
varchar(121) string |
Name (Lieferadresse), |
FirstName
|
varchar(60) string |
Vorname (Lieferadresse). |
LastName
|
varchar(60) string |
Nachname (Lieferadresse). |
Name2
|
varchar(60) string |
c/o-Zeile (Lieferadresse). |
Address
|
varchar(110) string |
Straße (Lieferadresse). |
ZIP
|
varchar(10) string |
PLZ (Lieferadresse). |
City
|
varchar(50) string |
Ort (Lieferadresse). |
Country
|
varchar(3) string |
Ländercode der Rechnungsadresse. |
CountryName
Kann leer sein |
varchar(60) string |
Ländername der Rechnungsadresse, |
Phone
|
varchar(60) string |
Telefon (Lieferadresse). |
Fax
|
varchar(60) string |
Fax (Lieferadresse). |
ShipCountry
|
varchar(3) string |
Ländercode der Lieferadresse. |
ShipCountryName
Kann leer sein |
varchar(60) string |
Ländername der Lieferadresse, |
AddrShopID
|
varchar(3) string |
Shop der Lieferadresse. |
PaymentText
|
varchar(120) string |
Bezeichnung der Zahlungsart, |
usStID
|
varchar(20) string |
USt-IdNr. der Rechnungsadresse. |
par_DateFrom
|
datetime dateTime |
Wirksamer Beginn des Zeitraums. |
par_DateTo
|
datetime dateTime |
Wirksames Ende des Zeitraums. |
par_ShopID
|
char(10) string |
Shop-Filter oder |
par_Payment
|
char(10) string |
Zahlungsart-Filter oder |
par_ShipCountry
|
varchar(10) string |
Lieferland-Filter oder |
Par_DocumentType
|
char(10) string |
Belegtyp-Filter oder |
BaseCurrency
Kann leer sein |
varchar(3) string |
Währung der Beträge: Basiswährung der Rechnung (mit |
Beispielantwort
<SqlRowSet1>
<row>
<InvoiceKey>48211</InvoiceKey>
<RefInvoiceNR/>
<payed>2024-01-12T00:00:00</payed>
<InvDate>2024-01-10T14:22:05</InvDate>
<InvoiceNR>RE2024-00123</InvoiceNR>
<Total>119.000000000</Total>
<Total_NoVAT>100.000000000</Total_NoVAT>
<Total_Items_NoVAT>95.800000000</Total_Items_NoVAT>
<ShipCost_NoVAT>4.200000000</ShipCost_NoVAT>
<Total_ShipCost>5.000000000</Total_ShipCost>
<VATHigh>19.000000000</VATHigh>
<VATLow>0.000000000</VATLow>
<VATHighPerc>19.0000</VATHighPerc>
<VATLowPerc>7.0000</VATLowPerc>
<SumQtyItems>2</SumQtyItems>
<Order_Nr_Extern>100045678</Order_Nr_Extern>
<SumEKItems>54.300000000</SumEKItems>
<AccountNR>10023</AccountNR>
<Anrede>Herr</Anrede>
<Name>Max Mustermann</Name>
<FirstName>Max</FirstName>
<LastName>Mustermann</LastName>
<Name2>/</Name2>
<Address>Musterstr. 1</Address>
<ZIP>80331</ZIP>
<City>München</City>
<Country>DE</Country>
<CountryName>Deutschland</CountryName>
<Phone>/</Phone>
<Fax>/</Fax>
<ShipCountry>DE</ShipCountry>
<ShipCountryName>Deutschland</ShipCountryName>
<AddrShopID>SHP</AddrShopID>
<PaymentText>Vorkasse</PaymentText>
<usStID>/</usStID>
<par_DateFrom>2024-01-01T00:00:00</par_DateFrom>
<par_DateTo>2024-01-31T23:59:59.997</par_DateTo>
<par_ShopID>-alle- </par_ShopID>
<par_Payment>-alle- </par_Payment>
<par_ShipCountry>-alle-</par_ShipCountry>
<Par_DocumentType>R </Par_DocumentType>
<BaseCurrency>EUR</BaseCurrency>
</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:pixiReport_InvoicesList>
<DateFrom>2024-01-01T00:00:00</DateFrom>
<DateTo>2024-01-31T00:00:00</DateTo>
<!-- <ShopID>SHP</ShopID> -->
<!-- <Payment>V</Payment> -->
<!-- <ShipCountry>DE</ShipCountry> -->
<!-- <DocumentType>R</DocumentType> -->
</ns1:pixiReport_InvoicesList>
</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:pixiReport_InvoicesList>
<DateFrom>2024-01-01T00:00:00</DateFrom>
<DateTo>2024-01-31T00:00:00</DateTo>
<!-- <ShopID>SHP</ShopID> -->
<!-- <Payment>V</Payment> -->
<!-- <ShipCountry>DE</ShipCountry> -->
<!-- <DocumentType>R</DocumentType> -->
</ns1:pixiReport_InvoicesList>
</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 = [
'DateFrom' => '2024-01-01T00:00:00',
'DateTo' => '2024-01-31T00:00:00',
// 'ShopID' => 'SHP',
// 'Payment' => 'V',
// 'ShipCountry' => 'DE',
// 'DocumentType' => 'R',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReport_InvoicesList', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReport_InvoicesList