Update display workable
This commit is contained in:
@@ -31,10 +31,13 @@ namespace EgwCoreLib.Lux.Core.RestPayload
|
||||
if (!workable)
|
||||
{
|
||||
var listKo = new List<PartCalcDTO>();
|
||||
// cerco l'insieme dei pezzi DAVVERO non lavorabili
|
||||
// pezzi lavorabili
|
||||
listWorkable = MachineCalc.Utils.IntersectTags(machineCalcResults, p => p.CalcResult == Enums.PartVerificationResult.MACHINABLE).ToList();
|
||||
// cerco l'insieme dei pezzi NON lavorabili
|
||||
listUnWorkable = MachineCalc.Utils.IntersectTags(machineCalcResults, p => p.CalcResult != Enums.PartVerificationResult.MACHINABLE).ToList();
|
||||
workable = !listUnWorkable.Any();
|
||||
numKo = listUnWorkable.Count();
|
||||
numOk = listWorkable.Count();
|
||||
}
|
||||
|
||||
LoadDetail = MachineCalc.Utils.CalculateIntersections(machineCalcResults);
|
||||
@@ -51,13 +54,6 @@ namespace EgwCoreLib.Lux.Core.RestPayload
|
||||
{
|
||||
get => string.Join(", ", machineCalcResults.Select(x => x.Name).OrderBy(x => x).ToList());
|
||||
}
|
||||
/// <summary>
|
||||
/// Num Macchine
|
||||
/// </summary>
|
||||
public int NumMachines
|
||||
{
|
||||
get => machineCalcResults.Count();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco delle etichette parts non OK
|
||||
@@ -67,6 +63,14 @@ namespace EgwCoreLib.Lux.Core.RestPayload
|
||||
get => listUnWorkable ?? new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco etichette parts OK
|
||||
/// </summary>
|
||||
public List<string> ListWorkable
|
||||
{
|
||||
get => listWorkable ?? new List<string>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio combinazioni carico di lavoro
|
||||
/// </summary>
|
||||
@@ -77,11 +81,30 @@ namespace EgwCoreLib.Lux.Core.RestPayload
|
||||
get => machineCalcResults;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Numero di parts non lavorabili
|
||||
/// </summary>
|
||||
public int NumKo
|
||||
{
|
||||
get => numKo;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Num Macchine
|
||||
/// </summary>
|
||||
public int NumMachines
|
||||
{
|
||||
get => machineCalcResults.Count();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Numero di parts lavorabili
|
||||
/// </summary>
|
||||
public int NumOk
|
||||
{
|
||||
get => numOk;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tempo massimo complessivo in ORE
|
||||
/// </summary>
|
||||
@@ -113,8 +136,10 @@ namespace EgwCoreLib.Lux.Core.RestPayload
|
||||
#region Private Fields
|
||||
|
||||
private List<string>? listUnWorkable = null;
|
||||
private List<string>? listWorkable = null;
|
||||
private List<MachineCalcResultDTO> machineCalcResults = new List<MachineCalcResultDTO>();
|
||||
private int numKo = 0;
|
||||
private int numOk = 0;
|
||||
private string uID = "";
|
||||
private bool workable = false;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>0.9.2512.0610</Version>
|
||||
<Version>0.9.2512.0611</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -94,6 +94,7 @@ else
|
||||
}
|
||||
@* <th class="text-end">Totale</th>
|
||||
<th class="text-end">Marg.</th> *@
|
||||
<th class="text-center" title="# Prodotti producibili"># OK</th>
|
||||
<th class="text-center" title="# Prodotti non validi/producibili"># KO</th>
|
||||
<th class="text-end" title="Range tempi prod. previsti">Timing</th>
|
||||
@if (DisplayMode == EgwCoreLib.Lux.Core.Enums.DisplayMode.Edit)
|
||||
@@ -234,11 +235,8 @@ else
|
||||
<div class="small text-secondary" title="RockBottom Price">(@item.Original.UnitCost.ToString("C2"))</div>
|
||||
</td> *@
|
||||
|
||||
<td class="text-center fs-4" title="@item.WorkLoad.ListMachines">@item.WorkLoad.NumMachines</td>
|
||||
<td class="text-center text-nowrap">
|
||||
<div class="fw-bold" title="# Totale Prodotti">
|
||||
@($"{item.Original.ProdItemQtyTot:N0}")
|
||||
</div>
|
||||
<td class="text-center fs-4" title="@item.WorkLoad.ListMachines">
|
||||
<span class="px-2">@item.WorkLoad.NumMachines</span>
|
||||
@if (@item.WorkLoad.Workable)
|
||||
{
|
||||
<i class="fa-solid fa-thumbs-up text-success"></i>
|
||||
@@ -248,6 +246,18 @@ else
|
||||
<i class="fa-solid fa-thumbs-down text-danger"></i>
|
||||
}
|
||||
</td>
|
||||
<td class="text-center text-nowrap">
|
||||
<div class="fw-bold" title="# Totale Prodotti">
|
||||
@($"{item.Original.ProdItemQtyTot:N0}")
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center text-nowrap">
|
||||
<button class="btn btn-sm btn-success" @onclick="() => ShowDetailOk(item.WorkLoad)">
|
||||
<div class="fw-bold" title="# Pezzi OK">
|
||||
@($"{item.WorkLoad.NumOk:N0}")
|
||||
</div>
|
||||
</button>
|
||||
</td>
|
||||
@if (DisplayMode == EgwCoreLib.Lux.Core.Enums.DisplayMode.Edit)
|
||||
{
|
||||
<td class="text-center">
|
||||
@@ -348,9 +358,8 @@ else
|
||||
<td colspan="1"></td>
|
||||
}
|
||||
<td class="text-center">@($"{GrandTotNumItems:N0}")</td>
|
||||
<th class="text-center text-danger">
|
||||
@GrandTotNumKo
|
||||
</th>
|
||||
<th class="text-center text-success">@GrandTotNumOk</th>
|
||||
<th class="text-center text-danger">@GrandTotNumKo</th>
|
||||
<th class="text-end">
|
||||
@if ((GrandTotMaxTime - GrandTotMinTime) > 1)
|
||||
{
|
||||
@@ -444,8 +453,8 @@ else if (WorkLoadRecord != null)
|
||||
Dettaglio Carico
|
||||
</div>
|
||||
<div class="col-4 text-center border border-2 rounded">
|
||||
<div class="fw-bold">@EditRecord.Note</div>
|
||||
<small class="small">@EditRecord.OrderRowUID</small>
|
||||
<div class="fw-bold">Workable Parts: @WorkLoadRecord.NumOk</div>
|
||||
<small class="small">@WorkLoadRecord.ListMachines</small>
|
||||
</div>
|
||||
<div class="col-4 text-end fs-4">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @onclick="ClosePopup">
|
||||
@@ -453,7 +462,45 @@ else if (WorkLoadRecord != null)
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>ToDO: mostrare dettaglio carico macchine</p>
|
||||
@* @foreach (var item in WorkLoadRecord.ListWorkable)
|
||||
{
|
||||
<div class="col-3">
|
||||
<div class="alert alert-danger p-1 mb-2 text-center align-content-center">@item</div>
|
||||
</div>
|
||||
} *@
|
||||
<p>indicazione dei tempo</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else if (CurrEditMode == EditMode.DetailOK)
|
||||
{
|
||||
<div class="modal" tabindex="-1" style="display:block; background-color: rgba(10,10,10,.6);" role="dialog">
|
||||
<div class="modal-dialog modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header row modal-title">
|
||||
<div class="col-4 fs-3">
|
||||
Dettaglio Carico
|
||||
</div>
|
||||
<div class="col-4 text-center border border-2 rounded">
|
||||
<div class="fw-bold">Workable Parts: @WorkLoadRecord.NumOk</div>
|
||||
<small class="small">@WorkLoadRecord.ListMachines</small>
|
||||
</div>
|
||||
<div class="col-4 text-end fs-4">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @onclick="ClosePopup">
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row gx-2">
|
||||
@foreach (var item in WorkLoadRecord.ListWorkable)
|
||||
{
|
||||
<div class="col-2">
|
||||
<div class="alert alert-success p-1 mb-2 text-center align-content-center">@item</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -469,7 +516,7 @@ else if (WorkLoadRecord != null)
|
||||
Elenco Pezzi KO
|
||||
</div>
|
||||
<div class="col-4 text-center border border-2 rounded">
|
||||
<div class="fw-bold">UnworkableParts: @WorkLoadRecord.NumKo</div>
|
||||
<div class="fw-bold">Unworkable Parts: @WorkLoadRecord.NumKo</div>
|
||||
<small class="small">@WorkLoadRecord.ListMachines</small>
|
||||
</div>
|
||||
<div class="col-4 text-end fs-4">
|
||||
@@ -481,17 +528,11 @@ else if (WorkLoadRecord != null)
|
||||
<div class="row gx-2">
|
||||
@foreach (var item in WorkLoadRecord.ListUnWorkable)
|
||||
{
|
||||
<div class="col-3">
|
||||
<div class="col-2">
|
||||
<div class="alert alert-danger p-1 mb-2 text-center align-content-center">@item</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@* <ul class="list-group list-group-sm">
|
||||
@foreach (var item in WorkLoadRecord.ListUnWorkable)
|
||||
{
|
||||
<li class="list-group-item">@item</li>
|
||||
}
|
||||
</ul> *@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -60,7 +60,12 @@ namespace Lux.UI.Components.Compo
|
||||
/// <summary>
|
||||
/// Dettaglio pezzi KO
|
||||
/// </summary>
|
||||
DetailKO
|
||||
DetailKO,
|
||||
|
||||
/// <summary>
|
||||
/// Dettaglio pezzi OK
|
||||
/// </summary>
|
||||
DetailOK
|
||||
}
|
||||
|
||||
#endregion Public Enums
|
||||
@@ -223,6 +228,18 @@ namespace Lux.UI.Components.Compo
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
protected int GrandTotNumOk
|
||||
{
|
||||
get
|
||||
{
|
||||
int answ = 0;
|
||||
if (ListRecords != null && ListRecords.Count > 0)
|
||||
{
|
||||
answ = ListRecords.Sum(x => x.WorkLoad.NumOk);
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Importo totale calcolato x offerta
|
||||
@@ -695,6 +712,17 @@ namespace Lux.UI.Components.Compo
|
||||
WorkLoadRecord = detailRec;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// salva dettaglio workload x mostrare elenco valori OK
|
||||
/// </summary>
|
||||
/// <param name="detailRec"></param>
|
||||
protected void ShowDetailOk(WorkLoadDetailDTO detailRec)
|
||||
{
|
||||
CurrEditMode = EditMode.DetailOK;
|
||||
EditRecord = null;
|
||||
WorkLoadRecord = detailRec;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restituisce struttura dettaglio WorkLoad x item
|
||||
/// </summary>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50</UserSecretsId>
|
||||
<Version>0.9.2512.0610</Version>
|
||||
<Version>0.9.2512.0611</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>LUX - Web Windows MES</i>
|
||||
<h4>Versione: 0.9.2512.0610</h4>
|
||||
<h4>Versione: 0.9.2512.0611</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.9.2512.0610
|
||||
0.9.2512.0611
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>0.9.2512.0610</version>
|
||||
<version>0.9.2512.0611</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user