259 lines
14 KiB
Plaintext
259 lines
14 KiB
Plaintext
@if (isSendingData)
|
|
{
|
|
<ProgressDisplay Title="Salvataggio ed invio richiesta" CurrVal="@sendDataVal" NextVal="@sendDataNextVal" MaxVal="@sendDataMaxVal" ExpTimeMSec="8000"></ProgressDisplay>
|
|
}
|
|
|
|
<div class="card shadow">
|
|
<div class="card-header">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-0">
|
|
<h4>Elenco Timbrature</h4>
|
|
</div>
|
|
<div class="px-0">
|
|
<div class="d-flex align-middle">
|
|
<div class="px-1 py-2">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" @bind=@ShowInatt @bind:after=ForceReload>
|
|
<label class="form-check-label">Mostra Inattivi</label>
|
|
</div>
|
|
</div>
|
|
<div class="px-1 py-1">
|
|
<select @bind="@IdxDipSel" class="form-select form-select-sm" @bind:after=ForceReload>
|
|
<option value="0">--- Selezionare ---</option>
|
|
@foreach (var item in ListDipendenti)
|
|
{
|
|
<option value="@item.IdxDipendente">@($"{item.Cognome} {item.Nome}")</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="px-0">
|
|
<div class="d-flex">
|
|
<div class="px-1">
|
|
<PeriodoSel CurrPeriodo="@CurrPeriodo" E_PeriodoSel="@SavePeriodo"></PeriodoSel>
|
|
</div>
|
|
<div class="px-1 py-2">
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" @bind=@ShowWE @bind:after=ForceReload>
|
|
<label class="form-check-label">Mostra Week-End</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="px-0 d-flex">
|
|
<div class="px-0">
|
|
<button class="btn btn-sm btn-success" title="Ricalcola" @onclick="DoFullRecalc">∑ (h)</button>
|
|
</div>
|
|
<div class="px-0">
|
|
<button class="btn btn-sm btn-info mx-1" title="Export Ore" @onclick=SaveExpOre><i class="fa-solid fa-rotate"></i> Exp.Ore</button>
|
|
</div>
|
|
<div class="px-0">
|
|
<button class="btn btn-sm btn-primary" title="Export Commesse" @onclick=SaveExpCom><i class="fa-solid fa-rotate"></i> Exp.Com.</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body p-1 small">
|
|
@if (ListRecords == null || isLoading)
|
|
{
|
|
<EgwCoreLib.Razor.LoadingData></EgwCoreLib.Razor.LoadingData>
|
|
}
|
|
else if (totalCount == 0)
|
|
{
|
|
<div class="alert alert-info">Nessun record trovato</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="row">
|
|
<div class="col-8">
|
|
<table class="table table-striped table-sm text-start">
|
|
<thead>
|
|
<tr class="">
|
|
<th>
|
|
<button class="btn btn-info btn-sm" @onclick="ForceReload"><i class="fa-solid fa-rotate"></i></button>
|
|
|
|
</th>
|
|
<th>Dipendente <Sorter ParamName="Dipendente" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
|
|
<th>Data <Sorter ParamName="DataLav" IsAsc="@sortAsc" CurrParam="@sortField" sortReq="SortRequested"></Sorter></th>
|
|
<th class="text-center">IN</th>
|
|
<th class="text-center">OUT</th>
|
|
<th class="text-center">IN</th>
|
|
<th class="text-center">OUT</th>
|
|
<th class="text-center">IN</th>
|
|
<th class="text-center">OUT</th>
|
|
<th class="text-center">IN</th>
|
|
<th class="text-center">OUT</th>
|
|
<th class="text-end">H Lav</th>
|
|
<th class="text-end">H Giu</th>
|
|
<th class="text-end">T/C19</th>
|
|
<th class="text-end">Tag</th>
|
|
<th class="text-end">Chk</th>
|
|
<th class="text-end">H Com</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var item in ListRecords)
|
|
{
|
|
<tr class="align-middle lh-1 @CheckSel(item)">
|
|
<td>
|
|
<button class="btn btn-info btn-sm" @onclick="() => DoSelect(item)"><i class="fa-solid fa-search"></i></button>
|
|
</td>
|
|
<td class="fs-5">
|
|
@item.CognomeNome
|
|
</td>
|
|
<td>
|
|
<div>
|
|
@($"{item.DataLav:yyyy.MM.dd}")
|
|
</div>
|
|
<div>
|
|
@($"{item.DataLav:dddd}")
|
|
|
|
</div>
|
|
</td>
|
|
<td class="text-center text-success">
|
|
@if (item.entrata_1 != null)
|
|
{
|
|
@($"{item.entrata_1:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-primary">
|
|
@if (item.uscita_1 != null)
|
|
{
|
|
@($"{item.uscita_1:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-success">
|
|
@if (item.entrata_2 != null)
|
|
{
|
|
@($"{item.entrata_2:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-primary">
|
|
@if (item.uscita_2 != null)
|
|
{
|
|
@($"{item.uscita_2:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-success">
|
|
@if (item.entrata_3 != null)
|
|
{
|
|
@($"{item.entrata_3:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-primary">
|
|
@if (item.uscita_3 != null)
|
|
{
|
|
@($"{item.uscita_3:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-success">
|
|
@if (item.entrata_4 != null)
|
|
{
|
|
@($"{item.entrata_4:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-center text-primary">
|
|
@if (item.uscita_4 != null)
|
|
{
|
|
@($"{item.uscita_4:HH:mm}")
|
|
}
|
|
</td>
|
|
<td class="text-end fs-4 fw-bold">
|
|
@($"{item.h_lav:N2}")
|
|
</td>
|
|
<td class="text-end">
|
|
@if (item.h_giust > 0)
|
|
{
|
|
@($"{item.h_giust:N2}")
|
|
}
|
|
</td>
|
|
<td class="text-end">
|
|
@if (item.TempRil < 34)
|
|
{
|
|
<i class="fa-solid fa-temperature-low text-secondary"></i>
|
|
}
|
|
else if (item.TempRil < 37)
|
|
{
|
|
<i class="fa-solid fa-temperature-low text-success"></i>
|
|
}
|
|
else if (item.TempRil < (decimal)37.5)
|
|
{
|
|
<i class="fa-solid fa-temperature-low text-warning"></i>
|
|
}
|
|
else
|
|
{
|
|
<i class="fa-solid fa-temperature-low text-danger"></i>
|
|
}
|
|
</td>
|
|
<td class="text-end">
|
|
@if (!item.TagIsActive)
|
|
{
|
|
<span class="striked text-secondary">@item.CodTag</span>
|
|
}
|
|
else
|
|
{
|
|
@item.CodTag
|
|
}
|
|
</td>
|
|
<td class="text-end fw-bold">
|
|
@if (!item.isOkTim)
|
|
{
|
|
<span class="text-danger" tooltip="Errore Entrata/Uscita: non corrispondono.">T</span>
|
|
}
|
|
@if (!item.isOkApp)
|
|
{
|
|
<span class="text-danger" tooltip="Errore: timbrature non approvate.">A</span>
|
|
}
|
|
@if (item.isOkLav == 0)
|
|
{
|
|
<span class="text-danger" tooltip="Errore: manca copertura ore ordinarie.">O</span>
|
|
}
|
|
@if (!string.IsNullOrEmpty(item.chkFunCod))
|
|
{
|
|
<span tooltip="@item.chkFunRes">@item.minMpp</span>
|
|
}
|
|
@if (item.isOk != 0)
|
|
{
|
|
<span class="text-success" tooltip="Tutto OK.">Ok</span>
|
|
}
|
|
</td>
|
|
<td class="text-end fs-4 fw-bold">
|
|
@if (item.okLAvCom != 0)
|
|
{
|
|
<span class="text-dark">@($"{item.h_com:N2}")</span>
|
|
}
|
|
else
|
|
{
|
|
<span class="text-warning">@($"{item.h_com:N2}")</span>
|
|
}
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="col-4">
|
|
@if (SelRecord != null)
|
|
{
|
|
<div class="py-1">
|
|
<TimbList ListRecord="@ListTimbDay" EnableDelete="true" EnableEdit="true" EC_ReqUpdate="TimbUpdate" EC_ReqDelete="TimbDelete"></TimbList>
|
|
</div>
|
|
<div class="py-3">
|
|
<GiustList ListRecord="@ListGiustDay" ListGiust="@ListGiust" EnableEdit="true" EnableDelete="true" EC_ReqUpdate="GiustUpdate" EC_ReqDelete="GiustDelete" EC_ReqAddNew="GiustAddNew" EC_ReqCancel="GiustCancel"></GiustList>
|
|
</div>
|
|
<div class="py-1">
|
|
<RAList ListRecord="@ListRA" EnableDelete="false" EnableEdit="false"></RAList>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
</div>
|
|
<div class="card-footer">
|
|
<EgwCoreLib.Razor.DataPager PageSize="@numRecord" currPage="@currPage" numRecordChanged="SetNumRec" numPageChanged="SetPage" totalCount="@totalCount" showLoading="@isLoading" PageSizeList="@PageSizeListSpec"></EgwCoreLib.Razor.DataPager>
|
|
</div>
|
|
</div>
|
|
|