Files
2025-05-15 16:06:50 +02:00

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 &rarr; 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>
}