Files
Ai/TrafagSalesExporter/lastchange.md
T

20 KiB

Last Change 2026-05-04

Finance-Abgrenzung: Antworten Andreas 2026-05-07

Fachliche Vorgabe nach Rueckmeldung:

  • Net Sales Actuals werden in Hauswaehrung gerechnet.
  • Massgebend ist der Nettofakturawert.
  • Umrechnung nach CHF erfolgt mit Budgetkursen, nicht mit Tageskursen.
  • Umrechnung/Summierung soll pro Artikel bzw. Belegposition erfolgen.
  • Indien wird in INR betrachtet.
  • Italien wird in Hauswaehrung betrachtet; Intercompany-/2nd-party-Abgrenzung wird separat angeschaut.
  • UK wird in GBP betrachtet.
  • Gutschriften haben eigene Rechnungsnummern/Rechnungspositionen und sollen ueber Artikelnummern/Positionen behandelt werden.
  • Intercompany soll im zweiten Schritt als 2nd-party/3rd-party-Klassifikation pflegbar werden.
  • Genannte 2nd-party/Intercompany-Indikatoren: Trafag, Magnetic Sense/Magnets Sense, Gesellschaft fuer Sensorik; Nummern/Uebersetzungen koennen je Land abweichen.

Budgetkurse 2025 fuer CHF-Ausweis:

USD/CHF = 0.85
EUR/CHF = 0.95
GBP/CHF = 1.13
CHF/INR = 90.91
CHF/CZK = 25.64
PLN/CHF = 0.22
CHF/JPY = 156.25

Umsetzung in der FinanceProbe:

  • Auswahl der Ist-Variante bevorzugt nun Nettofakturawert Hauswaehrung (DocTotal - VatSum).
  • Sales Price/Value bleibt als Vergleichsvariante sichtbar.
  • Zusaetzlicher Kandidat Nettofakturawert Hauswaehrung -> CHF Budget 2025.
  • Referenz in der Oberflaeche wird als check.xlsx Sollwert bezeichnet, nicht mehr als fuehrende Power-BI-Referenz.
  • Intercompany-Anzeige wurde fachlich als 2nd-party/IC beschriftet; dauerhafte Pflege als eigenes Auswahlfeld ist noch offen.

Finance Probe / Sales-Abgrenzung

Ziel der heutigen Arbeit:

  • separate kleine Pruef-GUI fuer Finanz-/Sales-Abgrenzungen bauen
  • moeglichst viel Logik aus dem Hauptprogramm wiederverwenden
  • verschiedene Summenlogiken pro Land nebeneinander sichtbar machen
  • gegen check.xlsx vergleichen

Wichtiges fachliches Verstaendnis nach Klaerung im Chat:

  • check.xlsx kommt von Rhino und enthaelt die Soll-Zahlen von Andreas.
  • Aus den Landessystemen kommt der Ist-Wert.
  • Power BI soll in der fachlichen Kommunikation nicht als fuehrende Referenz genannt werden.
  • Ziel ist nicht, zufaellig die passendste technische Variante zu nehmen, sondern je Land/System die fachlich korrekte Abgrenzungslogik zu klaeren.

Commit

Rollback-Commit fuer die Finance-Probe wurde erstellt:

15dec06 Add finance reconciliation probe

Dieser Commit enthaelt gezielt:

  • Services/FinanceReconciliationService.cs
  • Tools/FinanceProbe/FinanceProbe.csproj
  • Tools/FinanceProbe/Program.cs
  • DI-Registrierung in Program.cs
  • Dashboard nutzt den ausgelagerten Finance-Service
  • TrafagSalesExporter.csproj schliesst Tools/** aus dem Hauptprojekt aus
  • TrafagSalesExporter.sln enthaelt das neue Tool-Projekt

Andere bereits vorhandene Worktree-Aenderungen wurden nicht mitcommitted.

Neues Tool

Neues separates Probe-GUI:

Tools/FinanceProbe

Start:

dotnet run --project Tools\FinanceProbe\FinanceProbe.csproj --urls http://localhost:55417

URL:

http://localhost:55417/finance

Aktueller Start im Chat:

  • Probe-GUI wurde auf localhost:55417 gestartet
  • HTTP 200 bestaetigt

Hinweis Netzwerk:

  • Start mit localhost ist nur lokal auf dem Laptop erreichbar.
  • Andere im Trafag-Netz koennen es so normalerweise nicht ueber Laptop-IP oeffnen.
  • Fuer Netzwerkzugriff waere http://0.0.0.0:55417 noetig.
  • Probe-GUI hat aktuell keine Authentifizierung, daher nicht unkontrolliert im Netzwerk freigeben.

FinanceReconciliationService

Neue wiederverwendbare Logik:

Services/FinanceReconciliationService.cs

Interface:

IFinanceReconciliationService

Aktuelle Funktion:

Task<List<NetSalesReferenceRow>> BuildNetSalesReferenceRowsAsync(int year = 2025)

Logik:

  • liest CentralSalesRecords
  • filtert Jahr ueber InvoiceDate, fallback ExtractionDate
  • gruppiert pro Referenz-Key/Land
  • berechnet Kandidaten:
    • SalesPriceValue
    • DocTotalFC - VatSumFC
    • DocTotal - VatSum
  • Belegkopfwerte werden vor Summierung dedupliziert:
    • bevorzugt TSC + DocumentType + DocumentEntry
    • fallback TSC + DocumentType + InvoiceNumber
  • erkennt aktuell Intercompany nur pragmatisch fuer IT/TRIT anhand bekannter Kunden
  • liefert pro Kandidat Wert, Waehrung, IC-Wert, Differenzen

FinanceProbe Darstellung

Die Tabelle zeigt aktuell:

  • Status
  • Firma
  • gewaehlte Abgrenzung
  • Ist-Waehrung
  • Ist 2025
  • Referenz-Waehrung
  • Referenz
  • Excel LC
  • Excel CHF
  • Excel Power BI
  • Excel Status
  • Differenz
  • Differenz ohne IC
  • Waehrung
  • Zeilen
  • Varianten aufklappbar

Wichtig:

  • Die Bezeichnung Power BI ist in der Probe-Oberflaeche noch sichtbar, weil check.xlsx diese Spalte enthaelt.
  • Fachlich soll in Kommunikation gegen Andreas aber check.xlsx / Soll-Zahl genannt werden, nicht Power BI als fuehrende Referenz.
  • Eine sinnvolle naechste UI-Bereinigung waere, die Spalte/Labels in der Probe auf Excel Sollwert oder Rhino Sollwert umzubenennen.

Probe-Output vom 2026-05-04 09:55

Zusammenfassung:

8 Standorte
4 OK
1 Pruefen
3 Keine Daten
Excel-Referenzen gelesen: 17

Befunde:

CH

  • Keine Ist-Daten
  • keine sichtbare Soll-Zahl

DE

  • Keine Ist-Zeilen aus Systemdaten
  • Soll/LC aus Excel vorhanden:
    • Referenz ca. 3'635'923
    • Excel LC 3'635'922.91
    • Excel CHF 3'407'000.00

Offen:

  • Quelle fuer DE klaeren
  • evtl. MANUAL_EXCEL oder noch nicht exportiert

ES

  • Keine Ist-Zeilen aus Systemdaten
  • Soll/LC aus Excel vorhanden:
    • Referenz ca. 3'102'334
    • Excel LC 3'102'333.61
    • Excel CHF 2'907'000.00

Offen:

  • Quelle fuer ES klaeren
  • evtl. MANUAL_EXCEL oder noch nicht exportiert

FR

  • Status OK
  • gewaehlte Abgrenzung: Sales Price/Value
  • Ist-Waehrung: EUR
  • Ist: 1'471'218.44
  • Soll/Referenz: 1'471'218.00
  • Differenz: 0.44
  • Zeilen: 1649

Befund:

  • FR passt praktisch exakt mit Sales Price/Value in EUR.

Offene Frage an Andreas:

  • Ist Sales Price/Value in EUR fuer FR fachlich korrekt?

IN

  • Status OK
  • gewaehlte Abgrenzung: Sales Price/Value
  • Ist-Waehrungen: CHF, EUR, GBP, INR, JPY, USD
  • Ist: 750'936'591.38
  • Soll/Referenz: 750'936'591.00
  • Differenz: 0.38
  • Zeilen: 4000

Befund:

  • IN passt rechnerisch fast exakt, aber Waehrungen sind gemischt.

Offene Frage an Andreas:

  • Ist diese gemischte Summe fachlich korrekt?
  • Oder muss nach CHF umgerechnet bzw. nach Waehrung getrennt werden?

IT

  • Status Pruefen
  • gewaehlte Abgrenzung: DocTotal - VatSum
  • Ist-Waehrung: EUR
  • Ist: 11'866'896.53
  • Soll/Referenz LC: 7'669'840.00
  • Differenz: 4'197'056.53
  • Differenz ohne IC: 3'733.67
  • Zeilen: 15883

Befund:

  • IT liegt ohne IC-Abzug stark daneben.
  • Mit erkanntem IC-Abzug ist die Differenz sehr klein.

Offene Frage an Andreas:

  • Soll IT mit Intercompany-Abzug gerechnet werden?
  • Falls ja: nach welchen Kunden/Kriterien erkennt Finance Intercompany?

UK

  • Status OK
  • gewaehlte Abgrenzung: Sales Price/Value
  • Ist-Waehrung: USD
  • Ist: 3'749'865.33
  • Soll/Referenz: 3'749'865.00
  • Differenz: 0.33
  • Zeilen: 942

Befund:

  • UK passt praktisch exakt mit Sales Price/Value in USD.

Offene Frage an Andreas:

  • Ist USD fuer UK korrekt?
  • Oder muss fuer offizielles Reporting nach CHF umgerechnet werden?

US

  • Status OK
  • gewaehlte Abgrenzung: Sales Price/Value
  • Ist-Waehrung: USD
  • Ist: 3'749'865.33
  • Soll/Referenz: 3'749'865.00
  • Differenz: 0.33
  • Zeilen: 942

Befund:

  • US zeigt denselben Ist-Wert wie UK.
  • Das wirkt auffaellig und sollte fachlich/technisch geprueft werden.

Offene Frage:

  • Welche Quelle und Logik ist fuer US korrekt?
  • Ist US im aktuellen System richtig zugeordnet?

Word-Datei fuer Andreas

Erstellt:

FINANZ_OFFENE_FRAGEN_ANDREAS.docx

Inhalt:

  • kurze Mail an Andreas
  • check.xlsx als Soll-Zahl von Andreas/Rhino formuliert
  • Power BI fachlich nicht als Referenz genannt
  • bisherige Befunde pro Land:
    • FR
    • IN
    • IT
    • UK
    • US
    • DE / ES
  • offene Fragen zu:
    • Waehrung und CHF-Umrechnung
    • Umsatzdefinition
    • Periodenabgrenzung
    • Gutschriften/Storno
    • Intercompany
    • Entscheid-Tabelle pro Land

Markdown-Datei fuer Andreas

Erstellt/angepasst:

FINANZ_FRAGEN_ANDREAS.md

Aktuelle Formulierung:

  • check.xlsx kommt von Rhino und enthaelt Soll-Zahlen von Andreas.
  • Landessysteme liefern Ist-Werte.
  • offen ist, welche fachliche Logik pro Land/System zur Soll-Zahl fuehren soll.
  • Power BI ist nicht mehr als fuehrende Referenz formuliert.

Verifikation

Ausgefuehrt:

dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal

Ergebnis:

  • Hauptprojekt baut erfolgreich
  • FinanceProbe baut erfolgreich
  • Tests erfolgreich
  • 48/48 Tests gruen

Bekannte Warnungen:

  • NU1900 im Probe-Build, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten
  • bekannte MudBlazor Analyzer-Warnungen zu Dense

Offene sinnvolle naechste Schritte

  1. In der Probe-UI Power BI-Labels fachlich bereinigen:
    • z. B. Excel Sollwert / Rhino Sollwert
  2. Andreas' Antworten in eine Konfiguration ueberfuehren:
    • Land/System
    • Summenlogik
    • System-Waehrung
    • CHF-Umrechnung ja/nein
    • Periodendatum
    • IC-Regel
  3. DE/ES Quelle klaeren:
    • aktuell keine Ist-Daten
  4. US/UK Doppelwert pruefen:
    • US zeigt denselben Ist-Wert wie UK
  5. IT Intercompany-Regel fachlich bestaetigen
  6. Wenn Regeln bestaetigt sind:
    • Finance-Probe erweitert anzeigen
    • spaeter produktiv ins Hauptprogramm uebernehmen

Nachtrag 2026-05-04: Excel-Spaltenmapper fuer manuelle Land-Excel-Dateien

Ausloeser:

  • Deutschland hat ein eigenes Excel-Beispiel geliefert.
  • Das Format entspricht nicht dem bisherigen Standard-Excel-Import.
  • Ziel war, nicht fuer jedes Land statischen Spezialcode zu schreiben, sondern die Spaltenzuordnung konfigurierbar zu machen.

Beispielhafte deutsche Spalten:

  • Export-Datum
  • Firma
  • Belegnummer
  • Position
  • ArtikelBezeichnung
  • Warengruppen-Bezeichnung
  • Anz. VE
  • Lieferanten Nummer
  • Name Lieferant
  • Land Lieferant
  • AdressNummer-Kunde
  • Name Kunde
  • Land Kunde
  • Branche
  • EinstandsPreis
  • Währung
  • BestellNummer
  • NettoPreisEinzelX
  • NettoPreisGesamtX
  • Versandbedingung
  • AdressNummer_V
  • Belegdatum-Rechnung
  • BelegDatum Auftrag
  • ArtikelNummer

Wichtige fachliche/technische Interpretation fuer Deutschland:

  • NettoPreisGesamtX wird als SalesPriceValue verwendet.
  • Währung wird fuer SalesCurrency, DocumentCurrency, CompanyCurrency und StandardCostCurrency verwendet.
  • Belegdatum-Rechnung wird als InvoiceDate verwendet.
  • BelegDatum Auftrag wird als OrderDate verwendet.
  • ArtikelNummer wird als Material verwendet.
  • Kommentar-/Info-Zeilen ohne echte Position und ohne Betrag werden beim Import ignoriert.

Neue Datenstruktur

Neue Tabelle / neues Model:

ManualExcelColumnMappings
Models/ManualExcelColumnMapping.cs

Felder:

  • SiteId
  • TargetField
  • SourceHeader
  • IsRequired
  • IsActive
  • SortOrder

Zweck:

  • Pro Standort kann festgelegt werden, welche Excel-Spalte auf welches internes SalesRecord-Feld gemappt wird.
  • Konstanten sind moeglich, wenn SourceHeader mit = beginnt, z. B. =Manual Excel.

Geaenderte Hauptlogik

Geaendert:

Services/ManualExcelImportService.cs

Neue Logik:

  • Beim manuellen Excel-Import werden zuerst aktive ManualExcelColumnMappings des Standorts geladen.
  • Wenn Mapping-Zeilen vorhanden sind, wird dieses Mapping verwendet.
  • Wenn kein Mapping vorhanden ist, laeuft weiterhin die bisherige statische Standarderkennung.
  • Damit bleiben bestehende manuelle Excel-Imports abwaertskompatibel.

Wichtig:

  • Der Mapper ersetzt nicht die fachliche Finanzlogik.
  • Er sorgt nur dafuer, dass fremde Excel-Spalten korrekt in die internen Felder geschrieben werden.
  • Welche Summe spaeter fuer Finance gilt, muss weiterhin fachlich entschieden werden.

Geaenderte Standort-UI

Geaendert:

Components/Pages/Standorte.razor
Services/StandortePageService.cs

In der Standortbearbeitung fuer manuelle Excel-Standorte gibt es neu:

  • Bereich Excel-Spaltenmapping
  • Button Spalten aus Excel laden
  • Button Auto-Match
  • Button Mapping hinzufuegen
  • Tabelle mit:
    • Zielfeld
    • Excel-Spalte / Konstante
    • Pflicht
    • Aktiv
    • Loeschen

Auto-Match erkennt aktuell u. a. die deutschen Spalten und schlaegt passende Zuordnungen vor.

Config-Export / Import

Geaendert:

Services/ConfigTransferService.cs
Models/ConfigTransferPackage.cs

Neu:

  • ManualExcelColumnMappings werden im Konfigurationspaket mit exportiert.
  • Beim Import werden die Mapping-Zeilen wieder hergestellt.

Damit kann die Konfiguration spaeter zwischen Umgebungen mitgenommen werden.

Datenbank-Schema

Geaendert:

Data/AppDbContext.cs
Services/DatabaseInitializationService.SchemaSql.cs
Services/DatabaseSchemaMaintenanceService.cs

Neu:

  • DbSet<ManualExcelColumnMapping>
  • CREATE TABLE ManualExcelColumnMappings
  • Schema-Wartung legt die Tabelle nachtraeglich an, falls sie in einer bestehenden DB fehlt.
  • Beim Loeschen eines Standorts werden dessen manuelle Excel-Mappings mit geloescht.

Deutschland lokal eingerichtet

Am 2026-05-04 wurde Deutschland in der lokalen Datenbank direkt ohne UI eingerichtet.

Lokale DB:

C:\Users\koi\source\repos\Ai\TrafagSalesExporter\trafag_exporter.db

Gefundener/konfigurierter Standort:

Id=8
TSC=TRDE
Land=Deutschland
SourceSystem=MANUAL_EXCEL

Aktive Mapping-Zeilen:

26

Konkrete Zuordnung fuer DE:

ExtractionDate           <- Export-Datum
InvoiceNumber            <- Belegnummer
PositionOnInvoice        <- Position
Material                 <- ArtikelNummer
Name                     <- ArtikelBezeichnung
ProductGroup             <- Warengruppen-Bezeichnung
Quantity                 <- Anz. VE
SupplierNumber           <- Lieferanten Nummer
SupplierName             <- Name Lieferant
SupplierCountry          <- Land Lieferant
CustomerNumber           <- AdressNummer-Kunde
CustomerName             <- Name Kunde
CustomerCountry          <- Land Kunde
CustomerIndustry         <- Branche
StandardCost             <- EinstandsPreis
StandardCostCurrency     <- Währung
PurchaseOrderNumber      <- BestellNummer
SalesPriceValue          <- NettoPreisGesamtX
SalesCurrency            <- Währung
DocumentCurrency         <- Währung
CompanyCurrency          <- Währung
Incoterms2020            <- Versandbedingung
SalesResponsibleEmployee <- AdressNummer_V
InvoiceDate              <- Belegdatum-Rechnung
OrderDate                <- BelegDatum Auftrag
DocumentType             <- =Manual Excel

Wichtig fuer Rollback/Umzug:

  • Diese DE-Einrichtung wurde direkt in trafag_exporter.db gespeichert.
  • Die DB-Aenderung ist kein Git-Commit-Inhalt, weil SQLite-Datenbankdaten normalerweise nicht sauber versioniert werden.
  • Der Code fuer den Mapper ist aktuell im Worktree vorhanden, aber noch nicht committed.
  • Wenn die DB zurueckgerollt oder neu erstellt wird, muss das DE-Mapping erneut ueber die UI, Config-Import oder ein Hilfsskript eingerichtet werden.

Tests

Ergaenzt:

TrafagSalesExporter.Tests/ManualExcelImportServiceTests.cs

Neuer Test:

ReadSalesRecordsAsync_Uses_Configured_Manual_Excel_Mapping_For_German_Headers

Der Test prueft:

  • deutsches Excel-Headerformat
  • Kommentarzeile ohne echte Position wird ignoriert
  • echte Belegposition wird importiert
  • NettoPreisGesamtX mit Schweizer Tausenderzeichen wird korrekt als Dezimalzahl gelesen
  • Waehrung EUR wird in Sales-/Document-/Company-Currency uebernommen
  • Rechnungsdatum und Auftragsdatum werden korrekt gelesen

Letzter bekannter Teststand nach Mapper-Arbeit:

dotnet build .\TrafagSalesExporter.csproj --verbosity minimal
dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal --no-restore

Ergebnis:

  • Hauptprojekt baut erfolgreich
  • FinanceProbe baut erfolgreich
  • Tests erfolgreich
  • 49/49 Tests gruen

Bekannte Warnung:

  • NU1900, weil NuGet-Sicherheitsdaten wegen Netzwerk/nuget.org nicht geladen werden konnten

Aktueller Laufstand

Die Haupt-App war nach der DE-Konfiguration erreichbar:

http://localhost:55416/standorte
HTTP 200

Hinweis:

  • Der Browser kann geschlossen sein, waehrend der Serverprozess weiterlaeuft.
  • Wenn ein Build wegen gesperrter Dateien fehlschlaegt, zuerst den laufenden TrafagSalesExporter-Prozess beenden.

Noch offen nach Excel-Spaltenmapper

  1. Mapper-Code committen, sobald der aktuelle Stand als Rollback-Punkt gesichert werden soll.
  2. In der Standort-UI Deutschland oeffnen und visuell pruefen, ob die 26 Mapping-Zeilen angezeigt werden.
  3. Mit echtem DE-Excel einen Importlauf testen.
  4. Danach Finance-Probe erneut pruefen:
    • ob DE nicht mehr Keine Daten ist
    • ob SalesPriceValue gegen Soll aus check.xlsx passt
  5. Falls weitere Laender eigene Excel-Formate liefern:
    • nicht statischen Code bauen
    • neues Mapping pro Standort pflegen
  6. Klaeren, ob DE fachlich NettoPreisGesamtX in EUR als Ist-Wert verwenden soll oder ob CHF-Umrechnung noetig ist.

Nachtrag 2026-05-05: FinanceProbe Ampel, Spanien v2 und Deutschland-Beispielfile

FinanceProbe Management-Ansicht

Das Testprogramm Tools/FinanceProbe wurde fuer das Finance-Meeting erweitert.

URL lokal:

http://localhost:55417/finance

Neue Ansicht:

  • Meeting Ampel 2025
  • Ampel pro Land:
    • Gruen: Zahl passt rechnerisch gegen Referenz
    • Gelb: Differenz oder fachliche Abgrenzung offen
    • Grau: keine belastbaren Importdaten
  • Anzeige pro Land:
    • Ist
    • Soll / Referenz
    • Differenz
    • passender technischer Wert
    • Waehrung / CHF-Hinweis
    • kurze fachliche Begruendung

Wichtig zur Waehrung:

  • Wenn Quelle CHF liefert, kann CHF direkt gezeigt werden.
  • Wenn Quelle EUR, USD, GBP, INR usw. liefert, ist es Mandanten-/Originalwaehrung.
  • CHF-Ausweis braucht dann eine separate FX-Regel bzw. offiziellen Umrechnungskurs.

Spanien v2 im Testprogramm

Spanien wird im FinanceProbe nicht mehr nur als normaler Zentralimport betrachtet.

Direkter CSV-Check:

sagespain/v2/Spain_Sales_2025.csv

Gelesene Werte:

  • Zeilen: 4'341
  • Ist 2025 / SalesPriceValue: 3'082'320.18
  • Waehrung: EUR
  • Soll aus check.xlsx: 3'102'333.61
  • Differenz: -20'013.43

Status:

  • Ampel: Gelb / Pruefen
  • Grund: Export technisch lesbar, aber Differenz zu check.xlsx offen.

Offen fuer Spanien:

  • korrekte Datumsabgrenzung (FechaFactura vs. Alternativen)
  • Serien REG, LAT, PRO, REC
  • Behandlung von Gutschriften / REC
  • offizielle Sage-Auswertung mit identischem Filter zur Sollzahl

Deutschland-Beispielfile

Neues File im Projektordner:

DE_Beispiel_Export_Daten.xlsx

Hinweis:

  • Der Benutzer hatte zuerst .xls genannt, vorhanden ist .xlsx.
  • Das File ist als Beispielfile zu behandeln, nicht als finale Jahresdatei.

Technischer Check:

  • relevante Spalte: NettoPreisGesamtX
  • Mapping-Ziel: SalesPriceValue
  • Betragszeilen: 2
  • Summe NettoPreisGesamtX: 8'290.70
  • Waehrung: EUR

Einbau im FinanceProbe:

  • eigener Abschnitt Germany Excel sample check
  • zeigt Datei, Zeilenzahl, Summe und Referenz aus check.xlsx
  • markiert explizit, dass die Differenz nur Sample-Charakter hat
  • in der Management-Ampel wird Deutschland weiter nicht als OK gewertet, solange kein finaler DE-Jahresexport/import vorliegt

Fachliche Interpretation fuer Deutschland:

  • Das Mapping funktioniert technisch.
  • NettoPreisGesamtX kann als Kandidat fuer SalesPriceValue gelesen werden.
  • Das Beispielfile darf nicht gegen die Jahresreferenz 3'635'922.91 als finale Ist-Zahl verwendet werden.
  • Fuer das Meeting ist die Aussage:
    • Deutschland-Format ist technisch verstanden.
    • Finale DE-Zahl fehlt noch.
    • Benoetigt wird ein vollstaendiger DE-Jahresfile 2025 oder ein bestaetigter Importlauf.

Verifikation 2026-05-05

Ausgefuehrt:

dotnet build .\Tools\FinanceProbe\FinanceProbe.csproj --verbosity minimal --no-restore
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --verbosity minimal --no-restore

Ergebnis:

  • FinanceProbe Build erfolgreich
  • Tests erfolgreich
  • 50/50 Tests gruen
  • Web UI liefert HTTP 200
  • FinanceProbe enthaelt:
    • Meeting Ampel 2025
    • Spain CSV direct check
    • Germany Excel sample check