fix gestione calcolo possibilità nesting x caching redis

This commit is contained in:
Samuele E. Locatelli
2020-08-19 13:06:41 +02:00
parent 614070b729
commit dfd8094d98
5 changed files with 53 additions and 26 deletions
+37
View File
@@ -604,6 +604,43 @@ namespace AppData
// restituisco ok
return answ;
}
public static string canStartNewKey
{
get
{
return $"{redOutPath}:CanStartNew";
}
}
/// <summary>
/// verifica se sia avviabile un nuovo task nesting controllando cache Redis o tabelle batch/offlineOrders
/// </summary>
public static bool canStartNew
{
get
{
bool answ = false;
bool valido = false;
// cerco in redis
if (memLayer.ML.redKeyPresent(canStartNewKey))
{
string rawData = memLayer.ML.getRSV(canStartNewKey);
valido = bool.TryParse(rawData, out answ);
}
if (!valido)
{
// in primis controllo SE ci siano task running, nel qual caso è false e basta...
int numEst = DataLayer.man.taBL.getByStatus((int)BatchStatus.EstimationRequested, "", 0).Count;
int numNest = DataLayer.man.taBL.getByStatus((int)BatchStatus.NestRequested, "", 0).Count;
// ora controllo anche offline orders...
int numOffOrd = DataLayer.man.taOffOL.getRunning().Count;
// ora la somma di tutti DEVE essere zero...
answ = ((numEst + numNest + numOffOrd) == 0);
// salvo in redis
memLayer.ML.setRSV(canStartNewKey, answ.ToString(), 2);
}
return answ;
}
}
/// <summary>
/// Verifica lo stato di una richiesta di esecuzione BATCH x stima/nesting
+3 -3
View File
@@ -6,12 +6,12 @@
<div class="row small">
<div class="col-9">
<h3><%: traduci ("BatchDetail") %></h3>
<asp:Label runat="server" ID="lblRequestPresent" CssClass="text-danger" Visible='<%# !canStartNew() %>' Text='<%# traduci("NewNestReqDisabled") %>' />
<asp:Label runat="server" ID="lblRequestPresent" CssClass="text-danger" Visible='<%# !canStartNew %>' Text='<%# traduci("NewNestReqDisabled") %>' />
</div>
<div class="col-3">
<asp:LinkButton runat="server" ID="lbtSendEstim" CssClass="btn btn-sm btn-block btn-info" OnClick="lbtSendEstim_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStartEstim") %>' Visible='<%# (checkStatus(Eval("Status"), NKC_SDK.BatchStatus.Errors) || checkStatus(Eval("Status"), NKC_SDK.BatchStatus.Imported)) && canStartNew() %>'><%: traduci("SendToEstim") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtSendEstim" CssClass="btn btn-sm btn-block btn-info" OnClick="lbtSendEstim_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStartEstim") %>' Visible='<%# (checkStatus(Eval("Status"), NKC_SDK.BatchStatus.Errors) || checkStatus(Eval("Status"), NKC_SDK.BatchStatus.Imported)) && canStartNew %>'><%: traduci("SendToEstim") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtStopEstim" CssClass="btn btn-sm btn-block btn-dark" OnClick="lbtStopEstim_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStopEstim") %>' Visible='<%# checkStatus(Eval("Status"), NKC_SDK.BatchStatus.EstimationRequested) %>'><%: traduci("StopEstim") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtSendNesting" CssClass="btn btn-sm btn-block btn-warning" OnClick="lbtSendNesting_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStartNest") %>' Visible='<%# checkStatus(Eval("Status"), NKC_SDK.BatchStatus.EstimationDone) && canStartNew() %>'><%: traduci("SendToNest") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtSendNesting" CssClass="btn btn-sm btn-block btn-warning" OnClick="lbtSendNesting_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStartNest") %>' Visible='<%# checkStatus(Eval("Status"), NKC_SDK.BatchStatus.EstimationDone) && canStartNew %>'><%: traduci("SendToNest") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtStopNesting" CssClass="btn btn-sm btn-block btn-dark" OnClick="lbtStopNesting_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmStopNest") %>' Visible='<%# checkStatus(Eval("Status"), NKC_SDK.BatchStatus.NestRequested) %>'><%: traduci("StopNest") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtAccept" CssClass="btn btn-sm btn-block btn-success" OnClick="lbtAccept_Click" OnClientClick='<%: SteamWare.jsUtils.getCBE("ConfirmAcceptNest") %>' Visible='<%# checkStatus(Eval("Status"), NKC_SDK.BatchStatus.NestDone) %>'><%: traduci("AcceptNest") %></asp:LinkButton>
</div>
+5 -10
View File
@@ -239,17 +239,12 @@ namespace NKC_WF.WebUserControls
/// verifica possibilità avvio TASK x presenza task NON chiusi
/// </summary>
/// <returns></returns>
public bool canStartNew()
public bool canStartNew
{
bool answ = false;
// in primis controllo SE ci siano task running, nel qual caso è false e basta...
int numEst = DataLayer.man.taBL.getByStatus((int)BatchStatus.EstimationRequested, "", 0).Count;
int numNest = DataLayer.man.taBL.getByStatus((int)BatchStatus.NestRequested, "", 0).Count;
// ora controllo anche offline orders...
int numOffOrd = DataLayer.man.taOffOL.getRunning().Count;
// ora la somma di tutti DEVE essere zero...
answ = ((numEst + numNest + numOffOrd) == 0);
return answ;
get
{
return ComLib.canStartNew;
}
}
/// <summary>
/// Converte il codice stato in effettivo campo
@@ -27,11 +27,11 @@
<hr />
<div class="row my-2">
<div class="col">
<asp:LinkButton runat="server" ID="lbtMakeCnc" CssClass="btn btn-success btn-block" Visible='<%# obj2int(Eval("OrdStatus")) <= 0 && canStartNew() %>' OnClick="lbtMakeCnc_Click" OnClientClick='return confirm("Send to CAM?")'><i class="fa fa-laptop" aria-hidden="true"></i> <%: traduci ("MakeCncProg") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtMakeCnc" CssClass="btn btn-success btn-block" Visible='<%# obj2int(Eval("OrdStatus")) <= 0 && canStartNew %>' OnClick="lbtMakeCnc_Click" OnClientClick='return confirm("Send to CAM?")'><i class="fa fa-laptop" aria-hidden="true"></i> <%: traduci ("MakeCncProg") %></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtStopCnc" CssClass="btn btn-dark text-light btn-block" Visible='<%# obj2int(Eval("OrdStatus")) == 1 && Eval("DrawFilePath").ToString() == "" %>' OnClick="lbtStopCnc_Click" OnClientClick='return confirm("Remove request to CAM?")'><i class="fa fa-laptop" aria-hidden="true"></i> <%: traduci ("StopCncReq") %></asp:LinkButton>
</div>
<div class="col">
<asp:Label runat="server" ID="lblRequestPresent" CssClass="text-danger" Visible='<%# !canStartNew() %>' Text='<%# traduci("NewNestReqDisabled") %>' />
<asp:Label runat="server" ID="lblRequestPresent" CssClass="text-danger" Visible='<%# !canStartNew %>' Text='<%# traduci("NewNestReqDisabled") %>' />
<asp:LinkButton runat="server" ID="lblDone" CssClass="btn btn-success btn-block" Visible='<%# (Eval("OrdStatus").ToString()=="1" && Eval("DrawFilePath").ToString()!="") || Eval("OrdStatus").ToString()=="2" %>' OnClick="lblDone_Click" OnClientClick='return confirm("Confirm Item production?")'><i class="fa fa-check" aria-hidden="true"></i> <%: traduci ("ItemDone") %></asp:LinkButton>
</div>
</div>
@@ -83,7 +83,7 @@ namespace NKC_WF.WebUserControls
DataLayer.man.taOffOL.updateStatus(OffOrdId, 0);
}
frmView.DataBind();
raiseEvent();
raiseEvent();
}
protected void lbtPrintLabels_Click(object sender, EventArgs e)
@@ -120,17 +120,12 @@ namespace NKC_WF.WebUserControls
/// verifica possibilità avvio TASK x presenza task NON chiusi
/// </summary>
/// <returns></returns>
public bool canStartNew()
public bool canStartNew
{
bool answ = false;
// in primis controllo SE ci siano task running, nel qual caso è false e basta...
int numEst = DataLayer.man.taBL.getByStatus((int)BatchStatus.EstimationRequested, "", 0).Count;
int numNest = DataLayer.man.taBL.getByStatus((int)BatchStatus.NestRequested, "", 0).Count;
// ora controllo anche offline orders...
int numOffOrd = DataLayer.man.taOffOL.getRunning().Count;
// ora la somma di tutti DEVE essere zero...
answ = ((numEst + numNest + numOffOrd) == 0);
return answ;
get
{
return ComLib.canStartNew;
}
}
}