35468be19f
- modifica alert display come componente (test a tempo...)
230 lines
15 KiB
Plaintext
230 lines
15 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-3">
|
|
<h3><b>P</b>romesse <b>ODL</b></h3>
|
|
</div>
|
|
<div class="col-3 d-flex justify-content-between">
|
|
<div class="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="Parameter View Mode (RealTime / LogData)">
|
|
<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>
|
|
}
|
|
</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">
|
|
@*<i class="fas fa-exclamation text-warning"></i>*@
|
|
@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>   <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>   <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>   <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   <i class="fa-solid fa-calendar-days"></i></span>
|
|
<span class="badge bg-secondary mx-2 text-nowrap" title="Filtro Data fine attivo">@selDtEnd   <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-5 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>
|
|
<select @bind="@currRecord.CodArticolo" class="form-select">
|
|
<option value="">--Selezionare un articolo--</option>
|
|
@if (ListArticoli != null)
|
|
{
|
|
foreach (var item in ListArticoli)
|
|
{
|
|
@* @if (item.CodArticolo == currRecordControlli.CodArticolo)
|
|
{
|
|
<option value="@item.CodArticolo" selected>@item.CodArticolo | @item.DescArticolo | @item.Disegno</option>
|
|
else
|
|
{
|
|
}
|
|
}*@
|
|
<option value="@item.CodArticolo">@item.CodArticolo | @item.DescArticolo | @item.Disegno</option>
|
|
}
|
|
}
|
|
}
|
|
</select>
|
|
</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>
|
|
<input type="text" class="form-control" aria-label="Num Pezzi" aria-describedby="inputGroup-sizing-sm" @bind-value="@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">
|
|
</div>
|
|
</div>
|
|
<div class="col-3">
|
|
<div class="input-group input-group-sm">
|
|
<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 (item.value == currRecordControlli.KeyRichiesta)
|
|
{
|
|
<option value="@item.value" selected>@item.label</option>
|
|
}
|
|
else
|
|
{
|
|
<option value="@item.value">@item.label</option>
|
|
}
|
|
|
|
}
|
|
}
|
|
</select>
|
|
</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)
|
|
{
|
|
<input @bind-value="@currGruppoSel.DescrGruppo" class="form-control" disabled />
|
|
@* <option value="@currGruppoSel.CodGruppo" selected>@currGruppoSel.CodGruppo | @currGruppoSel.DescrGruppo</option> *@
|
|
}
|
|
</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>
|
|
<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"))
|
|
{
|
|
|
|
@*if (item.IdxMacchina == currRecordControlli.IdxMacchina)
|
|
{
|
|
<option selected value="@item.IdxMacchina">@item.IdxMacchina | @item.Descrizione</option>
|
|
}
|
|
else
|
|
{
|
|
}
|
|
*@
|
|
<option value="@item.IdxMacchina">@item.IdxMacchina | @item.Descrizione</option>
|
|
}
|
|
}
|
|
}
|
|
</select>
|
|
</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>
|
|
<input type="text" class="form-control" aria-label="Note" aria-describedby="inputGroup-sizing-sm" @bind-value="@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">
|
|
<input class="form-check-input" type="checkbox" name="setupAlarms" title="Attivabile" @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>
|
|
</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>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
</div>
|
|
<div class="card-body">
|
|
@if (isLoading)
|
|
{
|
|
<LoadingData></LoadingData>
|
|
}
|
|
else
|
|
{
|
|
<ListPODL PagerResetReq="pgResetReq" RecordSel="@selRecord" updateRecordCount="UpdateTotCount" actFilter="@currFilter" padCodXdl="@padCodXdl"></ListPODL>
|
|
}
|
|
</div>
|
|
<div class="card-footer py-1">
|
|
<DataPager @ref="pagerODL" PageSize="numRecord" currPage="currPage" numRecordChanged="ForceReload" numPageChanged="ForceReloadPage" totalCount="totalCount" showLoading="@isLoading" />
|
|
</div>
|
|
</div> |