From d1d50e9c0c9613d1560658782ebf37463d26c87d Mon Sep 17 00:00:00 2001 From: metacube Date: Wed, 10 Jun 2026 09:15:46 +0200 Subject: [PATCH] Document workflow deltas and clean up docs --- .../SAGE_SPAIN_EXPORT_2026-05-05.md | 2 +- .../Export-SageSpainSalesCsv.ps1 | 0 .../SageSpainFinalExportPackage/README.txt | 0 .../Run-SpainExportAndUpload.ps1 | 0 ...Run-SpainRangeExportAndUpload-AllInOne.ps1 | 0 .../SageSpainFinalExportPackage.zip | Bin .../Start-SpainRangeExportAndUpload.ps1 | 0 .../docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md | 63 +++- ...E_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md | 4 +- .../docs/FINANCE_DASHBOARD_TODO_2026-05-15.md | 13 - .../FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md | 5 +- .../FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md | 13 - .../docs/FINANCE_HANDOFF_2026-05-18.md | 21 -- .../FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md | 13 - .../docs/FINANCE_KURS_WORKFLOW_2026-06-09.md | 313 ++++++++++++++++++ .../docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg | 194 +++++++++++ .../FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md | 13 - ...INANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md | 14 - .../docs/MD_DOKUMENTENSTATUS_2026-05-20.md | 35 +- TrafagSalesExporter/docs/RAG_ROUTER.md | 5 +- ...PAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md | 258 --------------- TrafagSalesExporter/docs/rag/DEPLOYMENT.md | 11 +- TrafagSalesExporter/docs/rag/FINANCE.md | 8 +- TrafagSalesExporter/docs/rag/PROJECT.md | 10 +- TrafagSalesExporter/lastchange.md | 54 ++- 25 files changed, 670 insertions(+), 379 deletions(-) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 (100%) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/README.txt (100%) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/Run-SpainExportAndUpload.ps1 (100%) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1 (100%) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/SageSpainFinalExportPackage.zip (100%) rename TrafagSalesExporter/{ => SageSpainExportPackage}/SageSpainFinalExportPackage/Start-SpainRangeExportAndUpload.ps1 (100%) delete mode 100644 TrafagSalesExporter/docs/FINANCE_DASHBOARD_TODO_2026-05-15.md delete mode 100644 TrafagSalesExporter/docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md delete mode 100644 TrafagSalesExporter/docs/FINANCE_HANDOFF_2026-05-18.md delete mode 100644 TrafagSalesExporter/docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md create mode 100644 TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.md create mode 100644 TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg delete mode 100644 TrafagSalesExporter/docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md delete mode 100644 TrafagSalesExporter/docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md delete mode 100644 TrafagSalesExporter/docs/SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md diff --git a/TrafagSalesExporter/SAGE_SPAIN_EXPORT_2026-05-05.md b/TrafagSalesExporter/SAGE_SPAIN_EXPORT_2026-05-05.md index 014dcb4..b8eff3d 100644 --- a/TrafagSalesExporter/SAGE_SPAIN_EXPORT_2026-05-05.md +++ b/TrafagSalesExporter/SAGE_SPAIN_EXPORT_2026-05-05.md @@ -79,7 +79,7 @@ Beobachtung: ## Export v2 -Finaler Export-Kandidat wurde mit `SageSpainFinalExportPackage.zip` bzw. danach `v2.zip` erstellt. +Finaler Export-Kandidat wurde mit `SageSpainFinalExportPackage.zip` bzw. danach `v2.zip` erstellt; aktueller Paketordner im Repo: `SageSpainExportPackage/SageSpainFinalExportPackage/`. Script: diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/README.txt b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/README.txt similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/README.txt rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/README.txt diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/Run-SpainExportAndUpload.ps1 b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainExportAndUpload.ps1 similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/Run-SpainExportAndUpload.ps1 rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainExportAndUpload.ps1 diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1 b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1 similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1 rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1 diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/SageSpainFinalExportPackage.zip b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/SageSpainFinalExportPackage.zip similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/SageSpainFinalExportPackage.zip rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/SageSpainFinalExportPackage.zip diff --git a/TrafagSalesExporter/SageSpainFinalExportPackage/Start-SpainRangeExportAndUpload.ps1 b/TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Start-SpainRangeExportAndUpload.ps1 similarity index 100% rename from TrafagSalesExporter/SageSpainFinalExportPackage/Start-SpainRangeExportAndUpload.ps1 rename to TrafagSalesExporter/SageSpainExportPackage/SageSpainFinalExportPackage/Start-SpainRangeExportAndUpload.ps1 diff --git a/TrafagSalesExporter/docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md b/TrafagSalesExporter/docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md index 1d1747f..3867994 100644 --- a/TrafagSalesExporter/docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md +++ b/TrafagSalesExporter/docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md @@ -1,6 +1,67 @@ # Deployment / IIS Handoff 2026-05-19 -Letzter Nachtrag: 2026-05-29 +Letzter Nachtrag: 2026-06-10 + +## Nachtrag 2026-06-10 Deploy India / SAGE HANA Mapping + +Durchgefuehrt: + +- Release-Publish aus `TrafagSalesExporter` nach: + +```text +\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\ +``` + +- Befehl: + +```powershell +dotnet publish .\TrafagSalesExporter.csproj -c Release --no-restore /p:PublishProfile=FolderProfile --verbosity minimal +``` + +- App wurde fuer Publish und DB-Seed kurz per `app_offline.htm` gestoppt und danach wieder online geschaltet. + +Deploy-Inhalt: + +- Seed-Reparatur fuer India/TRIN: + - Standort `TRIN` / `Indien` + - `SourceSystem = SAGE` + - Schema `TRAFAG_LIVE` + - zentraler SAGE-HANA-Server `20.197.20.60:30015` +- Vorhandene Standort-Credentials bleiben erhalten; der produktive TRIN-Override nutzt `TRAFAGCONTROLS`. +- Regressionstest fuer die alte Drift-Konfiguration: TRIN auf BI1, India-Server ohne SourceSystem, leerer SAGE-Server. + +Share-/DB-Pruefung: + +- `BiDashboard.dll` Zeitstempel nach Deploy: `10.06.2026 08:20:25`. +- `app_offline.htm` wurde entfernt. +- Server-DB-Backup vor Seed: + +```text +\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak +``` + +- Server-DB nach Seed: + - `TRIN -> SAGE -> 20.197.20.60:30015` + - Schema `TRAFAG_LIVE` + - User-Override `TRAFAGCONTROLS` + - Passwort-Override vorhanden + +Validierung: + +```powershell +dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal +``` + +Ergebnis: + +```text +84/84 Tests gruen +``` + +Einschraenkung: + +- Kein echter India-HANA-Verbindungstest von der Entwicklungsmaschine aus. +- Lokaler `Invoke-WebRequest` gegen `https://trch-webapp-bidashboard.trafagch.local/BiDashboard/` scheitert weiterhin am bekannten lokalen TLS-/Empfangsproblem; Publish und Share-/DB-Pruefung waren erfolgreich. ## Nachtrag 2026-05-29 Deploy Sparten-Finanzanalyse diff --git a/TrafagSalesExporter/docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md b/TrafagSalesExporter/docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md index 641e720..c44e373 100644 --- a/TrafagSalesExporter/docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md +++ b/TrafagSalesExporter/docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md @@ -232,7 +232,7 @@ Exportskripte: ```text scripts/Export-SageSpainSalesCsv.ps1 -SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 +SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 ``` Sage-SQL-Formel im Export: @@ -555,6 +555,6 @@ Services/DatabaseSeedService.cs FinanceReference-Sollwerte, UK Mapping, ZSCHWEIZ Mapping, Default-Waehrungen scripts/Export-SageSpainSalesCsv.ps1 -SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 +SageSpainExportPackage/SageSpainFinalExportPackage/Export-SageSpainSalesCsv.ps1 Spanien Sage SQL Export und Gutschrift-Logik ``` diff --git a/TrafagSalesExporter/docs/FINANCE_DASHBOARD_TODO_2026-05-15.md b/TrafagSalesExporter/docs/FINANCE_DASHBOARD_TODO_2026-05-15.md deleted file mode 100644 index e491868..0000000 --- a/TrafagSalesExporter/docs/FINANCE_DASHBOARD_TODO_2026-05-15.md +++ /dev/null @@ -1,13 +0,0 @@ -# Finance Dashboard Todo - -Stand: 2026-05-27 - -Historische Todo-Liste, fuer RAG komprimiert. - -Aktueller Finance-Kontext steht in `docs/rag/FINANCE.md`. - -Volltext bei Bedarf: - -```text -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` diff --git a/TrafagSalesExporter/docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md b/TrafagSalesExporter/docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md index e37829b..a9af210 100644 --- a/TrafagSalesExporter/docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md +++ b/TrafagSalesExporter/docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md @@ -4,6 +4,8 @@ Stand: 2026-06-08 Zweck: Diese Notiz beschreibt den tatsaechlichen technischen Datenfluss im Finance Cockpit: wo Daten geholt werden, wann Felder veraendert werden, wann Wechselkurse wirken, wie die zentrale Excel entsteht und welche Quelle die Sparteninformationen liefert. +Fokus nur Wechselkurs/Kursanwendung: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`. + ## Kurzfazit - Finance Summary, Management Analyse und Spartenanalyse lesen nicht aus dem SharePoint-Excel, sondern direkt aus der App-Datenbank `CentralSalesRecords`. @@ -213,6 +215,8 @@ INSERT neue Records fuer diesen Standort Es gibt drei getrennte Faelle. +Detail nur zum Kursfluss vom Land bis zur zentralen Dashboard-Analyse: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`. + ### 1. Standard-Finance-Soll/Ist und Finance Summary Kein allgemeiner Wechselkurs wird angewendet. @@ -458,4 +462,3 @@ Zentrale Excel 6. Wechselkurse sind keine stille Vorverarbeitung fuer den Standard-Soll/Ist-Abgleich. 7. `Mixed` bedeutet: mehrere Waehrungen im Filter. Prozentwerte auf `Mixed` sind nur eingeschraenkt interpretierbar; fuer belastbare Spartenanteile nach Wert muss Land oder Waehrung gefiltert werden. 8. Die zentrale Excel wird nach den Standortexporten aus `CentralSalesRecords` erstellt. Sie ist Ergebnis, nicht Eingang. - diff --git a/TrafagSalesExporter/docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md b/TrafagSalesExporter/docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md deleted file mode 100644 index 041d6d4..0000000 --- a/TrafagSalesExporter/docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md +++ /dev/null @@ -1,13 +0,0 @@ -# Finance ES Mail Abweichung - -Stand: 2026-05-27 - -Historischer Mailentwurf, fuer RAG komprimiert. - -Aktueller Spanien-/Finance-Kontext steht in `docs/rag/FINANCE.md`. - -Volltext bei Bedarf: - -```text -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` diff --git a/TrafagSalesExporter/docs/FINANCE_HANDOFF_2026-05-18.md b/TrafagSalesExporter/docs/FINANCE_HANDOFF_2026-05-18.md deleted file mode 100644 index c333f30..0000000 --- a/TrafagSalesExporter/docs/FINANCE_HANDOFF_2026-05-18.md +++ /dev/null @@ -1,21 +0,0 @@ -# Finance Handoff - -Stand: 2026-05-27 - -Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert. - -## 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 -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` - -Nur laden, wenn der Zwischenstand vom 2026-05-18 oder alte Finance-Abweichungen genau nachvollzogen werden muessen. diff --git a/TrafagSalesExporter/docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md b/TrafagSalesExporter/docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md deleted file mode 100644 index 7f89bde..0000000 --- a/TrafagSalesExporter/docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md +++ /dev/null @@ -1,13 +0,0 @@ -# Finance IT Mail Abweichung - -Stand: 2026-05-27 - -Historischer Mailentwurf, fuer RAG komprimiert. - -Aktueller Italien-/Finance-Kontext steht in `docs/rag/FINANCE.md`. - -Volltext bei Bedarf: - -```text -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` diff --git a/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.md b/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.md new file mode 100644 index 0000000..559bdf6 --- /dev/null +++ b/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.md @@ -0,0 +1,313 @@ +# Finance Kurs-Workflow + +Stand: 2026-06-09 + +Zweck: Diese Doku beschreibt isoliert den Weg eines Umrechnungskurses vom einzelnen Land bis zur Analyse eines zentralen Dashboard-Wertes. Sie ersetzt nicht die allgemeine Finance-Datenflussdoku, sondern schneidet nur das Thema Kurs/Waehrung heraus. + +Visualisierung: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg` + +![Finance Kurs-Workflow](FINANCE_KURS_WORKFLOW_2026-06-09.svg) + +## Kurzfazit + +- Der Standortimport rechnet Werte normalerweise nicht ueber die App-Kurstabelle um. +- `CentralSalesRecords` speichert die Werte und Waehrungen so, wie sie nach Import und optionalen Transformationen vorliegen. +- `DocumentRate` ist ein Quellfeld aus SAP/B1/OData, kein automatisch angewendeter App-Kurs. +- Die fuehrende `Finance Summary` und das zentrale Excel nutzen Hauswaehrung je Land. Die App-Kurstabelle wird dort nicht still angewendet. +- Eine echte App-Umrechnung passiert nur in Analyse-/Anzeige-Sichten mit Zielwaehrung, in einer expliziten `ConvertCurrency`-Transformation oder im separaten Budget-CHF-Kandidaten. +- Wenn in einer Zielwaehrung kein Kurs gefunden wird, fliesst diese Zeile mit `0` in die Anzeige-Summe ein und wird als fehlender Kurs gezaehlt. + +## Begriffe + +| Begriff | Bedeutung | +| --- | --- | +| Hauswaehrung | Fuehrende Finance-Waehrung des Landes, z. B. `EUR`, `CHF`, `GBP`, `USD`, `INR`. | +| `SalesCurrency` | Waehrung von `SalesPriceValue`; fuer Dashboard-Umrechnung die wichtigste Quellwaehrung. | +| `CompanyCurrency` | lokale Firmen-/Hauswaehrung aus dem Quellsystem, soweit vorhanden. | +| `DocumentCurrency` | Belegwaehrung, z. B. Fremdwaehrung eines einzelnen Kundenbelegs. | +| `DocumentRate` | Belegkurs aus dem ERP-Quellsystem. Wird gespeichert, aber nicht automatisch fuer Dashboard-Umrechnung verwendet. | +| App-Kurstabelle | Tabelle `CurrencyExchangeRates` mit `FromCurrency`, `ToCurrency`, `Rate`, `ValidFrom`, `ValidTo`, `Notes`, `IsActive`. | +| Anzeige-Waehrung | Zielwaehrung in Analyse-Sichten, aktuell `NATIVE`, `CHF`, `EUR`, `USD`. | +| Budgetkurs | Kurs mit `Notes = Budget `, z. B. `Budget 2025`, fuer separaten CHF-Kontrollkandidaten. | + +## Gesamtfluss + +```text +Land / Quellsystem + | + +-- Werte und Waehrungen lesen + | SalesPriceValue, SalesCurrency, CompanyCurrency, + | DocumentCurrency, DocumentTotal FC/LC, DocumentRate + | + +-- optionale FieldTransformationRules + | normal: keine Kursumrechnung + | Ausnahme: ConvertCurrency schreibt dauerhaft ein Zielfeld + | + +-- Standort-Excel schreiben + | + +-- CentralSalesRecords fuer Standort ersetzen + | + +-- zentrale Excel / Finance Summary + | Hauswaehrung, keine stille App-Kursumrechnung + | + +-- Management Analyse / Rohdaten-Diagnose mit Zielwaehrung + Kurstabelle suchen -> Betrag * Kurs -> zentrale Anzeige-Summe +``` + +## Schritt 1: Land liefert Betrag und Waehrung + +Jedes Land liefert zuerst einen Nettowert und die dazugehoerige Waehrungsinformation. Der Kurs selbst wird dabei nur als Quellinformation uebernommen, nicht automatisch angewendet. + +| Land / TSC | Quelle | Fuehrender Importwert | Waehrungsfelder | Kursfeld aus Quelle | +| --- | --- | --- | --- | --- | +| CH / AT `ZSCHWEIZ` | SAP OData | `Z.NetwrHc` -> `SalesPriceValue` | `Z.Hwaer` -> `SalesCurrency` / `CompanyCurrency`, `Z.Waerk` -> `DocumentCurrency` | `Z.Kurrf` -> `DocumentRate` | +| FR `TRFR` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ | `OADM.MainCurncy`, `OINV.DocCur` | `OINV.DocRate` / `ORIN.DocRate` | +| IT `TRIT` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ, mit IT-Filter | `OADM.MainCurncy`, `DocCur` | `DocRate` | +| US `TRUS` | SAP B1/HANA | `INV1.LineTotal`, Credit Notes negativ | `OADM.MainCurncy`, `DocCur` | `DocRate` | +| IN `TRIN` | HANA/Sage-Quelle | Hauswaehrungswert in INR | Finance-Hauswaehrung `INR` | ggf. Quellkurs, nicht fuehrend fuer Soll/Ist | +| UK `TRUK` | Sage/Manual Excel | `[Sales Price/Value] * [Quantity]` | `GBP` | kein App-Kurs beim Import | +| ES `TRES` | Sage CSV | `ImporteNeto`, REC/Credit negativ | `EUR` | kein App-Kurs beim Import | +| DE `TRDE` | Alphaplan Excel | `NettoPreisGesamtX` | `Waehrung` / aktuell fachlich `EUR` | kein App-Kurs beim Import | + +Wichtig: Ein vorhandener ERP-Belegkurs erklaert die Beziehung zwischen Belegwaehrung und lokaler Hauswaehrung im Quellsystem. Die App nutzt fuer die zentrale Anzeigeumrechnung trotzdem die eigene Kurstabelle, sobald eine Zielwaehrung gewaehlt wird. + +## Schritt 2: Kurstabelle pflegen + +Die App-Kurse liegen in `CurrencyExchangeRates`. + +Pflegeorte: + +- `Settings > Wechselkurse`: Kurse manuell erfassen, aktivieren/deaktivieren und speichern. +- `Refresh Kurse`: importiert ECB-Tageskurse als `EUR -> ` mit Notiz `ECB daily reference rate`. +- Seed beim App-Start: Budgetkurse fuer `Budget 2025` und `Budget 2026`, jeweils zur Umrechnung in `CHF`. +- Konfigurationsexport/-import: Kurse sind Teil des Config-Transferpakets. + +Technische Regeln beim Speichern: + +- Waehrungscodes werden getrimmt und in Grossbuchstaben gespeichert. +- Leere Waehrungen und Kurse `<= 0` werden verworfen. +- `ValidFrom` und `ValidTo` werden auf Datum ohne Uhrzeit normalisiert. + +## Schritt 3: Kurs aufloesen + +Die zentrale Kursaufloesung laeuft ueber `CurrencyExchangeRateService.ResolveRate(from, to, date)`. + +Reihenfolge: + +1. Waehrungscodes normalisieren, z. B. `$` -> `USD`, `SFR` -> `CHF`, `RS` -> `INR`. +2. Gleiche Waehrung ergibt Kurs `1`. +3. Wirksames Datum bestimmen. Ohne Datum wird das heutige UTC-Datum verwendet. +4. Direkten aktiven Kurs suchen: `FromCurrency = Quelle`, `ToCurrency = Ziel`, Datum innerhalb `ValidFrom`/`ValidTo`. +5. Wenn kein direkter Kurs existiert: inversen Kurs suchen und `1 / Rate` rechnen. +6. Wenn weiterhin kein Kurs existiert: Kreuzkurs ueber `EUR` suchen. +7. Wenn nichts passt: Ergebnis `null`. + +Bei mehreren gueltigen Kursen gewinnt der mit dem neuesten `ValidFrom`. + +## Schritt 4: Standortexport und zentrale Tabelle + +Beim normalen Standortexport gilt: + +```text +Daten holen + -> Transformationen anwenden + -> Standort-Excel schreiben + -> CentralSalesRecords fuer diesen Standort ersetzen + -> optional SharePoint Upload +``` + +Ohne aktive `ConvertCurrency`-Transformation passiert keine App-Kursumrechnung. `CentralSalesRecords` erhaelt: + +- den Importwert `SalesPriceValue`, +- die zugehoerige `SalesCurrency`, +- Belegfelder wie `DocumentCurrency`, `DocumentTotalForeignCurrency`, `DocumentTotalLocalCurrency`, `DocumentRate`, +- die Datumsfelder `PostingDate`, `InvoiceDate`, `ExtractionDate`. + +Damit bleibt nachvollziehbar, ob ein Wert bereits vom Landessystem als Hauswaehrungswert geliefert wurde oder ob er spaeter nur in der Anzeige umgerechnet wurde. + +## Schritt 5: Fuehrende Finance Summary + +Die fuehrende Finance Summary im Dashboard und das zentrale Excel-Blatt `Finance Summary` rechnen nicht automatisch in eine globale Zielwaehrung um. + +Logik: + +```text +CentralSalesRecords + -> FinanceRuleEngine + -> Finance | Net Sales Actual + -> Gruppierung nach Jahr, Land, Finance-Waehrung +``` + +Die Finance-Waehrung ist je Land fest bzw. aus dem Hauswaehrungskontext bestimmt: + +| Land | Finance-Waehrung | +| --- | --- | +| CH | CHF | +| AT | EUR | +| DE | EUR | +| ES | EUR | +| FR | EUR | +| IN | INR | +| IT | EUR | +| UK | GBP | +| US | USD | + +Der Waehrungsfilter in `Finance Summary` ist deshalb ein Filter auf diese vorhandene Finance-Waehrung. Er ist keine Umrechnung. + +Konsequenz: + +- `Finance Summary` mit Filter `GBP` zeigt UK-Werte in GBP. +- `Finance Summary` mit mehreren Laendern kann `Mixed` anzeigen. +- Es wird dabei kein EUR/GBP/CHF-Kurs aus `CurrencyExchangeRates` angewendet. + +## Schritt 6: Zentrale Analyse mit Anzeige-Waehrung + +Die Kursanwendung fuer einen zentralen Dashboard-Wert passiert in der Management-Analyse der zentralen Rohdaten, wenn eine Anzeige-Waehrung gewaehlt ist. + +Eingaben: + +- Datenbasis: `CentralSalesRecords`. +- Summenfeld: z. B. `SalesPriceValue`, `StandardCost`, `StandardCostTotal`, `Quantity`. +- Anzeige-Waehrung: `NATIVE`, `CHF`, `EUR` oder `USD`. +- Zeitraum/Filter: Jahr, Monat, Land, TSC. + +Waehrungsquelle je Summenfeld: + +| Summenfeld | Waehrung fuer Kurs | +| --- | --- | +| `SalesPriceValue` | `SalesCurrency` | +| `StandardCost` | `StandardCostCurrency` | +| `StandardCostTotal` | `StandardCostCurrency` | +| `Quantity` | keine Waehrung; Anzeige-Waehrung wird ignoriert | + +Datumswahl fuer zentrale Analyse: + +| Setting `ExchangeRateDateField` | Kursdatum | +| --- | --- | +| `PostingDate` | `PostingDate`, sonst `InvoiceDate`, sonst `ExtractionDate` | +| `InvoiceDate` | `InvoiceDate`, sonst `PostingDate`, sonst `ExtractionDate` | +| `ExtractionDate` | `ExtractionDate` | + +Formel bei Zielwaehrung: + +```text +Anzeige-Wert je Zeile = Quellwert * ResolveRate(Quellwaehrung, Zielwaehrung, Kursdatum) +Zentraler Dashboard-Wert = Summe aller Anzeige-Werte im Filter +``` + +Sonderfaelle: + +- Zielwaehrung `NATIVE`: keine Umrechnung; Werte bleiben in ihrer Quellwaehrung. +- Quellwaehrung gleich Zielwaehrung: Faktor `1`. +- Kurs fehlt: Anzeige-Wert dieser Zeile wird `0`, `MissingExchangeRateCount` steigt. +- Mehrere native Waehrungen im Ergebnis: Anzeige `Mixed`. + +Diese Umrechnung ist eine Laufzeit-Anzeige. Sie aendert `CentralSalesRecords`, Standort-Excel und zentrales Excel nicht. + +## Schritt 7: Explizite Transformation `ConvertCurrency` + +Nur wenn eine aktive `FieldTransformationRule` mit `TransformationType = ConvertCurrency` existiert, wird beim Standortexport dauerhaft ein Feld umgerechnet. + +Beispielargument: + +```text +amountField=SalesPriceValue; +currencyField=SalesCurrency; +targetCurrency=EUR; +dateField=InvoiceDate; +targetCurrencyField=SalesCurrency; +round=2 +``` + +Wirkung: + +- Quelle und Ziel werden ueber die App-Kurstabelle aufgeloest. +- `TargetField` erhaelt den umgerechneten Betrag. +- Optional wird ein Ziel-Waehrungsfeld gesetzt. +- Diese Veraenderung liegt danach in Standort-Excel und `CentralSalesRecords`. + +Fallback-Datum in `ConvertCurrency`: + +```text +konfiguriertes dateField + sonst InvoiceDate + sonst OrderDate + sonst ExtractionDate +``` + +Damit ist `ConvertCurrency` ein anderer Pfad als die Anzeige-Waehrung in der zentralen Analyse. + +## Schritt 8: Budget-CHF-Kandidat + +Im Soll/Ist-Vergleich gibt es einen separaten Kandidaten: + +```text +Nettofakturawert Hauswaehrung -> CHF Budget +``` + +Dieser Kandidat nutzt nur Kurse mit: + +```text +Notes = Budget 2025 +Notes = Budget 2026 +``` + +Er ist eine Kontroll-/Reporting-Sicht. Er ersetzt nicht den Standardabgleich in Hauswaehrung. + +## Analysepfad fuer eine konkrete Kursfrage + +Wenn ein zentraler Wert im Dashboard wegen Kursen geprueft werden soll: + +1. Land/TSC und Quellwert pruefen: `SalesPriceValue`, `SalesCurrency`, `CompanyCurrency`, `DocumentCurrency`, `DocumentRate`. +2. Klaeren, welche Dashboard-Sicht gemeint ist: + - `Finance Summary`: keine App-Kursumrechnung, nur Waehrungsfilter. + - zentrale Rohdaten-/Management-Analyse mit Anzeige-Waehrung: App-Kursumrechnung. + - `ConvertCurrency`: dauerhafte Transformation beim Export. +3. In den Settings das Kursdatum pruefen: `PostingDate`, `InvoiceDate` oder `ExtractionDate`. +4. In `CurrencyExchangeRates` den gueltigen Kurs zum Datum suchen. +5. Direkte, inverse und EUR-Kreuzkurslogik beachten. +6. Im Dashboard `Nicht umgerechnet` / `MissingExchangeRateCount` kontrollieren. +7. Falls `Mixed` angezeigt wird, wurde nicht in eine einheitliche Zielwaehrung gerechnet. + +Hilfsabfragen fuer SQLite: + +```sql +SELECT Land, Tsc, SalesCurrency, CompanyCurrency, DocumentCurrency, + COUNT(*) AS Rows, + SUM(SalesPriceValue) AS SalesValue +FROM CentralSalesRecords +GROUP BY Land, Tsc, SalesCurrency, CompanyCurrency, DocumentCurrency +ORDER BY Land, Tsc; +``` + +```sql +SELECT FromCurrency, ToCurrency, Rate, ValidFrom, ValidTo, Notes, IsActive +FROM CurrencyExchangeRates +WHERE IsActive = 1 +ORDER BY FromCurrency, ToCurrency, ValidFrom DESC; +``` + +## Code-Stellen + +| Thema | Code | +| --- | --- | +| Kursmodell | `Models/CurrencyExchangeRate.cs` | +| Kursaufloesung | `Services/CurrencyExchangeRateService.cs` | +| ECB-Import | `Services/ExchangeRateImportService.cs` | +| Settings/Kurspflege | `Services/SettingsPageService.cs`, `Components/Pages/Settings.razor` | +| Standortexport-Reihenfolge | `Services/SiteExportService.cs` | +| zentrale Speicherung | `Services/CentralSalesRecordService.cs` | +| zentrale Analyse mit Zielwaehrung | `Services/ManagementCockpitService.cs` | +| Finance Summary ohne stille Umrechnung | `Services/ManagementCockpitService.cs`, `Services/ExcelExportService.cs` | +| Budget-CHF-Kandidat | `Services/FinanceReconciliationService.cs` | +| ConvertCurrency | `Services/TransformationStrategies.cs` | + +## Nicht verwechseln + +| Nicht verwechseln | Klarstellung | +| --- | --- | +| `DocumentRate` vs. App-Kurstabelle | `DocumentRate` kommt aus dem Landessystem; App-Umrechnung nutzt `CurrencyExchangeRates`. | +| Finance-Waehrungsfilter vs. Anzeige-Waehrung | Finance-Waehrungsfilter filtert vorhandene Hauswaehrungen; Anzeige-Waehrung rechnet Werte um. | +| Zentrale Excel vs. Dashboard-Livewert | Die App-Anzeige liest `CentralSalesRecords`; SharePoint-Excel ist Ergebnis/Ablage. | +| Budget-CHF vs. Tageskurs | Budgetkurse sind eigene Kontrollkurse, nicht automatisch der Standard-Ist. | +| Native/Mixed vs. konvertiert | `NATIVE` summiert je Quellwaehrung; `Mixed` heisst mehrere Waehrungen im Ergebnis. | diff --git a/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg b/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg new file mode 100644 index 0000000..5cd1be0 --- /dev/null +++ b/TrafagSalesExporter/docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg @@ -0,0 +1,194 @@ + + Finance Kurs-Workflow + Visualisierung des Kursflusses vom Land ueber CentralSalesRecords bis zur zentralen Dashboard-Analyse. + + + + + + + + + + + + + + + + Finance Kurs-Workflow + Vom einzelnen Land ueber CentralSalesRecords bis zur Analyse eines zentralen Dashboard-Wertes + + + + 1. Land / Quellsystem + + SAP OData: CH / AT + SAP B1/HANA: FR / IT / US + HANA/Sage: IN + Sage/Excel/Alphaplan: UK / ES / DE + + Quelle liefert Wert, Waehrung und ggf. ERP-Belegkurs. + + + + + 2. Importwert + + SalesPriceValue + SalesCurrency / CompanyCurrency + DocumentCurrency + DocumentTotal FC / LC + DocumentRate als Quellinfo + + + + + + 3. Transformationen + + Normalfall: keine Kursumrechnung + Feldregeln koennen Werte kopieren, + normalisieren oder konstant setzen. + Ausnahme: ConvertCurrency + schreibt dauerhaft ein Zielfeld. + + + + + + 4. CentralSalesRecords + + Zentraler operativer Datenbestand + pro Standort komplett ersetzt + enthaelt Werte nach Import und + optionalen Transformationen + + SharePoint-Excel ist Ablage, nicht Live-Quelle. + + + + + + + + + 5A. Finance Summary / zentrales Excel + + FinanceRuleEngine bildet Net Sales Actual. + Fuehrend ist die Hauswaehrung je Land: + CH CHF, AT/DE/ES/FR/IT EUR, + IN INR, UK GBP, US USD. + + Waehrungsfilter = Filter, keine Umrechnung. + + + + + Nicht still umrechnen + + DocumentRate bleibt Quellfeld. + CurrencyExchangeRates werden hier + nicht automatisch angewendet. + Mixed bedeutet: mehrere Waehrungen + im aktuellen Filter. + + + + + + + + + 5B. Zentrale Analyse mit Zielwaehrung + + Anzeige-Waehrung: NATIVE, CHF, EUR, USD + Summenfeld: + SalesPriceValue -> SalesCurrency + StandardCost -> StandardCostCurrency + Quantity -> keine Waehrung + + Diese Umrechnung ist nur Anzeige/Laufzeit. + + + + + CurrencyExchangeRates + + FromCurrency / ToCurrency / Rate + ValidFrom / ValidTo / IsActive + ResolveRate-Reihenfolge: + 1. direkt + 2. invers + 3. EUR-Kreuzkurs + + + + + + 6. Zentraler Dashboard-Wert + + Anzeige-Wert je Zeile = Wert * Kurs + Summe = alle Anzeige-Werte im Filter + Kurs fehlt: + Zeile zaehlt mit 0 + MissingExchangeRateCount steigt + + CentralSalesRecords bleiben unveraendert. + + + + + + + + + ConvertCurrency + + aktive Transformation beim Export + schreibt dauerhaft ein Zielfeld + + + + + + Budget-CHF-Kandidat + + Notes = Budget 2025 / 2026 + Kontrollsicht, nicht Standard-Ist + + + + + + + + Legende + + Datenfluss Import / Speicherung + + Finance-Hauswaehrung ohne stille App-Kursumrechnung + + Anzeige-/Analyseumrechnung ueber App-Kurstabelle + + diff --git a/TrafagSalesExporter/docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md b/TrafagSalesExporter/docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md deleted file mode 100644 index 59a1a12..0000000 --- a/TrafagSalesExporter/docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md +++ /dev/null @@ -1,13 +0,0 @@ -# Finance UK Mail Abweichung - -Stand: 2026-05-27 - -Historischer Mailentwurf, fuer RAG komprimiert. - -Aktueller UK-/Finance-Kontext steht in `docs/rag/FINANCE.md` und `docs/rag/MANUAL_IMPORT.md`. - -Volltext bei Bedarf: - -```text -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` diff --git a/TrafagSalesExporter/docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md b/TrafagSalesExporter/docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md deleted file mode 100644 index d3df86b..0000000 --- a/TrafagSalesExporter/docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md +++ /dev/null @@ -1,14 +0,0 @@ -# Finance: Welches Dokument Gilt? - -Stand: 2026-05-27 - -Historische Dokumentgueltigkeitsnotiz, fuer RAG komprimiert. - -Aktueller Dokumentrouter: `docs/RAG_ROUTER.md`. -Aktueller Dokumentstatus: `docs/MD_DOKUMENTENSTATUS_2026-05-20.md`. - -Volltext bei Bedarf: - -```text -docs/raw_md_archive/HISTORY_CANONICAL.md.raw -``` diff --git a/TrafagSalesExporter/docs/MD_DOKUMENTENSTATUS_2026-05-20.md b/TrafagSalesExporter/docs/MD_DOKUMENTENSTATUS_2026-05-20.md index 0334533..a2d403a 100644 --- a/TrafagSalesExporter/docs/MD_DOKUMENTENSTATUS_2026-05-20.md +++ b/TrafagSalesExporter/docs/MD_DOKUMENTENSTATUS_2026-05-20.md @@ -1,6 +1,6 @@ # Markdown-Dokumentenstatus -Stand: 2026-05-20 +Stand: 2026-06-10 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. @@ -17,6 +17,7 @@ Diese Datei ordnet die vorhandenen Markdown-Dateien ein. Ziel ist, alte Arbeitsn | `docs/LOCAL_DEV_SERVER_UEBERGANG_2026-05-21.md` | Lokaler Uebergangsserver auf Entwicklungs-PC | Aktuell bis IIS-Fix | | `docs/FINANCE_ENTSCHEIDE.md` | Finance-Regeln und Kontrollpunkte | Aktuell fuehrend fuer Finance-Logik | | `entscheide.md` | Kurzfassung der Finance-Fachentscheide | Aktuell als Kurzfassung | +| `docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md` | Technischer Finance-Datenfluss | Aktuell fuer End-to-end-Datenfluss | | `docs/PRODUCT_SPARTEN_MAPPING_2026-05-27.md` | Produktsparten-Mapping fuer Group Sales Report | Aktuell fuehrend fuer neues Produktmapping-Thema | | `docs/HR_KPI_NACHDOKU_2026-05-13.md` | HR-KPI technische/fachliche Nachdoku | Aktualisiert um 2026-05-20 Erweiterungen | | `docs/PROGRAMM_DIAGRAMME.md` | Uebersicht Diagramme und technische Einordnung | Aktualisiert um neue Anwenderdokus | @@ -26,25 +27,28 @@ Diese Datei ordnet die vorhandenen Markdown-Dateien ein. Ziel ist, alte Arbeitsn | Datei | Rolle | Status | | --- | --- | --- | | `docs/FINANCE_BERECHNUNGSFORMELN_LAENDER_2026-05-19.md` | Detailregeln je Land | Behalten | -| `docs/FINANCE_HANDOFF_2026-05-18.md` | Finance-Handoff vor den 20.05.-Aenderungen | Behalten, mit neueren Nachtraegen lesen | +| `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` | Isolierter Workflow fuer Kurs-/Waehrungsanwendung vom Land bis Dashboard | Aktuell fuer Kursfragen; SVG daneben | | `docs/FINANCE_IT_VORGEHEN_2026-05-18.md` | Italien-Pruefpfad | Behalten | | `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md` | UK-Quellkorrektur | Behalten | +| `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md` | Aktueller Spanien-rclone-All-in-one-Workflow | Ersetzt alte deutsche Anleitung vom 2026-06-03 | | `docs/HR_KPI_PRUEFUNG_SWISS_BEST_PRACTICES.md` | HR-KPI Formel-/Best-Practice-Pruefung | Behalten | | `SAGE_SPAIN_EXPORT_2026-05-05.md` | Sage Spanien Export | Behalten | | `LLM_SYSTEM_GUIDE.md` | Arbeits-/Systemkontext fuer LLM | Behalten | | `persona.md` | Nutzer-/Projektkontext | Behalten | -## Historisch / nicht mehr fuehrend +## Archiviert / aus aktiver Doku entfernt -Diese Dateien bleiben aus Nachvollziehbarkeitsgruenden erhalten, sind aber nicht mehr als aktueller Stand zu lesen: +Diese Dateien wurden am 2026-06-09 aus der aktiven Markdown-Struktur entfernt, weil sie nur noch historische Stubs oder durch neuere Dokus ersetzt waren. Fachinhalt bleibt erhalten: -| Datei | Grund | +| Entfernte Datei | Grund | | --- | --- | -| `docs/FINANCE_DASHBOARD_TODO_2026-05-15.md` | Urspruengliche Todo-Liste; Status wurde am 2026-05-20 aktualisiert | -| `docs/FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md` | CFO-Dokumentenstand vom 15.05.; Anwenderdoku vom 20.05. ist hinzugekommen | -| `docs/FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz | -| `docs/FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz | -| `docs/FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md` | Mail-/Abweichungsnotiz | +| `FINANCE_HANDOFF_2026-05-18.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Kurzkontext steht in `docs/rag/FINANCE.md`. | +| `FINANCE_DASHBOARD_TODO_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Finance-Kontext steht in `docs/rag/FINANCE.md`. | +| `FINANCE_WELCHES_DOKUMENT_GILT_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller Router ist `docs/RAG_ROUTER.md`. | +| `FINANCE_ES_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller ES-Kontext steht in `docs/rag/FINANCE.md` und `SAGE_SPAIN_EXPORT_2026-05-05.md`. | +| `FINANCE_IT_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller IT-Kontext steht in `docs/FINANCE_IT_VORGEHEN_2026-05-18.md`. | +| `FINANCE_UK_MAIL_ABWEICHUNG_2026-05-15.md` | Volltext liegt in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`; aktueller UK-Kontext steht in `docs/FINANCE_UK_QUELLE_KORREKTUR_2026-05-18.md`. | +| `SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md` | Veralteter zweiscriptiger Spanien-rclone-Workflow; aktueller Stand ist `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md`. | ## Neue Word-/Bilddokumente seit 2026-05-20 @@ -57,10 +61,15 @@ Diese Dateien bleiben aus Nachvollziehbarkeitsgruenden erhalten, sind aber nicht ## Bereinigung -Es wurden keine alten Markdown-Dateien geloescht. Grund: Viele enthalten historische Pruefwerte, Zwischenentscheide und konkrete Pfade, die fuer Rueckfragen oder Audits noch relevant sein koennen. +Bereinigung 2026-06-09: -Stattdessen gilt: +- Historische Finance-Stubs und der alte Finance-Handoff wurden aus der aktiven Doku entfernt, weil der Volltext im Raw-Archiv liegt. +- Die alte deutsche Spanien-rclone-Anleitung wurde entfernt, weil der aktuelle All-in-one-Workflow im Guide vom 2026-06-05 dokumentiert ist. +- Die Alphaplan-Konzept- und Anleitungsdateien vom 2026-06-08 wurden bewusst nicht veraendert. +- Delta 2026-06-10: India/SAGE-HANA-Deploy und Server-DB-Seed wurden in `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md` und `lastchange.md` nachdokumentiert. + +Weiterhin gilt: - Aktuelle operative Orientierung ueber diese Statusdatei, `NEXT_STEPS_2026-04-15.md`, `HANDOFF_2026-04-15.md` und `lastchange.md`. -- Historische Mail-/Terminnotizen nur als Beleg lesen, nicht als aktuellen Produktstand. +- Historische Mail-/Terminnotizen nur im Raw-Archiv als Beleg lesen, nicht als aktuellen Produktstand. - Alte offene Punkte wurden dort aktualisiert, wo sie durch Finance Summary, HR KPI Cockpit oder die Word-Anleitungen ueberholt sind. diff --git a/TrafagSalesExporter/docs/RAG_ROUTER.md b/TrafagSalesExporter/docs/RAG_ROUTER.md index 1143878..83c12eb 100644 --- a/TrafagSalesExporter/docs/RAG_ROUTER.md +++ b/TrafagSalesExporter/docs/RAG_ROUTER.md @@ -1,6 +1,6 @@ # RAG Router -Stand: 2026-06-05 +Stand: 2026-06-10 Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themenblock laden. @@ -34,6 +34,7 @@ Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themen | `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/FINANCE_KURS_WORKFLOW_2026-06-09.md` | isolierter Kurs-/Umrechnungsworkflow vom Land bis Dashboard | | `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 | @@ -46,9 +47,11 @@ Zweck: Diese Datei zuerst laden. Danach nur die Dateien aus dem passenden Themen | Suchwort | Thema | | --- | --- | | `Finance Summary`, `Soll/Ist`, `check.xlsx`, `FinanceRuleEngine` | Finance Cockpit | +| `Wechselkurs`, `Umrechnungskurs`, `CurrencyExchangeRates`, `DocumentRate`, `ConvertCurrency`, `Anzeige-Waehrung` | `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` | | `TRUK`, `UK_B1`, `Delta`, `Manual Excel` | Manual Import / Finance Spezialfaelle | | `TRDE`, `Alphaplan`, `NettoPreisGesamtX` | Finance Cockpit / Manual Import | | `TRSE`, `Spain`, `Sage`, `ImporteNeto` | Finance Spezialfaelle | +| `TRIN`, `Indien`, `India`, `SAGE`, `20.197.20.60`, `TRAFAGCONTROLS` | Deployment/IIS oder Finance Spezialfaelle | | `Spain rclone`, `Spanien SharePoint`, `Run-SpainRangeExportAndUpload-AllInOne`, `trafag-bi` | `docs/SAGE_SPAIN_RCLONE_UPLOAD_GUIDE_2026-06-03.md` | | `3D Datenanalyse`, `Experten`, `Schnelluebersicht`, `Simulation`, `Wechselkurs-Schieberegler` | Finance Cockpit | | `HR KPI`, `Rexx`, `Austritte`, `Absenzen` | HR KPI | diff --git a/TrafagSalesExporter/docs/SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md b/TrafagSalesExporter/docs/SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md deleted file mode 100644 index f126f5e..0000000 --- a/TrafagSalesExporter/docs/SAGE_SPAIN_RCLONE_UPLOAD_ANLEITUNG_2026-06-03.md +++ /dev/null @@ -1,258 +0,0 @@ -# Sage Spanien Rclone Upload Anleitung - -Stand: 2026-06-03 - -Ziel: Der Sage-Server in Spanien erzeugt die Sales-CSV lokal und lädt die Datei danach automatisch in den SharePoint-Ordner fuer den Dashboard-Import. - -## Zielordner - -SharePoint URL: - -```text -https://trafagag.sharepoint.com/sites/WorldwideBIPlatform/Shared%20Documents/Import/Finance/Spanien -``` - -Technischer Ordner: - -```text -Shared Documents/Import/Finance/Spanien -``` - -Empfohlener rclone-Zielpfad: - -```text -trafag-bi:Import/Finance/Spanien -``` - -Dabei zeigt `trafag-bi` auf die Dokumentbibliothek `Shared Documents` der SharePoint-Site: - -```text -https://trafagag.sharepoint.com/sites/WorldwideBIPlatform -``` - -## Benötigte Dateien Auf Dem Spanien-Server - -Empfohlener Ordner: - -```text -C:\Trafag\SageSpain -``` - -Dateien: - -```text -Export-SageSpainSalesCsv.ps1 -Run-SpainExportAndUpload.ps1 -``` - -Die Dateien liegen im Paket: - -```text -SageSpainFinalExportPackage.zip -``` - -## rclone Installieren - -Falls `winget` vorhanden ist: - -```powershell -winget install Rclone.Rclone -``` - -Alternativ rclone ZIP manuell installieren, z.B. nach: - -```text -C:\Tools\rclone\rclone.exe -``` - -Danach testen: - -```powershell -rclone version -``` - -Falls `rclone` nicht im PATH ist, später den vollständigen Pfad verwenden: - -```powershell -C:\Tools\rclone\rclone.exe version -``` - -## rclone Remote Einrichten - -Auf dem Spanien-Server: - -```powershell -rclone config -``` - -Empfohlene Eingaben: - -```text -n -name> trafag-bi -Storage> onedrive -``` - -Danach Microsoft Login durchführen. - -Wichtig: - -- Site: `WorldwideBIPlatform` -- Dokumentbibliothek: `Shared Documents` -- Der rclone-Remote `trafag-bi` soll auf die Dokumentbibliothek `Shared Documents` zeigen. - -## rclone Testen - -```powershell -rclone lsd trafag-bi: -rclone lsd trafag-bi:"Import" -rclone lsd trafag-bi:"Import/Finance" -rclone lsd trafag-bi:"Import/Finance/Spanien" -``` - -Wenn der letzte Befehl den Ordner ohne Fehler zeigt, ist der Zielpfad korrekt. - -## Manueller Export Ohne Upload - -Full Export 2025: - -```powershell -Set-ExecutionPolicy -Scope Process Bypass -cd C:\Trafag\SageSpain -.\Export-SageSpainSalesCsv.ps1 -ExportMode Full -Year 2025 -OutputDirectory C:\Trafag\SageSpain\out -``` - -Delta/Range Export: - -```powershell -Set-ExecutionPolicy -Scope Process Bypass -cd C:\Trafag\SageSpain -.\Export-SageSpainSalesCsv.ps1 -ExportMode Range -DateFilter LineRegistrationDate -FromDate "2026-06-02" -ToDate "2026-06-03" -OutputDirectory C:\Trafag\SageSpain\out -``` - -Hinweis: - -- `ToDate` ist exklusiv. -- Der Zeitraum `"2026-06-02"` bis `"2026-06-03"` exportiert den 2. Juni. -- Für tägliche Deltas ist `LineRegistrationDate` sinnvoll, weil neue oder geänderte Zeilen nach Registrierungsdatum kommen. - -## Export Und Upload Zusammen Starten - -Standard: täglicher Delta-Lauf, gestern bis heute: - -```powershell -Set-ExecutionPolicy -Scope Process Bypass -cd C:\Trafag\SageSpain -.\Run-SpainExportAndUpload.ps1 -``` - -Expliziter Zeitraum: - -```powershell -.\Run-SpainExportAndUpload.ps1 -ExportMode Range -DateFilter LineRegistrationDate -FromDate "2026-06-02" -ToDate "2026-06-03" -``` - -Full Export mit Upload: - -```powershell -.\Run-SpainExportAndUpload.ps1 -ExportMode Full -Year 2025 -``` - -Wenn rclone nicht im PATH ist: - -```powershell -.\Run-SpainExportAndUpload.ps1 -RcloneExe "C:\Tools\rclone\rclone.exe" -``` - -Wenn der rclone-Remote anders heisst: - -```powershell -.\Run-SpainExportAndUpload.ps1 -RcloneRemote "MEIN_REMOTE_NAME" -``` - -## Was Wird Hochgeladen? - -Das Wrapper-Script lädt aus dem neuesten Exportordner: - -```text -*.csv -*_summary.txt -``` - -Ziel: - -```text -trafag-bi:Import/Finance/Spanien -``` - -Das Script ändert keine Daten in Sage und keine Daten in SQL Server. - -## Windows Task Scheduler - -Empfohlener täglicher Lauf, z.B. 02:00 Uhr: - -```powershell -$action = New-ScheduledTaskAction ` - -Execute "powershell.exe" ` - -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Trafag\SageSpain\Run-SpainExportAndUpload.ps1" - -$trigger = New-ScheduledTaskTrigger -Daily -At 02:00 - -Register-ScheduledTask ` - -TaskName "Trafag Spain Sage Export Upload" ` - -Action $action ` - -Trigger $trigger ` - -Description "Exports Sage Spain sales CSV and uploads it to SharePoint via rclone" -``` - -Wenn rclone nicht im PATH ist: - -```powershell -$action = New-ScheduledTaskAction ` - -Execute "powershell.exe" ` - -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Trafag\SageSpain\Run-SpainExportAndUpload.ps1 -RcloneExe C:\Tools\rclone\rclone.exe" -``` - -## Kontrolle Nach Dem Lauf - -Lokal: - -```powershell -Get-ChildItem C:\Trafag\SageSpain\out -Directory | Sort-Object LastWriteTime -Descending | Select-Object -First 1 -Get-ChildItem C:\Trafag\SageSpain\logs -``` - -SharePoint: - -```powershell -rclone ls trafag-bi:"Import/Finance/Spanien" -``` - -Im Browser prüfen: - -```text -https://trafagag.sharepoint.com/sites/WorldwideBIPlatform/Shared%20Documents/Import/Finance/Spanien -``` - -## Fehlerbilder - -`rclone: command not found` - -- rclone ist nicht im PATH. -- Lösung: `-RcloneExe "C:\Tools\rclone\rclone.exe"` verwenden. - -`directory not found` - -- Remote zeigt nicht auf `Shared Documents` oder Zielordner ist anders. -- Mit `rclone lsd trafag-bi:` und `rclone lsd trafag-bi:"Import/Finance"` prüfen. - -`Access denied` - -- Microsoft Login oder SharePoint-Berechtigung fehlt. -- Der Windows-User des geplanten Tasks muss Zugriff auf rclone-Konfiguration und SharePoint haben. - -Leere Delta-Datei: - -- Zeitraum prüfen. -- `ToDate` ist exklusiv. -- Bei täglichem Lauf für gestern bis heute ist das korrekt. diff --git a/TrafagSalesExporter/docs/rag/DEPLOYMENT.md b/TrafagSalesExporter/docs/rag/DEPLOYMENT.md index c396eaa..add8200 100644 --- a/TrafagSalesExporter/docs/rag/DEPLOYMENT.md +++ b/TrafagSalesExporter/docs/rag/DEPLOYMENT.md @@ -1,18 +1,23 @@ # RAG Deployment -Stand: 2026-05-27 +Stand: 2026-06-10 ## Kurzstand - `TrafagSalesExporter` wird als ASP.NET/IIS-Webanwendung im bisherigen `BiDashboard`-Schema publiziert. +- Letzter dokumentierter Deploy: 2026-06-10 India/SAGE-HANA-Fix. +- Publish-Ziel: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`. +- Letzter Deploy-Zeitstempel: `BiDashboard.dll` am `10.06.2026 08:20:25`. +- Produktive India-DB-Konfiguration nach Seed: `TRIN -> SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`, User-Override `TRAFAGCONTROLS`. +- DB-Backup vor India-Seed: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak`. - 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. +- Lokaler HTTPS-Smoke-Test per `Invoke-WebRequest` scheitert weiterhin mit Empfangs-/TLS-Fehler; Publish und Share-/DB-Pruefungen sind davon getrennt. +- Aelterer dokumentierter Befund: TLS fordert Client-Zertifikat. - IT soll IIS SSL Settings pruefen: Client certificates `Ignore` oder hoechstens `Accept`, nicht `Require`. ## Upgreat Firewall diff --git a/TrafagSalesExporter/docs/rag/FINANCE.md b/TrafagSalesExporter/docs/rag/FINANCE.md index 69cfff3..3d557af 100644 --- a/TrafagSalesExporter/docs/rag/FINANCE.md +++ b/TrafagSalesExporter/docs/rag/FINANCE.md @@ -1,6 +1,6 @@ # RAG Finance -Stand: 2026-06-05 +Stand: 2026-06-10 ## Kurzstand @@ -22,6 +22,8 @@ Stand: 2026-06-05 - Wechselkurs-Anwendungsdatum ist in Settings konfigurierbar und wird in der Rohdaten-Diagnose angezeigt. - Spartenanalyse war mit >90% nicht zugeordnet fachlich unplausibel; Materialabgleich normalisiert fuehrende Nullen und warnt bei >=90% ungeklaerter Abdeckung. - Budgetkurse wurden als Finance-Kurse behandelt; CHF-Sicht bleibt getrennte Reporting-/Kontrollsicht, nicht stiller Ersatz fuer Hauswaehrungsabgleich. +- Fokusdoku zum isolierten Kursfluss: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`. +- India/TRIN: produktive Route nach Fix/Deploy 2026-06-10 ist `SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`; Standort-Override nutzt `TRAFAGCONTROLS`. - Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Interaktions-/Zoomprobleme. ## Wichtige Regeln @@ -31,6 +33,7 @@ Stand: 2026-06-05 - Jahresabgrenzung ueber `PostingDate`, Fallback `InvoiceDate`, danach `ExtractionDate`. - Gutschriften/Storno laufen als negative Beleg-/Positionszeilen. - Budget-CHF ist Kontroll-/Reporting-Kandidat, nicht Standardabgleich. +- `DocumentRate` aus dem ERP ist ein gespeichertes Quellfeld; die App-Kurstabelle wird nur bei Anzeige-Waehrung, expliziter `ConvertCurrency`-Transformation oder Budget-CHF-Kandidat verwendet. ## Offene Fachpunkte @@ -89,12 +92,13 @@ Stand: 2026-06-05 | ES | Sage CSV, `ImporteNeto`, REC/Credit negativ; Referenz 2025 korrigiert auf `3'082'320.18 EUR` | | 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 | +| IN | SAGE/HANA `TRIN`, Schema `TRAFAG_LIVE`, 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` +- Isolierter Kurs-Workflow: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.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` diff --git a/TrafagSalesExporter/docs/rag/PROJECT.md b/TrafagSalesExporter/docs/rag/PROJECT.md index fa6614c..586d637 100644 --- a/TrafagSalesExporter/docs/rag/PROJECT.md +++ b/TrafagSalesExporter/docs/rag/PROJECT.md @@ -1,13 +1,15 @@ # RAG Project -Stand: 2026-06-05 +Stand: 2026-06-10 ## Kurzstand - Fuehrende App: `TrafagSalesExporter`, publiziert als `BiDashboard`. -- Letzter dokumentierter Stand: Finance-Schnelluebersicht, Expertenbereich, 3D-Datenanalyse und Spanien-Sage-All-in-one-rclone-Upload. -- Validierung laut Doku: Finance-Sitzungsstand `82/82` Tests gruen; spaetere UI-/Deploy-Schritte wurden einzeln umgesetzt und deployed. -- Letzter dokumentierter Finance-Deploy: 2026-06-05 auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`. +- Letzter dokumentierter Stand: India/TRIN SAGE-HANA-Fix deployed, Finance-Kursworkflow dokumentiert, aktive Markdown-Doku bereinigt. +- Validierung laut Doku: `84/84` Tests gruen fuer den India-Fix; fruehere UI-/Deploy-Schritte wurden einzeln umgesetzt und deployed. +- Letzter dokumentierter Deploy: 2026-06-10 auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`. +- India/TRIN: produktive Server-DB steht auf `TRIN -> SAGE -> 20.197.20.60:30015`, Schema `TRAFAG_LIVE`, User-Override `TRAFAGCONTROLS`. +- Doku-Delta: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` plus SVG; alte Finance-Stubs aus aktiver Markdown-Struktur entfernt, Volltexte bleiben im Raw-Archiv. - Neu im Finance/Management-Cockpit: einfache Schnelluebersicht links sichtbar; tiefere Funktionen bleiben unter `Experten`. - Neu in der Navigation: Menuebaum wird aus `NavigationMenuItems` gerendert; Admins koennen bestehende Punkte unter `Admin > Menuestruktur` umhaengen, sortieren und aus-/einblenden. - Neu als Hauptbereich: `Einkauf` mit Einkaufswagen-Icon und erweitertem `Einkauf Dashboard`. diff --git a/TrafagSalesExporter/lastchange.md b/TrafagSalesExporter/lastchange.md index 5cd01a6..4170d20 100644 --- a/TrafagSalesExporter/lastchange.md +++ b/TrafagSalesExporter/lastchange.md @@ -1,6 +1,6 @@ # Last Change -Stand: 2026-06-08 +Stand: 2026-06-10 Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert. @@ -8,13 +8,20 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert. - Fuehrender Kurzkontext: `docs/rag/PROJECT.md`. - Themenrouter: `docs/RAG_ROUTER.md`. -- Letzter dokumentierter Code-Stand: Finance-Spartenanalyse lokal weiter verbessert, Datenfluss fuer Andreas dokumentiert, Alphaplan-Discovery-Exporter fuer Deutschland erstellt. -- Letzte dokumentierte Validierung: `dotnet test TrafagSalesExporter.sln --no-restore --verbosity minimal` mit `83/83` Tests gruen. -- Wichtig: Die lokalen Finance-/Alphaplan-Aenderungen vom 2026-06-08 sind dokumentiert, aber noch nicht als neuer Deploy auf den IIS-Server beschrieben. +- Letzter dokumentierter Code-Stand: India/TRIN HANA-Route gegen SourceSystem-Drift abgesichert; Finance-Kursworkflow und Markdown-Bereinigung dokumentiert. +- Letzte dokumentierte Validierung: `dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal` mit `84/84` Tests gruen. +- Letzter dokumentierter Deploy: 2026-06-10 India/SAGE-HANA-Fix nach `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`. +- Neu umgesetzt und deployed: `TRIN`/Indien wird beim Seed auf `SourceSystem=SAGE`, Schema `TRAFAG_LIVE` und zentralen SAGE-HANA-Server `20.197.20.60:30015` repariert; Standort-User-/Passwort-Override bleibt erhalten. +- Server-DB am 2026-06-10 korrigiert: `TRIN -> SAGE -> 20.197.20.60:30015`, User-Override `TRAFAGCONTROLS`, Passwort-Override vorhanden. Backup: `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\trafag_exporter.db.before-india-sage-20260610-0825.bak`. +- Deploy-Status 2026-06-10: `BiDashboard.dll` Zeitstempel `10.06.2026 08:20:25`; `app_offline.htm` wurde entfernt. +- Git-Commit India-Fix: `586adc3 Fix India SAGE HANA mapping`. +- Neu dokumentiert: Delta zum India-Deploy in `docs/DEPLOYMENT_IIS_HANDOFF_2026-05-19.md`. - Neu lokal: Sparten-Finanzanalyse gruppiert standardmaessig nach `Produktsparte`; `Produktfamilie` und `PAPH1 Detail` bleiben als Umschaltoptionen erhalten. - Neu lokal: Sparten-Finanzanalyse zeigt bei `Mixed`-Waehrung einen Warnhinweis, weil Summen/Anteile ueber mehrere Waehrungen fachlich nur eingeschraenkt belastbar sind. - Neu lokal: Sparten-Finanzanalyse zeigt die groessten Treiber fuer `Nicht im TR-AG-Stamm`, damit hohe nicht zugeordnete Umsaetze nach Land/TSC/Material analysiert werden koennen. - Neu dokumentiert: genauer Finance-Datenfluss fuer Andreas in `docs/FINANCE_DATENFLUSS_ANDREAS_2026-06-08.md`. +- Neu dokumentiert: isolierter Finance-Kursworkflow in `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md` mit SVG-Visualisierung `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg`, vom Land/Quellwert ueber `CurrencyExchangeRates` bis zur zentralen Dashboard-Analyse. +- Doku-Bereinigung: historische Finance-Stubs und der alte Finance-Handoff wurden aus der aktiven Markdown-Struktur entfernt; Volltexte bleiben in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`. Die veraltete deutsche Spanien-rclone-Anleitung wurde durch den aktuellen All-in-one-Guide ersetzt. - Neu dokumentiert: Alphaplan SQL/rclone Konzept Deutschland in `docs/ALPHAPLAN_SQL_RCLONE_KONZEPT_DE_2026-06-08.md`. - Neu erstellt: Alphaplan Phase-1-Discovery-Paket `AlphaplanExportPackage` und `AlphaplanExportPackage.zip`. - Neu dokumentiert: Alphaplan Discovery Exporter Guide in `docs/ALPHAPLAN_DISCOVERY_EXPORTER_GUIDE_2026-06-08.md`. @@ -24,7 +31,7 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert. - Neu umgesetzt und deployed: 3D-Simulation mit Schiebereglern, u. a. fuer Wechselkurs-/Szenarioveraenderungen; Grafik reagiert in Echtzeit. - Neu umgesetzt und deployed: 3D-Darstellung korrigiert fuer Canvas-Groesse, Achsen, Labelgroesse und breitere Indikatorauswahl. - Bekannter Browser-Hinweis: 3D-Ansicht wurde in Chrome als korrekt bestaetigt; Firefox zeigte auf dem Client Probleme mit Interaktion/Groesse. -- Neu fuer Spanien: All-in-one-PS1 `SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1` erstellt; es exportiert Sage direkt per SQL-Range und laedt CSV/Summary via rclone nach SharePoint. +- Neu fuer Spanien: All-in-one-PS1 `SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1` erstellt; es exportiert Sage direkt per SQL-Range und laedt CSV/Summary via rclone nach SharePoint. - Neu fuer Spanien: Standard-Range ist letzte 7 Tage bis heute; `FromDate`/`ToDate` koennen per Parameter ueberschrieben werden. - Neu fuer Spanien: SharePoint-Ziel wird vor Export per rclone geprueft/angelegt: `trafag-bi:Import/Finance/Spanien`. - Neu fuer Spanien: rclone-Uploadfehler `Can't set -v and --log-level` behoben; `--verbose` wurde aus dem All-in-one-Upload entfernt. @@ -65,6 +72,41 @@ Diese Datei ist fuer tokenarme RAG-Nutzung komprimiert. - Neu umgesetzt: `Einkauf Dashboard > 3D Simulation` mit festen Canvas-Abmessungen, Achsenbeschriftung, Diagrammarten, Labelgroesse und Szenario-Slider fuer Preis-/Wechselkurswirkung. - Letzte Validierung: `dotnet test TrafagSalesExporter.sln --verbosity minimal` mit `83/83` Tests gruen; Test prueft auch Einkaufs-SAP-Seed mit Quellen/Joins/Mappings. +## Nachtrag 2026-06-10 India / SAGE HANA / Deploy + +Ausgangslage: + +- Indien (`TRIN`) schlug in den Exportlogs mit `authentication failed` fehl. +- Vergleich mit den Anfangslogs zeigte: erfolgreiche Laeufe am 2026-04-16 liefen auf `20.197.20.60:30015`; neuere Fehllauefe liefen auf `travtrp0:30015`. +- Ursache war Konfigurationsdrift: `TRIN` stand auf `SourceSystem=BI1`, der India-Server hatte kein `SourceSystem`, und der zentrale `SAGE`-Server hatte keinen Host. + +Umgesetzt: + +- Seed-Reparatur in `DatabaseSeedService`: `TRIN`/Indien wird auf `SAGE`, Schema `TRAFAG_LIVE` und SAGE-HANA `20.197.20.60:30015` gesetzt. +- Regressionstest `InitializeAsync_Repairs_India_Sage_Hana_Mapping`. +- Produktive Server-DB mit Backup direkt auf der Freigabe repariert. + +Validierung: + +- `dotnet test TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal` +- Ergebnis: `84/84` Tests gruen. +- Server-DB-Pruefung: `TRIN -> SAGE -> 20.197.20.60:30015`, User-Override `TRAFAGCONTROLS`, Passwort-Override vorhanden. + +Deploy: + +- Release-Publish auf `\\trch-webapp-bidashboard.trafagch.local\BiDashboard$\`. +- `BiDashboard.dll` Zeitstempel nach Deploy: `10.06.2026 08:20:25`. +- `app_offline.htm` wurde nach Publish/DB-Seed entfernt. +- Commit: `586adc3 Fix India SAGE HANA mapping`. + +## Nachtrag 2026-06-10 Dokumentationsdelta + +- Isolierter Kursworkflow angelegt: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.md`. +- SVG-Visualisierung angelegt: `docs/FINANCE_KURS_WORKFLOW_2026-06-09.svg`. +- Aktive Markdown-Dokumente bereinigt: historische Finance-Stubs und die alte deutsche Spain-rclone-Anleitung entfernt. +- Fachinhalte bleiben erhalten: alte Volltexte liegen in `docs/raw_md_archive/HISTORY_CANONICAL.md.raw`. +- Spain-Finalpaket unter den bestehenden Spain-Paketordner verschoben: `SageSpainExportPackage/SageSpainFinalExportPackage/`. + ## Nachtrag 2026-06-08 Alphaplan Deutschland / SQL Discovery / rclone Upload Ziel: @@ -226,7 +268,7 @@ Server-/rclone-Kontext: Umgesetzt: -- Neues Einzel-Script `SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1`. +- Neues Einzel-Script `SageSpainExportPackage/SageSpainFinalExportPackage/Run-SpainRangeExportAndUpload-AllInOne.ps1`. - Das Script macht alles in einem Lauf: - Datum pruefen. - rclone finden.