pixiDatevExportPosInvoices
Liefert POS-Verkäufe und POS-Zahlungen eines Zeitraums als DATEV-Buchungszeilen (Erlöse je Steuersatz und Zahlungen) für den Export in die Buchhaltung.
Wrapper für die interne Prozedur Pixi_DatevExportPOSInvoices. Sie erzeugt DATEV-Buchungszeilen aus Kassenbelegen (POSheader2/POSitem2) und POS-Zahlungen (POSPayment).
Zeitraum: DateFrom wird auf den Tagesbeginn und DateTo auf das Tagesende gesetzt. Verglichen wird jeweils mit dem Belegdatum PHdate.
Erlöszeilen (Source = INV)
- Eine Zeile je Kassenbeleg und Steuersatz, Vorzeichen, Artikel-Buchungskonto und weiteren Gruppierungsmerkmalen. Die Positionsbeträge sind
PIQty * PIEndPrice. Ein Kopfrabatt (Betrag oder Prozent) wird anteilig auf die Positionen verteilt. MwstSatzist der Steuersatz des Artikels (1 = voll, 2 = ermäßigt, 3 = null). Bei Adressen mitAddrNoChargeVATwird er auf 3 gesetzt.BookKeepingAccounthängt vom Steuersatz ab und stammt aus den EinstellungenAccountNumberPOSInvoice,AccountNumberPOSInvoiceVatLowundAccountNumberPOSInvoiceVatZero.VatCodeundBookKeepingAccountkönnen danach durchDatevVatCodeOverrideHigh/LowundDatevAccountOverrideHigh/Lowaus der TabelleVATsübersteuert werden. Ein zum Belegdatum gültiger länderspezifischer Eintrag hat Vorrang vor einem allgemeinen. Konten, die als Wert von Einstellungen mit Namen wiebook%accounteucompanies%vorkommen, werden nicht übersteuert.- Gruppen mit Summe 0 entfallen.
Zahlungszeilen (Source = PAY)
- Eine Zeile je POS-Zahlungsbetrag, ausgenommen die Zahlungsarten
Bund-. Der Betrag istPOSPayment.Amount. BookKeepingAccountist dasBookkeepingAccountPosder Zahlungsart, ersatzweise die EinstellungAccountNumberPOSPayment.Gegenkontostammt aus dem Shop (Shops.Gegenkonto) des Kunden (Customers.CustomerOf), der über die Rechnung mit gleicher Nummer verknüpft ist.
Filter (jeweils ohne Wirkung bei NULL):
ShopId: Shop der Adresse. BeiINV-Zeilen ist das die Kundenadresse des Kassenbelegs, beiPAY-Zeilen die Adresse der Rechnung mit gleicher Nummer.Country: Land der Kundenadresse des Kassenbelegs.InvoiceNr: Belegnummer (PHdocNr).OrderNrExternal: externe Auftragsnummer der Auftragsposition (INV) bzw. des Auftragskopfs (PAY).BookKeepingAccount: wirkt als Alles-oder-nichts-Schalter, nicht als Zeilenfilter.INV-Zeilen erscheinen nur, wenn der Wert einer der drei POS-Erlöskonto-Einstellungen entspricht.PAY-Zeilen erscheinen nur, wenn erAccountNumberPOSPaymententspricht.
Ausgabe
- Mit
ShowOnlySums= 0 werden alle Zeilen geliefert. Enthalten sind nur Zeilen, deren Land inCountriesexistiert. PriceundPriceInCentssind Absolutwerte; die Richtung steht inSign.CustomerNrwird ersatzweise mit der EinstellungDefaultCustomerAccountNumbergefüllt.- Sortierung:
InvoiceNr,Source,InvText,Price.
Mit ShowOnlySums = 1 wird nur eine Platzhalterzeile mit ReportName = DATEVExportInvoices geliefert. Alle Summenspalten dieser Zeile sind NULL.
Hinweise
- Nur lesend. Alle Tabellen werden mit
NOLOCKgelesen, außerPOSheader2undAddressesim Zahlungsteil. Nicht festgeschriebene Daten können daher erscheinen. - Zahlreiche Einstellungen verändern die Ausgabe:
BookExportDatevPro: Vorzeichens/hstatt+/-.BookExportDatevHomeCountry: Heimatland, StandardD.BookExportDatevUseOrderNrExternal: kommagetrennte Liste von Zahlungsarten, bei denenInvoiceNrdie externe Auftragsnummer statt der Belegnummer enthält.BookExportBookAccountAsKostenStelle: schreibt das Artikel-Buchungskonto inEmpty2.ExportPaymentTypeAsKostenStelle2:Empty3erhält die Zahlungsart (1). Bei 2 erhält esNULLfürINV-Zeilen und das Shop-GegenkontofürPAY-Zeilen.- Steuerschlüssel-Einstellungen
BookEu*VatCode,BookGer*VatCodeundBookNonEuVatCode.
- Die Steuerschlüssel-Einstellungen werden nach
intkonvertiert. Ein nicht numerischer Wert führt zu einem Konvertierungsfehler. Countryfällt auf das Land des Kassenstandorts (Location.LocCountry) zurück.VatCodeundAccountNrItemswerden dagegen nur aus dem Land der Kundenadresse ermittelt und können bei anonymen KassenverkäufenNULLsein.- Zahlungszeilen werden mit den Kassenpositionen verknüpft. Eine Zahlung kann daher in mehrere Zeilen aufgeteilt werden, wenn die Artikel unterschiedliche Steuerschlüssel oder Artikelkonten haben.
- Die Währung ist immer die Hauswährung der Datenbank (
pixi.GetDatabaseCurrency). OrderNrExternalwird auf 12 Zeichen undInvTextauf 60 Zeichen gekürzt.- Der Modus
ShowOnlySumsliefert derzeit keine echten Summen, nurNULL-Werte.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DateFrom
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitraums (Belegdatum). Die Uhrzeit wird auf den Tagesbeginn gesetzt. Beispiel: |
DateTo
Pflicht
|
datetime dateTime |
– |
Ende des Zeitraums (Belegdatum). Wird auf das Tagesende erweitert. Beispiel: |
ShopId
|
varchar(3) string |
NULL |
Optionaler Filter auf den Shop der Kundenadresse. Verkäufe ohne Adresse entfallen, wenn gesetzt. Beispiel: |
ShowOnlySums
|
bit boolean |
0 |
Wählt den Ausgabemodus: Buchungszeilen oder Platzhalter-Summenzeile. Erlaubte Werte
Beispiel: |
Country
|
varchar(3) string |
NULL |
Optionaler Filter auf den Pixi-Ländercode der Kundenadresse des Kassenbelegs. Beispiel: |
InvoiceNr
|
varchar(20) string |
NULL |
Optionaler Filter auf die Kassenbelegnummer ( Beispiel: |
OrderNrExternal
|
varchar(50) string |
NULL |
Optionaler Filter auf die externe Auftragsnummer des Kassenverkaufs. Beispiel: |
BookKeepingAccount
|
varchar(255) string |
NULL |
Optionaler Kontoschalter. Beispiel: |
Antwort
Result-Set 1 · Wenn ShowOnlySums = 1
Einzelne Platzhalterzeile; alle Summenspalten sind NULL.
| Spalte | Typ | Beschreibung |
|---|---|---|
ReportName
|
varchar(19) string |
Immer |
SumQtyItems
Kann leer sein |
int |
Immer NULL. |
Sum_VK
Kann leer sein |
int |
Immer NULL. |
Sum_VK_Netto
Kann leer sein |
int |
Immer NULL. |
Sum_ShipCost_Netto
Kann leer sein |
int |
Immer NULL. |
Sum_ShipCost
Kann leer sein |
int |
Immer NULL. |
Sum_VAT
Kann leer sein |
int |
Immer NULL. |
Sum_NettoBruttoControl
Kann leer sein |
int |
Immer NULL. |
Result-Set 2 · Wenn ShowOnlySums = 0 (Standard)
DATEV-Buchungszeilen für POS-Erlöse (INV) und POS-Zahlungen (PAY), sortiert nach InvoiceNr, Source, InvText, Price.
| Spalte | Typ | Beschreibung |
|---|---|---|
Source
|
varchar(5) string |
|
OrderCurrency
|
varchar(3) string |
Hauswährung der Datenbank. |
PHDate
|
datetime dateTime |
Datum des Kassenbelegs. |
Country
Kann leer sein |
varchar(3) string |
Land der Kundenadresse, sonst des Kassenstandorts. |
MwstSatz
Kann leer sein |
smallint int |
Steuersatzschlüssel (1 voll, 2 ermäßigt, 3 null); NULL bei Zahlungszeilen. |
Sign
|
varchar(1) string |
Buchungsrichtung: |
Price
Kann leer sein |
money decimal |
Absoluter Betrag, bei Erlöszeilen auf 2 Nachkommastellen gerundet. |
PriceInCents
Kann leer sein |
bigint long |
Absoluter Betrag in Cent. |
VatCode
Kann leer sein |
int |
DATEV-Steuerschlüssel aus Einstellungen oder |
BookKeepingAccount
Kann leer sein |
varchar(255) string |
Erlöskonto (je Steuersatz) bzw. Zahlungskonto. |
AccountNrItems
Kann leer sein |
varchar(20) string |
Artikel-Buchungskonto (EU, EU-Firmen oder Nicht-EU). |
InvoiceNr
Kann leer sein |
varchar(50) string |
Kassenbelegnummer bzw. externe Auftragsnummer für Zahlungsarten aus |
Empty1
|
varchar(1) string |
Immer leer. |
InvoiceDate
|
datetime dateTime |
Datum des Kassenbelegs. |
CustomerNr
Kann leer sein |
varchar(60) string |
Externe Kundennummer der Adresse, sonst Einstellung |
Empty2
Kann leer sein |
varchar(20) string |
Artikel-Buchungskonto als Kostenstelle bei gesetztem |
Empty3
Kann leer sein |
varchar(50) string |
Abhängig von |
Empty4
|
varchar(1) string |
Immer leer. |
Skonto
Kann leer sein |
int |
Immer NULL. |
InvText
Kann leer sein |
varchar(60) string |
Buchungstext: externe Auftragsnummer, |
OrderNrExternal
Kann leer sein |
varchar(12) string |
Externe Auftragsnummer, getrimmt und auf 12 Zeichen gekürzt. |
CustomerName
Kann leer sein |
varchar(60) string |
Adressname bzw. Kundenname des Kassenbelegs. |
Firstname
Kann leer sein |
varchar(60) string |
Namensteil vor dem ersten Leerzeichen. |
Lastname
Kann leer sein |
varchar(60) string |
Namensteil nach dem ersten Leerzeichen. |
VatID
Kann leer sein |
varchar(50) string |
USt-IdNr. des Kassenbelegs (INV) bzw. des Kunden (PAY). |
Gegenkonto
Kann leer sein |
varchar(50) string |
Gegenkonto des Kunden-Shops; NULL bei Erlöszeilen. |
IsEU
Kann leer sein |
boolean |
EU-Kennzeichen des Landes aus |
CntCodeISO2
Kann leer sein |
string |
ISO-2-Code des Landes. |
Beispielantwort
<SqlRowSet1>
<row>
<Source>INV</Source>
<OrderCurrency>EUR</OrderCurrency>
<PHDate>2024-05-03T14:22:00</PHDate>
<Country>D</Country>
<MwstSatz>1</MwstSatz>
<Sign>-</Sign>
<Price>49.90</Price>
<PriceInCents>4990</PriceInCents>
<VatCode>3</VatCode>
<BookKeepingAccount>8400</BookKeepingAccount>
<AccountNrItems>8400</AccountNrItems>
<InvoiceNr>K2024000123</InvoiceNr>
<Empty1/>
<InvoiceDate>2024-05-03T14:22:00</InvoiceDate>
<CustomerNr>10000</CustomerNr>
<Empty2/>
<Empty3/>
<Empty4/>
<InvText/>
<CustomerName>Max Mustermann</CustomerName>
<Firstname>Max</Firstname>
<Lastname>Mustermann</Lastname>
<IsEU>1</IsEU>
<CntCodeISO2>DE</CntCodeISO2>
</row>
<row>
<Source>PAY</Source>
<OrderCurrency>EUR</OrderCurrency>
<PHDate>2024-05-03T14:22:00</PHDate>
<Country>D</Country>
<Sign>-</Sign>
<Price>49.90</Price>
<PriceInCents>4990</PriceInCents>
<VatCode>3</VatCode>
<BookKeepingAccount>1000</BookKeepingAccount>
<AccountNrItems>8400</AccountNrItems>
<InvoiceNr>K2024000123</InvoiceNr>
<Empty1/>
<InvoiceDate>2024-05-03T14:22:00</InvoiceDate>
<CustomerNr>10000</CustomerNr>
<Empty2/>
<Empty3/>
<Empty4/>
<InvText/>
<CustomerName>Max Mustermann</CustomerName>
<Firstname>Max</Firstname>
<Lastname>Mustermann</Lastname>
<Gegenkonto>1360</Gegenkonto>
<IsEU>1</IsEU>
<CntCodeISO2>DE</CntCodeISO2>
</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:pixiDatevExportPosInvoices>
<DateFrom>2024-05-01T00:00:00</DateFrom>
<DateTo>2024-05-31T00:00:00</DateTo>
<!-- <ShopId>ABC</ShopId> -->
<!-- <ShowOnlySums>0</ShowOnlySums> -->
<!-- <Country>D</Country> -->
<!-- <InvoiceNr>K2024000123</InvoiceNr> -->
<!-- <OrderNrExternal>WEB-100045</OrderNrExternal> -->
<!-- <BookKeepingAccount>8400</BookKeepingAccount> -->
</ns1:pixiDatevExportPosInvoices>
</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:pixiDatevExportPosInvoices>
<DateFrom>2024-05-01T00:00:00</DateFrom>
<DateTo>2024-05-31T00:00:00</DateTo>
<!-- <ShopId>ABC</ShopId> -->
<!-- <ShowOnlySums>0</ShowOnlySums> -->
<!-- <Country>D</Country> -->
<!-- <InvoiceNr>K2024000123</InvoiceNr> -->
<!-- <OrderNrExternal>WEB-100045</OrderNrExternal> -->
<!-- <BookKeepingAccount>8400</BookKeepingAccount> -->
</ns1:pixiDatevExportPosInvoices>
</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 = [
'DateFrom' => '2024-05-01T00:00:00',
'DateTo' => '2024-05-31T00:00:00',
// 'ShopId' => 'ABC',
// 'ShowOnlySums' => '0',
// 'Country' => 'D',
// 'InvoiceNr' => 'K2024000123',
// 'OrderNrExternal' => 'WEB-100045',
// 'BookKeepingAccount' => '8400',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiDatevExportPosInvoices', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiDatevExportPosInvoices