SPEC / PODL:
- Fix display forza update + selezione
This commit is contained in:
@@ -15,10 +15,10 @@ else
|
||||
@if (currRecord != null && !showStats && isCurrOdl)
|
||||
{
|
||||
<div class="col-6 col-lg-8">
|
||||
<button @onclick="() => forceSyncDb()" class="btn btn-success btn-sm btn-">Forza sync dati ODL <i class="bi bi-fast-forward-circle"></i></button>
|
||||
<button @onclick="() => forceSyncDb()" class="btn btn-success btn-sm">Forza sync → macchina <i class="bi bi-fast-forward-circle"></i></button>
|
||||
</div>
|
||||
<div class="col-6 col-lg-4 text-end">
|
||||
<button @onclick="() => chiudiOdl()" class="btn btn-danger btn-sm btn-">Registra chiusura ODL <i class="far fa-stop-circle"></i></button>
|
||||
<button @onclick="() => chiudiOdl()" class="btn btn-danger btn-sm">Registra chiusura ODL <i class="far fa-stop-circle"></i></button>
|
||||
</div>
|
||||
}
|
||||
<div class="col-12">
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace MP.SPEC.Components
|
||||
/// <returns></returns>
|
||||
protected async Task forceSyncDb()
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sei sicuro di voler reinviare i dati (Articoli, PODL) all'impianto?"))
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sei sicuro di voler (re)inviare i dati (Articoli, PODL) all'impianto?"))
|
||||
return;
|
||||
|
||||
if (currRecord != null)
|
||||
|
||||
@@ -41,10 +41,11 @@ else
|
||||
<td class="text-nowrap" style="width: 8rem;">
|
||||
@if (!(showRecipeConf || showRecipeArch))
|
||||
{
|
||||
<button @onclick="() => cloneRecord(record)" class="btn btn-info btn-sm mx-1" title="Duplica Record"><i class="bi bi-clipboard-check"></i></button>
|
||||
<button @onclick="() => selRecord(record)" class="btn btn-primary btn-sm mx-0" title="Dettaglio Record"><i class="bi bi-check2"></i></button>
|
||||
<button @onclick="() => cloneRecord(record)" class="btn btn-info btn-sm mx-0" title="Duplica Record"><i class="bi bi-clipboard-check"></i></button>
|
||||
@if (record.IdxOdl == 0)
|
||||
{
|
||||
<button @onclick="() => selRecord(record)" class="btn btn-primary btn-sm mx-1" title="Modifica Record"><i class="bi bi-pencil-square"></i></button>
|
||||
<button @onclick="() => editRecord(record)" class="btn btn-primary btn-sm mx-1" title="Modifica Record"><i class="bi bi-pencil-square"></i></button>
|
||||
@*@if (canStartOdl(record.IdxMacchina))
|
||||
{
|
||||
}
|
||||
@@ -70,13 +71,13 @@ else
|
||||
{
|
||||
@if (machineHasRecipeConf(record.IdxMacchina).Result)
|
||||
{
|
||||
<button class="btn btn-dark btn-sm mx-1" title="Gestione Ricetta" @onclick="() => doShowRecipeConf(record)">
|
||||
<button class="btn btn-dark btn-sm mx-0" title="Gestione Ricetta" @onclick="() => doShowRecipeConf(record)">
|
||||
<i class="fa-solid fa-flask"></i>
|
||||
</button>
|
||||
}
|
||||
else if (machineHasRecipeArch(record.IdxMacchina).Result)
|
||||
{
|
||||
<button class="btn btn-primary btn-sm mx-1" title="Gestione Ricetta" @onclick="() => doShowRecipeArch(record)">
|
||||
<button class="btn btn-primary btn-sm mx-0" title="Gestione Ricetta" @onclick="() => doShowRecipeArch(record)">
|
||||
<i class="fa-solid fa-flask"></i>
|
||||
</button>
|
||||
}
|
||||
|
||||
@@ -21,6 +21,9 @@ namespace MP.SPEC.Components
|
||||
[Parameter]
|
||||
public EventCallback<bool> PagerResetReq { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<PODLExpModel> RecordEdit { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<PODLExpModel> RecordSel { get; set; }
|
||||
|
||||
@@ -87,7 +90,7 @@ namespace MP.SPEC.Components
|
||||
// clono resettando ODL
|
||||
var clonedRec = Utils.POdlExt.clone(selRec, true);
|
||||
currRecord = clonedRec;
|
||||
await RecordSel.InvokeAsync(clonedRec);
|
||||
await RecordEdit.InvokeAsync(clonedRec);
|
||||
header = "Duplica PODL";
|
||||
}
|
||||
|
||||
@@ -179,14 +182,21 @@ namespace MP.SPEC.Components
|
||||
{
|
||||
await ReloadData();
|
||||
}
|
||||
await RecordSel.InvokeAsync(null);
|
||||
await RecordEdit.InvokeAsync(null);
|
||||
}
|
||||
|
||||
|
||||
protected async Task editRecord(PODLExpModel? selRec)
|
||||
{
|
||||
currRecord = selRec;
|
||||
header = "Modifica PODL";
|
||||
await RecordEdit.InvokeAsync(selRec);
|
||||
}
|
||||
|
||||
|
||||
protected async Task selRecord(PODLExpModel? selRec)
|
||||
{
|
||||
currRecord = selRec;
|
||||
header = "Modifica PODL";
|
||||
header = "Dettaglio PODL";
|
||||
await RecordSel.InvokeAsync(selRec);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP.SPEC</RootNamespace>
|
||||
<Version>6.16.2304.515</Version>
|
||||
<Version>6.16.2304.516</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
+114
-50
@@ -62,7 +62,7 @@
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card mb-5 mt-2">
|
||||
<div class="card mb-3 mt-2">
|
||||
<div class="card-header bg-primary text-light">@header</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
@@ -77,16 +77,23 @@
|
||||
<div class="col-9 ps-0">
|
||||
<div class="input-group input-group-sm">
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Articolo</span>
|
||||
<select @bind="@currRecord.CodArticolo" class="form-select">
|
||||
<option value="">--Selezionare un articolo--</option>
|
||||
@if (ListArticoli != null)
|
||||
{
|
||||
foreach (var item in ListArticoli)
|
||||
@if (canEdit)
|
||||
{
|
||||
<select @bind="@currRecord.CodArticolo" class="form-select">
|
||||
<option value="">--Selezionare un articolo--</option>
|
||||
@if (ListArticoli != null)
|
||||
{
|
||||
<option value="@item.CodArticolo">@item.CodArticolo | @item.DescArticolo | @item.Disegno</option>
|
||||
foreach (var item in ListArticoli)
|
||||
{
|
||||
<option value="@item.CodArticolo">@item.CodArticolo | @item.DescArticolo | @item.Disegno</option>
|
||||
}
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</select>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-control" disabled placeholder="@currRecord.CodArticolo | @currRecord.DescArticolo" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -94,38 +101,58 @@
|
||||
<div class="col-3">
|
||||
<div class="input-group input-group-sm">
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm"># pz</span>
|
||||
<input type="text" class="form-control" aria-label="Num Pezzi" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.NumPezzi">
|
||||
@if (canEdit)
|
||||
{
|
||||
<input type="text" class="form-control" aria-label="Num Pezzi" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.NumPezzi">
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-control" disabled placeholder="@currRecord.NumPezzi" />
|
||||
}
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">T.Ciclo</span>
|
||||
<input type="text" class="form-control" aria-label="Tempo Ciclo" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.Tcassegnato">
|
||||
@if (canEdit)
|
||||
{
|
||||
<input type="text" class="form-control" aria-label="Tempo Ciclo" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.Tcassegnato">
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-control" disabled placeholder="@currRecord.Tcassegnato" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="input-group input-group-sm">
|
||||
@if (useFasi4KeyRich == "FASE")
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Fase/Richiesta</span>
|
||||
@if (canEdit)
|
||||
{
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Fase</span>
|
||||
<select @bind="@currRecord.KeyRichiesta" class="form-select">
|
||||
@if (ListStati != null)
|
||||
{
|
||||
foreach (var item in ListStati)
|
||||
@if (useFasi4KeyRich == "FASE")
|
||||
{
|
||||
<select @bind="@currRecord.KeyRichiesta" class="form-select">
|
||||
@if (ListStati != null)
|
||||
{
|
||||
@if (item.value == currRecordControlli.KeyRichiesta)
|
||||
foreach (var item in ListStati)
|
||||
{
|
||||
<option value="@item.value" selected>@item.label</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option value="@item.value">@item.label</option>
|
||||
}
|
||||
@if (item.value == currRecordControlli.KeyRichiesta)
|
||||
{
|
||||
<option value="@item.value" selected>@item.label</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option value="@item.value">@item.label</option>
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</select>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input type="text" class="form-control" aria-label="Fase/Richiesta" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.KeyRichiesta">
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Fase/Richiesta</span>
|
||||
<input type="text" class="form-control" aria-label="Fase/Richiesta" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.KeyRichiesta">
|
||||
<input class="form-control" disabled placeholder="@currRecord.KeyRichiesta" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@@ -147,19 +174,26 @@
|
||||
<div class="input-group input-group-sm">
|
||||
<div class="input-group input-group-sm">
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Macchina</span>
|
||||
<select @bind="@currRecord.IdxMacchina" class="form-select">
|
||||
<option value="">--Selezionare una macchina--</option>
|
||||
@if (ListMacchine != null)
|
||||
{
|
||||
foreach (var item in ListMacchine)
|
||||
@if (canEdit)
|
||||
{
|
||||
<select @bind="@currRecord.IdxMacchina" class="form-select">
|
||||
<option value="">--Selezionare una macchina--</option>
|
||||
@if (ListMacchine != null)
|
||||
{
|
||||
@if (!item.Descrizione.Contains("NEW Descrizione"))
|
||||
foreach (var item in ListMacchine)
|
||||
{
|
||||
<option value="@item.IdxMacchina">@item.IdxMacchina | @item.Descrizione</option>
|
||||
@if (!item.Descrizione.Contains("NEW Descrizione"))
|
||||
{
|
||||
<option value="@item.IdxMacchina">@item.IdxMacchina | @item.Descrizione</option>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</select>
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-control" disabled placeholder="@currRecord.IdxMacchina | @(currRecord.MachineNav?.Descrizione ?? " ")" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -167,7 +201,14 @@
|
||||
<div class="col-6">
|
||||
<div class="input-group input-group-sm">
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">Note</span>
|
||||
@if(canEdit)
|
||||
{
|
||||
<input type="text" class="form-control" aria-label="Note" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.Note">
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-control" disabled placeholder="@currRecord.Note" />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -179,26 +220,49 @@
|
||||
Attivabile
|
||||
</div>
|
||||
<div class="form-check form-check-sm form-switch py-1" title="Attivabile">
|
||||
<input class="form-check-input" type="checkbox" name="setupAlarms" title="Attivabile" @bind="@currRecord.Attivabile">
|
||||
@if (canEdit)
|
||||
{
|
||||
<input class="form-check-input" type="checkbox" name="setupAlarms" title="Attivabile" @bind="@currRecord.Attivabile">
|
||||
}
|
||||
else
|
||||
{
|
||||
<input class="form-check-input" type="checkbox" name="setupAlarms" title="Attivabile" disabled @bind="@currRecord.Attivabile">
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
<button class="btn btn-warning" @onclick="() => cancel()">Annulla <i class="bi bi-x-circle"></i></button>
|
||||
@if (canEdit)
|
||||
{
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
<button class="btn btn-warning" @onclick="() => cancel()">Annulla <i class="bi bi-x-circle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
@if (currRecord.CodArticolo != "" && currRecord.CodFase != "" && selReparto != "*" && currRecord.IdxMacchina != "")
|
||||
{
|
||||
<button class="btn btn-success" @onclick="() => update(currRecord)">Salva <i class="bi bi-save"></i></button>
|
||||
}
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
@if (currRecord.CodArticolo != "" && currRecord.CodFase != "" && selReparto != "*" && currRecord.IdxMacchina != "")
|
||||
{
|
||||
<button class="btn btn-success" @onclick="() => update(currRecord)">Salva <i class="bi bi-save"></i></button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
<button class="btn btn-warning" @onclick="() => cancel()">Chiudi <i class="bi bi-x-circle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="d-grid gap-2">
|
||||
<button @onclick="() => forceSyncDb()" class="btn btn-success">Forza sync → macchina <i class="bi bi-fast-forward-circle"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -214,7 +278,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<ListPODL PagerResetReq="pgResetReq" RecordSel="@selRecord" updateRecordCount="UpdateTotCount" actFilter="@currFilter" padCodXdl="@padCodXdl"></ListPODL>
|
||||
<ListPODL PagerResetReq="pgResetReq" RecordEdit="@editRecord" RecordSel="@selRecord" updateRecordCount="UpdateTotCount" actFilter="@currFilter" padCodXdl="@padCodXdl"></ListPODL>
|
||||
}
|
||||
</div>
|
||||
<div class="card-footer py-1">
|
||||
|
||||
@@ -8,6 +8,7 @@ using MP.SPEC.Services;
|
||||
using NLog;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using EgwCoreLib.Razor;
|
||||
using Microsoft.AspNetCore.DataProtection;
|
||||
|
||||
namespace MP.SPEC.Pages
|
||||
{
|
||||
@@ -181,9 +182,15 @@ namespace MP.SPEC.Pages
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
protected async Task editRecord(PODLExpModel selRec)
|
||||
{
|
||||
canEdit = true;
|
||||
currRecord = selRec;
|
||||
await Task.Delay(1);
|
||||
}
|
||||
protected async Task selRecord(PODLExpModel selRec)
|
||||
{
|
||||
|
||||
canEdit = false;
|
||||
currRecord = selRec;
|
||||
await Task.Delay(1);
|
||||
}
|
||||
@@ -202,12 +209,25 @@ namespace MP.SPEC.Pages
|
||||
var clonedRec = MP.Data.Utils.POdlExt.convertToPOdl(selRec);
|
||||
clonedRec.CodGruppo = currGruppoSel.CodGruppo;
|
||||
var done = await MDService.POdlUpdateRecord(clonedRec);
|
||||
await callSyncDb(clonedRec);
|
||||
// se attivabile chiamo sync
|
||||
if (clonedRec.Attivabile)
|
||||
{
|
||||
await callSyncDb(clonedRec);
|
||||
}
|
||||
currRecord = null;
|
||||
NavManager.NavigateTo(NavManager.Uri, true);
|
||||
}
|
||||
|
||||
protected async Task forceSyncDb()
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sei sicuro di voler (re)inviare i dati (Articoli, PODL) all'impianto?"))
|
||||
return;
|
||||
|
||||
var clonedRec = MP.Data.Utils.POdlExt.convertToPOdl(currRecord);
|
||||
await callSyncDb(clonedRec);
|
||||
currRecord = null;
|
||||
NavManager.NavigateTo(NavManager.Uri, true);
|
||||
}
|
||||
|
||||
protected void UpdateTotCount(int newTotCount)
|
||||
{
|
||||
@@ -335,6 +355,8 @@ namespace MP.SPEC.Pages
|
||||
set => currFilter.CurrPage = value;
|
||||
}
|
||||
|
||||
private bool canEdit { get; set; } = false;
|
||||
|
||||
private PODLExpModel? currRecord
|
||||
{
|
||||
get => _currRecord;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 6.16.2304.515</h4>
|
||||
<h4>Versione: 6.16.2304.516</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
6.16.2304.515
|
||||
6.16.2304.516
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>6.16.2304.515</version>
|
||||
<version>6.16.2304.516</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>
|
||||
|
||||
Reference in New Issue
Block a user