Aggiunta filtro x sel reparto

This commit is contained in:
Samuele Locatelli
2022-11-24 11:59:06 +01:00
parent d99f343967
commit d866ba3d95
11 changed files with 249 additions and 14 deletions
+8 -1
View File
@@ -76,6 +76,12 @@ namespace MP.SPEC.Components
#endregion Public Methods
#region Protected Fields
protected string selAzienda = "*";
#endregion Protected Fields
#region Protected Properties
[Inject]
@@ -219,7 +225,8 @@ namespace MP.SPEC.Components
{
ListGruppiFase = await MDService.ElencoGruppiFase();
ListStati = await MDService.AnagStatiComm();
ListArticoli = await MDService.ArticoliGetSearch(100000, "BAGLIETTO", "");
selAzienda = await MDService.tryGetConfig("AZIENDA");
ListArticoli = await MDService.ArticoliGetSearch(100000, selAzienda, "");
ListMacchine = await MDService.MacchineGetAll();
await reloadData(true);
}
+89
View File
@@ -0,0 +1,89 @@
<div class="offcanvas offcanvas-end" tabindex="-1" id="paramsFilterExample" aria-labelledby="paramsFilterExampleLabel">
<div class="offcanvas-header">
<h3 class="offcanvas-title" id="paramsFilterExampleLabel"><b>FILTRI</b></h3>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
<div>
Seleziona i filtri per:
</div>
</div>
<div>
<div class="small mt-2">
<label class="px-2" for="macchina" title="Selezionare inizio periodo">Reparto</label>
</div>
<div class="input-group px-2">
<label class="input-group-text" for="macchina" title="Selezionare la macchina da visualizzare"><i class="fa-solid fa-hard-drive"></i></label>
<select @bind="@selReparto" id="macchina" class="form-select" title="Selezionare la macchina da visualizzare">
<option value="*">--- Tutti ---</option>
@if (ListGruppiFase != null)
{
foreach (var item in ListGruppiFase)
{
<option value="@item.CodGruppo">@item.DescrGruppo</option>
}
}
</select>
</div>
</div>
<div>
<div class="small mt-2">
<label class="px-2" for="macchina" title="Selezionare inizio periodo">Macchina</label>
</div>
<div class="input-group px-2">
<label class="input-group-text" for="macchina" title="Selezionare la macchina da visualizzare"><i class="fa-solid fa-hard-drive"></i></label>
<select @bind="@selMacchina" id="macchina" class="form-select" title="Selezionare la macchina da visualizzare">
<option value="*">--- Tutti ---</option>
@if (ListMacchine != null)
{
foreach (var item in ListMacchine)
{
<option value="@item">@item</option>
}
}
</select>
</div>
</div>
<div>
<div class="small mt-2">
<label class="px-2" for="fase" title="Selezionare inizio periodo">Fase</label>
</div>
<div class="input-group px-2">
<label class="input-group-text" for="fase" title="Selezionare la fase da visualizzare"><i class="fa-solid fa-screwdriver-wrench"></i></label>
<select @bind="@selStato" id="fase" class="form-select" title="Selezionare la fase da visualizzare">
<option value="*">--- Tutti ---</option>
@if (ListStati != null)
{
foreach (var item in ListStati)
{
<option value="@item.value">@item.label</option>
}
}
</select>
</div>
</div>
@if (!isActive)
{
<div class="small mt-2">
<label class="px-2" for="dtMin" title="Selezionare inizio periodo">Inizio Periodo</label>
</div>
<div class="px-2 input-group">
<label class="input-group-text" for="dtMin" title="Selezionare inizio periodo"><i class="fa-regular fa-calendar-minus"></i></label>
<input class="form-control" @bind="@selDtStart" id="dtMin" type="datetime-local" title="Data minima eventi da visualizzare">
</div>
<div class="small mt-2">
<label class="px-2" for="dtMax" title="Selezionare fine periodo">Fine Periodo</label>
</div>
<div class="px-2 input-group">
<label class="input-group-text" for="dtMax" title="Selezionare fine periodo"><i class="fa-regular fa-calendar-plus"></i></label>
<input class="form-control" @bind="@selDtEnd" id="dtMax" type="datetime-local" title="Selezionare fine periodo">
</div>
}
</div>
</div>
+80
View File
@@ -0,0 +1,80 @@
using Microsoft.AspNetCore.Components;
using MP.Data.DatabaseModels;
using MP.SPEC.Data;
namespace MP.SPEC.Components
{
public partial class SelFilterXDL
{
#region Public Properties
[Parameter]
public SelectOdlParams currFilter { get; set; } = new SelectOdlParams();
[Parameter]
public List<AnagGruppi>? ListGruppiFase { get; set; } = null;
[Parameter]
public List<string>? ListMacchine { get; set; } = null;
[Parameter]
public List<MP.Data.DatabaseModels.ListValues>? ListStati { get; set; } = null;
#endregion Public Properties
#region Protected Properties
protected bool isActive
{
get => currFilter.IsActive;
set => currFilter.IsActive = value;
}
protected DateTime selDtEnd
{
get => currFilter.DtEnd;
set
{
if (currFilter.DtEnd != value)
{
currFilter.DtEnd = value;
}
}
}
protected DateTime selDtStart
{
get => currFilter.DtStart;
set
{
if (currFilter.DtStart != value)
{
currFilter.DtStart = value;
}
}
}
#endregion Protected Properties
#region Private Properties
private string selMacchina
{
get => currFilter.IdxMacchina;
set => currFilter.IdxMacchina = value;
}
private string selReparto
{
get => currFilter.CodReparto;
set => currFilter.CodReparto = value;
}
private string selStato
{
get => currFilter.CodStato;
set => currFilter.CodStato = value;
}
#endregion Private Properties
}
}
+32 -1
View File
@@ -499,7 +499,36 @@ namespace MP.SPEC.Data
/// <returns></returns>
public Task<List<AnagGruppi>> ElencoGruppiFase()
{
return Task.FromResult(dbController.AnagGruppiFase());
#if false
return Task.FromResult(dbController.AnagGruppiFase());
#endif
List<AnagGruppi> result = new List<AnagGruppi>();
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
string readType = "DB";
string currKey = $"{redisAnagGruppi}";
// cerco in redis dato valore sel macchina...
RedisValue rawData = redisDb.StringGet(currKey);
if (rawData.HasValue)
{
result = JsonConvert.DeserializeObject<List<AnagGruppi>>($"{rawData}");
readType = "REDIS";
}
else
{
result = dbController.AnagGruppiFase();
// serializzo e salvo...
rawData = JsonConvert.SerializeObject(result);
redisDb.StringSet(currKey, rawData, getRandTOut(redisLongTimeCache / 5));
}
if (result == null)
{
result = new List<AnagGruppi>();
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
Log.Debug($"ElencoGruppiFase | Read from {readType}: {ts.TotalMilliseconds}ms");
return Task.FromResult(result);
}
public Task<List<LinkMenu>> ElencoLink()
@@ -1150,6 +1179,8 @@ namespace MP.SPEC.Data
#region Private Fields
private const string redisAnagGruppi = redisBaseAddr + "SPEC:Cache:AnagGruppi";
private const string redisArtByDossier = redisBaseAddr + "SPEC:Cache:ArtByDossier";
private const string redisArtList = redisBaseAddr + "SPEC:Cache:ArtList";
+1
View File
@@ -13,6 +13,7 @@ namespace MP.SPEC.Data
#region Public Properties
public string CodReparto { get; set; } = "*";
public string CodStato { get; set; } = "*";
public string IdxMacchina { get; set; } = "*";
public int CurrPage { get; set; } = 1;
+1 -1
View File
@@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP.SPEC</RootNamespace>
<Version>6.16.2211.2410</Version>
<Version>6.16.2211.2411</Version>
</PropertyGroup>
<ItemGroup>
+28 -8
View File
@@ -41,7 +41,8 @@
</a>
</div>
</div>
<div class="offcanvas offcanvas-end" tabindex="-1" id="paramsFilterExample" aria-labelledby="paramsFilterExampleLabel">
<SelFilterXDL currFilter="@currFilter" ListMacchine="@ListMacchine" ListStati="@ListStati" ListGruppiFase="@ListGruppiFase"></SelFilterXDL>
@*<div class="offcanvas offcanvas-end" tabindex="-1" id="paramsFilterExample" aria-labelledby="paramsFilterExampleLabel">
<div class="offcanvas-header">
<h3 class="offcanvas-title" id="paramsFilterExampleLabel"><b>FILTRI</b></h3>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
@@ -55,17 +56,17 @@
<div>
<div class="small mt-2">
<label class="px-2" for="fase" title="Selezionare inizio periodo">Fase</label>
<label class="px-2" for="macchina" title="Selezionare inizio periodo">Reparto</label>
</div>
<div class="input-group px-2">
<label class="input-group-text" for="fase" title="Selezionare la fase da visualizzare"><i class="fa-solid fa-screwdriver-wrench"></i></label>
<select @bind="@selStato" id="fase" class="form-select" title="Selezionare la fase da visualizzare">
<label class="input-group-text" for="macchina" title="Selezionare la macchina da visualizzare"><i class="fa-solid fa-hard-drive"></i></label>
<select @bind="@selMacchina" id="macchina" class="form-select" title="Selezionare la macchina da visualizzare">
<option value="*">--- Tutti ---</option>
@if (ListStati != null)
@if (ListMacchine != null)
{
foreach (var item in ListStati)
foreach (var item in ListMacchine)
{
<option value="@item.value">@item.label</option>
<option value="@item">@item</option>
}
}
</select>
@@ -90,6 +91,25 @@
</select>
</div>
</div>
<div>
<div class="small mt-2">
<label class="px-2" for="fase" title="Selezionare inizio periodo">Fase</label>
</div>
<div class="input-group px-2">
<label class="input-group-text" for="fase" title="Selezionare la fase da visualizzare"><i class="fa-solid fa-screwdriver-wrench"></i></label>
<select @bind="@selStato" id="fase" class="form-select" title="Selezionare la fase da visualizzare">
<option value="*">--- Tutti ---</option>
@if (ListStati != null)
{
foreach (var item in ListStati)
{
<option value="@item.value">@item.label</option>
}
}
</select>
</div>
</div>
@if (!isActive)
{
<div class="small mt-2">
@@ -108,7 +128,7 @@
</div>
}
</div>
</div>
</div>*@
</div>
</div>
</div>
+7
View File
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using MP.Data.DatabaseModels;
using MP.SPEC.Components;
using MP.SPEC.Data;
@@ -94,8 +95,14 @@ namespace MP.SPEC.Pages
currPage = newNum;
}
private List<AnagGruppi>? ListGruppiFase { get; set; } = null;
protected override async Task OnInitializedAsync()
{
var allGruppiData = await MDService.ElencoGruppiFase();
if (allGruppiData != null)
{
ListGruppiFase = allGruppiData.Where(x => x.SelEnabled).ToList();
}
ListStati = await MDService.AnagStatiComm();
ListMacchine = await MDService.MacchineWithFlux(currFilter.DtStart, currFilter.DtEnd);
padCodXdl = await MDService.tryGetConfig("padCodXdl");
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2211.2410</h4>
<h4>Versione: 6.16.2211.2411</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2211.2410
6.16.2211.2411
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2211.2410</version>
<version>6.16.2211.2411</version>
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>