12 KiB
Finance Handoff 2026-05-18
Dieses Dokument fasst den aktuellen Stand der Finance-Abstimmung zusammen, damit die Arbeit ohne Wissensverlust fortgesetzt werden kann.
Aktueller Stand
Testprogramm:
http://127.0.0.1:5099/finance
Die App laeuft lokal auf 127.0.0.1:5099. Der letzte Check der Seite ergab HTTP 200.
Aktuelle Excel:
docs/FINANCE_AMPEL_LAENDER_2026-05-18_21-27.xlsx
Aktuelle Cache-Dateien:
docs/it_cache_2025.csv
docs/spain_cache_2025.csv
Nachtrag 2026-05-19
Nach diesem Handoff wurden noch vier relevante Schritte umgesetzt und committed:
- Haupt-App-Finance-Vergleich an FinanceProbe angeglichen.
- Leere Ist-Zeilen ohne belastbaren Ist-Wert aus dem Finance-Vergleich gefiltert.
- Berechnungsformeln je Land dokumentiert.
- Finance Cockpit mit separatem Login technisch geschuetzt; fachliche/produktive Abnahme noch offen.
Wichtige neue Doku:
docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md
Diese Datei beschreibt die aktuell verwendete Soll/Ist-Logik fuer /finance-cockpit/vergleich und /finance, inklusive Jahresfilter, Kandidatenberechnung, Deduplizierung, bevorzugter Ist-Variante und landesspezifischer Quellen/Formeln.
Neue Finance-Cockpit-Sperre, Stand technisch:
FinanceCockpitAccessServiceFinanceCockpitAccessOptionsFinanceCockpitUnlockPanel- Konfiguration in
appsettings.jsonunterFinanceCockpitAccess - DI-Registrierung in
Program.cs - Route-/Navigation-Schutz in
Routes.razorundNavMenu.razor
Wichtig: Der HR-KPI-Login bleibt separat. Die neue Sperre betrifft das Finance Cockpit und laeuft wie HR-KPI ueber Benutzername plus SHA-256-Passwort-Hash. Finance hat ein eigenes Passwort:
Benutzer: finance
Passwort: Trafag-Finance-Cockpit-2026!
AD-/Rollenpruefung ist fuer den Moment nicht geloescht, sondern in appsettings.json mit Security.Enabled = false deaktiviert. Die vorhandenen AccessGroups und AdminGroups bleiben in der Konfiguration stehen und koennen spaeter wieder aktiviert werden. Die Finance-Sperre bleibt davon unabhaengig aktiv.
Zentrale Excel fuer CFO-/Finance-Filter
Die zentrale Datei Sales_All_yyyy-MM-dd.xlsx enthaelt am rechten Ende einen zusammengehoerigen Finance-Spaltenblock:
Finance | Year
Finance | Country Key
Finance | Date
Finance | Net Sales Actual
Finance | Currency
Finance | Include
Finance | Source Value Field
Zusaetzlich wird nur in der zentralen Datei ein Hilfsblatt erzeugt:
Finance Filter Hilfe
Damit soll Finance dieselben Ist-Summen aus Excel filtern koennen wie im Testprogramm bzw. auf /finance-cockpit/vergleich.
Vorgehen im Excel:
Finance | Yearauf das gewuenschte Jahr filtern, z. B.2025.Finance | Country Keyauf Land filtern, z. B.IT,UK,ES,AT.Finance | Include = TRUEfiltern.Finance | Net Sales Actualsummieren.
Gepruefter Vergleich gegen FinanceReconciliationService fuer 2025:
| Key | Finance-Service | Excel-Finance-Spalten | Differenz |
|---|---|---|---|
| AT | 3'438'121.37 |
3'438'121.37 |
0.00 |
| CH | 43'521'390.82 |
43'521'390.82 |
0.00 |
| ES | 3'082'320.18 |
3'082'320.18 |
0.00 |
| FR | 1'471'218.44 |
1'471'218.44 |
0.00 |
| IN | 750'936'591.38 |
750'936'591.38 |
0.00 |
| IT | 7'669'641.47 |
7'669'641.47 |
0.00 |
| UK | 3'533'710.09 |
3'533'710.09 |
0.00 |
| US | 3'749'865.33 |
3'749'865.33 |
0.00 |
Hinweis: Fuer AT/CH waehlt der Finance-Service intern Nettofakturawert Hauswaehrung pro Position; in den aktuellen Daten ist dieser Wert identisch mit SalesPriceValue, daher stimmen die Excel-Finance-Spalten exakt.
Aktuelle Soll/Ist-Werte
| Land | Ist | Soll | Differenz | Waehrung | Status |
|---|---|---|---|---|---|
| FR | 1'471'218.44 |
1'471'218.00 |
0.44 |
EUR | OK |
| IN | 750'936'591.38 |
750'936'591.00 |
0.38 |
INR | OK |
| US | 3'749'865.33 |
3'749'865.00 |
0.33 |
USD | OK |
| IT | 7'669'641.47 |
7'669'840.00 |
-198.53 |
EUR | Fast passend, Filter fachlich bestaetigen |
| UK | 3'533'710.09 |
3'538'972.00 |
-5'261.91 |
GBP | Kleine Restdifferenz |
| AT | 3'438'121.37 |
3'443'863.00 |
-5'741.63 |
EUR | Kleine Restdifferenz |
| ES | 3'082'320.18 |
3'102'333.61 |
-20'013.43 |
EUR | Groesste Restdifferenz |
Prioritaet fuer Folgearbeit:
- ES pruefen: vermutlich Zuschlaege/Fracht/Nebenkosten/Rhino-Auswertungslogik.
- AT und UK Restdifferenzen klaeren.
- IT fachlich bestaetigen, weil der aktuelle Filter noch provisorisch ist.
Grundregeln
- Net Sales Actuals werden in der Hauswaehrung des Landes verglichen.
- CHF ist nur Kontroll-/Reporting-Sicht ueber Budgetkurse, nicht Standardvergleich.
- Fuehrend ist Netto ohne VAT/MwSt.
- Gutschriften/Credit Notes muessen negativ in die Summe laufen.
- Standard-Ist bleibt inklusive Intercompany; IC/2nd-party wird separat gezeigt, ausser ein Land hat fachlich bestaetigte Ausschluesse.
- Jahresabgrenzung: bevorzugt Buchungsdatum/PostingDate. Wenn Quelle kein PostingDate liefert: InvoiceDate, danach ExtractionDate.
Italien
Quelle:
BI1/ SAP B1 via HANA- TSC
TRIT - Schema
it01_p
Wichtige Erkenntnisse:
- Italien ist B1, nicht Sage.
- Frankreich und Italien kommen beide aus BI1/B1; FR passt mit
SalesPriceValue. - Screenshot
italien.pngzeigte fuer Italien die relevante B1-/Finance-Sicht auf Konto:
47005 - Ricavi vendite e prestazioni
Aktueller technischer Arbeitsfilter in Services/HanaQueryService.cs fuer it01_p:
AcctCode LIKE '47005%'
AcctCode NOT LIKE '4700504%'
CardCode NOT IN (
'C_IT01_0022987',
'C_IT01_0306928',
'C_IT01_0306138',
'C_IT01_0309653',
'C_IT01_0304885',
'C_IT01_0306475'
)
Aus Cache berechnete Herleitung:
10'603'550.59 - 2'933'909.12 = 7'669'641.47 EUR
Soll/Rhino = 7'669'840.00 EUR
Differenz = -198.53 EUR
Die sechs provisorisch ausgeschlossenen Kunden:
| Kunde | Betrag |
|---|---|
| FAIVELEY TRANSPORT ITALIA S.P.A. | 1'689'857.70 |
| SYSTEM CERAMICS S.P.A. | 323'409.00 |
| WABTEC MZT | 282'647.40 |
| FINCANTIERI NEXTECH S.P.A | 268'166.37 |
| METAL WORK SERVICE S.R.L. | 203'425.15 |
| ELEMASTER S.P.A. | 166'403.50 |
Wichtig: Dieser IT-Filter ist ein Arbeits-/Prueffilter, noch nicht fachlich final bestaetigt.
Nachtrag 2026-05-20:
- Finance-Leiter bestaetigt als fachliche Methode:
Trafag Italiaaus dem externen IT-Finance-Ist ausschliessen. - Identische IT-Zeilen mit leerem
Supplier countrynur einmal zaehlen. - Die alte Kundenausschluss-Kombination bleibt als 2025-Analyse dokumentiert, ist aber nicht die fuehrende Methode fuer Folgejahre.
Detaildokument:
docs/FINANCE_IT_VORGEHEN_2026-05-18.md
UK
Quelle:
- Fachlich Sage, nicht SAP B1.
- TSC
TRUK. - App-Anschluss:
MANUAL_EXCEL. - SharePoint-Ordner heisst technisch
Import/Finance/UK_B1, aber das bedeutet nicht B1.
Aktuelle Berechnung:
SageNetSales([Sales Price/Value], [Quantity], [Document Type], [DocumentType], [Type])
Bedeutung:
Sales Price/Value * Quantity- Credit Notes werden bei erkennbarem Sage-Typ negativ erzwungen.
- Waehrung ist GBP.
Wichtige Korrektur:
- UK wird gegen Local Currency/GBP geprueft.
- Der fruehere
CheckValue 3'749'865.00war fuer UK falsch und wurde entfernt. - Korrektes Soll fuer UK ist
LocalCurrencyValue = 3'538'972.00 GBP.
Aktueller Stand:
Ist = 3'533'710.09 GBP
Soll = 3'538'972.00 GBP
Differenz = -5'261.91 GBP
Detaildokument:
docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md
Spanien
Quelle:
- Sage CSV
- TSC
TRES - Datei:
sageSpain/v2/Spain_Sales_2025.csv - Cache:
docs/spain_cache_2025.csv
Berechnung:
SalesPriceValueausLineasAlbaranCliente.ImporteNeto- Credit Notes/REC negativ
- Datumsbasis:
FechaFactura - Waehrung: EUR
Aktuelle Zerlegung:
Zeilen = 4'341
Invoice = 3'140'921.50 EUR
Credit Notes = -58'601.32 EUR
Ist = 3'082'320.18 EUR
Soll/Rhino = 3'102'333.61 EUR
Differenz = -20'013.43 EUR
Nach Serie:
| Serie | Zeilen | Betrag |
|---|---|---|
| REG | 3'079 |
2'407'451.30 |
| LAT | 1'118 |
480'199.20 |
| PRO | 43 |
253'271.00 |
| REC | 101 |
-58'601.32 |
Bewertung:
- Differenz ist ca.
0.65%. - Gutschriften sind nicht das Problem, sie sind bereits negativ.
- Wahrscheinlich fehlen oder unterscheiden sich kleinere Sage-/Rhino-Bestandteile: Fracht, Portes, Zuschlaege, Rundungen, Versicherung, Finanzierung, nicht-artikelbezogene Belegpositionen oder eine andere Sage-Auswertung.
- Nicht einfach auf Belegkopf
DocumentNetAmountwechseln: deduplizierter Belegkopf liegt bei2'907'901.79und passt schlechter.
Geaenderte Programmteile
Wichtige Dateien:
Services/HanaQueryService.cs
Services/ManualExcelImportService.cs
Services/DatabaseSeedService.cs
scripts/Export-SageSpainSalesCsv.ps1
SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1
TrafagSalesExporter.Tests/ManualExcelImportServiceTests.cs
Wichtige technische Aenderungen:
- IT: provisorischer B1-Konto-/Kundenausschlussfilter fuer
it01_p. - UK:
SageNetSales(...)im Manual-Excel-Importer. - UK:
FinanceReferencenutzt fuer UK nurLocalCurrencyValue = 3'538'972, keinCheckValue. - ES: Sage-Spain-SQL erzwingt Credit Notes mit
-ABS(...). - Test ergaenzt, der positive Credit-Note-Rohbetraege negativ macht.
Validierung
Build:
dotnet build .\TrafagSalesExporter.csproj --no-restore -p:UseAppHost=false -p:OutDir=.\obj\verify_uk_reference\ --verbosity minimal
Ergebnis: erfolgreich.
Tests:
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --no-restore -p:UseAppHost=false --verbosity minimal
Ergebnis:
71/71 Tests gruen
FinanceProbe:
http://127.0.0.1:5099/finance
Ergebnis: HTTP 200.
Commits
Relevante Commits:
| Commit | Inhalt |
|---|---|
fb85e2e |
Sage-Berechnungen korrigiert, IT/UK-Doku und Ampel ergaenzt |
3d40d76 |
UK auf GBP Local Currency als Referenz umgestellt |
f721d95 |
Aktuelle Excel und Spanien-Cache ergaenzt |
bc6bfdf |
Finance-Handoff dokumentiert |
8f1b1b8 |
Haupt-Finance-Vergleich an Probe angeglichen |
f855e06 |
Leere Ist-Zeilen im Finance-Vergleich gefiltert |
5c654ad |
Finance-Berechnungsformeln je Land dokumentiert |
9c544af |
Finance Cockpit mit Login technisch geschuetzt |
ebbc5a1 |
Finance-Filterspalten in zentrale Excel ergaenzt |
b23f73e |
Finance-Hilfsblatt in zentrale Excel ergaenzt |
Dieses Handoff wurde danach als weiterer Commit hinzugefuegt.
Nicht aufraeumen ohne Ruecksprache
Es gibt noch untracked/temporaere Arbeitsdateien und alte Word-/Excel-Backups. Diese wurden bewusst nicht committed, weil sie entweder temporär, defekt, Logdateien oder Zwischenstaende sind.
Bekannt uncommitted:
.tmp_tools/
Tools/FinanceProbe/.tmp_tools/
verify_probe_out*/
financeprobe.*.log
docs/CFO_Kurzbericht_270515.docx
docs/CFO_Kurzbericht_270515*.bak.docx
docs/CFO_Kurzbericht_270515_NEU*.docx
docs/FINANCE_AMPEL_LAENDER_2026-05-18.xlsx
docs/FINANCE_AMPEL_LAENDER_2026-05-18_20-32.xlsx
docs/FINANCE_AMPEL_LAENDER_2026-05-19.xlsx
docs/it_cache_2025.csv
italien.png
financeprobe.*.log
mainapp.*.log
Wenn weitergearbeitet wird, zuerst git status --short pruefen und keine fremden/alten Dateien blind loeschen.
Naechste sinnvolle Schritte
- ES: Sage-/Rhino-Unterschied von
20'013.43 EURgegen Fracht/Zuschlaege/Nebenkosten pruefen. - AT: Differenz
-5'741.63 EURanalysieren. - UK: Restdifferenz
-5'261.91 GBPklaeren, aber UK ist jetzt nahe am LC-Soll. - IT: provisorischen Kundenausschluss fachlich bestaetigen oder durch offizielle B1/Rhino-Filterregel ersetzen.
- AD-/Rollenpruefung spaeter wieder aktivieren, sobald geklaert ist, welche Gruppen produktiv gelten. Dazu
Security.Enabledwieder auftruesetzen; Gruppen sind nicht geloescht. /finance-cockpit/vergleichund/financenebeneinander pruefen, wenn neue Daten geladen wurden; beide sollen dieselbeFinanceReconciliationService-Logik nutzen.