fix conf visualizzazione minuti durata
This commit is contained in:
+127
-130
@@ -1,143 +1,140 @@
|
||||
@model IEnumerable<MP_MON.Models.MappaStatoExpl>
|
||||
|
||||
|
||||
<div class="row statusMap mx-2 mt-3 mb-1">
|
||||
|
||||
@{
|
||||
// salvo variabili num blocchi x riga
|
||||
int numBlock = 0;
|
||||
int maxCol = 6;
|
||||
try
|
||||
{
|
||||
maxCol = ViewBag.maxCol;
|
||||
}
|
||||
catch
|
||||
{
|
||||
maxCol = 6;
|
||||
}
|
||||
if (maxCol == 0)
|
||||
{
|
||||
maxCol = 6;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
// fix codice semaforo: sVe -> Ve, sRo ->Ro...
|
||||
string codSemaf = item.Semaforo;
|
||||
// se nullo --> ""
|
||||
if (string.IsNullOrEmpty(codSemaf))
|
||||
{
|
||||
codSemaf = "NA";
|
||||
}
|
||||
if (codSemaf.Length == 3)
|
||||
{
|
||||
codSemaf = codSemaf.Substring(1, 2);
|
||||
}
|
||||
string cssStatus = ViewBag.baseCss + codSemaf;
|
||||
// calcolo durata...
|
||||
TimeSpan TCAss = TimeSpan.FromMinutes((double)item.TCAssegnato);
|
||||
TimeSpan TCLav = TimeSpan.FromMinutes((double)item.TCLavRT);
|
||||
// converto a stringa!
|
||||
string TCAssegnato = TCAss.ToString(@"mm\:ss");
|
||||
string TCLavorato = TCLav.ToString(@"mm\:ss");
|
||||
|
||||
|
||||
// verifico se mostrare articolo o disegno...
|
||||
string sArticolo = "";
|
||||
if (SteamWare.memLayer.ML.CRS("sART") == "CodArticolo")
|
||||
{
|
||||
sArticolo = item.CodArticolo;
|
||||
}
|
||||
else
|
||||
{
|
||||
sArticolo = item.Disegno;
|
||||
}
|
||||
// se fosse vuoto mostro cmq codArt tra parentesi...
|
||||
if (sArticolo == "")
|
||||
{
|
||||
sArticolo = string.Format("[{0}]", item.CodArticolo);
|
||||
}
|
||||
// se NON trova update da oltre "keepAliveMin" / 2 minuti rosso lo status comunicazione
|
||||
string cssComStatus = cssStatus;
|
||||
string showComErr = "invisible";
|
||||
if (DateTime.Now.Subtract((DateTime)item.lastUpdate).TotalSeconds > SteamWare.memLayer.ML.CRI("keepAliveMin") * 60 / 2)
|
||||
{
|
||||
cssComStatus = ViewBag.baseCss + "Ro";
|
||||
showComErr = "visible";
|
||||
}
|
||||
// verifico SE è disabilitata modalità animazione -> blink a stati (e refresh 1s)
|
||||
if (SteamWare.memLayer.ML.CRS("doAnimate") == "1")
|
||||
{
|
||||
// blink se secondo pari...
|
||||
DateTime adesso = DateTime.Now;
|
||||
int resto = 0;
|
||||
Math.DivRem(adesso.Second, 2, out resto);
|
||||
if (resto == 0)
|
||||
{
|
||||
cssStatus += "_b";
|
||||
if (cssComStatus.EndsWith("Ro"))
|
||||
@{
|
||||
// salvo variabili num blocchi x riga
|
||||
int numBlock = 0;
|
||||
int maxCol = 6;
|
||||
try
|
||||
{
|
||||
cssComStatus += "_b";
|
||||
maxCol = ViewBag.maxCol;
|
||||
}
|
||||
catch
|
||||
{
|
||||
maxCol = 6;
|
||||
}
|
||||
if (maxCol == 0)
|
||||
{
|
||||
maxCol = 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
<div class="col" style="padding:2px;">
|
||||
<div class="@cssStatus p-1">
|
||||
<div class="row mb-1">
|
||||
<div class="col-12">
|
||||
<div class="ui-title text-uppercase">@Html.DisplayFor(modelItem => item.Nome)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-4 pr-0">Art.</div>
|
||||
<div class="col-8 pl-0 text-right ui-art">@sArticolo</div>
|
||||
</div>
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-9 text-uppercase"><b>@Html.DisplayFor(modelItem => item.DescrizioneStato)</b></div>
|
||||
<div class="col-3 pl-0 text-right">@item.durata'</div>
|
||||
@*<div class="col-6 pr-0">OEE</div>
|
||||
<div class="col-6 pl-0 text-right">xx%</div>*@
|
||||
<div class="col-4 pr-0">T.Ciclo</div>
|
||||
<div class="col-4 pl-0 text-right">std: @TCAssegnato</div>
|
||||
<div class="col-4 pl-0 text-right">act: @TCLavorato</div>
|
||||
<div class="col-6 pr-0">Pezzi<sub>(prod/ord)</sub></div>
|
||||
<div class="col-6 pl-0 text-right">@Html.DisplayFor(modelItem => item.PezziProd) / @Html.DisplayFor(modelItem => item.NumPezzi)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="@cssComStatus p-1">
|
||||
<div class="row fontSmaller mt-1">
|
||||
<div class="col-12">
|
||||
<div class="text-right ui-footer px-2">
|
||||
<div class="row">
|
||||
<div class="col-6 text-warning @showComErr">
|
||||
<b>C.101</b>
|
||||
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
// fix codice semaforo: sVe -> Ve, sRo ->Ro...
|
||||
string codSemaf = item.Semaforo;
|
||||
// se nullo --> ""
|
||||
if (string.IsNullOrEmpty(codSemaf))
|
||||
{
|
||||
codSemaf = "NA";
|
||||
}
|
||||
if (codSemaf.Length == 3)
|
||||
{
|
||||
codSemaf = codSemaf.Substring(1, 2);
|
||||
}
|
||||
string cssStatus = ViewBag.baseCss + codSemaf;
|
||||
// calcolo durata...
|
||||
TimeSpan TCAss = TimeSpan.FromMinutes((double)item.TCAssegnato);
|
||||
TimeSpan TCLav = TimeSpan.FromMinutes((double)item.TCLavRT);
|
||||
// converto a stringa!
|
||||
string TCAssegnato = TCAss.ToString(@"mm\:ss");
|
||||
string TCLavorato = TCLav.ToString(@"mm\:ss");
|
||||
|
||||
// verifico se mostrare articolo o disegno...
|
||||
string sArticolo = "";
|
||||
if (SteamWare.memLayer.ML.CRS("sART") == "CodArticolo")
|
||||
{
|
||||
sArticolo = item.CodArticolo;
|
||||
}
|
||||
else
|
||||
{
|
||||
sArticolo = item.Disegno;
|
||||
}
|
||||
// se fosse vuoto mostro cmq codArt tra parentesi...
|
||||
if (sArticolo == "")
|
||||
{
|
||||
sArticolo = string.Format("[{0}]", item.CodArticolo);
|
||||
}
|
||||
// se NON trova update da oltre "keepAliveMin" / 2 minuti rosso lo status comunicazione
|
||||
string cssComStatus = cssStatus;
|
||||
string showComErr = "invisible";
|
||||
if (DateTime.Now.Subtract((DateTime)item.lastUpdate).TotalSeconds > SteamWare.memLayer.ML.CRI("keepAliveMin") * 60 / 2)
|
||||
{
|
||||
cssComStatus = ViewBag.baseCss + "Ro";
|
||||
showComErr = "visible";
|
||||
}
|
||||
// verifico SE è disabilitata modalità animazione -> blink a stati (e refresh 1s)
|
||||
if (SteamWare.memLayer.ML.CRS("doAnimate") == "1")
|
||||
{
|
||||
// blink se secondo pari...
|
||||
DateTime adesso = DateTime.Now;
|
||||
int resto = 0;
|
||||
Math.DivRem(adesso.Second, 2, out resto);
|
||||
if (resto == 0)
|
||||
{
|
||||
cssStatus += "_b";
|
||||
if (cssComStatus.EndsWith("Ro"))
|
||||
{
|
||||
cssComStatus += "_b";
|
||||
}
|
||||
}
|
||||
}
|
||||
<div class="col" style="padding:2px;">
|
||||
<div class="@cssStatus p-1">
|
||||
<div class="row mb-1">
|
||||
<div class="col-12">
|
||||
<div class="ui-title text-uppercase">@Html.DisplayFor(modelItem => item.Nome)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
@Html.DisplayFor(modelItem => item.lastUpdate)
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-4 pr-0">Art.</div>
|
||||
<div class="col-8 pl-0 text-right ui-art">@sArticolo</div>
|
||||
</div>
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-9 text-uppercase"><b>@Html.DisplayFor(modelItem => item.DescrizioneStato)</b></div>
|
||||
<div class="col-3 pl-0 text-right">@string.Format("{0:0.00}", item.durata)'</div>
|
||||
@*<div class="col-6 pr-0">OEE</div>
|
||||
<div class="col-6 pl-0 text-right">xx%</div>*@
|
||||
<div class="col-4 pr-0">T.Ciclo</div>
|
||||
<div class="col-4 pl-0 text-right">std: @TCAssegnato</div>
|
||||
<div class="col-4 pl-0 text-right">act: @TCLavorato</div>
|
||||
<div class="col-6 pr-0">Pezzi<sub>(prod/ord)</sub></div>
|
||||
<div class="col-6 pl-0 text-right">@Html.DisplayFor(modelItem => item.PezziProd) / @Html.DisplayFor(modelItem => item.NumPezzi)</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="@cssComStatus p-1">
|
||||
<div class="row fontSmaller mt-1">
|
||||
<div class="col-12">
|
||||
<div class="text-right ui-footer px-2">
|
||||
<div class="row">
|
||||
<div class="col-6 text-warning @showComErr">
|
||||
<b>C.101</b>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
@Html.DisplayFor(modelItem => item.lastUpdate)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// controllo se ho resto zero --> uso NUOVA riga...
|
||||
if ((numBlock % maxCol) == maxCol - 1)
|
||||
{
|
||||
@Html.Raw("</div><div class=\"row statusMap mx-2 my-1\">");
|
||||
// controllo se ho resto zero --> uso NUOVA riga...
|
||||
if ((numBlock % maxCol) == maxCol - 1)
|
||||
{
|
||||
@Html.Raw("</div><div class=\"row statusMap mx-2 my-1\">");
|
||||
}
|
||||
// incremento contatore
|
||||
numBlock++;
|
||||
}
|
||||
// incremento contatore
|
||||
numBlock++;
|
||||
}
|
||||
@{
|
||||
// controllo se NON SONO arrivao in fondo --> aggiungo blocchi!
|
||||
int currNum = (numBlock % maxCol);
|
||||
while (currNum < (maxCol))
|
||||
{
|
||||
@Html.Raw("<div class=\"col\" style=\"padding: 2px;\">aaa</div>");
|
||||
currNum++;
|
||||
@{
|
||||
// controllo se NON SONO arrivao in fondo --> aggiungo blocchi!
|
||||
int currNum = (numBlock % maxCol);
|
||||
while (currNum < (maxCol))
|
||||
{
|
||||
@Html.Raw("<div class=\"col\" style=\"padding: 2px;\">aaa</div>");
|
||||
currNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user