pixiGetProductSalesReport
Liefert die verkaufte Menge eines Artikels pro Rechnungsmonat und -jahr, optional eingeschränkt auf einen Shop.
Erstellt einen monatlichen Verkaufsbericht für einen einzelnen Artikel auf Basis von Rechnungspositionen.
- Liest Rechnungspositionen aus der View
PV_InvlinesRepund verknüpft sie über die Rechnungsnummer mit den Rechnungen inPV_Rechnungen. - Filtert auf die interne Artikelnummer
ItemNrInt. - Ist
ShopIDangegeben, werden nur Rechnungspositionen dieses Shops berücksichtigt; fehlt der Parameter oder ist erNULL, werden alle Shops einbezogen. - Gruppiert nach Rechnungsmonat und Rechnungsjahr und summiert die verkaufte Menge (
QtySold). - Die Zeilen sind chronologisch sortiert: nach Jahr aufsteigend, dann nach Monat aufsteigend.
Es erscheinen nur Monate, in denen der Artikel berechnet wurde; Monate ohne Verkäufe werden nicht als Nullzeilen geliefert.
Hinweise
- Laut Kopfkommentar wurde die Prozedur für einen bestimmten Kunden (JAL) erstellt.
- Beide Views werden
WITH (NOLOCK)gelesen, die Werte können daher nicht festgeschriebene Daten enthalten. - Die Definitionen von
PV_InvlinesRepundPV_Rechnungenliegen nicht vor; die genaue Bedeutung vonQtySold(z. B. ob Gutschriften die Menge mindern) sowie die Datentypen der Monats-/Jahresspalten hängen von diesen Views ab. - Es gibt keinen Datumsfilter; die gesamte Rechnungshistorie des Artikels wird aggregiert, was bei Artikeln mit vielen Rechnungspositionen langsam sein kann.
- Eine unbekannte
ItemNrIntliefert eine leere Ergebnismenge, keinen Fehler.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
ItemNrInt
Pflicht
|
varchar(50) string |
– |
Interne Artikelnummer des Artikels, dessen Verkäufe ausgewertet werden. Beispiel: |
ShopID
|
varchar(3) string |
NULL |
Optionale Shop-ID. Ist sie gesetzt, werden nur Rechnungspositionen dieses Shops summiert; Beispiel: |
Antwort
Result-Set 1 · Immer (leer, wenn der Artikel keine passenden Rechnungspositionen hat)
Eine Zeile pro Rechnungsmonat und -jahr mit der verkauften Gesamtmenge, sortiert nach Jahr und Monat aufsteigend.
| Spalte | Typ | Beschreibung |
|---|---|---|
Monat
Kann leer sein |
int |
Rechnungsmonat ( |
Jahr
Kann leer sein |
int |
Rechnungsjahr ( |
Sum
Kann leer sein |
decimal |
Summe von |
Beispielantwort
<SqlRowSet1>
<row>
<Monat>11</Monat>
<Jahr>2023</Jahr>
<Sum>42</Sum>
</row>
<row>
<Monat>12</Monat>
<Jahr>2023</Jahr>
<Sum>67</Sum>
</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:pixiGetProductSalesReport>
<ItemNrInt>100234</ItemNrInt>
<!-- <ShopID>WEB</ShopID> -->
</ns1:pixiGetProductSalesReport>
</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:pixiGetProductSalesReport>
<ItemNrInt>100234</ItemNrInt>
<!-- <ShopID>WEB</ShopID> -->
</ns1:pixiGetProductSalesReport>
</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 = [
'ItemNrInt' => '100234',
// 'ShopID' => 'WEB',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetProductSalesReport', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetProductSalesReport