255 lines
14 KiB
Plaintext
255 lines
14 KiB
Plaintext
@if (ListRecords == null)
|
|
{
|
|
<LoadingData></LoadingData>
|
|
}
|
|
else if (totalCount == 0)
|
|
{
|
|
<div class="alert alert-warning text-center display-4">Nessun record trovato</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="row">
|
|
@if (showKitDetail)
|
|
{
|
|
<MP.SPEC.Components.ProdKit.KitDetailModal ListTK="@ListKitTemplate" EC_Close="() => KitToggleDetail(null)"></MP.SPEC.Components.ProdKit.KitDetailModal>
|
|
}
|
|
@if (currRecord != null && !showStats && isCurrOdl)
|
|
{
|
|
<div class="col-6 col-lg-8">
|
|
@if (enableForceSync)
|
|
{
|
|
<button @onclick="() => ForceSyncDb()" class="btn btn-success btn-sm">Forza sync → macchina <i class="bi bi-fast-forward-circle"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button disabled class="btn btn-secondary btn-sm">Forza sync non abilitato <i class="bi bi-fast-forward-circle"></i></button>
|
|
}
|
|
</div>
|
|
<div class="col-6 col-lg-4 text-end">
|
|
@if (enableStopODL)
|
|
{
|
|
<button @onclick="() => chiudiOdl()" class="btn btn-danger btn-sm">Registra chiusura ODL <i class="far fa-stop-circle"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button disabled class="btn btn-secondary btn-sm">Chiusura ODL non abilitata <i class="far fa-stop-circl"></i></button>
|
|
}
|
|
</div>
|
|
}
|
|
<div class="col-12">
|
|
<table class="table table-sm table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
@if (currRecord != null)
|
|
{
|
|
<button @onclick="() => resetSel()" class="btn btn-primary btn-sm"><i class="bi bi-arrow-counterclockwise"></i></button>
|
|
}
|
|
</th>
|
|
<th>Cod</th>
|
|
<th><i class="fa-solid fa-file"></i> Articolo</th>
|
|
<th><i class="fa-solid fa-screwdriver-wrench"></i> Fase</th>
|
|
<th><i class="fa-solid fa-hard-drive"></i> Macchina</th>
|
|
<th><i class="fa-solid fa-circle-info"></i> Info ciclo</th>
|
|
<th><i class="fa-solid fa-calendar-day"></i> Periodo</th>
|
|
<th title="Durata in ore:min"><i class="fa-solid fa-clock"></i> Durata</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var record in ListRecords)
|
|
{
|
|
<tr class="@checkSelect(@record.IdxOdl)">
|
|
<td>
|
|
@if (isCurrOdl)
|
|
{
|
|
<div>
|
|
<button class="btn btn-primary btn-sm" @onclick="() => selRecord(record)" title="Select Record"><i class="fa-solid fa-magnifying-glass"></i></button>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-secondary btn-sm disabled"><i class="fa-solid fa-magnifying-glass"></i></button>
|
|
}
|
|
@if (HasFolderMan(record.IdxMacchina))
|
|
{
|
|
<div class="mt-1">
|
|
<button class="btn btn-info btn-sm" @onclick="() => selBrowseRecord(record)" title="Show Folder" data-bs-toggle="modal" data-bs-target="#odlDirModal"><i class="fa-regular fa-folder-open"></i></button>
|
|
</div>
|
|
}
|
|
</td>
|
|
<td>
|
|
<div class="small" style="width:7rem;">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-0">
|
|
<b>ODL</b>
|
|
</div>
|
|
<div class="px-0">
|
|
@($"{record.IdxOdl.ToString(padCodXdl)}")
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-0">
|
|
<b>PODL</b>
|
|
</div>
|
|
@if (getPodl(record.IdxOdl) > 0)
|
|
{
|
|
<div class="px-0">
|
|
@($"{getPodl(record.IdxOdl).ToString(padCodXdl)}")
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<p>------</p>
|
|
}
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
@record.CodArticolo
|
|
@if (CheckIsKit(record.CodArticolo))
|
|
{
|
|
<button class="mx-1 btn btn-sm btn-outline-dark small" @onclick="() => KitToggleDetail(record.CodArticolo)" title="Mostra dettaglio"><i class="fa-solid fa-search"></i></button>
|
|
}
|
|
</div>
|
|
<div class="small textConsensed text-secondary">@record.DescArticolo</div>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
@tradFase(record.KeyRichiesta)
|
|
</div>
|
|
@if (record.Note != "")
|
|
{
|
|
<div class="small textConsensed text-secondary badge text-bg-light border border-secondary rounded">
|
|
<b class="text-dark"></b> <span class="text-wrap text-start"> @record.Note </span>
|
|
</div>
|
|
}
|
|
</td>
|
|
|
|
<td>
|
|
@record.IdxMacchina
|
|
<div class="small textConsensed text-secondary">@record.Nome</div>
|
|
</td>
|
|
<td>
|
|
<div class="small textConsensed"><b>N° pezzi:</b> @record.NumPezzi</div>
|
|
<div class="small textConsensed"><b>T. Ciclo:</b> @record.Tcassegnato.ToString("N3")</div>
|
|
|
|
</td>
|
|
<td>
|
|
<div class="small d-flex justify-content-between">
|
|
<div>
|
|
<div><b>@($"{@record.DataInizio:yyyy/MM/dd}")</b></div>
|
|
<div>@($"{@record.DataInizio:ddd HH:mm:ss}")</div>
|
|
</div>
|
|
<div class="p-0">
|
|
<i class="fa-solid fa-angles-right"></i>
|
|
</div>
|
|
<div>
|
|
@if (@record.DataFine != null)
|
|
{
|
|
<div><b>@($"{@record.DataFine:yyyy/MM/dd}")</b></div>
|
|
<div>@($"{@record.DataFine:ddd HH:mm:ss}")</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="text-secondary">
|
|
<div><b>@($"{DateTime.Now:yyyy/MM/dd}")</b></div>
|
|
<div>@($"{DateTime.Now:ddd HH:mm:ss}")</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<div>
|
|
<button class="btn btn-sm btn-primary py-1 px-2" type="button" @onclick="() => selStatRecord(record)" data-bs-toggle="modal" data-bs-target="#statsModal" title="Mostra statistiche">
|
|
<div>
|
|
<b>@record.DurataMinuti</b>
|
|
</div>
|
|
<i class="fa-solid fa-chart-pie"></i>
|
|
</button>
|
|
</div>
|
|
<!-- Modal -->
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="modal fade" id="statsModal" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered modal-xl">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-primary col-12">
|
|
@if (statRecord != null)
|
|
{
|
|
<div class="col-3">
|
|
<div class="modal-title fs-2" id="staticBackdropLabel"><b>ODL @($"{statRecord.IdxOdl.ToString(padCodXdl)}")</b></div>
|
|
<div class="small text-light">PODL @($"{getPodl(statRecord.IdxOdl).ToString(padCodXdl)}")</div>
|
|
</div>
|
|
<div class="col-6 fs-5">
|
|
<b>@statRecord.CodArticolo</b>
|
|
<div class="small textConsensed text-light">
|
|
@(@statRecord.ArticoloNav != null ? @statRecord.ArticoloNav.DescArticolo : "N.A.")
|
|
</div>
|
|
</div>
|
|
<div class="col-2 fs-5">
|
|
<b>@statRecord.IdxMacchina</b>
|
|
<div class="small textConsensed text-light">
|
|
@(@statRecord.MachineNav != null ? @statRecord.MachineNav.Descrizione : "N.A.")
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="col-1 text-end">
|
|
<button type="button" class="btn btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
</div>
|
|
<div class="modal-body col-12">
|
|
@if (statRecord != null && showStats)
|
|
{
|
|
<StatsOdl ListOdlStats="@ListOdlStats" ListStati="@ListStati" statRecord="@statRecord"></StatsOdl>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal fade" id="odlDirModal" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered modal-xl">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-primary col-12">
|
|
@if (browseRecord != null)
|
|
{
|
|
<div class="col-3">
|
|
<div class="modal-title fs-2" id="staticBackdropLabel"><b>ODL @($"{browseRecord.IdxOdl.ToString(padCodXdl)}")</b></div>
|
|
<div class="small text-light">PODL @($"{getPodl(browseRecord.IdxOdl).ToString(padCodXdl)}")</div>
|
|
</div>
|
|
<div class="col-6 fs-5">
|
|
<b>@browseRecord.CodArticolo</b>
|
|
<div class="small textConsensed text-light">
|
|
@(@browseRecord.ArticoloNav != null ? @browseRecord.ArticoloNav.DescArticolo : "N.A.")
|
|
</div>
|
|
</div>
|
|
<div class="col-2 fs-5">
|
|
<b>@browseRecord.IdxMacchina</b>
|
|
<div class="small textConsensed text-light">
|
|
@(@browseRecord.MachineNav != null ? @browseRecord.MachineNav.Descrizione : "N.A.")
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="col-1 text-end">
|
|
<button type="button" class="btn btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
</div>
|
|
<div class="modal-body col-12">
|
|
@if (browseRecord != null && showBrowse)
|
|
{
|
|
<FolderBrowser LogicalPath="@($"ODL{browseRecord.IdxOdl.ToString(padCodXdl)}")"></FolderBrowser>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|