diff --git a/DiunaBI.UI.Shared/Pages/Layers/Details.razor b/DiunaBI.UI.Shared/Pages/Layers/Details.razor
index d8a0f33..15f5941 100644
--- a/DiunaBI.UI.Shared/Pages/Layers/Details.razor
+++ b/DiunaBI.UI.Shared/Pages/Layers/Details.razor
@@ -162,22 +162,25 @@
}
- Value1 sum
- @foreach (var column in displayedColumns)
+ @if (showSummary)
{
- @if (column == "Value1")
+ @totalSum.ToString("N2")
+ @foreach (var column in displayedColumns)
{
- @valueSum.ToString("N2")
+ @if (column.StartsWith("Value") && columnSums.ContainsKey(column))
+ {
+ @columnSums[column].ToString("N2")
+ }
+ else
+ {
+
+ }
}
- else
+ @if (isEditable)
{
}
}
- @if (isEditable)
- {
-
- }
@@ -230,7 +233,9 @@
}
-
+ @if (showHistoryTab)
+ {
+
@if (isLoadingHistory)
{
@@ -354,6 +359,7 @@
}
}
+ }
}
diff --git a/DiunaBI.UI.Shared/Pages/Layers/Details.razor.cs b/DiunaBI.UI.Shared/Pages/Layers/Details.razor.cs
index 16171df..74fdb3a 100644
--- a/DiunaBI.UI.Shared/Pages/Layers/Details.razor.cs
+++ b/DiunaBI.UI.Shared/Pages/Layers/Details.razor.cs
@@ -30,12 +30,16 @@ public partial class Details : ComponentBase
private List records = new();
private List displayedColumns = new();
private double valueSum = 0;
+ private Dictionary columnSums = new();
+ private double totalSum = 0;
private bool isLoading = false;
private Guid? editingRecordId = null;
private RecordDto? editingRecord = null;
private bool isAddingNew = false;
private RecordDto newRecord = new();
private bool isEditable => layer?.Type == LayerType.Dictionary || layer?.Type == LayerType.Administration;
+ private bool showHistoryTab => layer?.Type == LayerType.Administration || layer?.Type == LayerType.Dictionary;
+ private bool showSummary => layer?.Type == LayerType.Import || layer?.Type == LayerType.Processed;
// History tab state
private bool isLoadingHistory = false;
@@ -79,7 +83,7 @@ public partial class Details : ComponentBase
{
records = layer.Records.OrderBy(r => r.Code).ToList();
CalculateDisplayedColumns();
- CalculateValueSum();
+ CalculateColumnSums();
BuildUserCache();
}
}
@@ -118,11 +122,25 @@ public partial class Details : ComponentBase
}
}
- private void CalculateValueSum()
+ private void CalculateColumnSums()
{
- valueSum = records
- .Where(r => r.Value1.HasValue)
- .Sum(r => r.Value1!.Value);
+ columnSums.Clear();
+ totalSum = 0;
+
+ // Calculate sum for each displayed value column
+ foreach (var columnName in displayedColumns.Where(c => c.StartsWith("Value")))
+ {
+ var sum = records
+ .Select(r => GetRecordValueByName(r, columnName))
+ .Where(v => v.HasValue)
+ .Sum(v => v!.Value);
+
+ columnSums[columnName] = sum;
+ totalSum += sum;
+ }
+
+ // Keep valueSum for backward compatibility (Value1 sum)
+ valueSum = columnSums.ContainsKey("Value1") ? columnSums["Value1"] : 0;
}
private string GetRecordValue(RecordDto record, string columnName)
@@ -246,7 +264,7 @@ public partial class Details : ComponentBase
{
records.Remove(record);
CalculateDisplayedColumns();
- CalculateValueSum();
+ CalculateColumnSums();
Snackbar.Add("Record deleted successfully", Severity.Success);
}
else
@@ -297,7 +315,7 @@ public partial class Details : ComponentBase
{
records.Add(created);
CalculateDisplayedColumns();
- CalculateValueSum();
+ CalculateColumnSums();
isAddingNew = false;
newRecord = new();
Snackbar.Add("Record added successfully", Severity.Success);