372 lines
19 KiB
Plaintext
372 lines
19 KiB
Plaintext
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<MachSel RecMSE="RecMSE" E_MachSel="SetMacc"></MachSel>
|
|
<ShowProcessing IsProcessing="@isProcessing"></ShowProcessing>
|
|
</div>
|
|
@if (isProcessing)
|
|
{
|
|
<ProgressDisplay RefreshInterval="200" Title="ODL Processing" MaxVal="@MaxVal" CurrVal="@currVal" NextVal="@nextVal" ExpTimeMSec="@expTimeMsec"></ProgressDisplay>
|
|
<LoadingData Title="Elaborazione..." DisplaySize="LoadingData.CtrlSize.Large" DisplayMode="LoadingData.SpinMode.Growl"></LoadingData>
|
|
}
|
|
else
|
|
{
|
|
@if (isSlave)
|
|
{
|
|
<div class="col-12 my-2">
|
|
<div class="btn btn-danger text-warning w-100">
|
|
<div class="fs-1">@(Traduci("lblWarnHeadSlave"))</div>
|
|
<div class="fs-4">@(Traduci("lblWarnBodySlave"))</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@if (needConfProd)
|
|
{
|
|
@if (showSplitOdlOnTavVal || showReopOdlTav)
|
|
{
|
|
<div class="col-12 py-3">
|
|
<div class="row bg-danger">
|
|
<div class="col-12 col-md-6">
|
|
@if (showSplitOdlOnTavVal)
|
|
{
|
|
<button class="btn btn-lg btn-warning w-100" @onclick="OdlSetSameAsOtherTav"><i class="fa fa-check"></i> Attrezza stesso ODL da altra tavola <i class="fa fa-check"></i></button>
|
|
}
|
|
</div>
|
|
<div class="col-12 col-md-6">
|
|
@if (showReopOdlTav)
|
|
{
|
|
<button class="btn btn-lg btn-info w-100" @onclick="OdlReopenTav"><i class="fa fa-exclamation-triangle"></i> Riprendi ODL chiuso su tavola <i class="fa-solid fa-check me-1"></i></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="col-12 my-2">
|
|
<button class="btn btn-danger w-100" @onclick="GoToMachDetail">
|
|
<div class="fs-1">@lblWarnHead</div>
|
|
<div class="fs-4">
|
|
@lblWarnBody
|
|
<div>
|
|
Pezzi NC: <b>@numPz2Conf</b>
|
|
</div>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
@if (!odlOk)
|
|
{
|
|
<div class="col-12">
|
|
<FixOdl IdxMaccCurr="@IdxMaccSel" E_RefreshData="refreshAfterFixOdl"></FixOdl>
|
|
</div>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
@if (showSplitOdlOnTavVal || showReopOdlTav)
|
|
{
|
|
<div class="col-12 bg-danger py-3">
|
|
<div class="row">
|
|
<div class="col-12 col-md-6">
|
|
@if (showSplitOdlOnTavVal)
|
|
{
|
|
<button class="btn btn-lg btn-warning w-100" @onclick="OdlSetSameAsOtherTav"><i class="fa fa-check"></i> Attrezza stesso ODL da altra tavola <i class="fa fa-check"></i></button>
|
|
}
|
|
</div>
|
|
<div class="col-12 col-md-6">
|
|
@if (showReopOdlTav)
|
|
{
|
|
<button class="btn btn-lg btn-info w-100" @onclick="OdlReopenTav"><i class="fa fa-exclamation-triangle"></i> Riprendi ODL chiuso su tavola <i class="fa-solid fa-check me-1"></i></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
@* <div class="col-12">
|
|
Check articolo in revisione
|
|
</div> *@
|
|
@if (cancelSetupEnabled && RecMSE != null && RecMSE.PezziConf == 0)
|
|
{
|
|
<div class="col-12 col-md-6 p-2">
|
|
<button class="btn btn-lg btn-danger w-100" @onclick="OdlAnnullaSetup">Annulla Setup ODL <i class="fa-solid fa-ban me-1"></i></button>
|
|
</div>
|
|
}
|
|
|
|
@if (!inAttr && !showOdlDetail)
|
|
{
|
|
<div class="col-12 my-1">
|
|
<button class="btn btn-lg btn-warning w-100" disabled="@inAttr" @onclick="ToggleOdlDetail"><i class="fa-solid fa-chevron-down"></i> @txtBtnOdlDetail</button>
|
|
</div>
|
|
}
|
|
|
|
@if (showOdlDetail || inAttr)
|
|
{
|
|
<div class="col-12 my-1">
|
|
<div class="card">
|
|
<div class="card-header @cssDetailOdl d-flex justify-content-between">
|
|
<div>
|
|
<h4>@titleOdlDetail</h4>
|
|
</div>
|
|
@if (idxPOdlSel == 0)
|
|
{
|
|
<div class="d-flex text-end">
|
|
<div class="form-check form-switch px-2">
|
|
<label class="form-check-label">@txtShowXDL</label>
|
|
<input class="form-check-input" type="checkbox" @bind="@showPOdlData">
|
|
</div>
|
|
@if (!inAttr)
|
|
{
|
|
<div>
|
|
<button class="btn btn-dark w-100" @onclick="ToggleOdlDetail"><i class="fa-solid fa-chevron-up"></i> @txtBtnOdlDetail</button>
|
|
</div>
|
|
}
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
@if (!showPOdlData)
|
|
{
|
|
<b>ODL:</b>
|
|
}
|
|
else
|
|
{
|
|
<b>P.ODL:</b>
|
|
}
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@if (currOdl != null && !showPOdlData)
|
|
{
|
|
@currOdl.IdxOdl
|
|
}
|
|
else
|
|
{
|
|
@currPodl.IdxPromessa
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
Rif:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@currPodl.KeyRichiesta
|
|
</div>
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
Cod:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@currPodl.CodArticolo
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row border-top border-bottom border-secondary">
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
Articolo:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@currPodl.DescArticolo
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
Pezzi:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@currPodl.NumPezzi.ToString("N0")
|
|
</div>
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
TCiclo:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@if (currOdl != null && currOdl.Tcassegnato > 0 && !showPOdlData)
|
|
{
|
|
@currOdl.Tcassegnato.ToString("N2")
|
|
}
|
|
else
|
|
{
|
|
@currPodl.Tcassegnato.ToString("N2")
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
<div class="px-0 small">
|
|
Pz/pallet:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@if (currOdl != null && !showPOdlData)
|
|
{
|
|
@currOdl.PzPallet
|
|
}
|
|
else
|
|
{
|
|
@currPodl.PzPallet
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer">
|
|
<div class="row">
|
|
<div class="col text-start fw-bold">
|
|
@if (currOdl != null && !showPOdlData)
|
|
{
|
|
@currOdl.Nome
|
|
}
|
|
else
|
|
{
|
|
@currPodl.Nome
|
|
}
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
@if (!showPOdlData)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
<div class="px-0 small">
|
|
Priorita:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@currPodl.Priorita
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="col d-flex justify-content-between">
|
|
@if (!showPOdlData)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
<div class="px-0 small">
|
|
Data:
|
|
</div>
|
|
<div class="px-0 text-end fw-bold">
|
|
@($"{currPodl.DueDate:yyyy.MM.dd}")
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
@if (!inAttr && !showSplitOdlRiattr)
|
|
{
|
|
<div class="col-12 col-md-6 my-2">
|
|
@if (idxPOdlSel > 0)
|
|
{
|
|
<button class="btn btn-lg btn-primary w-100" @onclick="OdlSetupStart"><i class="fa-solid fa-check me-1"></i> INIZIO Attrezzaggio</button>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-lg btn-primary w-100" disabled="@endProdDisabled" @onclick="ProdEnd"><i class="fa-solid fa-ban me-1"></i>FINE Produzione</button>
|
|
}
|
|
</div>
|
|
<div class="col-12 col-md-6 my-2">
|
|
<div class="input-group input-group-lg">
|
|
<button class="btn btn-outline-secondary px-2" @onclick="SearchPodlReset"><i class="fa-solid fa-x"></i></button>
|
|
<input type="text" class="form-control w-25 small" placeholder="Cerca" aria-label="Cerca" @bind="@SearchPodl">
|
|
<select class="form-select w-50" @bind="IdxPOdlSel">
|
|
@foreach (var item in ListODL)
|
|
{
|
|
<option value="@item.value">@item.label</option>
|
|
}
|
|
</select>
|
|
<div class="input-group-text px-1">
|
|
<input class="form-check-input mt-0 me-1" id="chk_all" type="checkbox" @bind="ShowAll">
|
|
<label class="form-check-label form-check-label-sm" for="chk_all">
|
|
tutti
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (idxPOdlSel > 0 || inAttr || showSplitOdlRiattr)
|
|
{
|
|
<div class="col-12 col-sm-6">
|
|
<div class="form-floating">
|
|
<textarea type="text" class="form-control" style="height: 7rem;" @bind="@noteAttr"></textarea>
|
|
<label for="floatingComm">Note Attrezzaggio (opzionale)</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-sm-6">
|
|
<SelTempoMSMC TempoMC="@tcRichAttr" modoControllo="SelTempoMSMC.timeControlMode.selettori" E_TCRich="SaveTCRich"></SelTempoMSMC>
|
|
<div class="input-group">
|
|
<div class="input-group-text">
|
|
Pz Pallet
|
|
</div>
|
|
<select class="form-select" @bind="PzPallet">
|
|
@for (int i = 1; i <= 20; i++)
|
|
{
|
|
<option value="@i">@i</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
@if (inAttr)
|
|
{
|
|
<div class="col-12 col-md-6 my-2">
|
|
<button class="btn btn-lg btn-warning w-100" disabled="@needConfProd" @onclick="OdlSetupEnd"><i class="fa-solid fa-check me-1"></i> FINE Attr / INIZIO Prod.</button>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
if (odlOk && showChkCloseOdlVal && !showSplitOdlRiattr)
|
|
{
|
|
<div class="col-12 col-md-6 my-2">
|
|
<div class="form-check form-switch fs-3">
|
|
<input class="form-check-input" type="checkbox" @bind="@forceCloseOdl">
|
|
<label class="form-check-label">@txtForceCloseOdl</label>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
@if (enableRiattrezzaggio)
|
|
{
|
|
<div class="col-12 col-md-6 my-2">
|
|
@if (showSplitOdlRiattr)
|
|
{
|
|
<button class="btn btn-lg btn-info w-100" @onclick="() => SplitOdl()"><i class="fa-solid fa-triangle-exclamation me-1"></i> Effettua Riattrezzaggio</button>
|
|
}
|
|
else
|
|
{
|
|
if (!inAttr && odlOk)
|
|
{
|
|
<button class="btn btn-lg btn-info w-100" disabled="@needConfProd" @onclick="() => ShowRiattrezzaggio()"><i class="fa-solid fa-triangle-exclamation me-1"></i> Mostra Riattrezzaggio</button>
|
|
}
|
|
}
|
|
</div>
|
|
}
|
|
@if (!inAttr && enableFixSetup)
|
|
{
|
|
<div class="col-12 col-md-6 my-2">
|
|
<button class="btn btn-lg btn-success w-100" @onclick="() => SendFixEndSetup()"><i class="fa-solid fa-wrench me-1"></i> Fix Chiusura Attrezzaggio (PLC)</button>
|
|
</div>
|
|
}
|
|
@* @if (showOdlProvv)
|
|
{
|
|
|
|
<div class="col-12 col-md-6 p-2">
|
|
<button class="btn btn-lg btn-danger w-100" disabled="@needConfProd"><i class="fa-solid fa-circle-exclamation me-1"></i> Creazione ODL Provvisorio</button>
|
|
</div>
|
|
} *@
|
|
<div class="col-12 text-center text-danger">
|
|
@((MarkupString)lblOut)
|
|
</div>
|
|
}
|
|
}
|
|
}
|
|
</div> |