pixiReportGetUnpaidInvoices
Liefert alle Rechnungen, die am Ende eines bestimmten Tages noch ganz oder teilweise unbezahlt waren, optional gefiltert nach Shop und Zahlungsart.
Erstellt eine Offene-Posten-Liste der Rechnungen zu einem Stichtag.
Datewird überfPixi_GetDateEndOfDayauf das Tagesende (23:59:59.997) gesetzt. Ohne Angabe wird der aktuelle Tag verwendet.ShopIDwird getrimmt. Ein leerer Wert inShopIDoderPaymentCodegilt als „kein Filter“.- Ausgewählt werden Rechnungen, die alle folgenden Bedingungen erfüllen:
- Das Rechnungsdatum liegt vor dem Stichtag.
- Die Rechnung ist keine Retoure bzw. Gutschrift, hat also keinen Bezug auf eine andere Rechnung.
- Der Shop passt (
InvShopID = ShopID), sofernShopIDangegeben ist. - Die Zahlungsart passt (
Payment = PaymentCode), sofernPaymentCodeangegeben ist.
- Jede Rechnung wird mit ihren Debitorenkonto-Einträgen verknüpft. Einträge, die bereits vollständig ausgeglichen sind (
Amount = Matched) und vor dem Stichtag zuletzt geändert wurden, bleiben unberücksichtigt. - Der offene Betrag ergibt sich aus dem Betrag des Debitorenkonto-Eintrags plus der Summe aller Ausgleichsbuchungen (
AbsoluteMatchAmount), die vor dem Stichtag angelegt wurden. Dabei zählt ein Ausgleich unabhängig davon, ob der Eintrag als erster oder zweiter Ausgleichspartner referenziert ist. Geliefert werden nur Rechnungen, deren offener Betrag weiterhin kleiner 0 ist. - Je offener Rechnung werden geliefert:
- Rechnungsnummer, Rechnungsdatum und Rechnungsbetrag
- offener Betrag
- externe Kundennummer und DATEV-Kontonummer
- Nachname und Vorname aus der Rechnungsadresse
- Shop
- Land der Lieferadresse
- Währungscode
Das Ergebnis hat kein ORDER BY, die Reihenfolge der Zeilen ist daher nicht definiert.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen. Die Werte können daher nicht festgeschriebene Daten enthalten. OffenerRechnungsbetragfolgt der Vorzeichenlogik des Debitorenkontos: Offene Forderungen sind negative Werte.- Die abschließende Abfrage verknüpft Rechnungsadresse, Lieferadresse, Kunde und Währung per Inner Join. Rechnungen, denen einer dieser Bezüge fehlt, werden nicht geliefert.
- Hat eine Rechnung mehrere Debitorenkonto-Einträge, wird
MAX(Amount)dieser Einträge mit der Summe aller ihrer Ausgleiche verrechnet. Der offene Betrag kann dann vom erwarteten Wert abweichen. - Rechnungen mit einem Zeitstempel genau am Tagesende (23:59:59.997) sind ausgeschlossen, da der Vergleich strikt (
<) erfolgt. - Die Spaltennamen des Ergebnisses sind deutsch (
Rechnungsnummer,Kundennummer, ...), mit Ausnahme vonDatevUserAccount,ShopID,CountryCodeundCurrencyCode.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Date
|
datetime dateTime |
NULL |
Stichtag. Als Grenze dient das Ende dieses Tages. Standard ist der aktuelle Tag. Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Beschränkt das Ergebnis auf Rechnungen dieses Shops. Leer oder NULL bedeutet alle Shops. Beispiel: |
PaymentCode
|
char(1) string |
NULL |
Beschränkt das Ergebnis auf Rechnungen mit dieser Zahlungsart ( Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer).
Eine Zeile je Rechnung, die zum Stichtag noch offen ist.
| Spalte | Typ | Beschreibung |
|---|---|---|
Rechnungsnummer
Kann leer sein |
string |
Rechnungsnummer ( |
Rechnungsdatum
Kann leer sein |
dateTime |
Rechnungsdatum. |
Rechnungsbetrag
Kann leer sein |
decimal |
Rechnungsbetrag ( |
OffenerRechnungsbetrag
|
decimal |
Offener Betrag zum Stichtag, negativ für offene Forderungen. |
Kundennummer
Kann leer sein |
string |
Externe Kundennummer aus der Rechnungsadresse. |
DatevUserAccount
Kann leer sein |
varchar(10) string |
DATEV-Kontonummer des Kunden. |
Nachname
Kann leer sein |
string |
Nachname aus der Rechnungsadresse. |
Vorname
Kann leer sein |
string |
Vorname aus der Rechnungsadresse. |
ShopID
Kann leer sein |
string |
Shop der Rechnung. |
CountryCode
Kann leer sein |
string |
Land der Lieferadresse. |
CurrencyCode
Kann leer sein |
string |
Währungscode der Rechnung ( |
Beispielantwort
<SqlRowSet1>
<row>
<Rechnungsnummer>RE240312</Rechnungsnummer>
<Rechnungsdatum>2024-03-15T10:24:00</Rechnungsdatum>
<Rechnungsbetrag>119.90</Rechnungsbetrag>
<OffenerRechnungsbetrag>-59.90</OffenerRechnungsbetrag>
<Kundennummer>K100234</Kundennummer>
<DatevUserAccount>10234</DatevUserAccount>
<Nachname>Müller</Nachname>
<Vorname>Anna</Vorname>
<ShopID>ABC</ShopID>
<CountryCode>DE</CountryCode>
<CurrencyCode>EUR</CurrencyCode>
</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:pixiReportGetUnpaidInvoices>
<!-- <Date>2024-03-31T00:00:00</Date> -->
<!-- <ShopID>ABC</ShopID> -->
<!-- <PaymentCode>R</PaymentCode> -->
</ns1:pixiReportGetUnpaidInvoices>
</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:pixiReportGetUnpaidInvoices>
<!-- <Date>2024-03-31T00:00:00</Date> -->
<!-- <ShopID>ABC</ShopID> -->
<!-- <PaymentCode>R</PaymentCode> -->
</ns1:pixiReportGetUnpaidInvoices>
</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 = [
// 'Date' => '2024-03-31T00:00:00',
// 'ShopID' => 'ABC',
// 'PaymentCode' => 'R',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportGetUnpaidInvoices', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportGetUnpaidInvoices