pixiReportTurnover
Liefert den Netto-Rechnungsumsatz für den Stichtag, den Vortag, den laufenden Monat und den Vormonat, optional gefiltert nach Shop.
Dashboard-Report, der Total_Net der Rechnungen (Invoices) zu vier Umsatzwerten summiert und diese in einer Zeile zurückgibt.
Datumslogik
toDateist standardmäßig das aktuelle Datum mit Uhrzeit. Die Uhrzeit ist relevant: Stichtag und laufender Monat werden nur bistoDategezählt, nicht bis zum Tagesende.fromDateist standardmäßig der erste Tag des Vormonats vontoDate. LiegtfromDatenachtoDate, wird es auftoDategesetzt.- Grundsätzlich werden nur Rechnungen mit
InvDatezwischen dem Beginn des Vormonats undtoDateberücksichtigt.
Shop-Filter
Eine Rechnung wird nur gezählt, wenn der Kunde (CustRef) mindestens eine Adresse in Addresses mit AddrShopID = ShopID hat. Ein leerer oder NULL-Wert für ShopID schließt alle Rechnungen ein, zu denen überhaupt eine Adresse existiert.
Die vier Werte
TurnoverNetGivenDate: liegtfromDatein einem anderen Monat alstoDate, Rechnungen vom Tagesbeginn vontoDatebistoDate; liegtfromDateam selben Tag wietoDate, Rechnungen vonfromDatebistoDate.TurnoverNetDayBefore: liegtfromDatein einem anderen Monat, der gesamte Vortag vontoDate; zusätzlich, fallsfromDateauf den Vortag fällt, Rechnungen vonfromDatebis zum Ende dieses Tages.TurnoverNetGivenMonth: liegtfromDatein einem anderen Monat, vom 1. des Monats vontoDatebistoDate; im selben Monat vonfromDatebistoDate.TurnoverNetPreviousMonth: liegtfromDatevor dem Vormonat, der gesamte Vormonat; liegtfromDateim Vormonat, vonfromDatebis zum Ende des Vormonats.
Mit dem Standardwert für fromDate ergibt sich: heute bis jetzt, gestern, Monat bis heute und der gesamte Vormonat.
Währung
Ist die Einstellung MultiCurrencyEnabled gleich 1, wird jeder Rechnungsbetrag durch den Wechselkurs aus pixi.ExchRate für die Datenbank-Kursquelle (DatabaseCurrencyExchRateSourceId) und die Hauswährung geteilt, zugeordnet über Kursdatum und Währung des Rechnungskurses. dbCurrency enthält dann den Code der Datenbankwährung. Andernfalls werden die Beträge wie gespeichert summiert und dbCurrency ist NULL.
Hinweise
- Alle Lesezugriffe verwenden
NOLOCK; die Werte können nicht festgeschriebene Daten enthalten. - Die Werte werden als Zeichenketten (
varchar(30)) geliefert. Ein Wert ist NULL (Element fehlt in der Zeile), wenn keine Rechnung in den Zeitraum fällt, z. B. sindTurnoverNetGivenDateundTurnoverNetDayBeforeNULL, wennfromDateim selben Monat wietoDateliegt, aber weder auf diesem Tag noch auf dem Vortag.TurnoverNetPreviousMonthist NULL, wennfromDateim laufenden Monat liegt. - Ein
fromDatevor dem Beginn des Vormonats hat keine zusätzliche Wirkung, da ältere Rechnungen nie geladen werden. - Im Mehrwährungsmodus werden Rechnungen ohne passenden Wechselkurs-Datensatz (oder ohne
ExchRateId) wegen Inner Joins stillschweigend ausgeschlossen. Die Anzahl der Nachkommastellen hängt vom Datentyp vonExchRateab, der hier nicht sichtbar ist. - Fehlt die Einstellung
MultiCurrencyEnabled(NULL), wird trotzdem der Umrechnungszweig ausgeführt,dbCurrencyjedoch als NULL geliefert. - Bei einem SQL-Fehler wird nur die Meldung per PRINT ausgegeben und
-1zurückgegeben; es wird keine Ergebnismenge geliefert. - Die temporäre Tabelle wird über
util.TempTableDropgelöscht (Definition nicht beigefügt).
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
fromDate
|
datetime dateTime |
NULL |
Beginn des Auswertungszeitraums. Standard ist der erste Tag des Vormonats von Beispiel: |
toDate
|
datetime dateTime |
NULL |
Stichtag mit Uhrzeit (Ende des Zeitraums). Standard ist das aktuelle Datum mit Uhrzeit. Beispiel: |
ShopID
|
varchar(3) string |
– |
Shop-Filter: Nur Rechnungen von Kunden mit einer Adresse dieses Shops werden gezählt. Leer bedeutet alle Shops. Beispiel: |
Antwort
Result-Set 1 · Immer, außer bei einem SQL-Fehler
Eine Zeile mit den vier Netto-Umsatzwerten und dem Code der Datenbankwährung.
| Spalte | Typ | Beschreibung |
|---|---|---|
TurnoverNetGivenDate
Kann leer sein |
varchar(30) string |
Netto-Umsatz am Stichtag (bzw. von |
TurnoverNetDayBefore
Kann leer sein |
varchar(30) string |
Netto-Umsatz am Vortag von |
TurnoverNetGivenMonth
Kann leer sein |
varchar(30) string |
Netto-Umsatz im Monat von |
TurnoverNetPreviousMonth
Kann leer sein |
varchar(30) string |
Netto-Umsatz im Vormonat (bzw. ab |
dbCurrency
Kann leer sein |
varchar(3) string |
Code der Datenbank-(Haus-)Währung bei |
Beispielantwort
<SqlRowSet1>
<row>
<TurnoverNetGivenDate>1523.40</TurnoverNetGivenDate>
<TurnoverNetDayBefore>4210.75</TurnoverNetDayBefore>
<TurnoverNetGivenMonth>58320.10</TurnoverNetGivenMonth>
<TurnoverNetPreviousMonth>112845.60</TurnoverNetPreviousMonth>
<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:pixiReportTurnover>
<!-- <fromDate>2024-05-01T00:00:00</fromDate> -->
<!-- <toDate>2024-06-15T18:00:00</toDate> -->
<!-- <ShopID>ABC</ShopID> -->
</ns1:pixiReportTurnover>
</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:pixiReportTurnover>
<!-- <fromDate>2024-05-01T00:00:00</fromDate> -->
<!-- <toDate>2024-06-15T18:00:00</toDate> -->
<!-- <ShopID>ABC</ShopID> -->
</ns1:pixiReportTurnover>
</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 = [
// 'fromDate' => '2024-05-01T00:00:00',
// 'toDate' => '2024-06-15T18:00:00',
// 'ShopID' => 'ABC',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportTurnover', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportTurnover