- {/* Positionen Card */}
📊
@@ -32,7 +59,6 @@ export const TrusteeDashboardView: React.FC = () => {
- {/* Dokumente Card */}
📄
@@ -43,24 +69,28 @@ export const TrusteeDashboardView: React.FC = () => {
- {/* Verknüpfungen Card */}
-
🔗
+
+ {accountingConfig?.configured ? '✓' : '○'}
+
-
- {isLoading ? '...' : links.length}
+
+ {isLoading ? '...' : (
+ accountingConfig?.configured
+ ? <>{syncedCount} synced{syncErrorCount > 0 && / {syncErrorCount} errors}>
+ : 'Not configured'
+ )}
-
Zuordnungen
+
Buchhaltung
-
- {/* Rollen Card */}
+
👤
{instance?.userRoles?.length ? (
- instance.userRoles.map((role, idx) => (
+ instance.userRoles.map((role: string, idx: number) => (
{role}
))
) : '-'}
@@ -72,7 +102,6 @@ export const TrusteeDashboardView: React.FC = () => {
- {/* Info-Bereich */}
Instanz-Details
@@ -84,6 +113,15 @@ export const TrusteeDashboardView: React.FC = () => {
Mandant:
{instance?.mandateName}
+ {accountingConfig?.configured && (
+
+ Buchhaltungssystem:
+
+ {accountingConfig.displayLabel || accountingConfig.connectorType}
+ {accountingConfig.lastSyncStatus && ` (${accountingConfig.lastSyncStatus})`}
+
+
+ )}
diff --git a/src/pages/views/trustee/TrusteeExpenseImportView.tsx b/src/pages/views/trustee/TrusteeExpenseImportView.tsx
index 2ec1fdc..506d6ec 100644
--- a/src/pages/views/trustee/TrusteeExpenseImportView.tsx
+++ b/src/pages/views/trustee/TrusteeExpenseImportView.tsx
@@ -14,7 +14,7 @@ import api from '../../../api';
import styles from './TrusteeViews.module.css';
// Default extraction prompt (from automation template)
-const DEFAULT_EXTRACTION_PROMPT = `Du bist ein Spezialist für die Extraktion von Spesendaten aus PDF-Dokumenten.
+const DEFAULT_EXTRACTION_PROMPT = `Du bist ein Spezialist für die Extraktion von Spesendaten aus PDF-Dokumenten und deren buchhalterische Kontierung.
AUFGABE:
Extrahiere alle Speseneinträge aus dem bereitgestellten PDF-Dokument und gib sie im CSV-Format zurück.
@@ -26,9 +26,10 @@ WICHTIGE REGELN:
4. Feld "company" enthält den Lieferanten/Verkäufer der Buchung
5. Tags müssen aus dieser Liste gewählt werden: customer, meeting, license, subscription, fuel, food, material
- Mehrere zutreffende Tags mit Komma trennen
+6. Buchhalterische Kontierung: Schlage Soll-/Haben-Kontonummern vor basierend auf Schweizer Kontenrahmen (KMU)
CSV-SPALTEN (in dieser Reihenfolge):
-valuta,transactionDateTime,company,desc,tags,bookingCurrency,bookingAmount,originalCurrency,originalAmount,vatPercentage,vatAmount
+valuta,transactionDateTime,company,desc,tags,bookingCurrency,bookingAmount,originalCurrency,originalAmount,vatPercentage,vatAmount,debitAccountNumber,creditAccountNumber,taxCode,costCenter,bookingReference
DATENFORMAT:
- valuta: YYYY-MM-DD (Valutadatum)
@@ -42,6 +43,21 @@ DATENFORMAT:
- originalAmount: Original-Betrag als Dezimalzahl
- vatPercentage: MwSt-Prozentsatz (z.B. 8.1 für 8.1%)
- vatAmount: MwSt-Betrag als Dezimalzahl
+- debitAccountNumber: Soll-Konto (Aufwandkonto, z.B. 4200=Materialaufwand, 4400=Büromaterial, 6000=Mietaufwand, 6500=Reisespesen)
+- creditAccountNumber: Haben-Konto (z.B. 1020=Durchlaufkonto, 1000=Kasse, 1100=Debitoren)
+- taxCode: Steuercode falls erkennbar (z.B. VM77=Vorsteuer 7.7%, VM81=Vorsteuer 8.1%)
+- costCenter: Kostenstelle falls erkennbar (leer lassen wenn unbekannt)
+- bookingReference: Belegnummer/Rechnungsnummer vom Dokument
+
+KONTIERUNGSREGELN (Schweizer Kontenrahmen KMU):
+- Spesenbelege: Soll=Aufwandkonto (4xxx-6xxx), Haben=1020 (Durchlaufkonto)
+- Materialkosten: Soll=4200, Haben=1020
+- Büromaterial: Soll=4400, Haben=1020
+- Reisespesen/Transport: Soll=6500, Haben=1020
+- Verpflegung: Soll=6510, Haben=1020
+- Lizenzen/Abos: Soll=6800, Haben=1020
+- Treibstoff: Soll=6200, Haben=1020
+- Wenn unsicher: debitAccountNumber und creditAccountNumber leer lassen
HINWEISE:
- Wenn nur ein MwSt-Satz vorhanden ist, einen Datensatz erstellen
diff --git a/src/pages/views/trustee/TrusteePositionsView.tsx b/src/pages/views/trustee/TrusteePositionsView.tsx
index 3c5adc4..c2594e9 100644
--- a/src/pages/views/trustee/TrusteePositionsView.tsx
+++ b/src/pages/views/trustee/TrusteePositionsView.tsx
@@ -49,8 +49,8 @@ export const TrusteePositionsView: React.FC = () => {
}
}, [instanceId]);
- // Hidden columns (not shown in table view, but available in form)
- const hiddenColumns = ['desc', 'featureInstanceId', 'mandateId'];
+ // Hidden columns (not shown in table view, but available in edit form)
+ const hiddenColumns = ['desc', 'featureInstanceId', 'mandateId', 'taxCode', 'costCenter'];
// Generate columns from attributes + add system columns
const columns = useMemo(() => {
diff --git a/src/pages/views/trustee/index.ts b/src/pages/views/trustee/index.ts
index 753e993..5d0583f 100644
--- a/src/pages/views/trustee/index.ts
+++ b/src/pages/views/trustee/index.ts
@@ -1,13 +1,10 @@
/**
* Trustee Views Export
- *
- * Note: TrusteeOrganisationsView, TrusteeContractsView, TrusteeRolesView, TrusteeAccessView
- * wurden entfernt - Feature-Instanz = Organisation
*/
export { TrusteeDashboardView } from './TrusteeDashboardView';
export { TrusteeDocumentsView } from './TrusteeDocumentsView';
export { TrusteePositionsView } from './TrusteePositionsView';
-export { TrusteePositionDocumentsView } from './TrusteePositionDocumentsView';
export { TrusteeInstanceRolesView } from './TrusteeInstanceRolesView';
export { TrusteeExpenseImportView } from './TrusteeExpenseImportView';
+export { TrusteeAccountingSettingsView } from './TrusteeAccountingSettingsView';