Files
lux/Lux.UI/Components/Compo/Planner/EstPorDetail.razor
T

87 lines
3.4 KiB
Plaintext

@using EgwCoreLib.Lux.Data.DbModel.Sales
@using WebWindowComplex.Compo
@* <ul class="list-group mb-2 shadow">
<li class="list-group-item @currCss d-flex justify-content-between align-items-center">
<div class="px-0 fw-bold">@CurrPOR.OrderRowUID <button class="btn btn-info btn-sm" @onclick="ToggleDetail"><i class="fa-solid @CssDetail"></i></button></div>
<div class="px-0">
@if (balEnabled)
{
<button class="btn btn-sm btn-dark" @onclick="() => DoBalance(CurrPOR.OrderRowID)" title="Invia a Stima"><i class="fa-solid fa-angles-right"></i></button>
}
else
{
<button class="btn btn-sm btn-secondary disabled" title="Invia a Stima"><i class="fa-solid fa-angles-right"></i></button>
}
</div>
</li>
@if (ShowDetail)
{
<li class="list-group-item d-flex justify-content-between align-items-center small">
<div class="px-0" title="# pezzi totale"><i class="fa-solid fa-folder-tree"></i> @CurrPOR.ProdItemQtyTot Parts</div>
<div class="px-0" title="Tempo massimo stimato">Time <i class="fa-solid fa-clock"></i> @FormatEstTime(CurrPOR.ProdEstimTime)</div>
</li>
}
</ul> *@
<div class="card mb-1 shadow">
<div class="card-header py-1">
<div class="@currCss d-flex justify-content-between align-items-center">
<div class="px-0 fw-bold">@CurrPOR.OrderRowUID <button class="btn btn-info btn-sm" @onclick="ToggleDetail"><i class="fa-solid @CssDetail"></i></button></div>
<div class="px-0">
@if (balEnabled)
{
<button class="btn btn-sm btn-dark" @onclick="() => DoBalance(CurrPOR.OrderRowID)" title="Invia a Stima"><i class="fa-solid fa-angles-right"></i></button>
}
else
{
<button class="btn btn-sm btn-secondary disabled" title="Invia a Stima"><i class="fa-solid fa-angles-right"></i></button>
}
</div>
</div>
</div>
@if (ShowDetail)
{
<div class="card-body py-1">
<div class="list-group-item d-flex justify-content-between align-items-center small">
<div class="px-0" title="# pezzi totale"><i class="fa-solid fa-folder-tree"></i> @CurrPOR.ProdItemQtyTot Parts</div>
<div class="px-0" title="Tempo massimo stimato">Time <i class="fa-solid fa-clock"></i> @FormatEstTime(CurrPOR.ProdEstimTime)</div>
</div>
</div>
}
</div>
@code {
[Parameter]
public OrderRowModel CurrPOR { get; set; } = null!;
[Parameter]
public bool ShowDetail { get; set; } = false;
private string CssDetail => ShowDetail ? "fa-chevron-up" : "fa-chevron-down";
private void ToggleDetail()
{
ShowDetail = !ShowDetail;
}
protected string currCss => CurrPOR.OrderRowState == Enums.OrderStates.Estimated ? "active" : "list-group-item-primary";
protected bool balEnabled => CurrPOR.OrderRowState == Enums.OrderStates.Estimated;
[Parameter]
public EventCallback<int> EC_DoBalance { get; set; }
protected async Task DoBalance(int OrderRowID)
{
await EC_DoBalance.InvokeAsync(OrderRowID);
}
protected string FormatEstTime(decimal totSeconds)
{
var tSpan = TimeSpan.FromSeconds((double)totSeconds);
string answ = EgwCoreLib.Lux.Core.DateTimeUtils.FormatDateTime(tSpan);
return answ;
}
}