SQL Views
Für Systeme, die APRO-Daten in großem Volumen konsumieren — BI-Tools, Data Warehouses, Buchhaltungsexporte — stellt die Kassendatenbank drei lesende Views bereit, die den transaktionalen Kern abdecken:
vw_Receipts— Belege.vw_Receipt_Items— Positionen.vw_Payments— Zahlungen.
Alle drei joinen über ReceiptId, ein vollständiges Belegbild ist also
ein Drei-Tabellen-Query.
1. vw_Receipts
Eine Zeile pro Geschäftsvorfall. Die Spalte TransactionTypeId
unterscheidet, was die Zeile repräsentiert.
| Spalte | Typ | Beschreibung |
|---|---|---|
Id | GUID | Eindeutige ID des Geschäftsvorfalls. |
TransactionId | GUID | Eindeutige ID der Transaktion. |
TransactionTypeId | enum | Siehe Transaktionstypen. |
DateTime | datetime | Transaktionszeitpunkt. |
ReceiptNr | string | Beleg-/Rechnungsnummer. |
TotalAmount | decimal | Belegsumme / Rechnungsbetrag. |
TipAmount | decimal | Trinkgeld (bei Abrechnung). |
DiscountAmount | decimal | Rabattbetrag, gewährter Gesamtrabatt. |
BusinessDay | date | Virtueller Tag des Geschäftsvorfalls. |
BusinessId | integer | ID des durchführenden Unternehmens. |
BusinessName | string | Name des Unternehmens. |
TableId | integer | ID des zugeordneten Tisches. |
TableNr | integer | Tischnummer. |
TableName | string | Tischname. |
StaffId | integer | ID des Mitarbeiters. |
StaffNr | integer | Personalnummer. |
StaffName | string | Mitarbeitername. |
CustomerId | integer | Kunden-ID. |
CustomerNr | integer | Kundennummer. |
CustomerName | string | Kundenname. |
DeviceId | integer | Gerät, das die Transaktion ausgeführt hat. |
Transaktionstypen
TransactionTypeId | Bedeutung |
|---|---|
1 | Bestellung (Eingabe am Tisch oder SB). |
2 | Verschiebung (Tischwechsel). |
3 | Abrechnung (Abschluss mit Zahlung). |
4 | Storno (Umkehr von Bestellung). |
5 | Rechnung zurückholen (Umkehr von Abrechnung). |
14 | Ausgangsrechnung erstellt. |
25 | Ausgangsrechnung bezahlt. |
2. vw_Receipt_Items
Belegpositionen. Über ReceiptId mit vw_Receipts verknüpfen.
| Spalte | Typ | Beschreibung |
|---|---|---|
ReceiptId | GUID | Beleg-ID (Join auf vw_Receipts.Id). |
TransactionId | GUID | Transaktions-ID. |
ReceiptItemId | GUID | Eindeutige Positions-ID. |
ProductCategoryId | integer | Sparten-ID. |
ProductCategoryNr | integer | Sparten-Nummer. |
ProductCategoryName | string | Sparten-Name. |
ProductId | integer | Produkt-ID. |
ProductNr | integer | Produktnummer. |
ProductName | string | Produktname. |
Quantity | decimal | Stückzahl. |
OriginalPrice | decimal | Ursprünglicher Einzelpreis zum Ausführungszeitpunkt. |
EffectivePrice | decimal | Tatsächlicher Einzelpreis. |
OriginalAmount | decimal | Stück × Originalpreis. |
EffectiveAmount | decimal | Stück × Originalpreis × Rabattfaktor. |
DiscountAmount | decimal | Rabattbetrag. |
DiscountPercentage | decimal | Rabatt in Prozent des Originalpreises. |
TaxId | integer | Steuersatz-ID. |
TaxName | string | Steuersatz-Name. |
TaxAmount | decimal | Steuersatz als Dezimalwert. |
3. vw_Payments
Zahlungen zu Belegen. Über ReceiptId mit vw_Receipts verknüpfen.
| Spalte | Typ | Beschreibung |
|---|---|---|
TransactionId | GUID | Transaktions-ID. |
ReceiptId | GUID | Beleg-ID. |
PaymentId | GUID | Eindeutige Zahlungs-ID. |
PredecessorReceiptId | GUID | Vorheriger Beleg, den diese Zahlung aufhebt (z. B. bei Rückholung). |
DateTime | datetime | Zeitpunkt der Zahlung. |
TotalAmount | decimal | Gezahlter Betrag. |
PaymentTypeId | integer | Zahlungsmittel-ID. |
PaymentTypeNr | integer | Zahlungsmittel-Nummer. |
PaymentTypeName | string | Zahlungsmittel-Name. |
Beispiel-Query
Umsatz pro Geschäftstag, aufgeteilt nach Steuersatz:
SELECT r.BusinessDay, ri.TaxName, SUM(ri.EffectiveAmount) AS netto_umsatzFROM vw_Receipts AS rJOIN vw_Receipt_Items AS ri ON ri.ReceiptId = r.IdWHERE r.TransactionTypeId = 3 -- nur Abrechnungen AND r.BusinessDay BETWEEN @from AND @toGROUP BY r.BusinessDay, ri.TaxNameORDER BY r.BusinessDay, ri.TaxName;