166 lines
4.2 KiB
C#
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
|
|
}
|
|
} |