LayerDetail improvement
All checks were successful
Build Docker Images / test (map[name:Morska plugin_project:DiunaBI.Plugins.Morska]) (push) Successful in 1m27s
Build Docker Images / test (map[name:PedrolloPL plugin_project:DiunaBI.Plugins.PedrolloPL]) (push) Successful in 1m29s
Build Docker Images / build-and-push (map[image_suffix:morska name:Morska plugin_project:DiunaBI.Plugins.Morska]) (push) Successful in 1m39s
Build Docker Images / build-and-push (map[image_suffix:pedrollopl name:PedrolloPL plugin_project:DiunaBI.Plugins.PedrolloPL]) (push) Successful in 1m37s

This commit is contained in:
2025-12-05 23:49:16 +01:00
parent 595076033b
commit 8713ed9686
2 changed files with 41 additions and 17 deletions

View File

@@ -162,12 +162,14 @@
} }
</RowTemplate> </RowTemplate>
<FooterContent> <FooterContent>
<MudTd><b>Value1 sum</b></MudTd> @if (showSummary)
{
<MudTd><b>@totalSum.ToString("N2")</b></MudTd>
@foreach (var column in displayedColumns) @foreach (var column in displayedColumns)
{ {
@if (column == "Value1") @if (column.StartsWith("Value") && columnSums.ContainsKey(column))
{ {
<MudTd><b>@valueSum.ToString("N2")</b></MudTd> <MudTd><b>@columnSums[column].ToString("N2")</b></MudTd>
} }
else else
{ {
@@ -178,6 +180,7 @@
{ {
<MudTd></MudTd> <MudTd></MudTd>
} }
}
</FooterContent> </FooterContent>
</MudTable> </MudTable>
@@ -230,6 +233,8 @@
} }
</MudTabPanel> </MudTabPanel>
@if (showHistoryTab)
{
<MudTabPanel Text="History" Icon="@Icons.Material.Filled.History"> <MudTabPanel Text="History" Icon="@Icons.Material.Filled.History">
@if (isLoadingHistory) @if (isLoadingHistory)
{ {
@@ -354,6 +359,7 @@
} }
} }
</MudTabPanel> </MudTabPanel>
}
</MudTabs> </MudTabs>
} }
</MudCardContent> </MudCardContent>

View File

@@ -30,12 +30,16 @@ public partial class Details : ComponentBase
private List<RecordDto> records = new(); private List<RecordDto> records = new();
private List<string> displayedColumns = new(); private List<string> displayedColumns = new();
private double valueSum = 0; private double valueSum = 0;
private Dictionary<string, double> columnSums = new();
private double totalSum = 0;
private bool isLoading = false; private bool isLoading = false;
private Guid? editingRecordId = null; private Guid? editingRecordId = null;
private RecordDto? editingRecord = null; private RecordDto? editingRecord = null;
private bool isAddingNew = false; private bool isAddingNew = false;
private RecordDto newRecord = new(); private RecordDto newRecord = new();
private bool isEditable => layer?.Type == LayerType.Dictionary || layer?.Type == LayerType.Administration; 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 // History tab state
private bool isLoadingHistory = false; private bool isLoadingHistory = false;
@@ -79,7 +83,7 @@ public partial class Details : ComponentBase
{ {
records = layer.Records.OrderBy(r => r.Code).ToList(); records = layer.Records.OrderBy(r => r.Code).ToList();
CalculateDisplayedColumns(); CalculateDisplayedColumns();
CalculateValueSum(); CalculateColumnSums();
BuildUserCache(); BuildUserCache();
} }
} }
@@ -118,11 +122,25 @@ public partial class Details : ComponentBase
} }
} }
private void CalculateValueSum() private void CalculateColumnSums()
{ {
valueSum = records columnSums.Clear();
.Where(r => r.Value1.HasValue) totalSum = 0;
.Sum(r => r.Value1!.Value);
// 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) private string GetRecordValue(RecordDto record, string columnName)
@@ -246,7 +264,7 @@ public partial class Details : ComponentBase
{ {
records.Remove(record); records.Remove(record);
CalculateDisplayedColumns(); CalculateDisplayedColumns();
CalculateValueSum(); CalculateColumnSums();
Snackbar.Add("Record deleted successfully", Severity.Success); Snackbar.Add("Record deleted successfully", Severity.Success);
} }
else else
@@ -297,7 +315,7 @@ public partial class Details : ComponentBase
{ {
records.Add(created); records.Add(created);
CalculateDisplayedColumns(); CalculateDisplayedColumns();
CalculateValueSum(); CalculateColumnSums();
isAddingNew = false; isAddingNew = false;
newRecord = new(); newRecord = new();
Snackbar.Add("Record added successfully", Severity.Success); Snackbar.Add("Record added successfully", Severity.Success);