pixiGetPendingPayments
Liefert zu einem Stichtag nicht vollständig zugeordnete Zahlungen auf Kundenkonten, summiert je Zahlungsart oder als Einzelposten.
Listet Zahlungen auf Kundenkonten (CustomerAccount), die zu einem Stichtag noch offen, also nicht vollständig zugeordnet, waren.
Parameterbehandlung
Date: BeiNULLoder einem Wert vor dem 01.01.1990 wird das aktuelle Datum mit Uhrzeit (GETDATE()) verwendet.Details:NULLwird als0behandelt.ShopID: Ein Leerstring wird alsNULLbehandelt, also ohne Shop-Filter.
Auswahl
- Für jeden Kundenkontoposten wird aus
CustomerAccountLogder letzte Log-Eintrag mit EreignisPAYermittelt, dessenEventDateecht vorDateliegt. - Der Posten wird nur berücksichtigt, wenn
Amount - MatcheddiesesPAY-Eintrags mindestens 0,01 beträgt. OpenAmountist der Betrag des Kundenkontopostens abzüglich desMatched-Werts des letzten Log-Eintrags beliebigen Ereignistyps vorDate. Gibt es keinen solchen Eintrag, wird 0 abgezogen.- Die Zahlungsart stammt aus der Zahlungsart des Auftrags (Lieferadresse,
APayment) oder der Rechnung (Payment), die überBankMatchmit der Bankzeile verknüpft ist. Wird keine Zahlungsart gefunden, wirdZZZ unbekanntverwendet. - Ist
ShopIDgesetzt, werden nur Kunden geliefert, derenCustomerOfgleichShopIDist.
Währung
- Ist die Einstellung
MultiCurrencyEnablednicht1, werden die Beträge in der Originalwährung des Postens geliefert unddbCurrencyistNULL. - Ist
MultiCurrencyEnabled=1, werdenAmountundOpenAmountdurch Division mit dem Wechselkurs in die Datenbankwährung (Hauswährung) umgerechnet.dbCurrencyenthält dann den Code der Datenbankwährung.
Ausgabe
Details = 1: eine Zeile je Kundenkontoposten, sortiert nachPaymentType,CustRefundCustomerAccountKey.Details = 0(Standard): eine Zeile jePaymentTypeunddbCurrencymit summiertemOpenAmountund dem verwendeten Stichtag, sortiert nachPaymentType.
Hinweise
- Alle Lesezugriffe erfolgen mit
NOLOCK, daher können die Ergebnisse nicht festgeschriebene Daten enthalten. - Der Filter verwendet den letzten
PAY-Log-Eintrag,OpenAmountdagegen den letzten Log-Eintrag beliebigen Ereignistyps. Beide Werte können daher voneinander abweichen. - Bei aktivierter Mehrwährung fallen Posten ohne passenden Wechselkurs zur Datenbankwährung durch Inner Joins weg (über
pixi.ExchRate, Quelle aus EinstellungDatabaseCurrencyExchRateSourceId, Basiswährung aus EinstellungHomeCurrency). - Im Mehrwährungszweig filtert die Unterabfrage für den zugeordneten Betrag die Kursquelle über den äußeren Alias statt über ihren eigenen. Bei mehreren Kursquellen ist nicht deterministisch, welcher Kurs per
TOP 1verwendet wird. - Der Join auf
Paymentsverknüpft die Zahlungsart von Auftrag und Rechnung per ODER. Sind beide verknüpft und verschieden, kann ein Posten doppelt erscheinen und wird dann in der Summe doppelt gezählt. - Im Einwährungsmodus ist
dbCurrencyNULL, daher werden in der Summe Beträge unterschiedlicher Originalwährungen innerhalb einer Zahlungsart vermischt. - Der Stichtagsvergleich ist echt kleiner (
EventDate < Date). Bei Übergabe nur eines Datums ist die Uhrzeit Mitternacht, Ereignisse dieses Tages sind also ausgeschlossen.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
Date
|
datetime dateTime |
NULL |
Stichtag. Berücksichtigt werden nur Log-Einträge echt vor diesem Zeitpunkt. Beispiel: |
Details
|
bit boolean |
0 |
Wählt Einzelzeilen oder eine Summe je Zahlungsart. Erlaubte Werte
Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Optionaler Shop-Filter auf Beispiel: |
Antwort
Result-Set 1 · Wenn Details = 1
Eine Zeile je offenem Zahlungsposten auf einem Kundenkonto.
| Spalte | Typ | Beschreibung |
|---|---|---|
CustRef
Kann leer sein |
int |
Kundenschlüssel. |
CustomerAccountKey
Kann leer sein |
int |
Schlüssel des Kundenkontopostens. |
Comment
Kann leer sein |
varchar(512) string |
Kommentar des Kundenkontopostens. |
Reference
Kann leer sein |
varchar(512) string |
Referenz des Kundenkontopostens. |
Amount
Kann leer sein |
money decimal |
Betrag des Postens, in Originalwährung oder bei aktivierter Mehrwährung in Datenbankwährung umgerechnet. |
OpenAmount
Kann leer sein |
money decimal |
Zum Stichtag noch nicht zugeordneter Betrag. |
PaymentType
Kann leer sein |
varchar(120) string |
Text der Zahlungsart des verknüpften Auftrags oder der Rechnung, sonst |
PaymentDate
Kann leer sein |
datetime dateTime |
Ereignisdatum des Kundenkontopostens. |
ShopID
Kann leer sein |
varchar(3) string |
Shop des Kunden ( |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst |
Result-Set 2 · Wenn Details = 0 (Standard)
Offene Beträge summiert je Zahlungsart und Währung.
| Spalte | Typ | Beschreibung |
|---|---|---|
PaymentType
Kann leer sein |
varchar(120) string |
Text der Zahlungsart oder |
OpenAmount
Kann leer sein |
money decimal |
Summe der offenen Beträge dieser Zahlungsart. |
Date
|
datetime dateTime |
Tatsächlich verwendeter Stichtag. |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbankwährung bei aktivierter Mehrwährung, sonst |
Beispielantwort
<SqlRowSet1>
<row>
<PaymentType>Vorkasse</PaymentType>
<OpenAmount>1250.4000</OpenAmount>
<Date>2024-04-01T00:00:00</Date>
<dbCurrency>EUR</dbCurrency>
</row>
<row>
<PaymentType>ZZZ unbekannt</PaymentType>
<OpenAmount>89.9000</OpenAmount>
<Date>2024-04-01T00:00:00</Date>
<dbCurrency>EUR</dbCurrency>
</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:pixiGetPendingPayments>
<!-- <Date>2024-04-01T00:00:00</Date> -->
<!-- <Details>0</Details> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiGetPendingPayments>
</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:pixiGetPendingPayments>
<!-- <Date>2024-04-01T00:00:00</Date> -->
<!-- <Details>0</Details> -->
<!-- <ShopID>SH1</ShopID> -->
</ns1:pixiGetPendingPayments>
</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-04-01T00:00:00',
// 'Details' => '0',
// 'ShopID' => 'SH1',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetPendingPayments', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetPendingPayments