Files
Samuele Locatelli bc68c1578d TAB3:
- aggiunto delay iniziale post conferma pz x mostrare subito pagina esecuzione
2025-07-10 16:17:54 +02:00

306 lines
20 KiB
Plaintext

@page "/PODL"
<div class="card mb-5">
<div class="card-header table-primary">
<div class="d-flex justify-content-between col-12">
<div class="px-2 col-6">
<div class="d-flex">
<div class="px-2 fs-3 text-nowrap">
<b>P</b>romesse <b>ODL</b>
</div>
<div class="px-2 input-group input-group-sm">
<div class="input-group-text">
<span class="me-1" title="Elenco PODL disponibili da produrre">Da Produrre</span>
<div class="form-check form-check-sm form-switch py-1" title="Modalità display (Disponibili / Lanciati)">
<input class="form-check-input" type="checkbox" name="setupAlarms" @onclick="()=> toggleClosed()">
</div>
<span class="" title="Elenco PODL già lanciati/prodotti">Lanciati</span>
</div>
@if (addEnabled)
{
<button class="btn btn-success" @onclick="() => reqNewPODL()">Nuovo PODL <i class="bi bi-plus-square"></i></button>
}
else
{
<button class="btn btn-secondary" disabled title="@addMessage">Nuovo PODL <i class="bi bi-plus-square"></i><div class="small"><sup>@addMessage</sup></div></button>
}
</div>
</div>
</div>
<div class="d-flex justify-content-end col-6">
<div class="d-flex justify-content-between">
@if (filtActive)
{
<div class=" rounded small d-flex justify-content-between" title="Filtri attivi">
@if (selReparto != "*")
{
<button class="btn btn-outline-primary btn-sm mx-2" @onclick="()=>resetReparto()" title="Rimuovi Filtro Reparto"><i class="fa-solid fa-building"></i> &nbsp <i class="fa-solid fa-xmark text-warning"></i></button>
}
@if (macchina != "*")
{
<button class="btn btn-outline-primary btn-sm mx-2" @onclick="()=>resetMacchina()" title="Rimuovi Filtro Impianto"><i class="fa-solid fa-hard-drive"></i> &nbsp <i class="fa-solid fa-xmark text-warning"></i></button>
}
@if (StatoSel != "*")
{
<button class="btn btn-outline-primary btn-sm mx-2" @onclick="()=>resetFase()" title="Rimuovi Filtro Parametro"><i class="fa-solid fa-sliders"></i> &nbsp <i class="fa-solid fa-xmark text-warning"></i></button>
}
</div>
}
@if (hasOdl)
{
<span class="badge bg-secondary mx-2 text-nowrap" title="Filtro Data inizio attivo">@selDtStart &nbsp <i class="fa-solid fa-calendar-days"></i></span>
<span class="badge bg-secondary mx-2 text-nowrap" title="Filtro Data fine attivo">@selDtEnd &nbsp <i class="fa-solid fa-calendar-days"></i></span>
}
<div class="p-2 text-end">
<a class="pt-2 text-dark" data-bs-toggle="offcanvas" data-bs-target="#paramsFilterExample" aria-controls="paramsFilterExample">
<i class="fa-solid fa-bars"></i>
</a>
</div>
</div>
<SelFilterXDL currFilter="@currFilter" ListMacchine="@ListMacchine" ListStati="@ListStati" ListGruppiFase="@ListGruppiFase" FilterChanged="UpdateFilter"></SelFilterXDL>
</div>
</div>
@if (currRecord != null)
{
<div class="row">
<div class="col-12">
<div class="card mb-3 mt-2">
<div class="card-header bg-primary text-light">@header</div>
<div class="card-body">
<div class="row">
<div class="col-6">
<div class="row">
<div class="col-3 pe-0">
<div class="input-group input-group-sm">
<span class="input-group-text" id="inputGroup-sizing-sm">Ricerca</span>
<input type="text" class="form-control" aria-label="Art search" aria-describedby="inputGroup-sizing-sm" @bind-value="@artSearch">
</div>
</div>
<div class="col-9 ps-0">
<div class="input-group input-group-sm">
<span class="input-group-text" id="inputGroup-sizing-sm">Articolo</span>
@if (canEdit)
{
<select @bind="@currRecord.CodArticolo" class="form-select">
<option value="">--Selezionare un articolo--</option>
@if (ListArticoli != null)
{
foreach (var item in ListArticoli)
{
<option value="@item.CodArticolo">@item.CodArticolo | @item.DescArticolo | @item.Disegno</option>
}
}
</select>
}
else
{
<input class="form-control" disabled placeholder="@currRecord.CodArticolo | @currRecord.DescArticolo" />
}
</div>
</div>
</div>
</div>
<div class="col-3">
<div class="input-group input-group-sm">
<span class="input-group-text" id="inputGroup-sizing-sm"># pz</span>
@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>
@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">
<span class="input-group-text" id="inputGroup-sizing-sm">Fase/Richiesta</span>
@if (canEdit)
{
@if (useFasi4KeyRich == "FASE")
{
<select @bind="@currRecord.KeyRichiesta" class="form-select">
@if (ListStati != null)
{
foreach (var item in ListStati)
{
@if (item.value == currRecordControlli.KeyRichiesta)
{
<option value="@item.value" selected>@item.label</option>
}
else
{
<option value="@item.value">@item.label</option>
}
}
}
</select>
}
else
{
<input type="text" class="form-control" aria-label="Fase/Richiesta" aria-describedby="inputGroup-sizing-sm" @bind-value="@currRecord.KeyRichiesta">
}
}
else
{
<input class="form-control" disabled placeholder="@currRecord.KeyRichiesta" />
}
</div>
</div>
</div>
<div class="row mt-2">
<div class="col-3">
<div class="input-group input-group-sm">
<div class="input-group input-group-sm">
<span class="input-group-text" id="inputGroup-sizing-sm">Gruppo</span>
@if (currGruppoSel != null && currGruppoSel.CodGruppo!=null)
{
<input @bind-value="@currGruppoSel.DescrGruppo" class="form-control" disabled />
}
else
{
<input @bind-value="@currRecord.CodGruppo" class="form-control" disabled />
}
</div>
</div>
</div>
<div class="col-3">
<div class="input-group input-group-sm">
<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>
@if (canEdit)
{
<select @bind="@currRecord.IdxMacchina" class="form-select">
<option value="">--Selezionare una macchina--</option>
@if (ListMacchine != null)
{
foreach (var item in ListMacchine)
{
@if (!item.Descrizione.Contains("NEW Descrizione"))
{
<option value="@item.IdxMacchina">@item.IdxMacchina | @item.Descrizione</option>
}
}
}
</select>
}
else
{
<input class="form-control" disabled placeholder="@currRecord.IdxMacchina | @(currRecord.MachineNav?.Descrizione ?? " ")" />
}
</div>
</div>
</div>
</div>
<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>
<div class="row mt-2">
<div class="col-3">
<div class="input-group input-group-sm d-flex justify-content-between">
<div class="input-group-text" id="inputGroup-sizing-sm">
<div class="pe-3" title="Attivabile">
Attivabile
</div>
<div class="form-check form-check-sm form-switch py-1" title="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>
@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 class="col-3">
<div class="d-grid gap-2">
@* @if (currRecord.CodArticolo != "" && currRecord.CodFase != "" && selReparto != "*" && currRecord.IdxMacchina != "") *@
@if (canSaveEdit)
{
<button class="btn btn-success" @onclick="() => update(currRecord)">Salva <i class="bi bi-save"></i></button>
}
</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">
@if (enableForceSync)
{
<button @onclick="() => forceSyncDb()" class="btn btn-success">Forza sync &rarr; macchina <i class="bi bi-fast-forward-circle"></i></button>
}
else
{
<button class="btn btn-secondary btn-sm disabled mx-1" title="Forza Sync non permesso">
<i class="bi bi-fast-forward-circle"></i>
</button>
}
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
}
</div>
<div class="card-body">
@if (isLoading)
{
<LoadingData></LoadingData>
}
else
{
<ListPODL PagerResetReq="pgResetReq" RecordEdit="@editRecord" RecordSel="@selRecord" updateRecordCount="UpdateTotCount" actFilter="@currFilter" padCodXdl="@padCodXdl"></ListPODL>
}
</div>
<div class="card-footer py-1">
@if (totalCount > numRecord)
{
<DataPager @ref="pagerODL" PageSize="numRecord" currPage="currPage" numRecordChanged="SetNumRec" numPageChanged="SetPage" totalCount="totalCount" showLoading="@isLoading" />
}
</div>
</div>