8c1f2be1f1
- inizio gestione modifiche x caso manuale (con disabilitazione menù e caricamento dato isManual)
361 lines
18 KiB
Plaintext
361 lines
18 KiB
Plaintext
@if (isLoading || CRecMSE == null)
|
|
{
|
|
@if (FullMode)
|
|
{
|
|
<PlaceholderStatusMap></PlaceholderStatusMap>
|
|
}
|
|
else
|
|
{
|
|
<PlaceholderDetail></PlaceholderDetail>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
@if (FullMode)
|
|
{
|
|
if (Width > 640)
|
|
{
|
|
<div class="card bg-dark @cssClassBorder @cssClassOverlay rounded-4" @onclick="ShowDetail">
|
|
<img src="@ImgUrlMacc(CRecMSE.Url)" class="card-img-top imgFitToSize rounded-top-4" alt="@CRecMSE.CodMacchina">
|
|
<div class="bg-black">
|
|
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-start">
|
|
<div class="labelTop px-2 w-100">
|
|
<div class="text-center fs-2 fw-bold">
|
|
@CRecMSE.Nome
|
|
@if(isManual)
|
|
{
|
|
<i class="ps-1 text-light fs-3 fa-solid fa-puzzle-piece"></i>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body rounded-bottom-4 p-0 bg-dark">
|
|
<div class="@CRecMSE.Semaforo py-0 px-1">
|
|
<div class="d-flex justify-content-between fs-5">
|
|
<div class="px-0 @cssClassTextDescr">
|
|
<span>@CRecMSE.DescrizioneStato </span>
|
|
</div>
|
|
<div class="px-0">
|
|
<b>@(FormatDurata(CRecMSE.Durata))</b>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-around">
|
|
<div class="text-center text-success d-flex justify-content-between">
|
|
<div>
|
|
<i class="fa-regular fa-circle-check"></i> @($" {CRecMSE.PezziConf}")
|
|
</div>
|
|
<div class="text-danger">
|
|
@if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
|
|
{
|
|
@($"(- {datiProdAct.PzConfScarto})")
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="text-center text-warning ">
|
|
<div>
|
|
<i class="fa-solid fa-layer-group"></i> @($" {CRecMSE.PezziProd}")
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<div class="col-4">
|
|
<EgwCoreLib.Razor.CircleGaugeMulti Titolo="@($"{currMaxVal}")" Testo="#pz rich" maxVal="@currMaxVal" ListInner="@innerCircleVals" ListOuter="@outerCircleVals" ShowCircleBtn="true"></EgwCoreLib.Razor.CircleGaugeMulti>
|
|
</div>
|
|
<div class="col-8 py-1" style="line-height: 1.6rem;">
|
|
<div class="text-center text-light d-flex justify-content-between">
|
|
<div class="px-1"><span>ART:</span></div>
|
|
<div class="px-1">@($"{CRecMSE.CodArticolo}")</div>
|
|
</div>
|
|
<div class="text-center text-light d-flex justify-content-between small lh-sm">
|
|
<div class="px-1">ODL:</div>
|
|
<div class="px-1">@($"{CRecMSE.IdxOdl:000000}")</div>
|
|
</div>
|
|
<div class="text-center text-light d-flex justify-content-between small lh-sm">
|
|
<div class="px-1">PODL:</div>
|
|
<div class="px-1">@($"{CRecMSE.IdxPOdl:000000}")</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="card bg-dark shadow @cssClassBorder @cssClassOverlay rounded-4" @onclick="ShowDetail">
|
|
<img src="@ImgUrlMacc(CRecMSE.Url)" class="card-img-top imgFitToSize rounded-top-4" alt="@CRecMSE.CodMacchina">
|
|
<div class="bg-black">
|
|
<div class="card-img-overlay p-0 d-flex flex-row-reverse align-items-start">
|
|
<div class="labelTop px-2 py-0 w-100">
|
|
<div class="text-center fs-2 fw-bold">
|
|
@CRecMSE.Nome
|
|
@if (isManual)
|
|
{
|
|
<i class="ps-1 text-light fs-3 fa-solid fa-puzzle-piece"></i>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-body rounded-bottom-4 p-0 bg-dark">
|
|
<div class="@CRecMSE.Semaforo py-0 px-1">
|
|
<div class="d-flex justify-content-between fs-5">
|
|
<div class="px-0 @cssClassTextDescr">
|
|
<span>@CRecMSE.DescrizioneStato</span>
|
|
</div>
|
|
<div class="px-0">
|
|
<b>
|
|
@(FormatDurata(CRecMSE.Durata))
|
|
</b>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-around">
|
|
<div class="text-center text-success d-flex justify-content-between">
|
|
<div>
|
|
<i class="fa-regular fa-circle-check"></i> @($" {CRecMSE.PezziConf}")
|
|
</div>
|
|
<div class="text-danger">
|
|
@if (datiProdAct != null && datiProdAct.PzConfScarto > 0)
|
|
{
|
|
@($"(- {datiProdAct.PzConfScarto})")
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="text-center text-warning ">
|
|
<div>
|
|
<i class="fa-solid fa-layer-group"></i> @($" {CRecMSE.PezziProd}")
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between">
|
|
<div class="col-5 px-0">
|
|
<EgwCoreLib.Razor.CircleGaugeMulti Titolo="@($"{currMaxVal}")" Testo="#pz rich" maxVal="@currMaxVal" ListInner="@innerCircleVals" ListOuter="@outerCircleVals" ShowCircleBtn="true"></EgwCoreLib.Razor.CircleGaugeMulti>
|
|
</div>
|
|
<div class="col-7 small py-1 px-0">
|
|
<div class="text-center text-light d-flex justify-content-between">
|
|
<div class="px-1 small">ART:</div>
|
|
<div class="px-1">@($"{CRecMSE.CodArticolo}")</div>
|
|
</div>
|
|
<div class="text-center text-light d-flex justify-content-between lh-sm">
|
|
<div class="px-1 small">ODL:</div>
|
|
<div class="px-1">@($"{CRecMSE.IdxOdl:000000}")</div>
|
|
</div>
|
|
<div class="text-center text-light d-flex justify-content-between lh-sm">
|
|
<div class="px-1 small">PODL:</div>
|
|
<div class="px-1">@($"{CRecMSE.IdxPOdl:000000}")</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<div class="cardObj px-3 py-1 text-sizer">
|
|
<div class="text-center d-flex justify-content-between align-items-center row">
|
|
<div class="col-12">
|
|
<h4 class="text-center mb-0 fw-bold">
|
|
@CRecMSE.Nome
|
|
@if (isManual)
|
|
{
|
|
<i class="ps-1 text-light fs-3 fa-solid fa-puzzle-piece"></i>
|
|
}
|
|
</h4>
|
|
</div>
|
|
<div class="col-4 fs-4">
|
|
<div class="lh-1">
|
|
<div class="text-end text-light fw-bold d-flex justify-content-between border-bottom border-secondary">
|
|
<div class="px-0">
|
|
Cicli Prod
|
|
</div>
|
|
<div class="px-0 fs-4">
|
|
@if (datiProdAct != null)
|
|
{
|
|
@($"{datiProdAct.PzTotODL}")
|
|
}
|
|
else
|
|
{
|
|
@($"{CRecMSE.PezziProd}")
|
|
}
|
|
</div>
|
|
</div>
|
|
@if (datiProdAct != null)
|
|
{
|
|
@if (datiProdAct.Pz2RecTot > 0)
|
|
{
|
|
<div class="fs-5 text-end text-warning d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Da Conferm.
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{datiProdAct.Pz2RecTot}")
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="fs-5 text-end text-secondary d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Da Conferm.
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{datiProdAct.Pz2RecTot}")
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (NumScartiConf > 0)
|
|
{
|
|
<div class="fs-5 text-end text-danger d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Scarti Versati
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{NumScartiConf}")
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="fs-5 text-end text-secondary d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Scarti Versati
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{NumScartiConf}")
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (datiProdAct.PzConfRilav > 0)
|
|
{
|
|
<div class="fs-5 text-end text-info d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Rilav Versati
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{datiProdAct.PzConfRilav}")
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="fs-5 text-end text-secondary d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Rilav Versati
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{datiProdAct.PzConfRilav}")
|
|
</div>
|
|
</div>
|
|
}
|
|
<div class="text-end text-success d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Buoni Vers.
|
|
</div>
|
|
<div class="px-0 fs-5">
|
|
@($"{datiProdAct.PzConfBuoni}")
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (CRecMSE.extraVal > 0 && showQtaExtra)
|
|
{
|
|
<div class="text-end text-primary d-flex justify-content-between">
|
|
<div class="px-0">
|
|
Extra
|
|
</div>
|
|
<div class="px-0 fs-5">@($"{CRecMSE.extraVal}")</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="col-4" style="max-height: 8rem; max-width: 7rem;">
|
|
<EgwCoreLib.Razor.CircleGaugeMulti Titolo="@($"{currMaxVal}")" Testo="#pz prod" maxVal="@currMaxVal" ListInner="@innerCircleVals" ListOuter="@outerCircleVals" ShowCircleBtn="true"></EgwCoreLib.Razor.CircleGaugeMulti>
|
|
</div>
|
|
<div class="col-4 d-flex flex-wrap justify-content-center align-items-center lh-1">
|
|
<div class="w-100">
|
|
@if (!string.IsNullOrEmpty(IdxMacchSub))
|
|
{
|
|
<div class="text-warning border border-warning rounded-3 small px-2 py-1 mb-1">
|
|
@IdxMacchSub
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="w-100 fs-4">
|
|
<div class="text-light d-flex justify-content-between small lh-sm">
|
|
<div class="px-0">ART</div>
|
|
<div class="px-0">@CRecMSE.CodArticolo</div>
|
|
</div>
|
|
<div class="text-end text-light d-flex justify-content-between small lh-sm">
|
|
<div class="px-0">ODL</div>
|
|
<div class="px-0">@($"{CRecMSE.IdxOdl:000000}")</div>
|
|
</div>
|
|
<div class="text-end text-light d-flex justify-content-between small lh-sm">
|
|
<div class="px-0">PODL:</div>
|
|
<div class="px-0">@($"{CRecMSE.IdxPOdl:000000}")</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex justify-content-between mt-2 px-0 mx-0">
|
|
<div class="col-3">
|
|
<div class="px-0 w-100">
|
|
@if (showPodl)
|
|
{
|
|
<button class="btn btn-outline-warning py-2 w-100" @onclick="TogglePOdl" title="Hide ODL Data">ODL <i class="fa-solid fa-file-invoice"></i> <i class="fa-solid fa-chevron-up"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-warning py-2 w-100 @isDisabled(showDraw)" @onclick="TogglePOdl" title="Show ODL Data">ODL <i class="fa-solid fa-file-invoice"></i> <i class="fa-solid fa-chevron-down"></i></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="col mb-2 mx-1 py-2 @CRecMSE.Semaforo rounded" @onclick="ShowDetail">
|
|
<div class="d-flex justify-content-center">
|
|
<div class="p-0 mr-auto me-1">
|
|
@CRecMSE.DescrizioneStato
|
|
</div>
|
|
<div class="p-0">
|
|
<b>@(FormatDurata(CRecMSE.Durata))</b>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (enableDisegno)
|
|
{
|
|
<div class="col-3">
|
|
<div class="px-0 w-100">
|
|
@if (showDraw)
|
|
{
|
|
<button class="btn btn-outline-info py-2 w-100" @onclick="ToggleDraw" title="Show/Hide Drawing Data"><i class="fa-regular fa-file-pdf"></i> <i class="fa-solid fa-chevron-up"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-info py-2 w-100 @isDisabled(showPodl)" @onclick="ToggleDraw" title="Show/Hide Drawing Data"><i class="fa-regular fa-file-pdf"></i> <i class="fa-solid fa-chevron-down"></i></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="col-3">
|
|
<div class="px-0 w-100">
|
|
<button class="btn btn-secondary py-2 w-100 disabled" title="Show/Hide Drawing Data"><i class="fa-regular fa-file-pdf"></i> <i class="fa-solid fa-chevron-down"></i></button>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (enableDisegno && showDraw)
|
|
{
|
|
string docUrl = string.IsNullOrEmpty(CRecMSE.Disegno) ? $"disegni/{CRecMSE.CodArticolo}.pdf" : $"disegni/{CRecMSE.Disegno}.pdf";
|
|
<div class="bg-light p-1">
|
|
<PdfDisplay Width="100%" PdfUrl="@docUrl" HeightList="@heightList"></PdfDisplay>
|
|
</div>
|
|
}
|
|
@if (showPodl)
|
|
{
|
|
<CurrOdlDetail CurrOdl="@currOdl" CurrPodl="@currPodl" IdxPOdlSel="0" ShowOdlDetail="@showOdlDetail" ForceCloseOdl="@forceCloseOdl" InAttr="@inAttr" EC_ToggleOdlDetail="TogglePOdl" ShowClose="false"></CurrOdlDetail>
|
|
}
|
|
} |