pixiGetPaidInvoices
Liefert Rechnungen, die über Ausgleiche im Kundenkonto vollständig bezahlt sind und deren Zahlung im angegebenen Zeitraum gebucht wurde.
Ermittelt Rechnungen, die im Kundenkonto (CustomerAccount) ausgeglichen wurden, und liefert eine Zeile je Rechnungsbuchung.
Ablauf:
- Es werden alle Kundenkontobuchungen mit
EventDatezwischen@Fromund@To(inklusive,BETWEEN) undAmount > 0ermittelt. Das sind in der Regel die Zahlungsbuchungen. - Über
CustomerAccountMatchwerden alle Kundenkontobuchungen gesucht, die mit diesen Buchungen ausgeglichen wurden, in beide Richtungen (CARef1↔CARef2). - Berücksichtigt werden nur ausgeglichene Buchungen mit Bezug zu einer Rechnung (
InvoiceRef IS NOT NULL). - Berücksichtigt werden nur vollständig ausgeglichene Buchungen: Die Summe von
AbsoluteMatchAmountüber alle Ausgleiche der Buchung plus der eigeneAmountder Buchung muss genau0ergeben.
Für jede verbleibende Buchung werden geliefert:
- Rechnungsschlüssel und Rechnungsnummer aus
Invoices, DatePaid: das spätesteEventDatealler mit der Rechnungsbuchung ausgeglichenen Kundenkontobuchungen (nicht auf den Zeitraum beschränkt),ShopID: der Shop des Kunden (Customers.CustomerOf),OrderNRExternal: die höchste externe Auftragsnummer der überInvlinesmit der Rechnung verknüpften Auftragspositionen,PaymentType: die Zahlungsart der Rechnung.
Eine Sortierung ist nicht festgelegt.
Hinweise
- Alle Tabellen werden
WITH (NOLOCK)gelesen; das Ergebnis kann nicht festgeschriebene Daten enthalten. BETWEENschließt beide Grenzen ein. Wird@Toals Datum ohne Uhrzeit (Mitternacht) übergeben, fehlen spätere Zahlungen dieses Tages.- Die Prüfung auf vollständigen Ausgleich vergleicht exakt mit
0; Rundungsdifferenzen in den Ausgleichen schließen eine Rechnung aus. - Hat eine Rechnung mehrere Kundenkontobuchungen, die jeweils die Bedingungen erfüllen, kann die Rechnung mehrfach erscheinen.
DatePaidist das späteste Datum aller ausgeglichenen Buchungen und kann außerhalb von@From/@Toliegen.- In der Ausgleichsprüfung sind die Spalten
AmountundCustomerAccountKeynicht qualifiziert; der Code verlässt sich darauf, dass sie auf die äußereCustomerAccount-Buchung verweisen. - Der Kopfkommentar der Prozedur ("Checks pixi* user credentials") passt nicht zur Funktion und ist offenbar ein Kopierrest.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
From
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitraums (inklusive) für das Buchungsdatum ( Beispiel: |
To
Pflicht
|
datetime dateTime |
– |
Ende des Zeitraums (inklusive) für das Buchungsdatum ( Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein).
Eine Zeile je vollständig ausgeglichener Rechnungsbuchung im Kundenkonto, deren ausgeglichene Zahlung im Zeitraum liegt.
| Spalte | Typ | Beschreibung |
|---|---|---|
InvoiceKey
|
int |
Schlüssel der Rechnung ( |
InvoiceNr
Kann leer sein |
string |
Rechnungsnummer aus |
DatePaid
Kann leer sein |
datetime dateTime |
Spätestes |
ShopID
Kann leer sein |
string |
Shop des Kunden ( |
OrderNRExternal
Kann leer sein |
string |
Höchste externe Auftragsnummer ( |
PaymentType
Kann leer sein |
string |
Zahlungsart der Rechnung ( |
Beispielantwort
<SqlRowSet1>
<row>
<InvoiceKey>48213</InvoiceKey>
<InvoiceNr>2024100512</InvoiceNr>
<DatePaid>2024-05-14T10:32:00</DatePaid>
<ShopID>ABC</ShopID>
<OrderNRExternal>100045678</OrderNRExternal>
<PaymentType>VORKASSE</PaymentType>
</row>
<row>
<InvoiceKey>48250</InvoiceKey>
<InvoiceNr>2024100549</InvoiceNr>
<DatePaid>2024-05-20T08:15:00</DatePaid>
<ShopID>ABC</ShopID>
<OrderNRExternal>100045702</OrderNRExternal>
<PaymentType>RECHNUNG</PaymentType>
</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:pixiGetPaidInvoices>
<From>2024-05-01T00:00:00</From>
<To>2024-05-31T23:59:59</To>
</ns1:pixiGetPaidInvoices>
</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:pixiGetPaidInvoices>
<From>2024-05-01T00:00:00</From>
<To>2024-05-31T23:59:59</To>
</ns1:pixiGetPaidInvoices>
</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 = [
'From' => '2024-05-01T00:00:00',
'To' => '2024-05-31T23:59:59',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetPaidInvoices', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetPaidInvoices