SPEC / PODL:

- Fix display forza update + selezione
This commit is contained in:
Samuele Locatelli
2023-04-05 16:14:37 +02:00
parent 56edd76f1e
commit 007e22785d
10 changed files with 164 additions and 67 deletions
+2 -2
View File
@@ -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 &rarr; 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">
+1 -1
View File
@@ -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)
+5 -4
View File
@@ -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>
}
+14 -4
View File
@@ -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);
}
+1 -1
View File
@@ -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
View File
@@ -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 &rarr; 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">
+24 -2
View File
@@ -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 -1
View File
@@ -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
View File
@@ -1 +1 @@
6.16.2304.515
6.16.2304.516
+1 -1
View File
@@ -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>