@page "/FastRec" @attribute [Authorize] @using GPW.CORE.UI @using GPW.CORE.UI.Components @using CORE.Data.DbModels @using CORE.Data.DTO @using UI.Data @inject IJSRuntime JSRuntime @inject GpwDataService GDataServ @inject MessageService AppMServ

Fast Recording

@if (@TipoSearch == 0) { } else if (@TipoSearch == 1) { }
@if (idxFaseSel > 0) { } else {

Attesa selezione

Selezionare una Fase per attivare la registrazione attività
}
@foreach (var currItem in ListRecords) { }
@code { private List ListFasi = new List(); private List ListRecords = new List(); private int _tipoSearch = 0; public int TipoSearch { get { return _tipoSearch; } set { if (!_tipoSearch.Equals(value)) { _tipoSearch = value; idxFaseSel = 0; } } } protected int startHour = 7; protected int endHour = 21; protected bool isLoading = false; private int idxFaseSel = 0; private int idxDipendente { get => AppMServ.IdxDipendente; } private void SelFase(int idxFase) { idxFaseSel = idxFase; } private void RecDone(bool fatto) { idxFaseSel = 0; } private async Task ReloadData() { isLoading = true; DateTime oggi = DateTime.Today; var rawData=await GDataServ.DailyDetails(idxDipendente, oggi, oggi.AddDays(1)); ListRecords = rawData.Where(x=> x.DtRif==oggi).ToList(); await Task.Delay(100); checkHourRange(); await Task.Delay(100); isLoading = false; } protected override async Task OnInitializedAsync() { await ReloadData(); } private void checkHourRange() { int minHour = 9; int maxHour = 18; if (ListRecords != null) { int roundMin = 15; // per ogni giornata foreach (var giornata in ListRecords) { var minRecTimb = giornata.ListTimbr .Where(x => x.Entrata == true) .OrderBy(x => x.DataOra) .FirstOrDefault(); if (minRecTimb != null) { if (minHour > minRecTimb.DataOra.AddMinutes(-roundMin).Hour) { minHour = minRecTimb.DataOra.AddMinutes(-roundMin).Hour; } } var minRecRa = giornata.ListRA .OrderBy(x => x.Inizio) .FirstOrDefault(); if (minRecRa != null) { if (minHour > minRecRa.Inizio.AddMinutes(-roundMin).Hour) { minHour = minRecRa.Inizio.AddMinutes(-roundMin).Hour; } } var maxRecTimb = giornata.ListTimbr .Where(x => x.Entrata == false) .OrderByDescending(x => x.DataOra) .FirstOrDefault(); if (maxRecTimb != null) { if (maxHour < maxRecTimb.DataOra.AddMinutes(roundMin).Hour + 1) { maxHour = maxRecTimb.DataOra.AddMinutes(roundMin).Hour + 1; } } var maxRecRa = giornata.ListRA .OrderByDescending(x => x.Fine) .FirstOrDefault(); if (maxRecRa != null) { if (maxHour < maxRecRa.Fine.AddMinutes(roundMin).Hour + 1) { maxHour = maxRecRa.Fine.AddMinutes(roundMin).Hour + 1; } } } } startHour = minHour; endHour = maxHour; } }