@* Progress Steps *@ @* Step 1: Customer OR Category Selection *@ @if (currentStep == 1) {
@* Mode Toggle *@
@if (!isInventoryMode) { @* Customer Selection Mode *@

Kunde auswählen

@if (isSearching) {
Suche...
} else if (searchResults.Count > 0) {
@foreach (var customer in searchResults) {
@customer.FullName @if (!string.IsNullOrEmpty(customer.Company)) { @customer.Company } @customer.CustomerNumber @if (customer.Vehicles.Any(v => v.IsActive)) { @string.Join(", ", customer.Vehicles.Where(v => v.IsActive).Select(v => v.ShortName)) }
@customer.TireStacks.Count(ts => ts.Status == TireStackStatus.Stored) Stapel
}
} else if (!string.IsNullOrEmpty(customerSearch)) {

Kein Kunde gefunden

} @if (showNewCustomerForm) {

Neuer Kunde

Fahrzeug

} @* Vehicle Selection for existing customer *@ @if (selectedCustomer != null && !showNewCustomerForm) {

Fahrzeug auswählen

@if (customerVehicles.Count == 0) {

Noch kein Fahrzeug hinterlegt.

} else {
@foreach (var vehicle in customerVehicles) {
@vehicle.DisplayName @if (vehicle.IsPrimary) { Hauptfahrzeug }
@(vehicle.TireStacks?.Count(ts => ts.Status == TireStackStatus.Stored) ?? 0) Stapel eingelagert
}
} @* Add new vehicle button *@ @if (showAddVehicleForm) {

Neues Fahrzeug

}
}
} else { @* Inventory/Category Selection Mode *@

Kategorie auswählen

Für Neuware/Lieferungen die ins Lager aufgenommen werden sollen.

@if (categories.Count == 0) {

Keine Kategorien vorhanden

} else {
@foreach (var category in categories) {
@if (category.Type == CatalogItemType.Felgen && !string.IsNullOrEmpty(category.PictureFileName)) {
@category.Name
} else {
@if (category.Type == CatalogItemType.Felgen) { 🛞 } else { @(category.Season == TireSeason.Sommer ? "☀️" : category.Season == TireSeason.Winter ? "❄️" : "🔄") }
}
@category.Name @category.DisplayDetails @(category.Type == CatalogItemType.Felgen ? "Felgen" : "Reifen")
}
} @if (showNewCategoryForm) {

Neue Kategorie

@* Category Type Toggle *@
@if (newCategory.Type == CatalogItemType.Felgen) { } else { }
@if (newCategory.Type == CatalogItemType.Reifen) {
} @if (newCategory.Type == CatalogItemType.Felgen) {
@if (categoryImagePreview != null) {
Vorschau
} else { }
}
}
}
} @* Step 2: Tire Stack Information *@ @if (currentStep == 2) {
@if (isInventoryMode) { Kategorie: @selectedCategory?.Name } else { Kunde: @selectedCustomer?.FullName @if (selectedVehicle != null) { 🚗 @selectedVehicle.DisplayName } }

@(isFelgenCategory ? "Felgen erfassen" : "Reifenstapel erfassen")

@(isFelgenCategory ? "🔩" : "🛞") @if (isInventoryMode) { Stückzahl: @if (useCustomItemCount) { @tireStack.ItemCount } else { @TireStack.TiresPerStack Stück (Standard) } } else { Ein Stapel = @TireStack.TiresPerStack Reifen }
@if (isInventoryMode && useCustomItemCount) {
} @if (!isInventoryMode) { @* QR report scan *@
@if (pendingReport == null) {
Profiltiefen-Report (Launch TTS01) per QR-Code übernehmen
} else {
Report wird mit dem neuen Stapel gespeichert
@ReportSummaryFragment(pendingReport)
}
} @* Tire/Felgen Form *@
@if (!isFelgenCategory) {
}
@if (isFelgenCategory) { } else { @if (tireSizeFromVehicle && !string.IsNullOrEmpty(tireStack.TireSize)) { 🚗 Vom Fahrzeug übernommen } }
@if (!isFelgenCategory) {
@if (tireStack.WithRims) {
}
} else {
} @* Collapsible Details Section *@
@if (showDetailsExpanded) {
@if (!isFelgenCategory) {
} else {
}
}
@if (!string.IsNullOrEmpty(errorMessage)) {
@errorMessage
}
} @* Step 3: Storage Location *@ @if (currentStep == 3) {
@if (isInventoryMode) {
Kategorie: @selectedCategory?.Name
} else {
Kunde: @selectedCustomer?.FullName
@if (selectedVehicle != null) {
Fahrzeug: @selectedVehicle.DisplayName
} }
@(isFelgenCategory ? "Felgen" : "Reifenstapel"): @(isInventoryMode && useCustomItemCount ? tireStack.ItemCount : TireStack.TiresPerStack) @(isFelgenCategory ? "Felgen" : "Reifen") @(isFelgenCategory ? "" : $"| {tireStack.Season}")

Lagerplatz auswählen

@if (selectedLocation != null) {

📋 Zusammenfassung

@if (isInventoryMode) {
Kategorie 📦 @selectedCategory?.Name
} else {
Kunde 👤 @selectedCustomer?.FullName
@if (selectedVehicle != null) {
Fahrzeug 🚗 @selectedVehicle.DisplayName
} }
@(isFelgenCategory ? "Felgen" : "Reifen") @(isInventoryMode && useCustomItemCount ? tireStack.ItemCount : TireStack.TiresPerStack) Stück @if (!isFelgenCategory) { @(tireStack.Season == TireSeason.Sommer ? "☀️" : tireStack.Season == TireSeason.Winter ? "❄️" : "🔄") @tireStack.Season }
@if (!string.IsNullOrEmpty(tireStack.TireSize)) {
Größe @tireStack.TireSize @(tireStack.WithRims && !isFelgenCategory ? "| mit Felgen" : "")
} @if (!string.IsNullOrEmpty(tireStack.TireBrand) || !string.IsNullOrEmpty(tireStack.TireModel)) {
Marke @tireStack.TireBrand @tireStack.TireModel
}
Lagerplatz
} @if (locationSelectorCollapsed && selectedLocation != null) { } else {
@* Area & Row Filter combined *@
@* Location Grid *@ @if (filteredLocations.Count == 0) {

Keine freien Lagerplätze verfügbar

Lagerplätze verwalten
} else { @foreach (var areaGroup in filteredLocations.GroupBy(l => l.Area).OrderBy(g => (int)g.Key)) {

@(areaGroup.Key == AreaType.Lager ? "🏭" : "🔧") @areaGroup.Key.GetDisplayName()

@foreach (var rowGroup in areaGroup.GroupBy(l => l.Row).OrderBy(g => g.Key)) {
Reihe @rowGroup.Key
@foreach (var loc in rowGroup.OrderBy(l => l.Position).ThenBy(l => l.SlotNumber)) { }
}
} }
} @if (!string.IsNullOrEmpty(errorMessage)) {
@errorMessage
}
} @* Step 4: Confirmation *@ @if (currentStep == 4) {
✓

Erfolgreich eingelagert!

@createdTireStack?.TicketNumber @if (isInventoryMode) { Lagerbestand }
@if (isInventoryMode) {
Kategorie: @selectedCategory?.Name
} else {
Kunde: @selectedCustomer?.FullName
Fahrzeug: @(selectedVehicle?.DisplayName ?? "-")
}
@(isFelgenCategory ? "Felgen:" : "Reifenstapel:") @(createdTireStack?.ItemCount ?? TireStack.TiresPerStack) @(isFelgenCategory ? "Felgen" : "Reifen")
Saison: @createdTireStack?.Season
@if (!string.IsNullOrEmpty(createdTireStack?.TireSize)) {
Größe: @createdTireStack.TireSize
} @if (!string.IsNullOrEmpty(createdTireStack?.TireBrand)) {
Marke: @createdTireStack.TireBrand @createdTireStack.TireModel
}
Lagerplatz: @if (selectedLocation != null) { }
Eingelagert am: @createdTireStack?.StoredAt.ToLocalTime().ToString("dd.MM.yyyy HH:mm")
Zur Übersicht
}