pixiGetPosJournal
Liefert das POS-Kassenbuch (Kassenereignisse mit Beträgen, Rechnungen und laufendem Kassenstand) für Zeitraum, Lager und Kasse.
Liefert das Kassenbuch des Pixi-POS-Moduls. Die Arbeit übernimmt die interne Prozedur CR_POS_Kassenbuch. Ihre Zeilen werden zwischengespeichert und mit einer reduzierten Spaltenauswahl zurückgegeben.
Ablauf:
- Der gemeinsame API-Rahmen prüft die Aufrufhäufigkeit. Ist der für diese Funktion konfigurierte Mindestabstand noch nicht verstrichen, wird nur eine Statuszeile mit
ResultCode502geliefert, und es werden keine Kassenbuchdaten gelesen. - Standardwerte werden gesetzt:
FromDateundToDatesind standardmäßig das heutige Datum.FromDatewird unverändert inklusive Uhrzeit verwendet.ToDatewird auf das Tagesende erweitert.
- POS-Sitzungsereignisse im Zeitraum werden ausgewählt. Ereignisse vom Typ
Iwerden ausgeschlossen.LocIDschränkt auf ein Lager ein.NULLoder leer bedeutet alle Lager.RegisterIDschränkt auf eine Kasse ein.''oderNULLbedeutet alle Kassen.
- Jedes Ereignis wird, falls vorhanden, mit dem POS-Rechnungskopf und mit einer Beschreibung des Ereignistyps verknüpft:
S= POS StartE= POS StopP= InvoiceD= Drawer Open
RegisterValueist die laufende Summe vonAmountIn - AmountOutüber alle ausgewählten Ereignisse mit einerEventTimebis einschließlich der aktuellen.EventCommentkombiniert Ereigniskommentar und Rechnungskommentar, getrennt durch einen Zeilenumbruch.
Die interne Prozedur sortiert nach EventTime.
Hinweise
- Aufrufstatistik: Der API-Rahmen schreibt den Aufrufzeitpunkt in
API_STATISTICS. Das ist der einzige Schreibzugriff. - Lesezugriffe: Alle Lesezugriffe auf Kassenbuchdaten erfolgen mit
NOLOCK, daher können nicht festgeschriebene Daten erscheinen. - Sortierung: Das abschließende
SELECTliest aus einer Tabellenvariable ohne eigenesORDER BY. Die Sortierung nachEventTimeist daher nicht streng garantiert. - Laufende Summe:
RegisterValuewird über alle ausgewählten Ereignisse berechnet, nicht je Kasse oder je Lager. Bei gleichzeitiger Abfrage mehrerer Kassen oder Lager werden diese vermischt. Der Wert beginnt außerdem bei 0 abFromDate; ein Anfangsbestand vor dem Zeitraum wird nicht berücksichtigt. - Ende des Zeitraums:
ToDatewird mitCAST(... AS INTEGER)umgewandelt. Beidatetimewird dabei auf den nächsten Tag gerundet, sodass einToDatemit Uhrzeit ab 12:00 den Zeitraum bis zum Ende des Folgetags erweitert.ToDatesollte ohne Uhrzeit übergeben werden. - MwSt-Sätze: Ereignisse werden per Inner Join mit den MwSt-Sätzen aus
fPixi_GetVATRate(nicht beigefügt) verknüpft. Liefert diese Funktion für ein Lager keinen Satz, fehlen die Ereignisse dieses Lagers im Ergebnis. - Immer leer:
CreatedByundUpdatedBysind immerNULL. - Unbekannte Typen:
EventDescriptionistNULLfür andere Ereignistypen alsS,E,PundD.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
FromDate
|
datetime dateTime |
NULL |
Beginn des Zeitraums (inklusive, Uhrzeit wird berücksichtigt). Beispiel: |
ToDate
|
datetime dateTime |
NULL |
Ende des Zeitraums. Es wird auf das Tagesende erweitert; Uhrzeiten ab 12:00 runden auf den Folgetag. Beispiel: |
LocID
|
varchar(3) string |
NULL |
Lager der POS-Sitzung. Beispiel: |
RegisterID
|
varchar(30) string |
– |
Kassen-ID. Leer oder Beispiel: |
ResultCode
OUTPUT
|
char(3) string |
NULL |
Ergebniscode des API-Rahmens. Erlaubte Werte
Beispiel: |
ResultText
OUTPUT
|
varchar(1024) string |
NULL |
Ergebnistext: Beispiel: |
Antwort
Result-Set 1 · Wenn die Prüfung der Aufrufhäufigkeit bestanden ist (ResultCode = 200)
Eine Zeile je POS-Sitzungsereignis im Zeitraum, außer Ereignissen vom Typ I.
| Spalte | Typ | Beschreibung |
|---|---|---|
EventTime
Kann leer sein |
datetime dateTime |
Zeitpunkt des Ereignisses. |
RegisterID
Kann leer sein |
varchar(30) string |
Kasse der Sitzung. |
CreatedBy
Kann leer sein |
varchar(50) string |
Immer |
UpdatedBy
Kann leer sein |
varchar(50) string |
Immer |
EventType
Kann leer sein |
char(1) string |
Ereignistyp: |
EventDescription
Kann leer sein |
varchar(100) string |
Englische Bezeichnung des Ereignistyps ( |
InvoiceNr
Kann leer sein |
varchar(20) string |
Belegnummer der verknüpften POS-Rechnung. |
InvoiceAmount
Kann leer sein |
money decimal |
Gesamtbetrag der verknüpften POS-Rechnung. |
EventComment
Kann leer sein |
varchar(max) string |
Ereignis- und Rechnungskommentar, bei beiden durch Zeilenumbruch getrennt. |
AmountOut
Kann leer sein |
money decimal |
Aus der Kasse entnommener Betrag. |
VatHigh
Kann leer sein |
money decimal |
MwSt-Betrag zum Normalsatz der Rechnung. |
VatLow
Kann leer sein |
money decimal |
MwSt-Betrag zum ermäßigten Satz der Rechnung. |
AmountIn
Kann leer sein |
money decimal |
In die Kasse eingezahlter Betrag. |
RegisterValue
Kann leer sein |
money decimal |
Laufende Summe von |
Result-Set 2 · Wenn die Aufrufhäufigkeit überschritten ist (ResultCode = 502)
Statuszeile des API-Rahmens; es folgen keine Kassenbuchdaten.
| Spalte | Typ | Beschreibung |
|---|---|---|
ResultCode
|
char(3) string |
Immer |
ResultText
|
varchar(1024) string |
Meldung mit der verbleibenden Wartezeit in Millisekunden. |
Beispielantwort
<SqlRowSet1>
<row>
<EventTime>2024-05-01T08:00:12</EventTime>
<RegisterID>KASSE01</RegisterID>
<EventType>S</EventType>
<EventDescription>POS Start</EventDescription>
<AmountOut>0.0000</AmountOut>
<AmountIn>150.0000</AmountIn>
<RegisterValue>150.0000</RegisterValue>
</row>
<row>
<EventTime>2024-05-01T09:15:40</EventTime>
<RegisterID>KASSE01</RegisterID>
<EventType>P</EventType>
<EventDescription>Invoice</EventDescription>
<InvoiceNr>K2024-000123</InvoiceNr>
<InvoiceAmount>39.9000</InvoiceAmount>
<AmountOut>0.0000</AmountOut>
<VatHigh>6.3700</VatHigh>
<VatLow>0.0000</VatLow>
<AmountIn>39.9000</AmountIn>
<RegisterValue>189.9000</RegisterValue>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| 502 | ({WaitMsec}) Frequency quote exceeded. Next call to this function can be made in ca. {WaitMsec} milliseconds | Der Aufruf erfolgte vor Ablauf des in `API_CONTROL` für diese Funktion konfigurierten Mindestabstands. Die angegebene Zeit abwarten und erneut aufrufen. |
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:pixiGetPosJournal>
<!-- <FromDate>2024-05-01T00:00:00</FromDate> -->
<!-- <ToDate>2024-05-31T00:00:00</ToDate> -->
<!-- <LocID>001</LocID> -->
<!-- <RegisterID>KASSE01</RegisterID> -->
<!-- <ResultCode>200</ResultCode> -->
<!-- <ResultText>OK</ResultText> -->
</ns1:pixiGetPosJournal>
</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:pixiGetPosJournal>
<!-- <FromDate>2024-05-01T00:00:00</FromDate> -->
<!-- <ToDate>2024-05-31T00:00:00</ToDate> -->
<!-- <LocID>001</LocID> -->
<!-- <RegisterID>KASSE01</RegisterID> -->
<!-- <ResultCode>200</ResultCode> -->
<!-- <ResultText>OK</ResultText> -->
</ns1:pixiGetPosJournal>
</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-05-31T00:00:00',
// 'LocID' => '001',
// 'RegisterID' => 'KASSE01',
// 'ResultCode' => '200',
// 'ResultText' => 'OK',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetPosJournal', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetPosJournal