diff --git a/GPW.CORE.UI/Components/DayHoriz.razor b/GPW.CORE.UI/Components/DayHoriz.razor index 15bc396..d969526 100644 --- a/GPW.CORE.UI/Components/DayHoriz.razor +++ b/GPW.CORE.UI/Components/DayHoriz.razor @@ -1,5 +1,4 @@ -@using CORE.Data.DTO - +
@@ -31,16 +30,15 @@ { NO data } - else if (DayDTO != null && DayDTO.ListRA != null) + else if (@DayDTO != null && @DayDTO.ListRA != null) {
- @foreach (var item in DayDTO.ListRA) + @foreach (var item in ListRegAtt()) { }
} - @**@ }
@@ -58,66 +56,4 @@
-@code { - [Parameter] - public DailyDataDTO? DayDTO { get; set; } - - [Parameter] - public int StartHour { get; set; } - - [Parameter] - public int EndHour { get; set; } - - [Parameter] - public bool IsTitle { get; set; } = false; - - private bool noData - { - get => DayDTO == null || DayDTO.ListRA == null || DayDTO.ListRA.Count == 0; - } - - private string TotLav - { - get - { - TimeSpan tSpan = TimeSpan.Zero; - double answ = 0; - if (DayDTO != null && DayDTO.TimbrExpl != null && DayDTO.TimbrExpl.HLav != null) - { - answ = (double)DayDTO.TimbrExpl.HLav; - tSpan = TimeSpan.FromHours(answ); - } - return $"{tSpan.Hours}h {tSpan.Minutes}'"; - } - } - - private string TotComm - { - get - { - TimeSpan tSpan = TimeSpan.Zero; - double answ = 0; - if (DayDTO != null && DayDTO.ListRA != null) - { - answ = (double)DayDTO.ListRA.Sum(x => x.OreTot); - tSpan = TimeSpan.FromHours(answ); - } - return $"{tSpan.Hours}h {tSpan.Minutes}'"; - } - } - - private int periodo - { - get - { - int answ=1; - if (DayDTO != null) - { - answ = EndHour - StartHour; - } - return answ; - } - - } -} diff --git a/GPW.CORE.UI/Components/DayHoriz.razor.cs b/GPW.CORE.UI/Components/DayHoriz.razor.cs new file mode 100644 index 0000000..f123dbb --- /dev/null +++ b/GPW.CORE.UI/Components/DayHoriz.razor.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using System.Net.Http; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.AspNetCore.Components.Forms; +using Microsoft.AspNetCore.Components.Routing; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.Web.Virtualization; +using Microsoft.JSInterop; +using GPW.CORE.UI; +using GPW.CORE.UI.Shared; +using GPW.CORE.Data.DTO; + +namespace GPW.CORE.UI.Components +{ + public partial class DayHoriz + { + [Parameter] + public DailyDataDTO? DayDTO { get; set; } + + [Parameter] + public int StartHour { get; set; } + + [Parameter] + public int EndHour { get; set; } + + [Parameter] + public bool IsTitle { get; set; } = false; + private bool noData { get => DayDTO == null || DayDTO.ListRA == null || DayDTO.ListRA.Count == 0; } + + private string TotLav + { + get + { + TimeSpan tSpan = TimeSpan.Zero; + double answ = 0; + if (DayDTO != null && DayDTO.TimbrExpl != null && DayDTO.TimbrExpl.HLav != null) + { + answ = (double)DayDTO.TimbrExpl.HLav; + tSpan = TimeSpan.FromHours(answ); + } + + return $"{tSpan.Hours}h {tSpan.Minutes}'"; + } + } + + private string TotComm + { + get + { + TimeSpan tSpan = TimeSpan.Zero; + double answ = 0; + if (DayDTO != null && DayDTO.ListRA != null) + { + answ = (double)DayDTO.ListRA.Sum(x => x.OreTot); + tSpan = TimeSpan.FromHours(answ); + } + + return $"{tSpan.Hours}h {tSpan.Minutes}'"; + } + } + + private int periodo + { + get + { + int answ = 1; + if (DayDTO != null) + { + answ = EndHour - StartHour; + } + + return answ; + } + } + + private List ListRegAtt() + { + // init + DateTime currHour = DayDTO.DtRif.AddHours(StartHour); + DateTime lastHour = DayDTO.DtRif.AddHours(EndHour); + List result = new List(); + // ciclo partendo dal primo evento ed aggiungendo eventuali periodi in testa / coda / intermedi + foreach (var item in DayDTO.ListRA) + { + // se evento > ora corrente --> aggiungo vuoto... + if (item.Inizio > currHour) + { + CORE.Data.DbModels.RegAttivitaModel? newItem = new CORE.Data.DbModels.RegAttivitaModel() + { + Inizio = currHour, + IdxFase = 0, + Descrizione="-", + Fine =item.Inizio, + OreTot=(decimal)item.Inizio.Subtract(currHour).TotalHours + }; + result.Add(newItem); + } + + // ...altrimenti parto con lui... + result.Add(item); + currHour = item.Fine; + } + // se non sono in fondo --> aggiungo! + if (currHour < lastHour) + { + CORE.Data.DbModels.RegAttivitaModel? newItem = new CORE.Data.DbModels.RegAttivitaModel() + { + Inizio = currHour, + IdxFase = 0, + Descrizione = "-", + Fine = lastHour, + OreTot = (decimal)lastHour.Subtract(currHour).TotalHours + }; + result.Add(newItem); + } + + return result; + } + } +} \ No newline at end of file diff --git a/GPW.CORE.UI/Components/RegAtt.razor b/GPW.CORE.UI/Components/RegAtt.razor index 78f566a..2873726 100644 --- a/GPW.CORE.UI/Components/RegAtt.razor +++ b/GPW.CORE.UI/Components/RegAtt.razor @@ -1,9 +1,19 @@ @using CORE.Data.DbModels -
-
@CurrData.Inizio
-
@CurrData.Fine
+
+
+ @if (@CurrData.IdxFase > 0) + { +
+ @widthPerc +
+
+
@CurrData.Inizio.ToString("HH:mm")
+
@CurrData.Fine.ToString("HH:mm")
+
+ } +
@@ -22,9 +32,19 @@ string answ = "1%"; if (CurrData != null) { - answ = $"{CurrData.OreTot/Periodo:P0}"; + answ = $"{CurrData.OreTot / Periodo:P0}"; } return answ; } } + + private string blockCss + { + get + { + string answ = CurrData.IdxFase == 0 ? "" : "table-info border border-info rounded"; + + return answ; + } + } } diff --git a/GPW.CORE.UI/Pages/Planner.razor b/GPW.CORE.UI/Pages/Planner.razor index 4d3d4db..2de5e13 100644 --- a/GPW.CORE.UI/Pages/Planner.razor +++ b/GPW.CORE.UI/Pages/Planner.razor @@ -61,7 +61,7 @@
-
+ @*
@@ -88,13 +88,12 @@ - @**@ }
-
+
*@ }