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

@@ -30,12 +30,16 @@ public partial class Details : ComponentBase
private List<RecordDto> records = new();
private List<string> displayedColumns = new();
private double valueSum = 0;
private Dictionary<string, double> 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);