8.0 KiB
8.0 KiB
Last Change 2026-05-04
Finance Probe / Sales-Abgrenzung
Ziel der heutigen Arbeit:
- separate kleine Pruef-GUI fuer Finanz-/Sales-Abgrenzungen bauen
- moeglichst viel Logik aus dem Hauptprogramm wiederverwenden
- verschiedene Summenlogiken pro Land nebeneinander sichtbar machen
- gegen
check.xlsxvergleichen
Wichtiges fachliches Verstaendnis nach Klaerung im Chat:
check.xlsxkommt von Rhino und enthaelt die Soll-Zahlen von Andreas.- Aus den Landessystemen kommt der Ist-Wert.
- Power BI soll in der fachlichen Kommunikation nicht als fuehrende Referenz genannt werden.
- Ziel ist nicht, zufaellig die passendste technische Variante zu nehmen, sondern je Land/System die fachlich korrekte Abgrenzungslogik zu klaeren.
Commit
Rollback-Commit fuer die Finance-Probe wurde erstellt:
15dec06 Add finance reconciliation probe
Dieser Commit enthaelt gezielt:
Services/FinanceReconciliationService.csTools/FinanceProbe/FinanceProbe.csprojTools/FinanceProbe/Program.cs- DI-Registrierung in
Program.cs - Dashboard nutzt den ausgelagerten Finance-Service
TrafagSalesExporter.csprojschliesstTools/**aus dem Hauptprojekt ausTrafagSalesExporter.slnenthaelt das neue Tool-Projekt
Andere bereits vorhandene Worktree-Aenderungen wurden nicht mitcommitted.
Neues Tool
Neues separates Probe-GUI:
Tools/FinanceProbe
Start:
dotnet run --project Tools\FinanceProbe\FinanceProbe.csproj --urls http://localhost:55417
URL:
http://localhost:55417/finance
Aktueller Start im Chat:
- Probe-GUI wurde auf
localhost:55417gestartet - HTTP
200bestaetigt
Hinweis Netzwerk:
- Start mit
localhostist nur lokal auf dem Laptop erreichbar. - Andere im Trafag-Netz koennen es so normalerweise nicht ueber Laptop-IP oeffnen.
- Fuer Netzwerkzugriff waere
http://0.0.0.0:55417noetig. - Probe-GUI hat aktuell keine Authentifizierung, daher nicht unkontrolliert im Netzwerk freigeben.
FinanceReconciliationService
Neue wiederverwendbare Logik:
Services/FinanceReconciliationService.cs
Interface:
IFinanceReconciliationService
Aktuelle Funktion:
Task<List<NetSalesReferenceRow>> BuildNetSalesReferenceRowsAsync(int year = 2025)
Logik:
- liest
CentralSalesRecords - filtert Jahr ueber
InvoiceDate, fallbackExtractionDate - gruppiert pro Referenz-Key/Land
- berechnet Kandidaten:
SalesPriceValueDocTotalFC - VatSumFCDocTotal - VatSum
- Belegkopfwerte werden vor Summierung dedupliziert:
- bevorzugt
TSC + DocumentType + DocumentEntry - fallback
TSC + DocumentType + InvoiceNumber
- bevorzugt
- erkennt aktuell Intercompany nur pragmatisch fuer IT/TRIT anhand bekannter Kunden
- liefert pro Kandidat Wert, Waehrung, IC-Wert, Differenzen
FinanceProbe Darstellung
Die Tabelle zeigt aktuell:
- Status
- Firma
- gewaehlte Abgrenzung
- Ist-Waehrung
- Ist 2025
- Referenz-Waehrung
- Referenz
- Excel LC
- Excel CHF
- Excel Power BI
- Excel Status
- Differenz
- Differenz ohne IC
- Waehrung
- Zeilen
- Varianten aufklappbar
Wichtig:
- Die Bezeichnung
Power BIist in der Probe-Oberflaeche noch sichtbar, weilcheck.xlsxdiese Spalte enthaelt. - Fachlich soll in Kommunikation gegen Andreas aber
check.xlsx/ Soll-Zahl genannt werden, nicht Power BI als fuehrende Referenz. - Eine sinnvolle naechste UI-Bereinigung waere, die Spalte/Labels in der Probe auf
Excel SollwertoderRhino Sollwertumzubenennen.
Probe-Output vom 2026-05-04 09:55
Zusammenfassung:
8 Standorte
4 OK
1 Pruefen
3 Keine Daten
Excel-Referenzen gelesen: 17
Befunde:
CH
- Keine Ist-Daten
- keine sichtbare Soll-Zahl
DE
- Keine Ist-Zeilen aus Systemdaten
- Soll/LC aus Excel vorhanden:
- Referenz ca.
3'635'923 - Excel LC
3'635'922.91 - Excel CHF
3'407'000.00
- Referenz ca.
Offen:
- Quelle fuer DE klaeren
- evtl. MANUAL_EXCEL oder noch nicht exportiert
ES
- Keine Ist-Zeilen aus Systemdaten
- Soll/LC aus Excel vorhanden:
- Referenz ca.
3'102'334 - Excel LC
3'102'333.61 - Excel CHF
2'907'000.00
- Referenz ca.
Offen:
- Quelle fuer ES klaeren
- evtl. MANUAL_EXCEL oder noch nicht exportiert
FR
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
EUR - Ist:
1'471'218.44 - Soll/Referenz:
1'471'218.00 - Differenz:
0.44 - Zeilen:
1649
Befund:
- FR passt praktisch exakt mit
Sales Price/Valuein EUR.
Offene Frage an Andreas:
- Ist
Sales Price/Valuein EUR fuer FR fachlich korrekt?
IN
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrungen:
CHF, EUR, GBP, INR, JPY, USD - Ist:
750'936'591.38 - Soll/Referenz:
750'936'591.00 - Differenz:
0.38 - Zeilen:
4000
Befund:
- IN passt rechnerisch fast exakt, aber Waehrungen sind gemischt.
Offene Frage an Andreas:
- Ist diese gemischte Summe fachlich korrekt?
- Oder muss nach CHF umgerechnet bzw. nach Waehrung getrennt werden?
IT
- Status Pruefen
- gewaehlte Abgrenzung:
DocTotal - VatSum - Ist-Waehrung:
EUR - Ist:
11'866'896.53 - Soll/Referenz LC:
7'669'840.00 - Differenz:
4'197'056.53 - Differenz ohne IC:
3'733.67 - Zeilen:
15883
Befund:
- IT liegt ohne IC-Abzug stark daneben.
- Mit erkanntem IC-Abzug ist die Differenz sehr klein.
Offene Frage an Andreas:
- Soll IT mit Intercompany-Abzug gerechnet werden?
- Falls ja: nach welchen Kunden/Kriterien erkennt Finance Intercompany?
UK
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
USD - Ist:
3'749'865.33 - Soll/Referenz:
3'749'865.00 - Differenz:
0.33 - Zeilen:
942
Befund:
- UK passt praktisch exakt mit
Sales Price/Valuein USD.
Offene Frage an Andreas:
- Ist USD fuer UK korrekt?
- Oder muss fuer offizielles Reporting nach CHF umgerechnet werden?
US
- Status OK
- gewaehlte Abgrenzung:
Sales Price/Value - Ist-Waehrung:
USD - Ist:
3'749'865.33 - Soll/Referenz:
3'749'865.00 - Differenz:
0.33 - Zeilen:
942
Befund:
- US zeigt denselben Ist-Wert wie UK.
- Das wirkt auffaellig und sollte fachlich/technisch geprueft werden.
Offene Frage:
- Welche Quelle und Logik ist fuer US korrekt?
- Ist US im aktuellen System richtig zugeordnet?
Word-Datei fuer Andreas
Erstellt:
FINANZ_OFFENE_FRAGEN_ANDREAS.docx
Inhalt:
- kurze Mail an Andreas
check.xlsxals Soll-Zahl von Andreas/Rhino formuliert- Power BI fachlich nicht als Referenz genannt
- bisherige Befunde pro Land:
- FR
- IN
- IT
- UK
- US
- DE / ES
- offene Fragen zu:
- Waehrung und CHF-Umrechnung
- Umsatzdefinition
- Periodenabgrenzung
- Gutschriften/Storno
- Intercompany
- Entscheid-Tabelle pro Land
Markdown-Datei fuer Andreas
Erstellt/angepasst:
FINANZ_FRAGEN_ANDREAS.md
Aktuelle Formulierung:
check.xlsxkommt von Rhino und enthaelt Soll-Zahlen von Andreas.- Landessysteme liefern Ist-Werte.
- offen ist, welche fachliche Logik pro Land/System zur Soll-Zahl fuehren soll.
- Power BI ist nicht mehr als fuehrende Referenz formuliert.
Verifikation
Ausgefuehrt:
dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal
Ergebnis:
- Hauptprojekt baut erfolgreich
- FinanceProbe baut erfolgreich
- Tests erfolgreich
48/48Tests gruen
Bekannte Warnungen:
NU1900im Probe-Build, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten- bekannte MudBlazor Analyzer-Warnungen zu
Dense
Offene sinnvolle naechste Schritte
- In der Probe-UI
Power BI-Labels fachlich bereinigen:- z. B.
Excel Sollwert/Rhino Sollwert
- z. B.
- Andreas' Antworten in eine Konfiguration ueberfuehren:
- Land/System
- Summenlogik
- System-Waehrung
- CHF-Umrechnung ja/nein
- Periodendatum
- IC-Regel
- DE/ES Quelle klaeren:
- aktuell keine Ist-Daten
- US/UK Doppelwert pruefen:
- US zeigt denselben Ist-Wert wie UK
- IT Intercompany-Regel fachlich bestaetigen
- Wenn Regeln bestaetigt sind:
- Finance-Probe erweitert anzeigen
- spaeter produktiv ins Hauptprogramm uebernehmen