From eb187cdc15f46f059bfdb7721eaff645cf5f8935 Mon Sep 17 00:00:00 2001 From: metacube Date: Fri, 17 Apr 2026 12:00:03 +0200 Subject: [PATCH] manometer --- .../Components/Pages/ManagementCockpit.razor | 248 +++++++++ .../Components/Pages/Standorte.razor | 203 ++++++- TrafagSalesExporter/LLM_SYSTEM_GUIDE.md | 521 ++++++++++++++++++ .../Services/ConfigTransferService.cs | 100 +++- .../Services/DatabaseInitializationService.cs | 64 ++- .../Services/ISharePointUploadService.cs | 1 + .../Services/SharePointUploadService.cs | 57 ++ .../Services/SiteExportService.cs | 54 +- .../ConfigTransferServiceTests.cs | 125 +++++ .../DatabaseInitializationServiceTests.cs | 196 +++++++ TrafagSalesExporter/docs/architecture.mmd | 66 +++ TrafagSalesExporter/docs/dataflow_export.mmd | 41 ++ TrafagSalesExporter/docs/er_model.mmd | 184 +++++++ TrafagSalesExporter/erg.png | Bin 0 -> 74431 bytes TrafagSalesExporter/manometer.png | Bin 0 -> 178294 bytes 15 files changed, 1817 insertions(+), 43 deletions(-) create mode 100644 TrafagSalesExporter/LLM_SYSTEM_GUIDE.md create mode 100644 TrafagSalesExporter/TrafagSalesExporter.Tests/DatabaseInitializationServiceTests.cs create mode 100644 TrafagSalesExporter/docs/architecture.mmd create mode 100644 TrafagSalesExporter/docs/dataflow_export.mmd create mode 100644 TrafagSalesExporter/docs/er_model.mmd create mode 100644 TrafagSalesExporter/erg.png create mode 100644 TrafagSalesExporter/manometer.png diff --git a/TrafagSalesExporter/Components/Pages/ManagementCockpit.razor b/TrafagSalesExporter/Components/Pages/ManagementCockpit.razor index 3f07149..9fb496f 100644 --- a/TrafagSalesExporter/Components/Pages/ManagementCockpit.razor +++ b/TrafagSalesExporter/Components/Pages/ManagementCockpit.razor @@ -134,6 +134,46 @@ @T("Periode", "Period")@BuildPeriodLabel(_centralResult) + + @T("Cockpit Manometer", "Cockpit gauges") + + @T("Verdichtete Kennzahlen aus der zentralen Rohsicht. Die Manometer zeigen Anteile, Dichte und Abdeckung, ohne Waehrungsumrechnung oder Budgetlogik.", "Condensed metrics from the central raw view. The gauges show shares, density and coverage without currency conversion or budget logic.") + + + @foreach (var gauge in BuildCentralGauges(_centralResult)) + { + + + @gauge.Title +
+ + + + + + @gauge.DisplayValue + @gauge.Subtitle + +
+
+
+ } +
+
+ @T("Hinweise", "Notes") @foreach (var notice in _centralResult.Notices) @@ -248,9 +288,42 @@ } + + @code { private List _files = []; private List _centralYears = []; + private const string GaugeArcPath = "M 30 110 A 80 80 0 0 1 190 110"; private string? _selectedFilePath; private ManagementCockpitResult? _result; private ManagementCockpitCentralResult? _centralResult; @@ -341,6 +414,181 @@ return $"{result.Summary.PeriodStart.Value:dd.MM.yyyy} - {result.Summary.PeriodEnd.Value:dd.MM.yyyy}"; } + + private List BuildCentralGauges(ManagementCockpitCentralResult result) + { + var invoiceDensity = result.Summary.RowCount == 0 ? 0m : result.Summary.InvoiceCount * 100m / result.Summary.RowCount; + var sourceDominance = result.SourceSystemTotals.Count == 0 + ? 0m + : result.SourceSystemTotals.Max(x => x.RowCount) * 100m / Math.Max(1, result.Summary.RowCount); + var countryDominance = result.CountryTotals.Count == 0 + ? 0m + : result.CountryTotals.Max(x => x.RowCount) * 100m / Math.Max(1, result.Summary.RowCount); + var periodCoverage = BuildPeriodCoveragePercent(result); + var topCountrySalesShare = BuildTopSalesSharePercent(result.CountryTotals); + var topSourceSalesShare = BuildTopSalesSharePercent(result.SourceSystemTotals); + var currencyComplexity = result.Summary.CurrencyCount <= 1 ? 0m : Math.Min(100m, (result.Summary.CurrencyCount - 1) * 25m); + var peakVsAverageMonth = BuildPeakVsAverageMonthPercent(result); + + return + [ + new CentralGaugeModel + { + Title = T("Rechnungsdichte", "Invoice density"), + Percent = invoiceDensity, + DisplayValue = $"{invoiceDensity:F0}%", + Subtitle = T("Rechnungen pro 100 Zeilen", "Invoices per 100 rows"), + Color = "#1f8a70" + }, + new CentralGaugeModel + { + Title = T("Quellen-Dominanz", "Source dominance"), + Percent = sourceDominance, + DisplayValue = $"{sourceDominance:F0}%", + Subtitle = T("Groesste Quelle nach Zeilen", "Largest source by rows"), + Color = "#d9822b" + }, + new CentralGaugeModel + { + Title = T("Land-Dominanz", "Country dominance"), + Percent = countryDominance, + DisplayValue = $"{countryDominance:F0}%", + Subtitle = T("Groesstes Land nach Zeilen", "Largest country by rows"), + Color = "#c4496b" + }, + new CentralGaugeModel + { + Title = T("Perioden-Abdeckung", "Period coverage"), + Percent = periodCoverage, + DisplayValue = $"{periodCoverage:F0}%", + Subtitle = BuildPeriodGaugeSubtitle(result), + Color = "#3d7ff0" + }, + new CentralGaugeModel + { + Title = T("Top-Land Umsatz", "Top country sales"), + Percent = topCountrySalesShare, + DisplayValue = $"{topCountrySalesShare:F0}%", + Subtitle = T("Anteil des umsatzstaerksten Landes", "Share of top-selling country"), + Color = "#7f56d9" + }, + new CentralGaugeModel + { + Title = T("Top-Quelle Umsatz", "Top source sales"), + Percent = topSourceSalesShare, + DisplayValue = $"{topSourceSalesShare:F0}%", + Subtitle = T("Anteil der staerksten Quelle", "Share of strongest source"), + Color = "#0f9fb5" + }, + new CentralGaugeModel + { + Title = T("Waehrungs-Komplexitaet", "Currency complexity"), + Percent = currencyComplexity, + DisplayValue = result.Summary.CurrencyCount.ToString("N0"), + Subtitle = T("Anzahl Waehrungen im Zeitraum", "Number of currencies in period"), + Color = "#b54708" + }, + new CentralGaugeModel + { + Title = T("Monat gegen Peak", "Month vs peak"), + Percent = peakVsAverageMonth, + DisplayValue = $"{peakVsAverageMonth:F0}%", + Subtitle = T("Durchschnittsmonat relativ zum Peak", "Average month relative to peak"), + Color = "#d92d20" + } + ]; + } + + private static decimal BuildPeriodCoveragePercent(ManagementCockpitCentralResult result) + { + if (result.Summary.PeriodStart is null || result.Summary.PeriodEnd is null) + return 0m; + + if (result.Filter.Month.HasValue) + { + var daysInMonth = DateTime.DaysInMonth(result.Filter.Year, result.Filter.Month.Value); + var coveredDays = result.DailyTotals + .Select(x => x.Day) + .Where(x => x.HasValue) + .Distinct() + .Count(); + return daysInMonth == 0 ? 0m : coveredDays * 100m / daysInMonth; + } + + var coveredMonths = result.MonthlyTotals + .Select(x => x.Month) + .Where(x => x.HasValue) + .Distinct() + .Count(); + return coveredMonths * 100m / 12m; + } + + private string BuildPeriodGaugeSubtitle(ManagementCockpitCentralResult result) + => result.Filter.Month.HasValue + ? T("Tage mit Daten im Monat", "Days with data in month") + : T("Monate mit Daten im Jahr", "Months with data in year"); + + private static decimal BuildTopSalesSharePercent(IEnumerable rows) + { + var materialized = rows.ToList(); + if (materialized.Count == 0) + return 0m; + + var total = materialized.Sum(x => x.SalesValue); + if (total == 0) + return 0m; + + return materialized.Max(x => x.SalesValue) * 100m / total; + } + + private static decimal BuildPeakVsAverageMonthPercent(ManagementCockpitCentralResult result) + { + var monthRows = result.MonthlyTotals.ToList(); + if (monthRows.Count == 0) + return 0m; + + var groupedMonths = monthRows + .GroupBy(x => x.Label, StringComparer.OrdinalIgnoreCase) + .Select(g => g.Sum(x => x.SalesValue)) + .ToList(); + + if (groupedMonths.Count == 0) + return 0m; + + var peak = groupedMonths.Max(); + if (peak == 0) + return 0m; + + var average = groupedMonths.Average(); + return Math.Min(100m, average * 100m / peak); + } + + private static string BuildGaugeDashArray(decimal percent) + => $"{Math.Clamp(percent, 0m, 100m).ToString("F2", System.Globalization.CultureInfo.InvariantCulture)} 100"; + + private static string BuildGaugeNeedleX(decimal percent) + => GetGaugePoint(percent, 68d).X.ToString("F2", System.Globalization.CultureInfo.InvariantCulture); + + private static string BuildGaugeNeedleY(decimal percent) + => GetGaugePoint(percent, 68d).Y.ToString("F2", System.Globalization.CultureInfo.InvariantCulture); + + private static (double X, double Y) GetGaugePoint(decimal percent, double radius = 80d) + { + var clamped = Math.Clamp((double)percent, 0d, 100d); + var angle = Math.PI * (1d - clamped / 100d); + var x = 110d + radius * Math.Cos(angle); + var y = 110d - radius * Math.Sin(angle); + return (x, y); + } + + private sealed class CentralGaugeModel + { + public string Title { get; set; } = string.Empty; + public decimal Percent { get; set; } + public string DisplayValue { get; set; } = string.Empty; + public string Subtitle { get; set; } = string.Empty; + public string Color { get; set; } = "#3d7ff0"; + } } @code { diff --git a/TrafagSalesExporter/Components/Pages/Standorte.razor b/TrafagSalesExporter/Components/Pages/Standorte.razor index 4a34529..794b698 100644 --- a/TrafagSalesExporter/Components/Pages/Standorte.razor +++ b/TrafagSalesExporter/Components/Pages/Standorte.razor @@ -9,6 +9,7 @@ @inject IDbContextFactory DbFactory @inject IHanaQueryService HanaService @inject ISapGatewayService SapGatewayService +@inject ISharePointUploadService SharePointService @inject IAppEventLogService AppEventLogService @inject ISnackbar Snackbar @inject IDialogService DialogService @@ -141,9 +142,44 @@ + @if (UsesHanaConnection()) + { + + + @if (_loadingSchemas) + { + + @("Lade Schemas...") + } + else + { + @("Schemas laden") + } + + @if (_availableSchemas.Count > 0) + { + + @foreach (var schema in _availableSchemas) + { + @schema + } + + } + + + Die Liste wird aus der zentralen HANA-Verbindung des Quellsystems gelesen und auf typische B1-Schemas eingeschraenkt. + + } - + @foreach (var system in GetAvailableSourceSystems()) { @GetSourceSystemLabel(system) @@ -351,6 +387,13 @@ Für diesen Standort wird keine SAP- oder HANA-Verbindung verwendet. Es wird die hier hinterlegte Excel-Datei gelesen und in `CentralSalesRecords` übernommen. + + + Pfad pruefen + @if (_uploadingManualImport) { @@ -394,6 +437,7 @@ private List _sites = new(); private List _sourceSystemDefinitions = new(); private List _sapEntitySetsCache = []; + private List _availableSchemas = []; private List _sapAvailableSourceExpressions = []; private Dictionary> _sapSourceFieldMap = new(StringComparer.OrdinalIgnoreCase); private List _sapSources = []; @@ -411,6 +455,7 @@ private bool _refreshingSapSourceFields; private bool _savingServer; private bool _savingSite; + private bool _loadingSchemas; private bool _uploadingManualImport; private readonly DialogOptions _dialogOptions = new() { MaxWidth = MaxWidth.Small, FullWidth = true }; @@ -625,6 +670,7 @@ HanaServerId = null, ManualImportFilePath = string.Empty }; + _availableSchemas = []; _sapEntitySetsCache = []; _sapAvailableSourceExpressions = []; _sapSourceFieldMap = new(StringComparer.OrdinalIgnoreCase); @@ -657,6 +703,7 @@ SapEntitySetsRefreshedAtUtc = site.SapEntitySetsRefreshedAtUtc, IsActive = site.IsActive }; + _availableSchemas = []; _sapEntitySetsCache = ParseSapEntitySets(site.SapEntitySetsCache); using var db = DbFactory.CreateDbContext(); _sapSources = db.SapSourceDefinitions.Where(s => s.SiteId == site.Id).OrderBy(s => s.SortOrder).ThenBy(s => s.Id).ToList(); @@ -798,6 +845,19 @@ return centralServer.Id; } + private Task OnSchemaSelected(string schema) + { + _editingSite.Schema = schema; + return Task.CompletedTask; + } + + private Task OnSourceSystemChanged(string value) + { + _editingSite.SourceSystem = value; + _availableSchemas = []; + return Task.CompletedTask; + } + private IEnumerable GetAvailableSourceSystems() => _sourceSystemDefinitions .Where(x => x.IsActive || string.Equals(x.Code, _editingSite.SourceSystem, StringComparison.OrdinalIgnoreCase)) @@ -871,6 +931,85 @@ return $"{centralServer.Name} | {GetServerNode(centralServer)}"; } + private async Task LoadAvailableSchemasAsync() + { + if (_loadingSchemas) + return; + + _loadingSchemas = true; + try + { + using var db = await DbFactory.CreateDbContextAsync(); + var sourceDefinition = await db.SourceSystemDefinitions + .OrderBy(x => x.Id) + .FirstOrDefaultAsync(x => x.Code == _editingSite.SourceSystem); + + if (sourceDefinition is null) + throw new InvalidOperationException($"Quellsystem '{_editingSite.SourceSystem}' nicht gefunden."); + + var centralServer = await db.HanaServers + .OrderBy(x => x.Id) + .FirstOrDefaultAsync(x => x.SourceSystem == _editingSite.SourceSystem); + + if (centralServer is null || string.IsNullOrWhiteSpace(centralServer.Host)) + throw new InvalidOperationException($"Fuer {_editingSite.SourceSystem} ist keine gueltige zentrale HANA-Konfiguration vorhanden."); + + var username = string.IsNullOrWhiteSpace(_editingSite.UsernameOverride) + ? sourceDefinition.CentralUsername ?? string.Empty + : _editingSite.UsernameOverride; + var password = string.IsNullOrWhiteSpace(_editingSite.PasswordOverride) + ? sourceDefinition.CentralPassword ?? string.Empty + : _editingSite.PasswordOverride; + + if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password)) + throw new InvalidOperationException($"Fuer {_editingSite.SourceSystem} sind weder zentrale Zugangsdaten noch Standort-Overrides gesetzt."); + + var lookupServer = new HanaServer + { + Id = centralServer.Id, + SourceSystem = centralServer.SourceSystem, + Name = centralServer.Name, + Host = centralServer.Host, + Port = centralServer.Port, + Username = username.Trim(), + Password = password, + DatabaseName = centralServer.DatabaseName, + UseSsl = centralServer.UseSsl, + ValidateCertificate = centralServer.ValidateCertificate, + AdditionalParams = centralServer.AdditionalParams + }; + + var schemas = await Task.Run(() => HanaService.GetAvailableSchemas(lookupServer)); + _availableSchemas = schemas + .Where(x => !string.IsNullOrWhiteSpace(x)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .OrderBy(x => x, StringComparer.OrdinalIgnoreCase) + .ToList(); + + if (_availableSchemas.Count == 0) + { + Snackbar.Add("Keine passenden Schemas gefunden.", Severity.Info); + return; + } + + if (string.IsNullOrWhiteSpace(_editingSite.Schema) || + !_availableSchemas.Contains(_editingSite.Schema, StringComparer.OrdinalIgnoreCase)) + { + _editingSite.Schema = _availableSchemas[0]; + } + + Snackbar.Add($"{_availableSchemas.Count} Schemas geladen.", Severity.Success); + } + catch (Exception ex) + { + Snackbar.Add($"Schemas laden fehlgeschlagen: {ex.Message}", Severity.Error); + } + finally + { + _loadingSchemas = false; + } + } + private async Task RefreshSapEntitySets() { if (_refreshingSapEntitySets) @@ -993,6 +1132,62 @@ } } + private async Task ValidateManualImportPathAsync() + { + try + { + _editingSite.ManualImportFilePath = _editingSite.ManualImportFilePath.Trim(); + + if (string.IsNullOrWhiteSpace(_editingSite.ManualImportFilePath)) + throw new InvalidOperationException("Bitte zuerst einen Dateipfad eintragen."); + + if (!string.Equals(Path.GetExtension(_editingSite.ManualImportFilePath), ".xlsx", StringComparison.OrdinalIgnoreCase)) + throw new InvalidOperationException("Bitte eine Excel-Datei mit Endung .xlsx angeben."); + + if (File.Exists(_editingSite.ManualImportFilePath)) + { + _editingSite.ManualImportLastUploadedAtUtc = File.GetLastWriteTimeUtc(_editingSite.ManualImportFilePath); + } + else if (LooksLikeSharePointReference(_editingSite.ManualImportFilePath)) + { + using var db = await DbFactory.CreateDbContextAsync(); + var spConfig = await db.SharePointConfigs.FirstOrDefaultAsync(); + if (spConfig is null || + string.IsNullOrWhiteSpace(spConfig.TenantId) || + string.IsNullOrWhiteSpace(spConfig.ClientId) || + string.IsNullOrWhiteSpace(spConfig.ClientSecret) || + string.IsNullOrWhiteSpace(spConfig.SiteUrl)) + { + throw new InvalidOperationException("Fuer SharePoint-Pruefung fehlt eine vollstaendige SharePoint-Konfiguration in Settings."); + } + + var tempPath = await SharePointService.DownloadToTempFileAsync( + spConfig.TenantId, spConfig.ClientId, spConfig.ClientSecret, spConfig.SiteUrl, _editingSite.ManualImportFilePath); + try + { + _editingSite.ManualImportLastUploadedAtUtc = File.GetLastWriteTimeUtc(tempPath); + } + finally + { + if (File.Exists(tempPath)) + File.Delete(tempPath); + } + } + else + { + throw new InvalidOperationException($"Datei nicht gefunden oder nicht erreichbar: {_editingSite.ManualImportFilePath}"); + } + + Snackbar.Add("Dateipfad ist gueltig und die Excel-Datei ist erreichbar.", Severity.Success); + await AppEventLogService.WriteAsync("ManualImport", "Dateipfad erfolgreich geprueft", siteId: _editingSite.Id, land: _editingSite.Land, details: _editingSite.ManualImportFilePath); + } + catch (Exception ex) + { + Snackbar.Add($"Pfadpruefung fehlgeschlagen: {ex.Message}", Severity.Error); + await AppEventLogService.WriteAsync("ManualImport", "Dateipfadpruefung fehlgeschlagen", "Error", siteId: _editingSite.Id, land: _editingSite.Land, details: ex.ToString()); + } + } + private static List ParseSapEntitySets(string json) { if (string.IsNullOrWhiteSpace(json)) @@ -1011,6 +1206,12 @@ private static string SerializeSapEntitySets(List entitySets) => JsonSerializer.Serialize(entitySets); + private static bool LooksLikeSharePointReference(string path) + => path.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("https://", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("/Shared Documents/", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("Shared Documents/", StringComparison.OrdinalIgnoreCase); + private void AddSapSource() { _sapSources.Add(new SapSourceDefinition diff --git a/TrafagSalesExporter/LLM_SYSTEM_GUIDE.md b/TrafagSalesExporter/LLM_SYSTEM_GUIDE.md new file mode 100644 index 0000000..869760e --- /dev/null +++ b/TrafagSalesExporter/LLM_SYSTEM_GUIDE.md @@ -0,0 +1,521 @@ +# TrafagSalesExporter LLM System Guide + +Stand: 2026-04-17 + +Diese Datei ist fuer andere LLMs gedacht, die das Projekt schnell verstehen und daraus Architekturtexte, Visualisierungen, Ablaufdiagramme oder UI-/Datenflussgrafiken erzeugen sollen. + +## Zweck des Systems + +`TrafagSalesExporter` ist eine Blazor Server App auf `.NET 8`, die Verkaufsdaten aus mehreren Quellsystemen in ein gemeinsames Zielschema ueberfuehrt. + +Quellsysteme: + +- `HANA`-basierte Systeme wie `BI1` und `SAGE` +- `SAP_GATEWAY` ueber OData +- `MANUAL_EXCEL` aus hochgeladenen oder referenzierten Excel-Dateien + +Zielbild: + +- jede Quelle wird in `SalesRecord` normalisiert +- Standortdaten koennen lokal als Excel exportiert werden +- alle Datensaetze werden in `CentralSalesRecords` gespeichert +- eine zentrale konsolidierte Datei wird aus dem zentralen Datenbestand erzeugt +- ein `Management Cockpit` analysiert sowohl exportierte Dateien als auch zentrale Rohdaten + +## Technologie-Stack + +- UI: Blazor Server + MudBlazor +- Datenbank: SQLite (`trafag_exporter.db`) +- Excel lesen/schreiben: ClosedXML +- SAP HANA Zugriff: `Sap.Data.Hana.Core.v2.1.dll` +- SAP Gateway / OData: eigener Service ueber HTTP +- SharePoint Upload/Download: Microsoft Graph + Azure Identity +- Tests: xUnit + +## Einstiegspunkte + +Wichtige Dateien: + +- [Program.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Program.cs) +- [Data/AppDbContext.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Data/AppDbContext.cs) +- [Components/Layout/NavMenu.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Layout/NavMenu.razor) + +`Program.cs` registriert fast die komplette Architektur ueber DI und fuehrt beim Start `DatabaseInitializationService.InitializeAsync()` aus. + +## Hauptseiten + +Navigation: + +- `/` Dashboard +- `/standorte` +- `/transformations` +- `/management-cockpit` +- `/settings` +- `/logs` + +Dateien: + +- [Components/Pages/Dashboard.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/Dashboard.razor) +- [Components/Pages/Standorte.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/Standorte.razor) +- [Components/Pages/Transformations.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/Transformations.razor) +- [Components/Pages/ManagementCockpit.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/ManagementCockpit.razor) +- [Components/Pages/Settings.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/Settings.razor) +- [Components/Pages/Logs.razor](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Components/Pages/Logs.razor) + +Kurzrollen: + +- `Dashboard`: Einzel-Export, Alle exportieren, zentrale Datei neu erzeugen, Live-Status +- `Standorte`: Standortpflege, zentrale HANA-Technik, SAP-Konfiguration pro Standort, manueller Excel-Import +- `Transformations`: feldweise und record-basierte Regeln +- `Management Cockpit`: Dateianalyse und Rohanalyse aus `CentralSalesRecords` +- `Settings`: SharePoint, Exportpfade, Quellsysteme, Wechselkurse, Config Import/Export +- `Logs`: technische Ereignisprotokolle + +## Kernmodelle + +Wichtige Entity-Klassen: + +- [Models/Site.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/Site.cs) +- [Models/SourceSystemDefinition.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SourceSystemDefinition.cs) +- [Models/HanaServer.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/HanaServer.cs) +- [Models/SalesRecord.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SalesRecord.cs) +- [Models/CentralSalesRecord.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/CentralSalesRecord.cs) +- [Models/FieldTransformationRule.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/FieldTransformationRule.cs) +- [Models/SapSourceDefinition.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SapSourceDefinition.cs) +- [Models/SapJoinDefinition.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SapJoinDefinition.cs) +- [Models/SapFieldMapping.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SapFieldMapping.cs) +- [Models/SharePointConfig.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/SharePointConfig.cs) +- [Models/ExportSettings.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/ExportSettings.cs) +- [Models/ExportLog.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/ExportLog.cs) +- [Models/AppEventLog.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/AppEventLog.cs) +- [Models/CurrencyExchangeRate.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/CurrencyExchangeRate.cs) + +Wichtige Relationen: + +- `Site -> HanaServer` optional +- `Site -> SapSourceDefinitions` +- `Site -> SapJoinDefinitions` +- `Site -> SapFieldMappings` +- `Site -> CentralSalesRecords` +- `SourceSystemDefinition` ist zentrale Stammdatenquelle fuer Quellsysteme + +## Datenbanktabellen + +`AppDbContext` enthaelt: + +- `HanaServers` +- `SourceSystemDefinitions` +- `Sites` +- `SharePointConfigs` +- `ExportSettings` +- `ExportLogs` +- `AppEventLogs` +- `FieldTransformationRules` +- `CurrencyExchangeRates` +- `SapSourceDefinitions` +- `SapJoinDefinitions` +- `SapFieldMappings` +- `CentralSalesRecords` + +## Architekturrollen der Services + +### Export / Orchestrierung + +- [Services/ExportOrchestrationService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ExportOrchestrationService.cs) +- [Services/SiteExportService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/SiteExportService.cs) +- [Services/ConsolidatedExportService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ConsolidatedExportService.cs) +- [Services/CentralSalesRecordService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/CentralSalesRecordService.cs) +- [Services/ExportLogService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ExportLogService.cs) + +Rollen: + +- `ExportOrchestrationService` steuert UI-nahe Exportlaeufe und Live-Status +- `SiteExportService` entscheidet anhand des Quellsystems, wie ein Standort gelesen wird +- `CentralSalesRecordService` ersetzt zentrale Saetze pro Standort +- `ConsolidatedExportService` erzeugt die zentrale Datei + +### Datenquellen + +- [Services/HanaQueryService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/HanaQueryService.cs) +- [Services/SapGatewayService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/SapGatewayService.cs) +- [Services/SapCompositionService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/SapCompositionService.cs) +- [Services/ManualExcelImportService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ManualExcelImportService.cs) +- [Services/SharePointUploadService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/SharePointUploadService.cs) + +Rollen: + +- `HanaQueryService`: SQL gegen SAP B1/HANA-nahe Schemata +- `SapGatewayService`: OData-Metadaten und Reads +- `SapCompositionService`: Mehrquellen-/Join-/Mapping-Aufbau fuer SAP +- `ManualExcelImportService`: Import im Exportformat aus `.xlsx` +- `SharePointUploadService`: Upload fuer Exportdateien und Download fuer manuelle Excel-Dateien + +### Transformation / Mapping + +- [Services/TransformationCatalog.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/TransformationCatalog.cs) +- [Services/TransformationStrategies.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/TransformationStrategies.cs) +- [Services/RecordTransformationService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/RecordTransformationService.cs) +- [Services/CurrencyExchangeRateService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/CurrencyExchangeRateService.cs) +- [Services/ExchangeRateImportService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ExchangeRateImportService.cs) + +Rollen: + +- `Value`-Transformationen fuer einzelne Felder +- `Record`-Transformationen fuer zeilenweite Regeln +- Wechselkursimport und -umrechnung + +### Reporting / Monitoring / Infrastruktur + +- [Services/ManagementCockpitService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ManagementCockpitService.cs) +- [Services/AppEventLogService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/AppEventLogService.cs) +- [Services/ConfigTransferService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ConfigTransferService.cs) +- [Services/DatabaseInitializationService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/DatabaseInitializationService.cs) +- [Services/TimerBackgroundService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/TimerBackgroundService.cs) + +## Der wichtigste technische Ablauf + +### 1. Standort-Export + +Pfad: + +`Dashboard/Standorte -> ExportOrchestrationService -> SiteExportService` + +`SiteExportService` unterscheidet drei Modi: + +1. `SAP_GATEWAY` + - SAP-Quellen lesen + - SAP-Joins anwenden + - SAP-Feldmappings auf `SalesRecord` + - Transformationen anwenden + - Standort-Excel erzeugen + - `CentralSalesRecords` ersetzen + - optional SharePoint-Upload + +2. `HANA` + - effektive zentrale HANA-Konfiguration laden + - optionale Standort-Credential-Overrides anwenden + - SQL in HANA ausfuehren + - `SalesRecord` erzeugen + - Transformationen anwenden + - Standort-Excel erzeugen + - `CentralSalesRecords` ersetzen + - optional SharePoint-Upload + +3. `MANUAL_EXCEL` + - `ManualImportFilePath` auswerten + - wenn lokal/UNC vorhanden: lokal lesen + - wenn SharePoint-Referenz: via Graph temp herunterladen + - Excel in `SalesRecord` lesen + - Transformationen anwenden + - keine neue Standortdatei erzeugen, bestehende Excel dient als Eingabe + - `CentralSalesRecords` ersetzen + +### 2. Konsolidierter Export + +Pfad: + +`Dashboard -> ExportOrchestrationService -> ConsolidatedExportService` + +Semantik aktuell: + +- die zentrale Datei basiert fachlich auf `CentralSalesRecords` +- `ExportAllAsync()` sammelt zwar auch `consolidatedRecords`, aber die zentrale Exportsemantik ist historisch noch nicht vollkommen bereinigt + +### 3. Management Cockpit + +Zwei Betriebsarten: + +1. Dateibasiert + - vorhandene `.xlsx` waehlen + - Datei mit ClosedXML lesen + - Kennzahlen, Top-Listen, Datenqualitaet, Findings erzeugen + +2. Zentraldatenbasiert + - direkt aus `CentralSalesRecords` + - Jahr/Monat Filter + - Rohsicht ohne Intercompany-, CHF-, Budget- oder Spartelogik + +## Quellsystemlogik + +### SourceSystemDefinition + +`SourceSystemDefinition` ist die fuehrende Wahrheit fuer: + +- `Code` +- `DisplayName` +- `ConnectionKind` +- `IsActive` +- `CentralUsername` +- `CentralPassword` +- `CentralServiceUrl` fuer SAP + +Anschlussarten: + +- `HANA` +- `SAP_GATEWAY` +- `MANUAL_EXCEL` + +### HANA + +Fachliche Logik: + +- zentrale technische HANA-Konfiguration pro Quellsystem +- keine separaten Vollverbindungen pro Standort +- Standort speichert nur Fachdaten plus optionale Username-/Password-Overrides + +Schema-Lookup: + +- in `Standorte` gibt es jetzt `Schemas laden` +- Lookup fragt `sys.tables` in HANA ab +- eingeschraenkt auf typische B1-Schemas mit Tabellen wie `OINV`, `INV1`, `ORIN`, `RIN1`, `OCRD`, `OITM` + +### SAP + +Fachliche Logik: + +- zentrale SAP Service URL in `SourceSystemDefinition.CentralServiceUrl` +- Standort kann `SapServiceUrl` als Override pflegen +- pro Standort gibt es SAP-Quellen, Joins und Feldmappings + +### Manual Excel + +Fachliche Logik: + +- `Site.ManualImportFilePath` kann sein: + - lokaler Windows-Pfad + - UNC-Pfad + - SharePoint-URL + - SharePoint-Pfad unterhalb der konfigurierten Site +- Standortdaten werden aus der Excel eingelesen und in `CentralSalesRecords` uebernommen +- SharePoint dient hier als Eingangsquelle, nicht nur als Exportziel + +## Transformationen + +Das System unterscheidet: + +- `Value`-Transformationen +- `Record`-Transformationen + +Beispiele: + +- `Copy` +- `Uppercase` +- `Lowercase` +- `Prefix` +- `Suffix` +- `Replace` +- `Constant` +- `NormalizeCurrencyCode` +- `FirstNonEmpty` +- `ConvertCurrency` + +Technischer Ablauf: + +- Regeln liegen in `FieldTransformationRules` +- `TransformationCatalog` meldet verfuegbare Strategien an die UI +- `RecordTransformationService` wendet record-basierte Strategien an + +## Wechselkurse + +Vorhanden: + +- `CurrencyExchangeRates` +- `ExchangeRateImportService` fuer ECB-Tageskurse +- `NormalizeCurrencyCode` +- `ConvertCurrency` + +Wichtig: + +- die Rohsicht im `Management Cockpit` rechnet aktuell bewusst nicht in CHF um +- CHF ist derzeit Teil des allgemeinen Transformationssystems, nicht Default in der Cockpit-Rohsicht + +## SharePoint-Rolle im Gesamtsystem + +`SharePointConfig` enthaelt: + +- `SiteUrl` +- `ExportFolder` +- `CentralExportFolder` +- `TenantId` +- `ClientId` +- `ClientSecret` + +Verwendung: + +- Upload von Standort-Exporten +- Upload der zentralen Datei +- Download von manuellen Excel-Dateien fuer `MANUAL_EXCEL` + +Wichtig: + +- die App arbeitet gegen dieselbe SharePoint-Site, die in `Settings` konfiguriert ist +- fuer `MANUAL_EXCEL` muessen Referenzen auf derselben Site aufloesbar sein + +## Startinitialisierung / Migrationen + +Kritische Datei: + +- [Services/DatabaseInitializationService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/DatabaseInitializationService.cs) + +Aktuelle Rolle: + +- `EnsureCreated` +- Schema-Ergaenzungen per `ALTER TABLE` +- Tabellen-Rebuilds bei Legacy-Schemas +- FK-Reparaturen +- Stammdaten-Seeding +- empfohlene Transformationsregeln + +Bekannte Architekturrealitaet: + +- das ist funktional hilfreich, aber kein sauberes Migrationssystem +- die Startlogik traegt produktive Schema-Reparaturverantwortung +- das ist einer der wichtigsten technischen Risikobloecke + +Bereits gehaertete Fehlerbilder: + +- kaputte FK-Referenzen auf `Sites_old` +- kaputte FK-Referenzen auf `HanaServers_repair_old` +- Legacy-Credential-Spalten in `ExportSettings` +- Legacy-Credential-Spalten in `HanaServers` +- verschobene Spalten im `Sites_old -> Sites`-Kopierpfad + +## Config Import / Export + +Dateien: + +- [Services/ConfigTransferService.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Services/ConfigTransferService.cs) +- [Models/ConfigTransferPackage.cs](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/Models/ConfigTransferPackage.cs) + +Aktueller Stand: + +- JSON Export/Import fuer Konfiguration +- Secrets optional +- `SourceSystemDefinitions` im aktuellen Modell enthalten +- HANA-Technik ohne HANA-Credentials +- Standort-Overrides bleiben erhalten + +Wichtige Punkte: + +- Import laeuft jetzt transaktional +- alte `ConnectionKind`-lose Formate bekommen Fallbacks +- `CentralSalesRecords` werden nicht mehr blind geloescht +- bestehende zentrale Laufzeitdaten werden fuer weiterhin vorhandene Standorte remappt + +## Logging + +Es gibt zwei Log-Ebenen: + +- `ExportLogs` fuer fachliche Exporthistorie +- `AppEventLogs` fuer technische und UI-nahe Ereignisse + +Die `Logs`-Seite liest vor allem `AppEventLogs`. + +## Tests + +Testprojekt: + +- [TrafagSalesExporter.Tests](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/TrafagSalesExporter.Tests) + +Aktuell vorhandene Schwerpunkte: + +- Transformationen +- Record-Transformationen +- TransformationCatalog +- CurrencyExchangeRateService +- ExchangeRateImportService +- ManualExcelImportService +- ManagementCockpitService +- ConfigTransferService +- DatabaseInitializationService + +Wichtig: + +- es gibt aktuell keine echten UI-Komponententests mit `bUnit` +- es gibt keine Browser-E2E-Tests mit `Playwright` +- viele Button-Aktionen sind nur indirekt ueber Services und Persistenz getestet + +## Bekannte offene Architekturfragen + +Fuer andere LLMs wichtig, damit Visualisierungen nicht zu glatt oder zu idealisiert werden: + +1. `DatabaseInitializationService` ist ein produktiver Reparatur-/Migrationslayer, nicht nur Bootstrap. +2. `Settings.razor` und `Standorte.razor` enthalten weiterhin relativ viel Anwendungslogik. +3. Die Semantik der konsolidierten Datei ist historisch teilweise doppelt angelegt. +4. Das `Management Cockpit` ist noch kein voll generalisierter Reporting-Layer. +5. SharePoint ist sowohl Exportziel als auch bei `MANUAL_EXCEL` mittlerweile moegliche Eingangsquelle. + +## Empfohlene Diagramme fuer andere LLMs + +### 1. Kontextdiagramm + +Zeige: + +- Benutzer +- Blazor App +- SQLite +- SAP HANA +- SAP Gateway +- lokale Dateisystempfade +- SharePoint + +### 2. Komponenten-/Service-Diagramm + +Gruppiere: + +- UI +- Orchestrierung +- Quelladapter +- Transformation +- Persistenz +- Reporting + +### 3. Datenflussdiagramm pro Quelltyp + +Je ein separater Flow fuer: + +- HANA +- SAP Gateway +- Manual Excel lokal +- Manual Excel SharePoint + +### 4. ER-Diagramm + +Fokussiere auf: + +- `SourceSystemDefinition` +- `HanaServer` +- `Site` +- `SapSourceDefinition` +- `SapJoinDefinition` +- `SapFieldMapping` +- `CentralSalesRecord` +- `FieldTransformationRule` + +### 5. Sequenzdiagramm fuer Export + +Wichtige Stationen: + +- Dashboard +- ExportOrchestrationService +- SiteExportService +- spezifischer Quellservice +- Transformation +- CentralSalesRecordService +- Excel/SharePoint +- ExportLog/AppEventLog + +## Prompt-Vorlage fuer ein anderes LLM + +Wenn ein anderes LLM daraus Visualisierungen erzeugen soll, funktioniert diese Anweisung gut: + +> Lies `LLM_SYSTEM_GUIDE.md` als primaeren Systemkontext. Erzeuge daraus ein Architekturdiagramm, ein Datenflussdiagramm fuer HANA/SAP/MANUAL_EXCEL, ein ER-Diagramm der wichtigsten Tabellen und ein Sequenzdiagramm fuer `ExportAsync`. Achte darauf, dass `DatabaseInitializationService` produktive Reparaturlogik enthaelt und dass `MANUAL_EXCEL` sowohl lokal als auch ueber SharePoint gelesen werden kann. + +## Weitere Kontextdateien + +Zusatzkontext fuer Verlauf und Risiken: + +- [HANDOFF_2026-04-15.md](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/HANDOFF_2026-04-15.md) +- [NEXT_STEPS_2026-04-15.md](C:/Users/koi/source/repos/Ai/TrafagSalesExporter/NEXT_STEPS_2026-04-15.md) + +Diese beiden Dateien sind wichtig, wenn ein anderes LLM nicht nur Struktur, sondern auch historische Umbauten, Risiken und Prioritaeten verstehen soll. diff --git a/TrafagSalesExporter/Services/ConfigTransferService.cs b/TrafagSalesExporter/Services/ConfigTransferService.cs index bf0b279..4dd5b25 100644 --- a/TrafagSalesExporter/Services/ConfigTransferService.cs +++ b/TrafagSalesExporter/Services/ConfigTransferService.cs @@ -158,19 +158,21 @@ public class ConfigTransferService : IConfigTransferService { var package = JsonSerializer.Deserialize(json, JsonOptions) ?? throw new InvalidOperationException("Konfigurationsdatei konnte nicht gelesen werden."); + var importedSourceSystems = ResolveImportedSourceSystems(json, package); using var db = await _dbFactory.CreateDbContextAsync(); + await using var transaction = await db.Database.BeginTransactionAsync(); var existingSharePoint = await db.SharePointConfigs.FirstOrDefaultAsync(); var existingSettings = await db.ExportSettings.FirstOrDefaultAsync(); var existingSourceSystems = await db.SourceSystemDefinitions.ToListAsync(); var existingServers = await db.HanaServers.ToListAsync(); var existingExchangeRates = await db.CurrencyExchangeRates.ToListAsync(); var existingSites = await db.Sites.ToListAsync(); + var existingCentralRecords = await db.CentralSalesRecords.AsNoTracking().ToListAsync(); var existingRules = await db.FieldTransformationRules.ToListAsync(); var existingSapSources = await db.SapSourceDefinitions.ToListAsync(); var existingSapJoins = await db.SapJoinDefinitions.ToListAsync(); var existingSapMappings = await db.SapFieldMappings.ToListAsync(); - var existingCentralRecords = await db.CentralSalesRecords.ToListAsync(); var preservedSharePointSecret = existingSharePoint?.ClientSecret ?? string.Empty; var preservedSourceSystemSecrets = existingSourceSystems.ToDictionary( @@ -180,13 +182,15 @@ public class ConfigTransferService : IConfigTransferService var preservedSiteSecrets = existingSites.ToDictionary( x => BuildSiteSignature(x.Land, x.TSC, x.Schema, x.SourceSystem), x => (x.UsernameOverride, x.PasswordOverride)); + var existingSiteSignaturesById = existingSites.ToDictionary( + x => x.Id, + x => BuildSiteSignature(x.Land, x.TSC, x.Schema, x.SourceSystem)); if (existingSapMappings.Count > 0) db.SapFieldMappings.RemoveRange(existingSapMappings); if (existingSapJoins.Count > 0) db.SapJoinDefinitions.RemoveRange(existingSapJoins); if (existingSapSources.Count > 0) db.SapSourceDefinitions.RemoveRange(existingSapSources); if (existingRules.Count > 0) db.FieldTransformationRules.RemoveRange(existingRules); if (existingExchangeRates.Count > 0) db.CurrencyExchangeRates.RemoveRange(existingExchangeRates); - if (existingCentralRecords.Count > 0) db.CentralSalesRecords.RemoveRange(existingCentralRecords); if (existingSites.Count > 0) db.Sites.RemoveRange(existingSites); if (existingServers.Count > 0) db.HanaServers.RemoveRange(existingServers); if (existingSourceSystems.Count > 0) db.SourceSystemDefinitions.RemoveRange(existingSourceSystems); @@ -217,10 +221,6 @@ public class ConfigTransferService : IConfigTransferService LocalConsolidatedExportFolder = importedSettings.LocalConsolidatedExportFolder }); - var importedSourceSystems = package.SourceSystemDefinitions.Count > 0 - ? package.SourceSystemDefinitions - : BuildDefaultSourceSystems(); - foreach (var sourceSystem in importedSourceSystems) { preservedSourceSystemSecrets.TryGetValue(sourceSystem.Code, out var preserved); @@ -272,6 +272,7 @@ public class ConfigTransferService : IConfigTransferService } var siteIdMap = new Dictionary(StringComparer.OrdinalIgnoreCase); + var importedSiteIdBySignature = new Dictionary(StringComparer.OrdinalIgnoreCase); foreach (var site in package.Sites) { preservedSiteSecrets.TryGetValue(BuildSiteSignature(site.Land, site.TSC, site.Schema, site.SourceSystem), out var preserved); @@ -298,8 +299,52 @@ public class ConfigTransferService : IConfigTransferService db.Sites.Add(entity); await db.SaveChangesAsync(); siteIdMap[site.Key] = entity.Id; + importedSiteIdBySignature[BuildSiteSignature(site.Land, site.TSC, site.Schema, site.SourceSystem)] = entity.Id; } + var centralRecordsToPreserve = existingCentralRecords + .Where(record => existingSiteSignaturesById.TryGetValue(record.SiteId, out var signature) && importedSiteIdBySignature.ContainsKey(signature)) + .Select(record => + { + var signature = existingSiteSignaturesById[record.SiteId]; + return new CentralSalesRecord + { + StoredAtUtc = record.StoredAtUtc, + SiteId = importedSiteIdBySignature[signature], + SourceSystem = record.SourceSystem, + ExtractionDate = record.ExtractionDate, + Tsc = record.Tsc, + InvoiceNumber = record.InvoiceNumber, + PositionOnInvoice = record.PositionOnInvoice, + Material = record.Material, + Name = record.Name, + ProductGroup = record.ProductGroup, + Quantity = record.Quantity, + SupplierNumber = record.SupplierNumber, + SupplierName = record.SupplierName, + SupplierCountry = record.SupplierCountry, + CustomerNumber = record.CustomerNumber, + CustomerName = record.CustomerName, + CustomerCountry = record.CustomerCountry, + CustomerIndustry = record.CustomerIndustry, + StandardCost = record.StandardCost, + StandardCostCurrency = record.StandardCostCurrency, + PurchaseOrderNumber = record.PurchaseOrderNumber, + SalesPriceValue = record.SalesPriceValue, + SalesCurrency = record.SalesCurrency, + Incoterms2020 = record.Incoterms2020, + SalesResponsibleEmployee = record.SalesResponsibleEmployee, + InvoiceDate = record.InvoiceDate, + OrderDate = record.OrderDate, + Land = record.Land, + DocumentType = record.DocumentType + }; + }) + .ToList(); + + if (centralRecordsToPreserve.Count > 0) + db.CentralSalesRecords.AddRange(centralRecordsToPreserve); + if (package.FieldTransformationRules.Count > 0) { db.FieldTransformationRules.AddRange(package.FieldTransformationRules.Select(r => new FieldTransformationRule @@ -363,10 +408,53 @@ public class ConfigTransferService : IConfigTransferService } await db.SaveChangesAsync(); + await transaction.CommitAsync(); } + private static string BuildSiteSignature(string land, string tsc, string schema, string sourceSystem) => $"{land}|{tsc}|{schema}|{sourceSystem}".ToUpperInvariant(); + private static List ResolveImportedSourceSystems(string json, ConfigTransferPackage package) + { + if (package.SourceSystemDefinitions.Count == 0) + return BuildDefaultSourceSystems(); + + using var document = JsonDocument.Parse(json); + if (!document.RootElement.TryGetProperty(nameof(ConfigTransferPackage.SourceSystemDefinitions), out var sourceSystemsElement) || + sourceSystemsElement.ValueKind != JsonValueKind.Array) + { + return package.SourceSystemDefinitions; + } + + var imported = package.SourceSystemDefinitions + .Select((sourceSystem, index) => + { + var hasExplicitConnectionKind = + index < sourceSystemsElement.GetArrayLength() && + sourceSystemsElement[index].TryGetProperty(nameof(ConfigTransferSourceSystemDefinition.ConnectionKind), out _); + + if (hasExplicitConnectionKind) + return sourceSystem; + + sourceSystem.ConnectionKind = InferLegacyConnectionKind(sourceSystem.Code); + return sourceSystem; + }) + .ToList(); + + return imported; + } + + private static string InferLegacyConnectionKind(string code) + { + if (string.Equals(code, "SAP", StringComparison.OrdinalIgnoreCase)) + return SourceSystemConnectionKinds.SapGateway; + + if (string.Equals(code, "MANUAL_EXCEL", StringComparison.OrdinalIgnoreCase)) + return SourceSystemConnectionKinds.ManualExcel; + + return SourceSystemConnectionKinds.Hana; + } + private static List BuildDefaultSourceSystems() { return diff --git a/TrafagSalesExporter/Services/DatabaseInitializationService.cs b/TrafagSalesExporter/Services/DatabaseInitializationService.cs index 2c73a71..545025d 100644 --- a/TrafagSalesExporter/Services/DatabaseInitializationService.cs +++ b/TrafagSalesExporter/Services/DatabaseInitializationService.cs @@ -48,7 +48,7 @@ public class DatabaseInitializationService : IDatabaseInitializationService EnsureSitesTableSupportsOptionalHanaServer(db); EnsureExportSettingsTableSupportsCurrentSchema(db); EnsureHanaServersTableSupportsCurrentSchema(db); - RepairBrokenSiteForeignKeys(db); + RepairBrokenForeignKeys(db); AddColumnIfMissing(db, "HanaServers", "SourceSystem", "TEXT NOT NULL DEFAULT ''"); AddColumnIfMissing(db, "HanaServers", "DatabaseName", "TEXT NOT NULL DEFAULT ''"); AddColumnIfMissing(db, "HanaServers", "UseSsl", "INTEGER NOT NULL DEFAULT 0"); @@ -166,26 +166,7 @@ public class DatabaseInitializationService : IDatabaseInitializationService using (var create = conn.CreateCommand()) { create.Transaction = transaction; - create.CommandText = @" -CREATE TABLE Sites ( - Id INTEGER NOT NULL CONSTRAINT PK_Sites PRIMARY KEY AUTOINCREMENT, - HanaServerId INTEGER NULL, - Schema TEXT NOT NULL, - TSC TEXT NOT NULL, - Land TEXT NOT NULL, - SourceSystem TEXT NOT NULL DEFAULT 'SAP', - UsernameOverride TEXT NOT NULL DEFAULT '', - PasswordOverride TEXT NOT NULL DEFAULT '', - LocalExportFolderOverride TEXT NOT NULL DEFAULT '', - ManualImportFilePath TEXT NOT NULL DEFAULT '', - ManualImportLastUploadedAtUtc TEXT NULL, - SapServiceUrl TEXT NOT NULL DEFAULT '', - SapEntitySet TEXT NOT NULL DEFAULT '', - SapEntitySetsCache TEXT NOT NULL DEFAULT '', - SapEntitySetsRefreshedAtUtc TEXT NULL, - IsActive INTEGER NOT NULL, - CONSTRAINT FK_Sites_HanaServers_HanaServerId FOREIGN KEY (HanaServerId) REFERENCES HanaServers (Id) -);"; + create.CommandText = GetSitesCreateSql(); create.ExecuteNonQuery(); } @@ -195,8 +176,9 @@ CREATE TABLE Sites ( copy.CommandText = @" INSERT INTO Sites ( Id, HanaServerId, Schema, TSC, Land, SourceSystem, - UsernameOverride, PasswordOverride, LocalExportFolderOverride, SapServiceUrl, SapEntitySet, - ManualImportFilePath, ManualImportLastUploadedAtUtc, SapEntitySetsCache, SapEntitySetsRefreshedAtUtc, IsActive + UsernameOverride, PasswordOverride, LocalExportFolderOverride, ManualImportFilePath, + ManualImportLastUploadedAtUtc, SapServiceUrl, SapEntitySet, SapEntitySetsCache, + SapEntitySetsRefreshedAtUtc, IsActive ) SELECT Id, HanaServerId, Schema, TSC, Land, @@ -229,13 +211,13 @@ FROM Sites_old;"; enableFk.ExecuteNonQuery(); } - private static void RepairBrokenSiteForeignKeys(AppDbContext db) + private static void RepairBrokenForeignKeys(AppDbContext db) { var conn = db.Database.GetDbConnection(); if (conn.State != ConnectionState.Open) conn.Open(); - var tablesToRepair = new[] + var siteDependentTables = new[] { ("ExportLogs", GetExportLogsCreateSql()), ("AppEventLogs", GetAppEventLogsCreateSql()), @@ -245,14 +227,17 @@ FROM Sites_old;"; ("SapFieldMappings", GetSapFieldMappingsCreateSql()) }; - foreach (var (tableName, createSql) in tablesToRepair) + foreach (var (tableName, createSql) in siteDependentTables) { - if (TableReferencesSitesOld(conn, tableName)) + if (TableReferences(conn, tableName, "Sites_old")) RebuildTable(conn, tableName, createSql); } + + if (TableReferences(conn, "Sites", "HanaServers_repair_old")) + RebuildTable(conn, "Sites", GetSitesCreateSql()); } - private static bool TableReferencesSitesOld(System.Data.Common.DbConnection connection, string tableName) + private static bool TableReferences(System.Data.Common.DbConnection connection, string tableName, string referencedTableName) { using var command = connection.CreateCommand(); command.CommandText = "SELECT sql FROM sqlite_master WHERE type = 'table' AND name = $tableName;"; @@ -263,7 +248,7 @@ FROM Sites_old;"; command.Parameters.Add(parameter); var sql = command.ExecuteScalar()?.ToString() ?? string.Empty; - return sql.Contains("Sites_old", StringComparison.OrdinalIgnoreCase); + return sql.Contains(referencedTableName, StringComparison.OrdinalIgnoreCase); } private static void RebuildTable(System.Data.Common.DbConnection connection, string tableName, string createSql) @@ -383,6 +368,27 @@ CREATE TABLE HanaServers ( AdditionalParams TEXT NOT NULL DEFAULT '' );"; + private static string GetSitesCreateSql() => @" +CREATE TABLE Sites ( + Id INTEGER NOT NULL CONSTRAINT PK_Sites PRIMARY KEY AUTOINCREMENT, + HanaServerId INTEGER NULL, + Schema TEXT NOT NULL, + TSC TEXT NOT NULL, + Land TEXT NOT NULL, + SourceSystem TEXT NOT NULL DEFAULT 'SAP', + UsernameOverride TEXT NOT NULL DEFAULT '', + PasswordOverride TEXT NOT NULL DEFAULT '', + LocalExportFolderOverride TEXT NOT NULL DEFAULT '', + ManualImportFilePath TEXT NOT NULL DEFAULT '', + ManualImportLastUploadedAtUtc TEXT NULL, + SapServiceUrl TEXT NOT NULL DEFAULT '', + SapEntitySet TEXT NOT NULL DEFAULT '', + SapEntitySetsCache TEXT NOT NULL DEFAULT '', + SapEntitySetsRefreshedAtUtc TEXT NULL, + IsActive INTEGER NOT NULL, + CONSTRAINT FK_Sites_HanaServers_HanaServerId FOREIGN KEY (HanaServerId) REFERENCES HanaServers (Id) +);"; + private static string GetAppEventLogsCreateSql() => @" CREATE TABLE AppEventLogs ( Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, diff --git a/TrafagSalesExporter/Services/ISharePointUploadService.cs b/TrafagSalesExporter/Services/ISharePointUploadService.cs index dafa08b..b6b1731 100644 --- a/TrafagSalesExporter/Services/ISharePointUploadService.cs +++ b/TrafagSalesExporter/Services/ISharePointUploadService.cs @@ -3,5 +3,6 @@ namespace TrafagSalesExporter.Services; public interface ISharePointUploadService { Task UploadAsync(string tenantId, string clientId, string clientSecret, string siteUrl, string exportFolder, string land, string localFilePath); + Task DownloadToTempFileAsync(string tenantId, string clientId, string clientSecret, string siteUrl, string fileReference); Task TestConnectionAsync(string tenantId, string clientId, string clientSecret, string siteUrl); } diff --git a/TrafagSalesExporter/Services/SharePointUploadService.cs b/TrafagSalesExporter/Services/SharePointUploadService.cs index 1c00038..123cee7 100644 --- a/TrafagSalesExporter/Services/SharePointUploadService.cs +++ b/TrafagSalesExporter/Services/SharePointUploadService.cs @@ -43,6 +43,45 @@ public class SharePointUploadService : ISharePointUploadService await graphClient.Drives[drive.Id].Root.ItemWithPath(remotePath).Content.PutAsync(stream); } + public async Task DownloadToTempFileAsync(string tenantId, string clientId, string clientSecret, string siteUrl, string fileReference) + { + var normalizedTenantId = Normalize(tenantId); + var normalizedClientId = Normalize(clientId); + var normalizedClientSecret = Normalize(clientSecret); + var normalizedSiteUrl = Normalize(siteUrl); + var normalizedReference = Normalize(fileReference); + + if (string.IsNullOrWhiteSpace(normalizedReference)) + throw new InvalidOperationException("SharePoint-Dateireferenz fehlt."); + + var credential = new ClientSecretCredential(normalizedTenantId, normalizedClientId, normalizedClientSecret); + var graphClient = new GraphServiceClient(credential, ["https://graph.microsoft.com/.default"]); + + var siteUri = new Uri(normalizedSiteUrl); + var sitePath = siteUri.AbsolutePath.TrimEnd('/'); + var site = await graphClient.Sites[$"{siteUri.Host}:{sitePath}"].GetAsync(); + + if (site?.Id is null) + throw new InvalidOperationException("SharePoint Site konnte nicht gefunden werden."); + + var drive = await graphClient.Sites[site.Id].Drive.GetAsync(); + if (drive?.Id is null) + throw new InvalidOperationException("SharePoint Dokumentenbibliothek konnte nicht gefunden werden."); + + var remotePath = ResolveRemotePath(normalizedReference, siteUri); + var fileName = Path.GetFileName(remotePath); + if (string.IsNullOrWhiteSpace(fileName)) + throw new InvalidOperationException("Aus der SharePoint-Dateireferenz konnte kein Dateiname gelesen werden."); + + await using var contentStream = await graphClient.Drives[drive.Id].Root.ItemWithPath(remotePath).Content.GetAsync() + ?? throw new InvalidOperationException("SharePoint-Datei konnte nicht gelesen werden."); + + var tempPath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}_{fileName}"); + await using var targetStream = File.Create(tempPath); + await contentStream.CopyToAsync(targetStream); + return tempPath; + } + public async Task TestConnectionAsync(string tenantId, string clientId, string clientSecret, string siteUrl) { var normalizedTenantId = Normalize(tenantId); @@ -86,6 +125,24 @@ public class SharePointUploadService : ISharePointUploadService private static string Normalize(string value) => value?.Trim() ?? string.Empty; + private static string ResolveRemotePath(string fileReference, Uri siteUri) + { + if (Uri.TryCreate(fileReference, UriKind.Absolute, out var fileUri)) + { + if (!string.Equals(fileUri.Host, siteUri.Host, StringComparison.OrdinalIgnoreCase)) + throw new InvalidOperationException("Die SharePoint-Datei muss auf derselben SharePoint-Site liegen wie die zentrale Konfiguration."); + + var sitePath = siteUri.AbsolutePath.TrimEnd('/'); + var absolutePath = Uri.UnescapeDataString(fileUri.AbsolutePath); + if (absolutePath.StartsWith(sitePath, StringComparison.OrdinalIgnoreCase)) + absolutePath = absolutePath[sitePath.Length..]; + + return absolutePath.Trim('/').Trim(); + } + + return fileReference.Trim('/').Trim(); + } + private static string BuildInputPreview(string tenantId, string clientId, string clientSecret, string siteUrl) { var maskedSecret = string.IsNullOrEmpty(clientSecret) diff --git a/TrafagSalesExporter/Services/SiteExportService.cs b/TrafagSalesExporter/Services/SiteExportService.cs index 586a18a..c68068e 100644 --- a/TrafagSalesExporter/Services/SiteExportService.cs +++ b/TrafagSalesExporter/Services/SiteExportService.cs @@ -110,13 +110,48 @@ public class SiteExportService : ISiteExportService { if (string.IsNullOrWhiteSpace(site.ManualImportFilePath)) throw new InvalidOperationException($"Standort '{site.Land}' hat keine manuelle Excel-Datei."); - if (!File.Exists(site.ManualImportFilePath)) - throw new InvalidOperationException($"Die manuelle Excel-Datei wurde nicht gefunden: {site.ManualImportFilePath}"); + string? tempManualImportPath = null; + try + { + var manualImportPath = site.ManualImportFilePath.Trim(); + if (File.Exists(manualImportPath)) + { + filePath = manualImportPath; + } + else if (LooksLikeSharePointReference(manualImportPath)) + { + if (spConfig is null || + string.IsNullOrWhiteSpace(spConfig.TenantId) || + string.IsNullOrWhiteSpace(spConfig.ClientId) || + string.IsNullOrWhiteSpace(spConfig.ClientSecret) || + string.IsNullOrWhiteSpace(spConfig.SiteUrl)) + { + throw new InvalidOperationException("Fuer SharePoint-Manuellimport fehlt eine vollstaendige SharePoint-Konfiguration in Settings."); + } - updateStatus?.Invoke("Manuelle Excel lesen..."); - await _appEventLogService.WriteAsync("Export", "Manuelle Excel lesen", siteId: site.Id, land: site.Land, - details: site.ManualImportFilePath); - records = await _manualExcelImportService.ReadSalesRecordsAsync(site.ManualImportFilePath, site); + updateStatus?.Invoke("Manuelle Excel von SharePoint laden..."); + await _appEventLogService.WriteAsync("Export", "Manuelle Excel von SharePoint laden", siteId: site.Id, land: site.Land, + details: manualImportPath); + tempManualImportPath = await _sharePointService.DownloadToTempFileAsync( + spConfig.TenantId, spConfig.ClientId, spConfig.ClientSecret, spConfig.SiteUrl, manualImportPath); + filePath = manualImportPath; + } + else + { + throw new InvalidOperationException($"Die manuelle Excel-Datei wurde nicht gefunden: {manualImportPath}"); + } + + var readPath = tempManualImportPath ?? filePath; + updateStatus?.Invoke("Manuelle Excel lesen..."); + await _appEventLogService.WriteAsync("Export", "Manuelle Excel lesen", siteId: site.Id, land: site.Land, + details: filePath); + records = await _manualExcelImportService.ReadSalesRecordsAsync(readPath, site); + } + finally + { + if (!string.IsNullOrWhiteSpace(tempManualImportPath) && File.Exists(tempManualImportPath)) + File.Delete(tempManualImportPath); + } updateStatus?.Invoke("Transformationen anwenden..."); await _appEventLogService.WriteAsync("Export", "Transformationen anwenden", siteId: site.Id, land: site.Land, @@ -127,7 +162,6 @@ public class SiteExportService : ISiteExportService .ToListAsync(); _transformationService.Apply(records, rules); - filePath = site.ManualImportFilePath; log.RowCount = records.Count; } else @@ -272,6 +306,12 @@ public class SiteExportService : ISiteExportService : configured; } + private static bool LooksLikeSharePointReference(string path) + => path.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("https://", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("/Shared Documents/", StringComparison.OrdinalIgnoreCase) || + path.StartsWith("Shared Documents/", StringComparison.OrdinalIgnoreCase); + private static Site CloneSiteWithSapServiceUrl(Site site, string sapServiceUrl) { return new Site diff --git a/TrafagSalesExporter/TrafagSalesExporter.Tests/ConfigTransferServiceTests.cs b/TrafagSalesExporter/TrafagSalesExporter.Tests/ConfigTransferServiceTests.cs index 6484ad6..cd425ef 100644 --- a/TrafagSalesExporter/TrafagSalesExporter.Tests/ConfigTransferServiceTests.cs +++ b/TrafagSalesExporter/TrafagSalesExporter.Tests/ConfigTransferServiceTests.cs @@ -224,6 +224,96 @@ public class ConfigTransferServiceTests : IDisposable Assert.Equal("FirstNonEmpty", rule.TransformationType); } + [Fact] + public async Task ImportJsonAsync_Preserves_CentralSalesRecords() + { + await SeedExistingSecretsAsync(); + + await using (var db = await _dbFactory.CreateDbContextAsync()) + { + db.CentralSalesRecords.Add(new CentralSalesRecord + { + StoredAtUtc = new DateTime(2026, 4, 17, 8, 0, 0, DateTimeKind.Utc), + SiteId = 1, + SourceSystem = "MANUAL_EXCEL", + ExtractionDate = new DateTime(2026, 4, 17), + Tsc = "TRCH", + InvoiceNumber = "INV-1", + PositionOnInvoice = 1, + Material = "MAT-1", + Name = "Material 1", + ProductGroup = "PG", + Quantity = 1m, + SupplierNumber = "SUP-1", + SupplierName = "Supplier 1", + SupplierCountry = "CH", + CustomerNumber = "CUS-1", + CustomerName = "Customer 1", + CustomerCountry = "CH", + CustomerIndustry = "Industry", + StandardCost = 10m, + StandardCostCurrency = "CHF", + PurchaseOrderNumber = "PO-1", + SalesPriceValue = 20m, + SalesCurrency = "CHF", + Incoterms2020 = "EXW", + SalesResponsibleEmployee = "Owner", + InvoiceDate = new DateTime(2026, 4, 17), + OrderDate = new DateTime(2026, 4, 16), + Land = "Schweiz", + DocumentType = "Invoice" + }); + await db.SaveChangesAsync(); + } + + var package = new ConfigTransferPackage + { + IncludesSecrets = false, + SourceSystemDefinitions = BuildStandardSourceSystems(), + Sites = + [ + new ConfigTransferSite + { + Key = "site-1", + Schema = "schema_a", + TSC = "TRCH", + Land = "Schweiz", + SourceSystem = "MANUAL_EXCEL", + IsActive = true + } + ] + }; + + await _service.ImportJsonAsync(JsonSerializer.Serialize(package)); + + await using var verifyDb = await _dbFactory.CreateDbContextAsync(); + Assert.Single(verifyDb.CentralSalesRecords); + } + + [Fact] + public async Task ImportJsonAsync_Uses_Legacy_ConnectionKind_Fallbacks() + { + var packageJson = """ +{ + "includesSecrets": false, + "sourceSystemDefinitions": [ + { "code": "SAP", "displayName": "SAP", "isActive": true }, + { "code": "BI1", "displayName": "BI1", "isActive": true }, + { "code": "MANUAL_EXCEL", "displayName": "Manual Excel", "isActive": true } + ] +} +"""; + + await _service.ImportJsonAsync(packageJson); + + await using var db = await _dbFactory.CreateDbContextAsync(); + var systems = await db.SourceSystemDefinitions.OrderBy(x => x.Code).ToListAsync(); + + Assert.Equal(SourceSystemConnectionKinds.Hana, Assert.Single(systems, x => x.Code == "BI1").ConnectionKind); + Assert.Equal(SourceSystemConnectionKinds.ManualExcel, Assert.Single(systems, x => x.Code == "MANUAL_EXCEL").ConnectionKind); + Assert.Equal(SourceSystemConnectionKinds.SapGateway, Assert.Single(systems, x => x.Code == "SAP").ConnectionKind); + } + private async Task SeedExportConfigurationAsync() { await using var db = await _dbFactory.CreateDbContextAsync(); @@ -381,6 +471,41 @@ public class ConfigTransferServiceTests : IDisposable await db.SaveChangesAsync(); } + private static List BuildStandardSourceSystems() + { + return + [ + new ConfigTransferSourceSystemDefinition + { + Code = "SAP", + DisplayName = "SAP", + ConnectionKind = SourceSystemConnectionKinds.SapGateway, + IsActive = true + }, + new ConfigTransferSourceSystemDefinition + { + Code = "BI1", + DisplayName = "BI1", + ConnectionKind = SourceSystemConnectionKinds.Hana, + IsActive = true + }, + new ConfigTransferSourceSystemDefinition + { + Code = "SAGE", + DisplayName = "SAGE", + ConnectionKind = SourceSystemConnectionKinds.Hana, + IsActive = true + }, + new ConfigTransferSourceSystemDefinition + { + Code = "MANUAL_EXCEL", + DisplayName = "Manual Excel", + ConnectionKind = SourceSystemConnectionKinds.ManualExcel, + IsActive = true + } + ]; + } + private sealed class TestDbContextFactory : IDbContextFactory { private readonly DbContextOptions _options; diff --git a/TrafagSalesExporter/TrafagSalesExporter.Tests/DatabaseInitializationServiceTests.cs b/TrafagSalesExporter/TrafagSalesExporter.Tests/DatabaseInitializationServiceTests.cs new file mode 100644 index 0000000..950b889 --- /dev/null +++ b/TrafagSalesExporter/TrafagSalesExporter.Tests/DatabaseInitializationServiceTests.cs @@ -0,0 +1,196 @@ +using Microsoft.Data.Sqlite; +using Microsoft.EntityFrameworkCore; +using TrafagSalesExporter.Data; +using TrafagSalesExporter.Services; + +namespace TrafagSalesExporter.Tests; + +public class DatabaseInitializationServiceTests : IDisposable +{ + private readonly SqliteConnection _connection; + private readonly TestDbContextFactory _dbFactory; + + public DatabaseInitializationServiceTests() + { + _connection = new SqliteConnection("DataSource=:memory:"); + _connection.Open(); + + var options = new DbContextOptionsBuilder() + .UseSqlite(_connection) + .Options; + + using (var db = new AppDbContext(options)) + { + db.Database.EnsureCreated(); + } + + _dbFactory = new TestDbContextFactory(options); + } + + public void Dispose() + { + _connection.Dispose(); + } + + [Fact] + public async Task InitializeAsync_Migrates_Sites_Without_Shifting_Columns() + { + await PrepareLegacySitesTableAsync(); + + var service = new DatabaseInitializationService(_dbFactory); + await service.InitializeAsync(); + + await using var db = await _dbFactory.CreateDbContextAsync(); + var site = await db.Sites.SingleAsync(); + + Assert.Equal("override-user", site.UsernameOverride); + Assert.Equal("override-password", site.PasswordOverride); + Assert.Equal("C:\\exports\\ch", site.LocalExportFolderOverride); + Assert.Equal("C:\\imports\\manual.xlsx", site.ManualImportFilePath); + Assert.Equal("https://sap.example.local/service", site.SapServiceUrl); + Assert.Equal("A_Sales", site.SapEntitySet); + Assert.Equal("[\"A_Sales\",\"A_Orders\"]", site.SapEntitySetsCache); + Assert.Equal(new DateTime(2026, 4, 17, 7, 30, 0, DateTimeKind.Utc), site.ManualImportLastUploadedAtUtc?.ToUniversalTime()); + Assert.Equal(new DateTime(2026, 4, 17, 8, 0, 0, DateTimeKind.Utc), site.SapEntitySetsRefreshedAtUtc?.ToUniversalTime()); + } + + [Fact] + public async Task InitializeAsync_Repairs_Sites_ForeignKey_To_HanaServersRepairOld() + { + await PrepareBrokenHanaServerForeignKeyAsync(); + + var service = new DatabaseInitializationService(_dbFactory); + await service.InitializeAsync(); + + await using var db = await _dbFactory.CreateDbContextAsync(); + var site = await db.Sites.SingleAsync(); + Assert.Null(await Record.ExceptionAsync(() => db.SaveChangesAsync())); + Assert.Equal("schema_a", site.Schema); + + var tableSql = await ReadTableSqlAsync("Sites"); + Assert.Contains("REFERENCES HanaServers (Id)", tableSql, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("HanaServers_repair_old", tableSql, StringComparison.OrdinalIgnoreCase); + } + + private async Task PrepareLegacySitesTableAsync() + { + await using var db = await _dbFactory.CreateDbContextAsync(); + + await db.Database.ExecuteSqlRawAsync("DELETE FROM Sites;"); + await db.Database.ExecuteSqlRawAsync("DELETE FROM HanaServers;"); + await db.Database.ExecuteSqlRawAsync(""" +INSERT INTO HanaServers (Id, SourceSystem, Name, Host, Port, DatabaseName, UseSsl, ValidateCertificate, AdditionalParams) +VALUES (1, 'SAP', 'SAP', 'hana-host', 30015, 'DB1', 0, 0, ''); +"""); + + await db.Database.ExecuteSqlRawAsync("PRAGMA foreign_keys = OFF;"); + await db.Database.ExecuteSqlRawAsync("ALTER TABLE Sites RENAME TO Sites_current;"); + await db.Database.ExecuteSqlRawAsync(""" +CREATE TABLE Sites ( + Id INTEGER NOT NULL CONSTRAINT PK_Sites PRIMARY KEY AUTOINCREMENT, + HanaServerId INTEGER NOT NULL, + Schema TEXT NOT NULL, + TSC TEXT NOT NULL, + Land TEXT NOT NULL, + SourceSystem TEXT NULL, + UsernameOverride TEXT NULL, + PasswordOverride TEXT NULL, + LocalExportFolderOverride TEXT NULL, + ManualImportFilePath TEXT NULL, + ManualImportLastUploadedAtUtc TEXT NULL, + SapServiceUrl TEXT NULL, + SapEntitySet TEXT NULL, + SapEntitySetsCache TEXT NULL, + SapEntitySetsRefreshedAtUtc TEXT NULL, + IsActive INTEGER NOT NULL, + CONSTRAINT FK_Sites_HanaServers_HanaServerId FOREIGN KEY (HanaServerId) REFERENCES HanaServers (Id) +); +"""); + await db.Database.ExecuteSqlRawAsync(""" +INSERT INTO Sites ( + Id, HanaServerId, Schema, TSC, Land, SourceSystem, + UsernameOverride, PasswordOverride, LocalExportFolderOverride, ManualImportFilePath, + ManualImportLastUploadedAtUtc, SapServiceUrl, SapEntitySet, SapEntitySetsCache, + SapEntitySetsRefreshedAtUtc, IsActive +) +VALUES ( + 1, 1, 'schema_a', 'TRCH', 'Schweiz', 'SAP', + 'override-user', 'override-password', 'C:\exports\ch', 'C:\imports\manual.xlsx', + '2026-04-17 07:30:00Z', 'https://sap.example.local/service', 'A_Sales', '["A_Sales","A_Orders"]', + '2026-04-17 08:00:00Z', 1 +); +"""); + await db.Database.ExecuteSqlRawAsync("DROP TABLE Sites_current;"); + await db.Database.ExecuteSqlRawAsync("PRAGMA foreign_keys = ON;"); + } + + private async Task PrepareBrokenHanaServerForeignKeyAsync() + { + await using var db = await _dbFactory.CreateDbContextAsync(); + + await db.Database.ExecuteSqlRawAsync("DELETE FROM Sites;"); + await db.Database.ExecuteSqlRawAsync("DELETE FROM HanaServers;"); + await db.Database.ExecuteSqlRawAsync("PRAGMA foreign_keys = OFF;"); + await db.Database.ExecuteSqlRawAsync("ALTER TABLE Sites RENAME TO Sites_current;"); + await db.Database.ExecuteSqlRawAsync(""" +CREATE TABLE Sites ( + Id INTEGER NOT NULL CONSTRAINT PK_Sites PRIMARY KEY AUTOINCREMENT, + HanaServerId INTEGER NULL, + Schema TEXT NOT NULL, + TSC TEXT NOT NULL, + Land TEXT NOT NULL, + SourceSystem TEXT NOT NULL DEFAULT 'SAP', + UsernameOverride TEXT NOT NULL DEFAULT '', + PasswordOverride TEXT NOT NULL DEFAULT '', + LocalExportFolderOverride TEXT NOT NULL DEFAULT '', + ManualImportFilePath TEXT NOT NULL DEFAULT '', + ManualImportLastUploadedAtUtc TEXT NULL, + SapServiceUrl TEXT NOT NULL DEFAULT '', + SapEntitySet TEXT NOT NULL DEFAULT '', + SapEntitySetsCache TEXT NOT NULL DEFAULT '', + SapEntitySetsRefreshedAtUtc TEXT NULL, + IsActive INTEGER NOT NULL, + CONSTRAINT FK_Sites_HanaServers_HanaServerId FOREIGN KEY (HanaServerId) REFERENCES HanaServers_repair_old (Id) +); +"""); + await db.Database.ExecuteSqlRawAsync(""" +INSERT INTO Sites ( + Id, HanaServerId, Schema, TSC, Land, SourceSystem, + UsernameOverride, PasswordOverride, LocalExportFolderOverride, ManualImportFilePath, + ManualImportLastUploadedAtUtc, SapServiceUrl, SapEntitySet, SapEntitySetsCache, + SapEntitySetsRefreshedAtUtc, IsActive +) +VALUES ( + 1, NULL, 'schema_a', 'TRUK', 'England', 'MANUAL_EXCEL', + '', '', '', '', + NULL, '', '', '', + NULL, 1 +); +"""); + await db.Database.ExecuteSqlRawAsync("DROP TABLE Sites_current;"); + await db.Database.ExecuteSqlRawAsync("PRAGMA foreign_keys = ON;"); + } + + private async Task ReadTableSqlAsync(string tableName) + { + await using var command = _connection.CreateCommand(); + command.CommandText = "SELECT sql FROM sqlite_master WHERE type = 'table' AND name = $tableName;"; + command.Parameters.AddWithValue("$tableName", tableName); + return (await command.ExecuteScalarAsync())?.ToString() ?? string.Empty; + } + + private sealed class TestDbContextFactory : IDbContextFactory + { + private readonly DbContextOptions _options; + + public TestDbContextFactory(DbContextOptions options) + { + _options = options; + } + + public AppDbContext CreateDbContext() => new(_options); + + public Task CreateDbContextAsync(CancellationToken cancellationToken = default) + => Task.FromResult(new AppDbContext(_options)); + } +} diff --git a/TrafagSalesExporter/docs/architecture.mmd b/TrafagSalesExporter/docs/architecture.mmd new file mode 100644 index 0000000..6377030 --- /dev/null +++ b/TrafagSalesExporter/docs/architecture.mmd @@ -0,0 +1,66 @@ +flowchart TD + User[Benutzer] + UI[Blazor Server UI\nDashboard / Standorte / Settings / Cockpit / Logs] + Orch[ExportOrchestrationService] + SiteExport[SiteExportService] + Consolidated[ConsolidatedExportService] + Hana[HanaQueryService] + SapGateway[SapGatewayService] + SapComposition[SapCompositionService] + ManualExcel[ManualExcelImportService] + Transform[TransformationCatalog + RecordTransformationService] + Central[CentralSalesRecordService] + Cockpit[ManagementCockpitService] + Config[ConfigTransferService] + Init[DatabaseInitializationService] + Timer[TimerBackgroundService] + Logs[AppEventLogService + ExportLogService] + SQLite[(SQLite\ntrafag_exporter.db)] + HANA[(SAP HANA)] + SAP[(SAP Gateway / OData)] + LocalFS[(Lokales Dateisystem)] + SharePoint[(SharePoint)] + + User --> UI + UI --> Orch + UI --> Cockpit + UI --> Config + UI --> Init + + Timer --> Orch + Orch --> SiteExport + Orch --> Consolidated + + SiteExport --> Hana + SiteExport --> SapComposition + SiteExport --> ManualExcel + SiteExport --> Transform + SiteExport --> Central + SiteExport --> Logs + + SapComposition --> SapGateway + Consolidated --> LocalFS + Consolidated --> SharePoint + Cockpit --> SQLite + Cockpit --> LocalFS + Config --> SQLite + Init --> SQLite + Logs --> SQLite + Central --> SQLite + + Hana --> HANA + SapGateway --> SAP + ManualExcel --> LocalFS + ManualExcel --> SharePoint + SiteExport --> LocalFS + SiteExport --> SharePoint + SiteExport --> SQLite + UI --> SQLite + + classDef infra fill:#eef6ff,stroke:#336699,color:#102030; + classDef app fill:#f7f2ff,stroke:#6f42c1,color:#201030; + classDef ext fill:#eefaf0,stroke:#2d7a46,color:#102010; + + class UI,Orch,SiteExport,Consolidated,Hana,SapGateway,SapComposition,ManualExcel,Transform,Central,Cockpit,Config,Init,Timer,Logs app; + class SQLite,LocalFS infra; + class HANA,SAP,SharePoint,User ext; diff --git a/TrafagSalesExporter/docs/dataflow_export.mmd b/TrafagSalesExporter/docs/dataflow_export.mmd new file mode 100644 index 0000000..4d512a4 --- /dev/null +++ b/TrafagSalesExporter/docs/dataflow_export.mmd @@ -0,0 +1,41 @@ +flowchart TD + Start([Export gestartet]) + Decide{ConnectionKind} + + Start --> Decide + + Decide -->|HANA| H1[Zentrale HANA-Konfiguration laden] + H1 --> H2[Optionale Standort-Credentials anwenden] + H2 --> H3[Schema in HANA lesen] + H3 --> H4[SalesRecord-Liste erzeugen] + + Decide -->|SAP_GATEWAY| S1[Zentrale oder Override Service URL aufloesen] + S1 --> S2[SAP Quellen laden] + S2 --> S3[Joins anwenden] + S3 --> S4[Feldmappings auf SalesRecord] + + Decide -->|MANUAL_EXCEL| M1{ManualImportFilePath Typ} + M1 -->|lokal / UNC| M2[Excel lokal lesen] + M1 -->|SharePoint| M3[Excel via Graph temp herunterladen] + M3 --> M4[Excel aus Temp-Datei lesen] + M2 --> M5[SalesRecord-Liste erzeugen] + M4 --> M5 + + H4 --> T[Transformationen anwenden] + S4 --> T + M5 --> T + + T --> C1[CentralSalesRecords fuer Standort ersetzen] + C1 --> E1{Standortdatei erzeugen?} + + E1 -->|ja: HANA / SAP| E2[Excel-Datei lokal erzeugen] + E1 -->|nein: MANUAL_EXCEL| E3[Eingangsdatei bleibt Referenz] + + E2 --> SP{SharePoint konfiguriert?} + E3 --> SP + SP -->|ja| SP1[Datei nach SharePoint hochladen] + SP -->|nein| L1[Kein Upload] + + SP1 --> Log[ExportLog + AppEventLog schreiben] + L1 --> Log + Log --> Done([Export fertig]) diff --git a/TrafagSalesExporter/docs/er_model.mmd b/TrafagSalesExporter/docs/er_model.mmd new file mode 100644 index 0000000..6ff34ed --- /dev/null +++ b/TrafagSalesExporter/docs/er_model.mmd @@ -0,0 +1,184 @@ +erDiagram + HANA_SERVERS ||--o{ SITES : "default for HANA source system" + SITES ||--o{ CENTRAL_SALES_RECORDS : stores + SITES ||--o{ EXPORT_LOGS : writes + SITES ||--o{ APP_EVENT_LOGS : logs + SITES ||--o{ SAP_SOURCE_DEFINITIONS : configures + SITES ||--o{ SAP_JOIN_DEFINITIONS : configures + SITES ||--o{ SAP_FIELD_MAPPINGS : configures + + SOURCE_SYSTEM_DEFINITIONS { + int Id PK + string Code + string DisplayName + string ConnectionKind + bool IsActive + string CentralServiceUrl + string CentralUsername + string CentralPassword + } + + HANA_SERVERS { + int Id PK + string SourceSystem + string Name + string Host + int Port + string DatabaseName + bool UseSsl + bool ValidateCertificate + string AdditionalParams + } + + SITES { + int Id PK + int HanaServerId FK + string Schema + string TSC + string Land + string SourceSystem + string UsernameOverride + string PasswordOverride + string LocalExportFolderOverride + string ManualImportFilePath + datetime ManualImportLastUploadedAtUtc + string SapServiceUrl + string SapEntitySet + string SapEntitySetsCache + datetime SapEntitySetsRefreshedAtUtc + bool IsActive + } + + SHARE_POINT_CONFIGS { + int Id PK + string SiteUrl + string ExportFolder + string CentralExportFolder + string TenantId + string ClientId + string ClientSecret + } + + EXPORT_SETTINGS { + int Id PK + string DateFilter + int TimerHour + int TimerMinute + bool TimerEnabled + bool DebugLoggingEnabled + string LocalSiteExportFolder + string LocalConsolidatedExportFolder + } + + FIELD_TRANSFORMATION_RULES { + int Id PK + string SourceSystem + string SourceField + string TargetField + string TransformationType + string RuleScope + string Argument + int SortOrder + bool IsActive + } + + SAP_SOURCE_DEFINITIONS { + int Id PK + int SiteId FK + string Alias + string EntitySet + bool IsPrimary + bool IsActive + int SortOrder + } + + SAP_JOIN_DEFINITIONS { + int Id PK + int SiteId FK + string LeftAlias + string RightAlias + string LeftKeys + string RightKeys + string JoinType + bool IsActive + int SortOrder + } + + SAP_FIELD_MAPPINGS { + int Id PK + int SiteId FK + string TargetField + string SourceExpression + bool IsRequired + bool IsActive + int SortOrder + } + + CENTRAL_SALES_RECORDS { + int Id PK + datetime StoredAtUtc + int SiteId FK + string SourceSystem + datetime ExtractionDate + string Tsc + string InvoiceNumber + int PositionOnInvoice + string Material + string Name + string ProductGroup + decimal Quantity + string SupplierNumber + string SupplierName + string SupplierCountry + string CustomerNumber + string CustomerName + string CustomerCountry + string CustomerIndustry + decimal StandardCost + string StandardCostCurrency + string PurchaseOrderNumber + decimal SalesPriceValue + string SalesCurrency + string Incoterms2020 + string SalesResponsibleEmployee + datetime InvoiceDate + datetime OrderDate + string Land + string DocumentType + } + + EXPORT_LOGS { + int Id PK + datetime Timestamp + int SiteId FK + string Land + string TSC + string Status + int RowCount + string ErrorMessage + string FileName + string FilePath + double DurationSeconds + } + + APP_EVENT_LOGS { + int Id PK + datetime Timestamp + string Level + string Category + int SiteId FK + string Land + string Message + string Details + } + + CURRENCY_EXCHANGE_RATES { + int Id PK + string FromCurrency + string ToCurrency + decimal Rate + datetime ValidFrom + datetime ValidTo + string Notes + bool IsActive + } diff --git a/TrafagSalesExporter/erg.png b/TrafagSalesExporter/erg.png new file mode 100644 index 0000000000000000000000000000000000000000..c0dad7caa866f243b75e9725f499b2996a694aee GIT binary patch literal 74431 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

EnDNJ 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 LbT03#?W6w>S1AtL literal 0 HcmV?d00001 diff --git a/TrafagSalesExporter/manometer.png b/TrafagSalesExporter/manometer.png new file mode 100644 index 0000000000000000000000000000000000000000..7066efec0587b17b9d02f52ffad0447ebd451f11 GIT binary patch literal 178294 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%0AnPa2E-pudfRdjH31x_kp0O$ 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 literal 0 HcmV?d00001