Files
GPW/GPW.CORE.UI/Components/WeekStat.razor
T
2022-01-11 15:37:27 +01:00

165 lines
4.4 KiB
Plaintext

@using GPW.CORE.Data
<div class="card text-center">
<div class="card-header p-0">
<button class="btn btn-block @selStyle text-light py-1" @onclick="reportSelect">
<div class="d-flex justify-content-between">
<div class="py-0 px-1">
<sub>@currData?.Inizio.ToString("ddd dd.MM")</sub>
</div>
<div class="py-0 px-1">
W <b>@currData?.WeekNumber.ToString("00")</b><sub>/@currData?.Anno</sub>
</div>
<div class="py-0 px-1">
<sub>@currData?.Fine.ToString("ddd dd.MM")</sub>
</div>
</div>
</button>
</div>
<div class="card-body p-1">
<div class="row">
<div class="col-6 pr-1">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text"><i class="far fa-calendar-alt"></i></span>
</div>
<span class="form-control disabled text-dark" title="Ore Lavorate"><b>@currData?.SumOreLav.ToString("N2")</b></span>
</div>
</div>
<div class="col-6 pl-1">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text"><i class="far fa-hourglass"></i></span>
</div>
<span class="form-control disabled text-info" title="Ore Caricate"><b>@currData?.SumOreComm.ToString("N2")</b></span>
</div>
</div>
<div class="col-12">
<div class="progress" style="height: .75em;">
<div class="progress-bar bg-dark" style="@styleLav"></div>
</div>
<div class="progress" style="height: .75em;">
<div class="progress-bar bg-info" style="@styleCom"></div>
</div>
</div>
</div>
</div>
</div>
@code {
public class WeekArg
{
public int Year { get; set; }
public int Week { get; set; }
}
[Parameter]
public CORE.Data.DTO.WeekStatDTO? currData { get; set; }
[Parameter]
public int WeekSel { get; set; } = 0;
[Parameter]
public EventCallback<WeekData> weekSelected { get; set; }
protected int currWeekNum
{
get
{
int answ = 0;
if (currData != null)
{
answ = currData.WeekNumber;
}
return answ;
}
}
protected int currYearNum
{
get
{
int answ = 0;
if (currData != null)
{
answ = currData.Anno;
}
return answ;
}
}
protected void reportSelect()
{
weekSelected.InvokeAsync(new WeekData(currYearNum, currWeekNum));
}
protected string selStyle
{
get
{
string currCss = "bg-secondary";
if (currData != null)
{
currCss = currData.WeekNumber == WeekSel ? "btn-primary" : "btn-secondary";
}
return currCss;
}
}
protected double denom
{
get
{
double answ = 40;
// cerco massimo tra ore lav e commesse...
if (currData.SumOreLav > answ)
{
answ = currData.SumOreLav;
}
if (currData.SumOreComm > answ)
{
answ = currData.SumOreComm;
}
return answ;
}
}
protected string styleLav
{
get
{
double valPerc = 0;
if (currData != null)
{
try
{
valPerc = currData.SumOreLav / denom;
}
catch
{ }
}
return $"width: {valPerc:P0};";
}
}
protected string styleCom
{
get
{
double valPerc = 0;
if (currData != null)
{
try
{
valPerc = currData.SumOreComm / denom;
}
catch
{ }
}
return $"width: {valPerc:P0};";
}
}
}