Organize markdown docs for RAG routing

This commit is contained in:
2026-05-27 09:40:12 +02:00
parent 48fd2f65a0
commit 9a74e248e9
21 changed files with 8711 additions and 6934 deletions
@@ -1,66 +1,13 @@
# Finance Dashboard Todo
Stand: 2026-05-20
Stand: 2026-05-27
Hinweis:
Historische Todo-Liste, fuer RAG komprimiert.
Dieses Dokument ist eine historische Todo-Liste vom 2026-05-15 und wurde am 2026-05-20 nachgezogen. Fuer den aktuell fuehrenden Dokumentenstatus siehe:
Aktueller Finance-Kontext steht in `docs/rag/FINANCE.md`.
Volltext bei Bedarf:
```text
docs/MD_DOKUMENTENSTATUS_2026-05-20.md
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
Ziel: Aufbau eines modernen, uebersichtlichen Intranet-Dashboards fuer das Group Sales Reporting, zugaenglich fuer alle freigegebenen Benutzer.
## Todo
| Prio | Aufgabe | Status |
| --- | --- | --- |
| 1 | Fuehrendes CFO-Dokument verwenden: `FINANCE_CHEF_SUMMARY_2026-05-15.docx` | Historisch; neue Anwenderdoku `FINANCE_COCKPIT_ANLEITUNG_FINANZ_2026-05-20.docx` ergaenzt |
| 1 | Offene Finance-Entscheide mit Andreas/Finance durchgehen | Offen |
| 1 | Italien-Abweichung klaeren: Berechnungsart, Deduplizierung, Intercompany | Teilweise geklaert; Finance-Leiter bestaetigte Methode, Restdifferenz dokumentiert |
| 1 | Italien IC-Diagnose besprechen: Trafag, Magnetic Sense/Magnets Sense und Gesellschaft fuer Sensorik erklaeren einen grossen Teil, aber nicht die ganze Abweichung | Historisch; neue IT-Methode verwendet `CustomerName` Trafag Italia und Dublettenregel |
| 1 | Deutschland: finalen Jahresfile 2025 beschaffen | Erledigt technisch; DE Alphaplan ist eingebaut, Fachabgrenzung Kundenlaender bleibt offen |
| 2 | UK/England: Jahresvollstaendigkeit und Restdifferenz pruefen | Teilweise erledigt; UK ist Sage/Manual Excel, Mapping korrigiert, Restdifferenz klein/offen |
| 2 | CH/AT: Sollzuordnung und Trennung final bestaetigen | Offen |
| 2 | Spanien und Oesterreich: kleinere Differenzen klaeren | Offen |
| 2 | Intercompany-/2nd-party-Kundenliste final definieren | Offen |
| 3 | Budgetkurse je Jahr als Quelle festlegen | Offen |
| 3 | Dashboard-Sicht fuer CFO: nur Laender mit Abweichung und Handlungsbedarf anzeigen | In Arbeit; Finance Summary und Soll/Ist Sicht vorhanden |
| 3 | Detailansicht je Land mit Berechnungsart und Pruefspur behalten | In Arbeit; Rohdaten-/Diagnosereiter bleibt erhalten |
| 3 | Freigabe-/Berechtigungskonzept fuer Intranet-Dashboard klaeren | Offen |
## Naechster Termin
Ziel im Termin:
- Deutschland und Spanien muss finales Excel schicken (Rohali 2 mal nachgehakt warte auf finales File)
- Grundlogik bestaetigen: Hauswaehrung, Nettofakturawert, Buchungsdatum, Berechnung pro Belegposition.
- Offene Laenderabweichungen priorisieren.
- Pro Land festlegen, welche Datenquelle und Berechnungslogik final gilt.
## IT / Intercompany Diagnose
Aktuelle Diagnose fuer Italien:
| Kennzahl | Wert |
| --- | ---: |
| IT Ist vor IC-Abzug | 14.704.336,29 EUR |
| Rhino/check.xlsx Soll | 7.669.840,00 EUR |
| Abweichung vor IC | +7.034.496,29 EUR |
| Erkannter IC-/2nd-party-Abzug | 4.397.746,90 EUR |
| IT Ist exkl. IC | 10.306.589,39 EUR |
| Restabweichung nach IC | +2.636.749,39 EUR |
Verwendete IC-/2nd-party-Marker:
- `TRAFAG`
- `MAGNETIC SENSE`
- `MAGNETS SENSE`
- `GESELLSCHAFT FUER SENSORIK`
- `GESELLSCHAFT FUR SENSORIK`
Bewertung:
- Intercompany/2nd-party erklaert einen grossen Teil der IT-Abweichung.
- Die Summe passt dadurch deutlich besser, aber noch nicht vollstaendig.
- Restabweichung weiter pruefen: Summenlogik, Beleg/Position-Deduplizierung, Gutschriften/Storno und weitere lokale IC-Kunden oder Schreibweisen.
@@ -1,36 +1,13 @@
# Email an Spanien: Abweichung Net Sales 2025
# Finance ES Mail Abweichung
**Asunto:** Revision diferencia Net Sales 2025 - Espana
Stand: 2026-05-27
Hola,
Historischer Mailentwurf, fuer RAG komprimiert.
En la reconciliacion de Net Sales 2025 para Espana hemos identificado una diferencia pendiente de aclarar contra el valor de referencia de Rhino / `check.xlsx`.
Aktueller Spanien-/Finance-Kontext steht in `docs/rag/FINANCE.md`.
Resumen:
Volltext bei Bedarf:
- Actual Espana: `3.082.320,18 EUR`
- Referencia Rhino: `3.102.333,61 EUR`
- Diferencia: `-20.013,43 EUR`
La diferencia no parece muy grande, pero antes de cerrar el dato necesitamos confirmar la causa.
Por favor, podeis revisar los siguientes puntos?
1. Periodo incluido en el fichero
Confirmar que el fichero `Spain_Sales_2025.csv` contiene todo el ano 2025 completo.
2. Series incluidas
Confirmar que las series `REG`, `LAT`, `PRO` y `REC` deben incluirse en el calculo de Net Sales 2025.
3. Abonos / Credit Notes
Confirmar que los abonos estan incluidos correctamente y con signo negativo.
4. Criterio de fecha
Confirmar que fecha debe utilizarse para la delimitacion del ano 2025: fecha de factura, fecha contable u otra fecha.
5. Importe correcto
Confirmar si el campo utilizado como importe neto de ventas es el correcto para comparar contra Rhino / `check.xlsx`.
Objetivo: aclarar si la diferencia de `-20.013,43 EUR` se explica por periodo, series, abonos o por el campo de importe utilizado.
Gracias y saludos,
```text
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
@@ -1,386 +1,21 @@
# Finance Handoff 2026-05-18
# Finance Handoff
Dieses Dokument fasst den aktuellen Stand der Finance-Abstimmung zusammen, damit die Arbeit ohne Wissensverlust fortgesetzt werden kann.
Stand: 2026-05-27
## Aktueller Stand
Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert.
Testprogramm:
## Aktueller Kurzstand
- Fuehrende Finance-Kurzdatei: `docs/rag/FINANCE.md`.
- Manual-Import-Kontext: `docs/rag/MANUAL_IMPORT.md`.
- Aktuelle Finance-Regeln im Detail: `docs/FINANCE_ENTSCHEIDE.md` und `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md`.
## Volltext Bei Bedarf
Die Detailhistorie liegt hier:
```text
http://127.0.0.1:5099/finance
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
Die App laeuft lokal auf `127.0.0.1:5099`. Der letzte Check der Seite ergab HTTP `200`.
Aktuelle Excel:
```text
docs/FINANCE_AMPEL_LAENDER_2026-05-18_21-27.xlsx
```
Aktuelle Cache-Dateien:
```text
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:
1. Haupt-App-Finance-Vergleich an FinanceProbe angeglichen.
2. Leere Ist-Zeilen ohne belastbaren Ist-Wert aus dem Finance-Vergleich gefiltert.
3. Berechnungsformeln je Land dokumentiert.
4. Finance Cockpit mit separatem Login technisch geschuetzt; fachliche/produktive Abnahme noch offen.
Wichtige neue Doku:
```text
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:
- `FinanceCockpitAccessService`
- `FinanceCockpitAccessOptions`
- `FinanceCockpitUnlockPanel`
- Konfiguration in `appsettings.json` unter `FinanceCockpitAccess`
- DI-Registrierung in `Program.cs`
- Route-/Navigation-Schutz in `Routes.razor` und `NavMenu.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:
```text
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:
```text
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:
```text
Finance Filter Hilfe
```
Damit soll Finance dieselben Ist-Summen aus Excel filtern koennen wie im Testprogramm bzw. auf `/finance-cockpit/vergleich`.
Vorgehen im Excel:
1. `Finance | Year` auf das gewuenschte Jahr filtern, z. B. `2025`.
2. `Finance | Country Key` auf Land filtern, z. B. `IT`, `UK`, `ES`, `AT`.
3. `Finance | Include = TRUE` filtern.
4. `Finance | Net Sales Actual` summieren.
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:
1. ES pruefen: vermutlich Zuschlaege/Fracht/Nebenkosten/Rhino-Auswertungslogik.
2. AT und UK Restdifferenzen klaeren.
3. 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.png` zeigte fuer Italien die relevante B1-/Finance-Sicht auf Konto:
```text
47005 - Ricavi vendite e prestazioni
```
Aktueller technischer Arbeitsfilter in `Services/HanaQueryService.cs` fuer `it01_p`:
```sql
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:
```text
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 Italia` aus dem externen IT-Finance-Ist ausschliessen.
- Identische IT-Zeilen mit leerem `Supplier country` nur einmal zaehlen.
- Die alte Kundenausschluss-Kombination bleibt als 2025-Analyse dokumentiert, ist aber nicht die fuehrende Methode fuer Folgejahre.
Detaildokument:
```text
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:
```text
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.00` war fuer UK falsch und wurde entfernt.
- Korrektes Soll fuer UK ist `LocalCurrencyValue = 3'538'972.00 GBP`.
Aktueller Stand:
```text
Ist = 3'533'710.09 GBP
Soll = 3'538'972.00 GBP
Differenz = -5'261.91 GBP
```
Detaildokument:
```text
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:
- `SalesPriceValue` aus `LineasAlbaranCliente.ImporteNeto`
- Credit Notes/REC negativ
- Datumsbasis: `FechaFactura`
- Waehrung: EUR
Aktuelle Zerlegung:
```text
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 `DocumentNetAmount` wechseln: deduplizierter Belegkopf liegt bei `2'907'901.79` und passt schlechter.
## Geaenderte Programmteile
Wichtige Dateien:
```text
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: `FinanceReference` nutzt fuer UK nur `LocalCurrencyValue = 3'538'972`, kein `CheckValue`.
- ES: Sage-Spain-SQL erzwingt Credit Notes mit `-ABS(...)`.
- Test ergaenzt, der positive Credit-Note-Rohbetraege negativ macht.
## Validierung
Build:
```text
dotnet build .\TrafagSalesExporter.csproj --no-restore -p:UseAppHost=false -p:OutDir=.\obj\verify_uk_reference\ --verbosity minimal
```
Ergebnis: erfolgreich.
Tests:
```text
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --no-restore -p:UseAppHost=false --verbosity minimal
```
Ergebnis:
```text
71/71 Tests gruen
```
FinanceProbe:
```text
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:
```text
.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
1. ES: Sage-/Rhino-Unterschied von `20'013.43 EUR` gegen Fracht/Zuschlaege/Nebenkosten pruefen.
2. AT: Differenz `-5'741.63 EUR` analysieren.
3. UK: Restdifferenz `-5'261.91 GBP` klaeren, aber UK ist jetzt nahe am LC-Soll.
4. IT: provisorischen Kundenausschluss fachlich bestaetigen oder durch offizielle B1/Rhino-Filterregel ersetzen.
5. AD-/Rollenpruefung spaeter wieder aktivieren, sobald geklaert ist, welche Gruppen produktiv gelten. Dazu `Security.Enabled` wieder auf `true` setzen; Gruppen sind nicht geloescht.
6. `/finance-cockpit/vergleich` und `/finance` nebeneinander pruefen, wenn neue Daten geladen wurden; beide sollen dieselbe `FinanceReconciliationService`-Logik nutzen.
Nur laden, wenn der Zwischenstand vom 2026-05-18 oder alte Finance-Abweichungen genau nachvollzogen werden muessen.
@@ -1,39 +1,13 @@
# Email an Italien: Abweichung Net Sales 2025
# Finance IT Mail Abweichung
**Oggetto:** Verifica differenza Net Sales 2025 - Italia
Stand: 2026-05-27
Ciao,
Historischer Mailentwurf, fuer RAG komprimiert.
nella riconciliazione dei Net Sales 2025 per l'Italia abbiamo identificato una differenza significativa rispetto al valore di riferimento Rhino / `check.xlsx`.
Aktueller Italien-/Finance-Kontext steht in `docs/rag/FINANCE.md`.
Riepilogo:
Volltext bei Bedarf:
- Actual Italia: `14.704.336,29 EUR`
- Riferimento Rhino: `7.669.840,00 EUR`
- Differenza: `+7.034.496,29 EUR`
La differenza e molto rilevante. Prima di chiudere il dato dobbiamo confermare quale logica di calcolo e corretta per l'Italia.
Potete per favore verificare i seguenti punti?
1. Base di calcolo corretta
Confermare quale valore deve essere usato per i Net Sales 2025: valore netto per riga/posizione, totale documento deduplicato oppure un'altra logica.
2. Totali documento vs. posizioni
Verificare se i totali documento sono ripetuti su piu righe e quindi devono essere conteggiati una sola volta per documento.
3. Intercompany / 2nd-party
Confermare quali clienti o transazioni devono essere esclusi come Intercompany o 2nd-party.
4. Note di credito / Credit Notes
Confermare che le note di credito sono incluse correttamente e con segno negativo.
5. Criterio data
Confermare quale data deve essere utilizzata per delimitare il 2025: data registrazione, data fattura o altra data.
6. Valuta
Confermare che la valuta di confronto per l'Italia e `EUR`.
Obiettivo: capire se la differenza di `+7.034.496,29 EUR` deriva da doppio conteggio dei documenti, trattamento Intercompany, criteri data o dal campo importo utilizzato.
Grazie e saluti,
```text
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
@@ -1,45 +1,13 @@
# Email an UK / England: Abweichung Net Sales 2025
# Finance UK Mail Abweichung
**Subject:** Review difference Net Sales 2025 - UK
Stand: 2026-05-27
Hi,
Historischer Mailentwurf, fuer RAG komprimiert.
In the Net Sales 2025 reconciliation for UK / England, we identified a difference against the Rhino / `check.xlsx` reference value.
Aktueller UK-/Finance-Kontext steht in `docs/rag/FINANCE.md` und `docs/rag/MANUAL_IMPORT.md`.
Summary:
Volltext bei Bedarf:
- Actual UK: `3,533,710.09 GBP`
- Rhino reference: `3,749,865.00 GBP`
- Reference UK LC/GBP: `3,538,972.00 GBP`
- Difference: `-5,261.91 GBP`
The mapping has already been reviewed technically, but we still need to clarify the remaining difference before closing the 2025 value.
Important clarification: UK / England is treated as a Sage source. The current SharePoint folder name `UK_B1` is only a technical folder/source reference and does not mean that UK is read from SAP Business One.
Could you please check the following points?
1. Full-year completeness
Confirm that the UK source file/import contains the full year 2025 and not only a partial period.
2. Period included
We currently see data from approximately `03.01.2025` to `22.12.2025`. Please confirm whether this is complete for 2025 or if transactions outside this range are missing.
3. Credit notes
Confirm that credit notes are included correctly and with the correct negative sign.
4. Net sales field
Confirm which column should be used as the net sales amount for comparison with Rhino / `check.xlsx`.
5. Discounts, freight or additional charges
Please check whether discounts, freight, additional charges or other adjustments are included in the Rhino reference but not in the current import value, or vice versa.
6. 2nd-party / 3rd-party / Intercompany
Confirm whether any customers or transactions should be excluded from the Net Sales 2025 value.
7. Currency
Confirm that the correct comparison currency for UK is `GBP`.
Goal: clarify whether the difference of `-216,154.91 GBP` is caused by an incomplete period, credit notes, a different net sales field, adjustments, or 2nd-party/3rd-party handling.
Thanks and best regards,
```text
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
@@ -1,75 +1,14 @@
# Finance: Welches Dokument gilt?
# Finance: Welches Dokument Gilt?
Stand: 2026-05-20
Stand: 2026-05-27
## Aktueller Nachtrag 2026-05-20
Historische Dokumentgueltigkeitsnotiz, fuer RAG komprimiert.
Zum alten CFO-/Finance-Termin-Dokument ist eine neue Anwenderdoku fuer das Cockpit hinzugekommen:
Aktueller Dokumentrouter: `docs/RAG_ROUTER.md`.
Aktueller Dokumentstatus: `docs/MD_DOKUMENTENSTATUS_2026-05-20.md`.
Volltext bei Bedarf:
```text
docs/FINANCE_COCKPIT_ANLEITUNG_FINANZ_2026-05-20.docx
docs/raw_md_archive/HISTORY_CANONICAL.md.raw
```
Diese neue Word-Datei ist die bessere Anleitung fuer Finance-Anwender im Cockpit. Das CFO-Dokument vom 2026-05-15 bleibt historische Termin-/Entscheidgrundlage.
Technisch/fachlich aktuell fuehrend:
- `Management Analyse` Reiter `Finance Summary`
- zentrale Excel `Finance Summary`
- `FinanceRuleEngine`
- `docs/FINANCE_ENTSCHEIDE.md`
- `docs/MD_DOKUMENTENSTATUS_2026-05-20.md`
## Fuehrendes Dokument
Fuer den CFO-/Finance-Termin vom 2026-05-15 galt:
```text
docs/FINANCE_CHEF_SUMMARY_2026-05-15.docx
```
Dieses Dokument ist die aktuellste CFO-Kurzfassung mit Ampel, Laendertabelle, Pruefquellen, Prioritaeten und empfohlenen Massnahmen.
## Geloeschte alte Fassung
Die alte Fassung `docs/FINANCE_CHEF_SUMMARY_2026-05-13.docx` wurde entfernt, weil sie durch die Version vom 2026-05-15 ersetzt ist.
## Entscheidbasis
Die fachlichen Entscheide stehen separat hier:
```text
entscheide.md
docs/FINANCE_ENTSCHEIDE.md
```
Kurzfassung der wichtigsten Entscheide:
| Thema | Entscheid |
| --- | --- |
| Fuehrende Waehrung | Hauswaehrung je Land |
| CHF-Sicht | Nur separat mit Budgetkursen |
| Aggregation | Pro Artikel bzw. Belegposition |
| Wertbasis | Nettofakturawert |
| Jahresabgrenzung 2025 | Buchungsdatum |
| Gutschriften / Storno | Separat ausweisen, positionsbasiert behandeln |
| Intercompany / 2nd-party | Separat klassifizieren und als Auswahl/Sicht fuehren |
| Indien | INR ist fuehrend |
| Italien | Hauswaehrung, Intercompany separat pruefen |
## Wichtig fuer Rueckfragen
Falls im Termin gefragt wird, ob die Berechnungslogik schon entschieden ist:
> Ja. Die Grundlogik ist entschieden: Hauswaehrung, Nettofakturawert, Buchungsdatum und Berechnung pro Belegposition. Offen sind vor allem Datenvollstaendigkeit, Intercompany-Abgrenzung, Budgetkursquelle und die fachliche Freigabe einzelner Laenderabweichungen.
## Was noch nicht final ist
| Thema | Status |
| --- | --- |
| IT | Kritisch; grosse Abweichung, Berechnungsart/IC/Deduplizierung pruefen |
| UK / EN | Hoch; Restdifferenz und Jahresvollstaendigkeit pruefen |
| DE | Hoch; finaler Jahresfile fehlt, Sample nicht verwenden |
| CH / AT | Hoch; Sollzuordnung und Trennung finalisieren |
| ES / AT | Mittel; kleinere Differenzen klaeren |
| FR / IN / US | Rechnerisch freigabefaehig |
@@ -2,6 +2,8 @@
Stand: 2026-05-20
RAG-Hinweis: Fuer tokenarme Kontextauswahl zuerst `docs/RAG_ROUTER.md` laden. Standardmaessig nur die Kurzdateien unter `docs/rag/` laden; diese Datei und andere Original-MDs nur bei Detail-/Auditbedarf.
Diese Datei ordnet die vorhandenen Markdown-Dateien ein. Ziel ist, alte Arbeitsnotizen nicht mit dem aktuellen Produktstand zu verwechseln.
## Aktuell fuehrend
+52
View File
@@ -0,0 +1,52 @@
# RAG Router
Stand: 2026-05-27
Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themenblock laden.
## Lade-Regel
1. Immer nur diese Router-Datei zuerst lesen.
2. Thema bestimmen.
3. Zuerst nur die passende Kurzdatei aus `docs/rag/` laden.
4. Rohquellen nur laden, wenn Details, alte Zahlen, Codepfade, Mailtexte oder Audit gefragt sind.
## Themen
| Thema | Wann laden | Standard laden |
| --- | --- | --- |
| Aktueller Stand | Projektstatus, letzte Aenderungen, offene Punkte | `docs/rag/PROJECT.md` |
| Finance Cockpit | Soll/Ist, Finance Summary, Regeln, Laenderlogik | `docs/rag/FINANCE.md` |
| Finance Spezialfaelle | IT, UK, ES, Abweichungen | `docs/rag/FINANCE.md` |
| Manual Import | UK-Deltas, ES/DE Vollfiles, Importprozess | `docs/rag/MANUAL_IMPORT.md` |
| HR KPI | HR Dashboard, Formeln, Datenqualitaet, Anwenderstand | `docs/rag/HR_KPI.md` |
| Deployment/IIS | Publish, Server, BiDashboard, TLS, lokaler Uebergang | `docs/rag/DEPLOYMENT.md` |
| Admin/Startseite | Admin Login, Sessions, Landing Page | `docs/rag/ADMIN.md` |
| Architektur | Systemuebersicht, Diagramme, technische Einordnung | `docs/rag/ARCHITECTURE.md` |
## Rohquellen Nur Bei Bedarf
| Datei | Nur laden fuer |
| --- | --- |
| `docs/raw_md_archive/HISTORY_CANONICAL.md.raw` | kanonische Detailhistorie mit Quellenangaben |
| `docs/raw_md_archive/original_history_raws.zip` | exakte Originaldateien nur zur Wiederherstellung, nicht fuer RAG laden |
| `docs/MD_DOKUMENTENSTATUS_2026-05-20.md` | Einordnung alter Dokumente |
| `docs/FINANCE_ENTSCHEIDE.md` | Finance-Entscheide im Detail |
| `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Formeln pro Land |
| `docs/MANUAL_IMPORT_DELTA_STAND_2026-05-21.md` | Manual-Import-Details |
| `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI-Details |
| `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md` | IIS-/Publish-Details |
| `docs/LOCAL_DEV_SERVER_UEBERGANG_2026-05-21.md` | lokaler Server im Detail |
| `docs/ADMIN_BEREICH_STARTSEITE_2026-05-21.md` | Admin-/Landing-Details |
## Suchwoerter
| Suchwort | Thema |
| --- | --- |
| `Finance Summary`, `Soll/Ist`, `check.xlsx`, `FinanceRuleEngine` | Finance Cockpit |
| `TRUK`, `UK_B1`, `Delta`, `Manual Excel` | Manual Import / Finance Spezialfaelle |
| `TRDE`, `Alphaplan`, `NettoPreisGesamtX` | Finance Cockpit / Manual Import |
| `TRSE`, `Spain`, `Sage`, `ImporteNeto` | Finance Spezialfaelle |
| `HR KPI`, `Rexx`, `Austritte`, `Absenzen` | HR KPI |
| `IIS`, `BiDashboard`, `Publish`, `TLS`, `Client certificate` | Deployment/IIS |
| `Admin Bereich`, `AdminAccess`, `LandingPage` | Admin/Startseite |
+22
View File
@@ -0,0 +1,22 @@
# RAG Admin
Stand: 2026-05-27
## Kurzstand
- Admin Bereich ist eigener Hauptmenuepunkt, nicht unter Finance.
- Route: `/admin/sessions`.
- Schutz: eigener App-interner Admin-Login ueber `AdminAccess`.
- Admin-Login ist unabhaengig vom Finance-Cockpit-Passwort.
- Admin Bereich darf nicht durch Finance-Cockpit-Login blockiert werden.
## Startseite
- Route `/` ist neutral und verlangt keinen Finance-Login.
- Landing Page nutzt Trafag-nahe Schrift, Manometer und optionales Strichmaennchen.
- Schalter fuer Strichmaennchen liegt im Admin Bereich.
## Rohquellen Nur Bei Bedarf
- Detaildoku: `docs/ADMIN_BEREICH_STARTSEITE_2026-05-21.md`
@@ -0,0 +1,15 @@
# RAG Architecture
Stand: 2026-05-27
## Kurzstand
- App sammelt Daten aus SAP OData, HANA/SAP B1, SharePoint und manuellen Excel-/CSV-Quellen.
- Zentrale Persistenz ueber `CentralSalesRecords`.
- Finance-Auswertung und zentrale Excel sollen dieselbe Regelengine verwenden.
- Diagramme und Anwenderdokus existieren fuer Keyuser-Prozess und technische Architektur.
## Rohquellen Nur Bei Bedarf
- Diagramme: `docs/PROGRAMM_DIAGRAMME.md`
- technischer Handoff und alter LLM-Systemkontext: `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`
@@ -0,0 +1,22 @@
# RAG Deployment
Stand: 2026-05-27
## Kurzstand
- `TrafagSalesExporter` wird als ASP.NET/IIS-Webanwendung im bisherigen `BiDashboard`-Schema publiziert.
- Lokaler Uebergangsserver: `http://172.16.9.185:5000` im Trafag-Netz, IP kann wechseln.
- Lokale URLs bleiben `https://localhost:55415` und `http://localhost:55416`.
- Fuer andere PCs nutzt der Uebergang bewusst HTTP auf Port `5000`.
## Serverproblem
- IIS/HTTPS blockiert vor der App.
- Dokumentierter Befund: TLS fordert Client-Zertifikat.
- IT soll IIS SSL Settings pruefen: Client certificates `Ignore` oder hoechstens `Accept`, nicht `Require`.
## Rohquellen Nur Bei Bedarf
- IIS-Handoff: `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md`
- lokaler Server: `docs/LOCAL_DEV_SERVER_UEBERGANG_2026-05-21.md`
+45
View File
@@ -0,0 +1,45 @@
# RAG Finance
Stand: 2026-05-27
## Kurzstand
- Fuehrende Sicht: `Finance Summary`.
- `Finance Summary` nutzt dieselbe `FinanceRuleEngine` wie das zentrale Excel.
- `Management Analyse` bleibt Diagnose-/Plausibilitaetssicht, nicht fuehrende Finance-Zahl.
- Filter fuer Jahr, Land und Waehrung wirken auf das Finance-Endergebnis.
- Standard-Ist bleibt inklusive Positionen; Intercompany/2nd-party wird separat ausgewiesen.
## Wichtige Regeln
- Hauswaehrung des Landessystems ist fuehrend.
- Wertbasis ist Nettofakturawert pro Position.
- Jahresabgrenzung ueber `PostingDate`, Fallback `InvoiceDate`, danach `ExtractionDate`.
- Gutschriften/Storno laufen als negative Beleg-/Positionszeilen.
- Budget-CHF ist Kontroll-/Reporting-Kandidat, nicht Standardabgleich.
## Offene Fachpunkte
- DE: Finance/Munir muss bestaetigen, welche Kundenlaender/Filter zum offiziellen DE-Ist gehoeren.
- IT: Nach neuem IT-Export pruefen, ob die vollstaendige `Trafag Italia`-Summe sichtbar wird.
- ES: Differenz zu Rhino/check.xlsx bleibt fachlich zu klaeren.
## Land-Kurzindex
| Land | Kurzregel |
| --- | --- |
| CH/AT | SAP OData `ZSCHWEIZ`, Trennung ueber Buchungskreis/Reporting-Land |
| DE | Alphaplan Excel, `NettoPreisGesamtX`, 2025-Zwang |
| ES | Sage CSV, `ImporteNeto`, REC/Credit negativ |
| IT | Hauswaehrung, `Trafag Italia` ausgeschlossen, Duplikatlogik fuer leeres Supplier country |
| UK | Sage/Manual Excel, GBP, `[Sales Price/Value] * [Quantity]`, Credit Notes negativ |
| IN | INR als Hauswaehrung |
## Rohquellen Nur Bei Bedarf
- Entscheide: `docs/FINANCE_ENTSCHEIDE.md`, `entscheide.md`
- Formeln je Land: `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md`
- IT Detail: `docs/FINANCE_IT_VORGEHEN_2026-05-18.md`
- UK Korrektur: `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md`
- ES Detail: `SAGE_SPAIN_EXPORT_2026-05-05.md`
- alter Finance-Handoff: `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`
+21
View File
@@ -0,0 +1,21 @@
# RAG HR KPI
Stand: 2026-05-27
## Kurzstand
- HR KPI Cockpit wurde um produktive Cockpit-Funktionen erweitert.
- Enthalten sind Anleitung, Datenordner, Dateifrische, Datenstatus, Ampeln, Periodenvergleich, Datenqualitaet, Austritte, Absenzen, Managementsicht und Drucken/PDF.
- Managementsicht anonymisiert Personennamen in Detailtabellen.
## Datenquellen
- Rexx-/SAP-Dateien aus konfiguriertem Datenordner.
- Datenordner im Cockpit je Lauf anpassbar und dauerhaft ueber `HrKpi:DataFolder`.
## Rohquellen Nur Bei Bedarf
- Nachdoku: `docs/HR_KPI_NACHDOKU_2026-05-13.md`
- Fachpruefung: `docs/HR_KPI_PRUEFUNG_SWISS_BEST_PRACTICES.md`
- Anwenderdoku: `docs/HR_KPI_ANLEITUNG_HR_2026-05-20.docx`
@@ -0,0 +1,32 @@
# RAG Manual Import
Stand: 2026-05-27
## Kurzstand
- Manual-Importe ersetzen pro Standort den aktuellen Stand in `CentralSalesRecords`.
- Delta-Dateien muessen zusammen mit der passenden Basisdatei gelesen werden.
- Das ist aktuell nur fuer UK vorgesehen.
- ES und DE muessen Vollfiles liefern.
## Laender
| Standort | Quelle | Delta | Finance-Wert |
| --- | --- | --- | --- |
| UK / `TRUK` | SharePoint `Import/Finance/UK_B1`, Sage Excel | ja | `[Sales Price/Value] * [Quantity]`, Credit Notes negativ, GBP |
| ES / `TRSE`/`TRES` | Sage CSV | nein | `ImporteNeto`, REC/Credit negativ, EUR |
| DE / `TRDE` | Alphaplan Excel | nein | `NettoPreisGesamtX`, GS negativ, Ausschlussregeln |
## Bedienreihenfolge
1. Datei oder Delta im richtigen Ordner bereitstellen.
2. In `Manuelle Importe` Pfad/Standort pruefen.
3. Standortexport ausfuehren.
4. Zentrale Datei neu erzeugen.
5. `Finance Summary` und `Finance Details` pruefen.
## Rohquellen Nur Bei Bedarf
- Detailstand: `docs/MANUAL_IMPORT_DELTA_STAND_2026-05-21.md`
- Workflow-Historie: `NEXT_STEPS_2026-04-15.md`
+24
View File
@@ -0,0 +1,24 @@
# RAG Project
Stand: 2026-05-27
## Kurzstand
- Fuehrende App: `TrafagSalesExporter`, publiziert als `BiDashboard`.
- Letzter dokumentierter Stand: Rebase/Push synchron mit `origin/main`, Head `d853f53 Add published HR KPI workflow fixes`.
- Validierung laut Doku: Build erfolgreich, Tests zuletzt `78/78` gruen.
- Fuer normale Weiterarbeit diese Datei plus den passenden Themen-RAG laden.
## Aktive Themen
- Finance Cockpit: `docs/rag/FINANCE.md`
- Manual Import: `docs/rag/MANUAL_IMPORT.md`
- HR KPI: `docs/rag/HR_KPI.md`
- Deployment/IIS: `docs/rag/DEPLOYMENT.md`
- Admin/Startseite: `docs/rag/ADMIN.md`
## Rohquellen Nur Bei Bedarf
- kanonische Detailhistorie: `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`
- exakte Originaldateien zur Wiederherstellung: `docs/raw_md_archive/original_history_raws.zip`
- Dokumentstatus: `docs/MD_DOKUMENTENSTATUS_2026-05-20.md`
File diff suppressed because it is too large Load Diff