Files
Annamaria Sassi d3b2b9e329 Correzioni
2026-05-11 11:24:46 +02:00

166 lines
4.2 KiB
C#

using EgwCoreLib.Lux.Data.DbModel.Warehouse;
namespace Lux.UI.Components.Compo.Warehouse
{
public partial class MatReqGroup
{
#region Public Properties
[Parameter]
public List<MatReqModel> AllRecords { get; set; } = null!;
[Parameter]
public EventCallback<GrpSelect> EC_Updated { get; set; }
[Parameter]
public string GrpName { get; set; } = null!;
#endregion Public Properties
#region Public Classes
public class GrpSelect
{
#region Public Properties
public string GroupName { get; set; } = "";
public List<int> ListItemIds { get; set; } = new List<int>();
#endregion Public Properties
}
#endregion Public Classes
#region Protected Methods
protected string IconCheckSel(MatReqModel currRec)
{
return ListSelected.Contains(currRec.MatReqID) ? "text-primary" : "text-secondary opacity-25";
}
protected override Task OnParametersSetAsync()
{
isLoading = true;
totalCount = AllRecords.Count;
UpdateTable();
return base.OnParametersSetAsync();
}
protected Task ToggleUid(MatReqModel currRec)
{
if (ListSelected.Contains(currRec.MatReqID))
{
ListSelected.Remove(currRec.MatReqID);
}
else
{
ListSelected.Add(currRec.MatReqID);
}
// verifico se abilitare/togliere allselected...
if (ListSelected.Count == 0)
{
allSelected = false;
}
else if (ListSelected.Count == totalCount)
{
allSelected = true;
}
UpdateTable();
GrpSelect payload = new GrpSelect()
{
GroupName = GrpName,
ListItemIds = ListSelected
};
return EC_Updated.InvokeAsync(payload);
}
#endregion Protected Methods
#region Private Fields
private bool allSelected = false;
private int currPage = 1;
private bool isLoading = false;
private List<MatReqModel> ListRecords = new();
private List<int> ListSelected = new();
private int numRecord = 5;
private bool showDetail = false;
private int totalCount = 0;
#endregion Private Fields
#region Private Properties
private bool AllSelected
{
get => allSelected;
set
{
if (allSelected != value)
{
allSelected = value;
}
}
}
private string ToggleIcon
{
get => showDetail ? "bi-chevron-down" : "bi-chevron-right";
}
#endregion Private Properties
#region Private Methods
private void SaveNumRec(int newNum)
{
numRecord = newNum;
currPage = 1;
UpdateTable();
}
private void SavePage(int newNum)
{
currPage = newNum;
UpdateTable();
}
private Task ToggleAll()
{
allSelected = !allSelected;
if (allSelected)
{
ListSelected = AllRecords.Select(x => x.MatReqID).ToList();
}
else
{
ListSelected.Clear();
}
UpdateTable();
GrpSelect payload = new GrpSelect()
{
GroupName = GrpName,
ListItemIds = ListSelected
};
return EC_Updated.InvokeAsync(payload);
}
private void ToggleGruppo()
{
showDetail = !showDetail;
}
private void UpdateTable()
{
// fix paginazione
ListRecords = AllRecords
.OrderBy(x => x.ItemNav?.Description)
.Skip(numRecord * (currPage - 1))
.Take(numRecord)
.ToList();
isLoading = false;
}
#endregion Private Methods
}
}