pixiReportCustomerSales
Liefert Rechnungspositionen mit Kunde, Land, Netto-Positionssumme, Währung und letztem Verkaufsdatum, gefiltert nach Artikel, Shop, Zahlungsart, Kunde und Rechnungsdatum.
Umsatzbericht auf Ebene der Rechnungspositionen. Laut Kopfkommentar handelt es sich um eine Kundenauswertung für den Kunden BAF; die Prozedur wurde also für eine bestimmte Installation erstellt.
Parameterbehandlung
ItemNrSuppl,ShopID,PaymentTypeundCustomerNrExternal: Ein Leerstring wird wieNULLbehandelt und bedeutet kein Filter.DateFrom: BeiNULLoder einem Datum vor dem 01.01.1990 wird das aktuelle Datum mit Uhrzeit minus einen Tag verwendet.DateTo: BeiNULLoder einem Datum vor dem 01.01.1990 wird das aktuelle Datum mit Uhrzeit verwendet.
Filter (alle mit UND verknüpft)
ItemNrSupplmuss der Lieferanten-Artikelnummer des Artikels (Items.ItemNrSuppl) entsprechen.ShopIDmuss dem Shop der Rechnung (Invoices.InvShopID) entsprechen.PaymentTypemuss der an der Rechnungsadresse hinterlegten Zahlungsart (Addresses.APayment) entsprechen, nicht der Zahlungsart der Rechnung.CustomerNrExternalmuss der externen Kundennummer der Rechnungsadresse entsprechen.- Für das Rechnungsdatum gilt
InvDate >= DateFromundInvDate < DateTo. Die Obergrenze ist exklusiv.
Ausgabe Es wird eine Zeile je Rechnungsposition geliefert. Jede Zeile enthält:
- Lieferanten-Artikelnummer und EAN des Artikels;
- Firma (
CareOf), Name und externe Kundennummer der Rechnungsadresse; - die Menge;
- die Netto-Positionssumme;
- die ISO3-Ländercodes von Rechnungs- und Lieferadresse;
- den Währungscode der Rechnung;
LastSaleDate: das späteste Rechnungsdatum aller Rechnungen, die den Artikel enthalten.
Die Netto-Positionssumme wird so berechnet: Der Einzelpreis der Position wird durch 1 + MwSt-Satz geteilt, auf 2 Nachkommastellen gerundet und anschließend mit der Menge multipliziert. Als MwSt-Satz dient bei MwSt-Kennzeichen H der volle Satz der Rechnung, bei L der ermäßigte Satz und bei jedem anderen Kennzeichen 0.
Das Ergebnis hat keine definierte Sortierung.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen; nicht festgeschriebene Daten können im Ergebnis erscheinen. - Ohne Datumsparameter umfasst der Bericht genau die letzten 24 Stunden bis zum Zeitpunkt des Aufrufs. Das ist ein gleitendes Zeitfenster, nicht der vorherige Kalendertag. Für ganze Tage sollte
DateToals Mitternacht des Tages nach dem letzten gewünschten Tag übergeben werden. - Alle Joins sind Inner Joins. Positionen fehlen, wenn die Rechnung keine Rechnungs- oder Lieferadresse hat, wenn ein Land nicht in
Countriesaufgelöst werden kann oder wenn die Rechnungswährung nicht inpixi.Currencyvorhanden ist. LastSaleDateberücksichtigt keinen Filter, auch nicht den Datumsbereich. Es zeigt immer das späteste Rechnungsdatum des Artikels über alle Rechnungen. Da es je Zeile als korrelierte Unterabfrage ermittelt wird, können große Datumsbereiche langsam sein.- Die Nettoberechnung verwendet
VATHighPerc/VATLowPercdirekt als1 + Satz. Das Ergebnis ist nur korrekt, wenn diese Sätze als Dezimalbruch (z. B. 0,19) gespeichert sind. - Der Netto-Einzelpreis wird vor der Multiplikation mit der Menge gerundet; geringe Rundungsdifferenzen zu den Rechnungssummen sind daher möglich.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemNrSuppl
|
varchar(50) string |
NULL |
Lieferanten-Artikelnummer ( Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Shop-ID der Rechnung ( Beispiel: |
PaymentType
|
char(1) string |
NULL |
Zahlungsart-Kürzel, verglichen mit Beispiel: |
CustomerNrExternal
|
varchar(60) string |
NULL |
Externe Kundennummer der Rechnungsadresse. Beispiel: |
DateFrom
|
datetime dateTime |
NULL |
Beginn des Rechnungsdatumsbereichs (inklusive). Bei Beispiel: |
DateTo
|
datetime dateTime |
NULL |
Ende des Rechnungsdatumsbereichs (exklusiv). Bei Beispiel: |
Antwort
Result-Set 1 · Immer (kann leer sein)
Eine Zeile je Rechnungsposition, die den Filtern entspricht.
| Spalte | Typ | Beschreibung |
|---|---|---|
ItemNrSuppl
Kann leer sein |
varchar(50) string |
Lieferanten-Artikelnummer des Artikels. |
EANUPC
Kann leer sein |
string |
EAN/UPC des Artikels. |
Company
Kann leer sein |
string |
Firma der Rechnungsadresse ( |
CustomerName
Kann leer sein |
string |
Name der Rechnungsadresse. |
CustomerNrExternal
Kann leer sein |
varchar(60) string |
Externe Kundennummer der Rechnungsadresse. |
Qty
Kann leer sein |
int |
Berechnete Menge der Position ( |
ItemTotal_Net
Kann leer sein |
decimal(10,2) decimal |
Netto-Positionssumme: Einzelpreis ohne MwSt, auf 2 Nachkommastellen gerundet, multipliziert mit der Menge. |
CountryCodeISO3_Billing
Kann leer sein |
string |
ISO3-Ländercode der Rechnungsadresse. |
CountryCodeISO3_Shipping
Kann leer sein |
string |
ISO3-Ländercode der Lieferadresse. |
LastSaleDate
Kann leer sein |
datetime dateTime |
Spätestes Rechnungsdatum aller Rechnungen mit diesem Artikel, unabhängig von den Filtern. |
CurrencyCode
Kann leer sein |
string |
Währungscode der Rechnung ( |
Beispielantwort
<SqlRowSet1>
<row>
<ItemNrSuppl>BAF-10045</ItemNrSuppl>
<EANUPC>4006381333931</EANUPC>
<Company>Muster GmbH</Company>
<CustomerName>Max Mustermann</CustomerName>
<CustomerNrExternal>K-204711</CustomerNrExternal>
<Qty>2</Qty>
<ItemTotal_Net>33.60</ItemTotal_Net>
<CountryCodeISO3_Billing>DEU</CountryCodeISO3_Billing>
<CountryCodeISO3_Shipping>AUT</CountryCodeISO3_Shipping>
<LastSaleDate>2024-03-28T14:12:05</LastSaleDate>
<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:pixiReportCustomerSales>
<!-- <ItemNrSuppl>BAF-10045</ItemNrSuppl> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>R</PaymentType> -->
<!-- <CustomerNrExternal>K-204711</CustomerNrExternal> -->
<!-- <DateFrom>2024-03-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-04-01T00:00:00</DateTo> -->
</ns1:pixiReportCustomerSales>
</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:pixiReportCustomerSales>
<!-- <ItemNrSuppl>BAF-10045</ItemNrSuppl> -->
<!-- <ShopID>SHP</ShopID> -->
<!-- <PaymentType>R</PaymentType> -->
<!-- <CustomerNrExternal>K-204711</CustomerNrExternal> -->
<!-- <DateFrom>2024-03-01T00:00:00</DateFrom> -->
<!-- <DateTo>2024-04-01T00:00:00</DateTo> -->
</ns1:pixiReportCustomerSales>
</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 = [
// 'ItemNrSuppl' => 'BAF-10045',
// 'ShopID' => 'SHP',
// 'PaymentType' => 'R',
// 'CustomerNrExternal' => 'K-204711',
// 'DateFrom' => '2024-03-01T00:00:00',
// 'DateTo' => '2024-04-01T00:00:00',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiReportCustomerSales', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiReportCustomerSales