Wie können wir helfen?

accounts_payable

Daten zu Fremdkosten

📋 Überblick

Die Tabelle accounts_payable enthält alle Eingangsrechnungspositionen mit ihrem vollständigen Kontext. Jede Zeile repräsentiert eine einzelne Position einer Eingangsrechnung mit allen zugehörigen Informationen zu Projekt, Auftrag, Lieferant, Budget und Abrechnung.

Aufbau der Tabelle

Die Tabelle ist ähnlich aufgebaut wie der Export unter Buchhaltung > Kostenmanagement. Sie ermöglicht detaillierte Auswertungen über:

  • Fremdkosten: Alle über Eingangsrechnungen erfassten Kosten
  • Projektzuordnung: Welche Kosten wurden auf welche Projekte gebucht
  • Auftragsbezug: Verknüpfung zu Bestellungen/Aufträgen
  • Budgetkontrolle: Zuordnung zu Budgets und Kostenstellen
  • Abrechnungsstatus: Clearable/Cleared Status für Weiterverrechnung

Wichtige Konzepte

💡 Eine Position = Eine Zeile: Jede Eingangsrechnungsposition erscheint als separate Zeile. Rechnungsdaten (wie data_invoice_netto, data_invoice_brutto) wiederholen sich bei mehreren Positionen derselben Rechnung.

⚠️ Beim Aggregieren beachten:

  • Rechnungssummen (data_invoice_*) nicht über Positionen summieren → GROUP BY oder MAX() verwenden
  • Positionssummen (data_invoice_position_*) können summiert werden

🎯 Analyse-Ideen

  • Zeitliche Verteilung der Buchungen innerhalb von Projekten
  • Detaillierte Kostenentwicklung für Kunden und Projekte
  • Kundendashboards zum Reporting von Kosten
  • Kostenaufstellungen nach Unternehmensbereich
  • Lieferantenauswertungen und Ausgabenanalyse
  • Budget-Soll-Ist-Vergleiche
  • Abrechnungscontrolling (Clearable vs. Cleared)

📊 Feldstruktur

1. System-Felder

Technische Felder für Datenherkunft und Zugriffskontrolle.

Technischer Name
Anzeigename
Datentyp
Beschreibung
prism_uid
Prism UID
varchar
Eindeutige ID des Datensatzes in Prism
prism_access_group
Zugriffsgruppe
varchar
Zugriffsgruppe für Berechtigungen
prism_access_user
Zugriffsbenutzer
varchar
Benutzer-ID für Zugriffskontrolle
prism_source_system
Quellsystem
varchar
System aus dem die Daten stammen (z.B. "poool")
prism_source_reference
Quellreferenz
jsonb
JSON-Objekt mit Referenz-IDs zum Quellsystem
prism_created_at
Erstellt am
timestamp
Zeitpunkt der Erstellung in Prism
prism_updated_at
Aktualisiert am
timestamp
Zeitpunkt der letzten Aktualisierung

Unter-Felder von prism_source_reference:

Technischer Name
Anzeigename
Datentyp
Beschreibung
prism_source_reference → bill_incoming_id
Eingangsrechnungs-ID
text
ID der Eingangsrechnung im Quellsystem
prism_source_reference → bill_incoming_position_id
Positions-ID
text
ID der Position im Quellsystem
prism_source_reference → client_id
Kunden-ID
text
ID des Kunden im Quellsystem
prism_source_reference → company_id
Unternehmen-ID
text
ID des Unternehmens im Quellsystem
prism_source_reference → order_id
Auftrags-ID
text
ID des zugeordneten Auftrags im Quellsystem
prism_source_reference → project_id
Projekt-ID
text
ID des Projekts im Quellsystem
prism_source_reference → project_phase_id
Projektphasen-ID
text
ID der Projektphase im Quellsystem
prism_source_reference → project_state_id
Projektstatus-ID
text
ID des Projektstatus im Quellsystem

2. Meta-Informationen

Informationen zur Instanz und Umgebung.

Technischer Name
Anzeigename
Datentyp
Beschreibung
meta_domain_label
Domain
varchar
Domain-Bezeichnung der Instanz
meta_instance_label
Instanz
varchar
Name der Poool-Instanz
meta_instance_country
Instanz-Land
varchar
Ländercode der Instanz (z.B. "DE", "AT")

3. Datums-Informationen

Zeitbezogene Daten für Analysen.

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_day_date
Datum
date
-
Rechnungsdatum der Eingangsrechnung
data_day_cw
Kalenderwoche
varchar
"2024-W47"
Kalenderwoche des Rechnungsdatums
data_day_weekday
Wochentag
varchar
Monday, Tuesday, ...
Wochentag als Text (englisch)
data_day_weekday_index
Wochentag Index
int4
1-7
Wochentag als Zahl (1 = Montag)

💡 Tipp: Verwende data_day_date für Joins mit der meta_dates Tabelle für erweiterte Zeitauswertungen!

4. Kundendaten

Informationen zum Kunden, auf den die Kosten gebucht wurden.

Technischer Name
Anzeigename
Datentyp
Beschreibung
data_client_company_poool_uid
Kunden-UID
varchar
Eindeutige Poool-ID des Kunden
data_client_number
Kundennummer
varchar
Kundennummer
data_client_label
Kundenname
varchar
Anzeigename des Kunden
data_client_label_legal
Offizieller Name
varchar
Offizieller/rechtlicher Name des Kunden
data_client_label_token
Kunden-Kürzel
varchar
Kurzkürzel des Kunden
data_client_zip
PLZ
varchar
Postleitzahl des Kunden
data_client_country
Land
varchar
Ländercode des Kunden (z.B. "DE")

5. Projektdaten

Informationen zum Projekt, auf das die Kosten gebucht wurden.

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_project_poool_uid
Projekt-UID
varchar
-
Eindeutige Poool-ID des Projekts
data_project_number
Projektnummer
varchar
-
Projektnummer
data_project_label
Projekttitel
varchar
-
Titel des Projekts
data_project_start_at
Projektstart
date
-
Startdatum des Projekts
data_project_due_at
Projektende
date
-
Enddatum/Fälligkeit des Projekts
data_project_is_internal
Internes Projekt
bool
true/false
Ist es ein internes Projekt?
data_project_type
Projekttyp
varchar
-
Typ des Projekts
data_project_state
Projektstatus
varchar
-
Aktueller Status des Projekts
data_project_state_is_finished
Status: Abgeschlossen
bool
true/false
Ist das Projekt abgeschlossen?
data_project_state_is_archived
Status: Archiviert
bool
true/false
Ist das Projekt archiviert?
data_project_team_label
Team
varchar
-
Name des zuständigen Teams
data_project_team_token
Team-Kürzel
varchar
-
Kürzel des Teams
data_project_person_responsible_label
Projektverantwortlicher
varchar
-
Name des Projektverantwortlichen
data_project_person_responsible_email
Verantwortlicher E-Mail
varchar
-
E-Mail des Projektverantwortlichen
data_project_person_responsible_additional
Weitere Verantwortliche
jsonb
-
Zusätzliche Verantwortliche als JSON

6. Projektphasen-Daten

Informationen zur Projektphase, falls zugeordnet.

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_project_phase_poool_uid
Phasen-UID
varchar
-
Eindeutige Poool-ID der Projektphase
data_project_phase_label
Phasenname
varchar
-
Bezeichnung der Projektphase
data_project_phase_state
Phasenstatus
varchar
-
Status der Phase
data_project_phase_due_at
Phasen-Fälligkeit
date
-
Fälligkeitsdatum der Phase
data_project_phase_state_is_archived
Phasenstatus: Archiviert
bool
true/false
Ist die Phase archiviert?
data_project_phase_state_is_finished
Phasenstatus: Abgeschlossen
bool
true/false
Ist die Phase abgeschlossen?

7. Auftragsdaten

Informationen zum zugeordneten Auftrag (Bestellung).

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_order_number
Auftragsnummer
varchar
-
Nummer des Auftrags
data_order_label
Auftragstitel
varchar
-
Titel/Bezeichnung des Auftrags
data_order_date
Auftragsdatum
date
-
Datum des Auftrags
data_order_state
Auftragsstatus
varchar
open, cleared, canceled
Status des Auftrags
data_order_value_planned_internal
Geplanter Wert Eigenleistung
float8
-
Geplante Eigenleistungen im Auftrag
data_order_value_planned_external
Geplanter Wert Fremdleistung
float8
-
Geplante Fremdleistungen im Auftrag

8. Lieferantendaten

Informationen zum Lieferanten der Eingangsrechnung.

Technischer Name
Anzeigename
Datentyp
Beschreibung
data_supplier_company_poool_uid
Lieferanten-UID
varchar
Eindeutige Poool-ID des Lieferanten
data_supplier_number
Lieferantennummer
varchar
Nummer des Lieferanten
data_supplier_label
Lieferantenname
text
Name des Lieferanten
data_supplier_uid
USt-ID
varchar
Umsatzsteuer-Identifikationsnummer
data_supplier_zip
PLZ
varchar
Postleitzahl des Lieferanten
data_supplier_country
Land
varchar
Ländercode des Lieferanten

9. Eingangsrechnungsdaten

Kopfdaten der Eingangsrechnung (wiederholen sich bei mehreren Positionen).

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_accounts_payable_poool_uid
Accounts Payable UID
varchar
-
Eindeutige Poool-ID des Eintrags
data_invoice_is_draft
Ist Entwurf
bool
true/false
Ist die Rechnung vorerfasst?
data_invoice_is_expense
Ist Spesenabrechnung
bool
true/false
Ist es eine Spesenabrechnung?
data_invoice_number
Rechnungsnummer
varchar
-
Rechnungsnummer des Lieferanten
data_invoice_number_customer
Kundennummer beim Lieferant
varchar
-
Eigene Kundennummer beim Lieferanten
data_invoice_number_internal
Interne Rechnungsnummer
varchar
-
Interne Nummer zur Verwaltung
data_invoice_payment_reference
Zahlungsreferenz
varchar
-
Referenz für die Zahlung
data_invoice_title
Rechnungstitel
varchar
-
Titel der Eingangsrechnung
data_invoice_person_responsible_label
Ersteller Name
varchar
-
Name des Erstellers
data_invoice_person_responsible_email
Ersteller E-Mail
varchar
-
E-Mail des Erstellers
data_invoice_state
Rechnungsstatus
varchar
open, payed, canceled
Status der Rechnung
data_invoice_date
Rechnungsdatum
date
-
Datum der Rechnung
data_invoice_date_due
Fälligkeitsdatum
date
-
Zahlungsfälligkeitsdatum
data_invoice_netto
Rechnungssumme Netto
float8
-
Netto-Betrag der gesamten Rechnung
data_invoice_brutto
Rechnungssumme Brutto
float8
-
Brutto-Betrag der gesamten Rechnung
data_invoice_discount_date_due
Skontofrist
date
-
Frist für Skontoabzug
data_invoice_discount_percentage
Skonto %
float8
-
Skonto-Prozentsatz
data_invoice_discount_sum
Skonto Betrag
float8
-
Absoluter Skonto-Betrag
data_invoice_payed
Bezahlt
float8
-
Bereits bezahlter Gesamtbetrag
data_invoice_payed_discount
Bezahlt mit Skonto
float8
-
Zahlungen innerhalb der Skontofrist
data_invoice_payed_open
Offener Betrag
float8
-
Noch zu zahlender Restbetrag
data_invoice_payed_balance
Zahlungsdifferenz
float8
-
Differenz (+ Überzahlung / - Unterzahlung)
data_invoice_payed_state
Zahlungsstatus
varchar
exact, over, under
Status der Zahlung

⚠️ Wichtig: Diese Felder sind pro Rechnung identisch. Beim Aggregieren über Positionen nicht summieren, sondern MAX() oder FIRST() verwenden!

10. Positionsdaten

Daten der einzelnen Eingangsrechnungsposition.

Technischer Name
Anzeigename
Datentyp
Mögliche Werte
Beschreibung
data_invoice_position_title
Positionstitel
varchar
-
Bezeichnung der Position
data_invoice_position_budget
Budget
varchar
-
Zugeordnetes Budget
data_invoice_position_cost_center
Kostenstelle
varchar
-
Zugeordnete Kostenstelle
data_invoice_position_apportion
Aufteilung
varchar
-
Aufteilungsschlüssel
data_invoice_position_reallocation_date
Umlagedatum
date
-
Datum für Umlage/Reallokation
data_invoice_position_netto
Position Netto
float8
-
Netto-Betrag der Position
data_invoice_position_tax_percentage
USt. %
float8
-
Umsatzsteuer-Prozentsatz
data_invoice_position_tax_sum
USt. Betrag
float8
-
Absoluter Umsatzsteuer-Betrag
data_invoice_position_brutto
Position Brutto
float8
-
Brutto-Betrag der Position
data_invoice_position_clearable
Abrechenbar
bool
true/false
Kann diese Position weiterverrechnet werden?
data_invoice_position_cleared
Abgerechnet
bool
true/false
Wurde die Position bereits abgerechnet?
data_invoice_position_cleared_drafted
Abrechnung im Entwurf
bool
true/false
Existiert eine Entwurfsabrechnung?
data_invoice_position_ordered
Auftrag vorhanden
bool
true/false
Ist ein Auftrag zugeordnet?
data_invoice_position_order_cleared
Auftrag abgerechnet
bool
true/false
Wurde der zugeordnete Auftrag abgerechnet?
data_invoice_position_order_cleared_partial
Auftrag teilweise abgerechnet
bool
true/false
Wurde der Auftrag teilweise abgerechnet?

💡 Diese Felder können summiert werden für Gesamtauswertungen über mehrere Positionen.

11. Dynamische Attribute

Erweiterbare Zusatzinformationen.

Technischer Name
Anzeigename
Datentyp
Beschreibung
data_dynamic_attributes
Dynamische Attribute
jsonb
Zusätzliche benutzerdefinierte Attribute als JSON

💡 SQL-Beispiele

Kostenauswertung pro Projekt

SELECT 
    data_project_number,
    data_project_label,
    COUNT(DISTINCT data_invoice_number) AS anzahl_rechnungen,
    COUNT(*) AS anzahl_positionen,
    SUM(data_invoice_position_netto) AS kosten_netto,
    SUM(data_invoice_position_brutto) AS kosten_brutto
FROM accounts_payable
WHERE data_project_number IS NOT NULL
GROUP BY data_project_number, data_project_label
ORDER BY kosten_brutto DESC;

Lieferantenauswertung mit offenen Beträgen

SELECT 
    data_supplier_number,
    data_supplier_label,
    MAX(data_invoice_date) AS letzte_rechnung,
    COUNT(DISTINCT data_invoice_number) AS anzahl_rechnungen,
    SUM(data_invoice_position_netto) AS summe_netto,
    -- Offene Beträge: MAX() verwenden, da pro Rechnung identisch
    SUM(DISTINCT CASE 
        WHEN data_invoice_state = 'open' 
        THEN data_invoice_payed_open 
        ELSE 0 
    END) AS offene_betraege
FROM accounts_payable
GROUP BY data_supplier_number, data_supplier_label
ORDER BY summe_netto DESC;

Budget-Auswertung

SELECT 
    data_invoice_position_budget AS budget,
    data_invoice_position_cost_center AS kostenstelle,
    COUNT(*) AS anzahl_positionen,
    SUM(data_invoice_position_netto) AS kosten_gesamt,
    SUM(CASE 
        WHEN data_invoice_position_cleared = true 
        THEN data_invoice_position_netto 
        ELSE 0 
    END) AS kosten_abgerechnet,
    SUM(CASE 
        WHEN data_invoice_position_cleared = false 
        THEN data_invoice_position_netto 
        ELSE 0 
    END) AS kosten_nicht_abgerechnet
FROM accounts_payable
WHERE data_invoice_position_budget IS NOT NULL
GROUP BY data_invoice_position_budget, data_invoice_position_cost_center
ORDER BY kosten_gesamt DESC;

Zeitliche Kostenentwicklung pro Kunde

SELECT 
    data_client_number,
    data_client_label,
    DATE_TRUNC('month', data_day_date) AS monat,
    COUNT(*) AS positionen,
    SUM(data_invoice_position_netto) AS kosten_netto
FROM accounts_payable
WHERE data_day_date >= '2024-01-01'
GROUP BY 
    data_client_number, 
    data_client_label,
    DATE_TRUNC('month', data_day_date)
ORDER BY monat, kosten_netto DESC;

Abrechnungscontrolling (Clearable vs. Cleared)

SELECT 
    data_project_number,
    data_project_label,
    COUNT(*) AS positionen_gesamt,
    SUM(CASE WHEN data_invoice_position_clearable = true THEN 1 ELSE 0 END) AS positionen_abrechenbar,
    SUM(CASE WHEN data_invoice_position_cleared = true THEN 1 ELSE 0 END) AS positionen_abgerechnet,
    SUM(data_invoice_position_netto) AS kosten_gesamt,
    SUM(CASE 
        WHEN data_invoice_position_clearable = true 
        AND data_invoice_position_cleared = false 
        THEN data_invoice_position_netto 
        ELSE 0 
    END) AS kosten_noch_abzurechnen
FROM accounts_payable
WHERE data_project_number IS NOT NULL
GROUP BY data_project_number, data_project_label
HAVING SUM(CASE 
    WHEN data_invoice_position_clearable = true 
    AND data_invoice_position_cleared = false 
    THEN data_invoice_position_netto 
    ELSE 0 
END) > 0
ORDER BY kosten_noch_abzurechnen DESC;
Konnten wir hiermit helfen?
😞
😐
🤩