diff --git a/TrafagSalesExporter/FINANZ_OFFENE_FRAGEN_ANDREAS.docx b/TrafagSalesExporter/FINANZ_OFFENE_FRAGEN_ANDREAS.docx new file mode 100644 index 0000000..6789846 Binary files /dev/null and b/TrafagSalesExporter/FINANZ_OFFENE_FRAGEN_ANDREAS.docx differ diff --git a/TrafagSalesExporter/lastchange.md b/TrafagSalesExporter/lastchange.md new file mode 100644 index 0000000..73c5449 --- /dev/null +++ b/TrafagSalesExporter/lastchange.md @@ -0,0 +1,358 @@ +# 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.xlsx` vergleichen + +Wichtiges fachliches Verstaendnis nach Klaerung im Chat: + +- `check.xlsx` kommt 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: + +```text +15dec06 Add finance reconciliation probe +``` + +Dieser Commit enthaelt gezielt: + +- `Services/FinanceReconciliationService.cs` +- `Tools/FinanceProbe/FinanceProbe.csproj` +- `Tools/FinanceProbe/Program.cs` +- DI-Registrierung in `Program.cs` +- Dashboard nutzt den ausgelagerten Finance-Service +- `TrafagSalesExporter.csproj` schliesst `Tools/**` aus dem Hauptprojekt aus +- `TrafagSalesExporter.sln` enthaelt das neue Tool-Projekt + +Andere bereits vorhandene Worktree-Aenderungen wurden nicht mitcommitted. + +## Neues Tool + +Neues separates Probe-GUI: + +```text +Tools/FinanceProbe +``` + +Start: + +```powershell +dotnet run --project Tools\FinanceProbe\FinanceProbe.csproj --urls http://localhost:55417 +``` + +URL: + +```text +http://localhost:55417/finance +``` + +Aktueller Start im Chat: + +- Probe-GUI wurde auf `localhost:55417` gestartet +- HTTP `200` bestaetigt + +Hinweis Netzwerk: + +- Start mit `localhost` ist 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:55417` noetig. +- Probe-GUI hat aktuell keine Authentifizierung, daher nicht unkontrolliert im Netzwerk freigeben. + +## FinanceReconciliationService + +Neue wiederverwendbare Logik: + +```text +Services/FinanceReconciliationService.cs +``` + +Interface: + +```csharp +IFinanceReconciliationService +``` + +Aktuelle Funktion: + +```csharp +Task> BuildNetSalesReferenceRowsAsync(int year = 2025) +``` + +Logik: + +- liest `CentralSalesRecords` +- filtert Jahr ueber `InvoiceDate`, fallback `ExtractionDate` +- gruppiert pro Referenz-Key/Land +- berechnet Kandidaten: + - `SalesPriceValue` + - `DocTotalFC - VatSumFC` + - `DocTotal - VatSum` +- Belegkopfwerte werden vor Summierung dedupliziert: + - bevorzugt `TSC + DocumentType + DocumentEntry` + - fallback `TSC + DocumentType + InvoiceNumber` +- 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 BI` ist in der Probe-Oberflaeche noch sichtbar, weil `check.xlsx` diese 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 Sollwert` oder `Rhino Sollwert` umzubenennen. + +## Probe-Output vom 2026-05-04 09:55 + +Zusammenfassung: + +```text +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` + +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` + +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/Value` in EUR. + +Offene Frage an Andreas: + +- Ist `Sales Price/Value` in 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/Value` in 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: + +```text +FINANZ_OFFENE_FRAGEN_ANDREAS.docx +``` + +Inhalt: + +- kurze Mail an Andreas +- `check.xlsx` als 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: + +```text +FINANZ_FRAGEN_ANDREAS.md +``` + +Aktuelle Formulierung: + +- `check.xlsx` kommt 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: + +```powershell +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/48` Tests gruen + +Bekannte Warnungen: + +- `NU1900` im Probe-Build, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten +- bekannte MudBlazor Analyzer-Warnungen zu `Dense` + +## Offene sinnvolle naechste Schritte + +1. In der Probe-UI `Power BI`-Labels fachlich bereinigen: + - z. B. `Excel Sollwert` / `Rhino Sollwert` +2. Andreas' Antworten in eine Konfiguration ueberfuehren: + - Land/System + - Summenlogik + - System-Waehrung + - CHF-Umrechnung ja/nein + - Periodendatum + - IC-Regel +3. DE/ES Quelle klaeren: + - aktuell keine Ist-Daten +4. US/UK Doppelwert pruefen: + - US zeigt denselben Ist-Wert wie UK +5. IT Intercompany-Regel fachlich bestaetigen +6. Wenn Regeln bestaetigt sind: + - Finance-Probe erweitert anzeigen + - spaeter produktiv ins Hauptprogramm uebernehmen