diff --git a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx index a068457..1836fcf 100644 --- a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx +++ b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx @@ -18,6 +18,15 @@
+
+
+ +
+
+ +
+ +
diff --git a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs index ff560f4..8403da5 100644 --- a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs +++ b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.cs @@ -331,6 +331,7 @@ namespace NKC_WF.WebUserControls protected void lbtBalance_Click(object sender, EventArgs e) { + divError.Visible = false; // imposto la % secondo numero di abilitati... Ratio01 = enable01 ? (double)(100 / numEnabled) / 100 : 0; Ratio02 = enable02 ? (double)(100 / numEnabled) / 100 : 0; @@ -421,6 +422,7 @@ namespace NKC_WF.WebUserControls fixRatio(); checkDisplayMode(); fixEnabled(); + divError.Visible = false; } cmp_orderExtListNE01.eh_doRefresh += Cmp_orderExtListNE01_eh_doRefresh; cmp_orderExtListNE02.eh_doRefresh += Cmp_orderExtListNE02_eh_doRefresh; @@ -830,7 +832,8 @@ namespace NKC_WF.WebUserControls { RawList.Add(item.OrdID, item.EstProcTime); } - Log.Instance.Trace($"Rebalance | S02 | listOrders.count: {listOrders.Count}"); + int numOrdOrig = listOrders.Count; + Log.Instance.Trace($"Rebalance | S02 | listOrders.count: {numOrdOrig}"); // ordino la lista x processing successivo OrderedList = RawList.OrderBy(x => x.Value).ToDictionary(t => t.Key, t => t.Value); // inizio immaginando di usare TUTTI gli ordini @@ -956,65 +959,78 @@ namespace NKC_WF.WebUserControls { Log.Instance.Error($"Exception durante rebalance 01:{Environment.NewLine}{exc}"); } - // check sul num di spostamenti1 - int numMove = 0; - int numOk = 0; - Log.Instance.Trace("Rebalance | Starting final stage (DB modifications)"); - try + // 2024.09.20: controllo che il numero ordini torni o LO SEGNALO come errore... + int numAssigned = SetNe01.OrderSet.Count + SetNe02.OrderSet.Count + SetNe03.OrderSet.Count; + if (numAssigned != numOrdOrig) { - // riorganizzo tabOrders... - foreach (var orderItem in TabOrders) + divError.Visible = true; + Log.Instance.Error($"Error during rebalance | numOrdOrig: {numOrdOrig} | numAssigned: {numAssigned}"); + lblError.Text = traduci("ERR_Rebalance01"); + lblErrorDetail.Text = $"{traduci("ERR_Rebalance02")} | # Orig: {numOrdOrig} | # Assigned: {numAssigned}"; + } + else + { + divError.Visible = false; + // check sul num di spostamenti1 + int numMove = 0; + int numOk = 0; + Log.Instance.Trace("Rebalance | Starting final stage (DB modifications)"); + try { - if (SetNe01.OrderSet.ContainsKey(orderItem.OrdID)) + // riorganizzo tabOrders... + foreach (var orderItem in TabOrders) { - if (orderItem.BatchID != cmp_orderExtListNE01.BatchId) + if (SetNe01.OrderSet.ContainsKey(orderItem.OrdID)) { - DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE01.BatchId); - numMove++; + if (orderItem.BatchID != cmp_orderExtListNE01.BatchId) + { + DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE01.BatchId); + numMove++; + } + else + { + numOk++; + } } - else + if (SetNe02.OrderSet.ContainsKey(orderItem.OrdID)) { - numOk++; + if (orderItem.BatchID != cmp_orderExtListNE02.BatchId) + { + DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE02.BatchId); + numMove++; + } + else + { + numOk++; + } } - } - if (SetNe02.OrderSet.ContainsKey(orderItem.OrdID)) - { - if (orderItem.BatchID != cmp_orderExtListNE02.BatchId) + if (SetNe03.OrderSet.ContainsKey(orderItem.OrdID)) { - DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE02.BatchId); - numMove++; - } - else - { - numOk++; - } - } - if (SetNe03.OrderSet.ContainsKey(orderItem.OrdID)) - { - if (orderItem.BatchID != cmp_orderExtListNE03.BatchId) - { - DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE03.BatchId); - numMove++; - } - else - { - numOk++; + if (orderItem.BatchID != cmp_orderExtListNE03.BatchId) + { + DLMan.taOLT.updateBatch(orderItem.BatchID, orderItem.OrdID, cmp_orderExtListNE03.BatchId); + numMove++; + } + else + { + numOk++; + } } } } + catch (Exception exc) + { + Log.Instance.Error($"Exception durante rebalance 02:{Environment.NewLine}{exc}"); + } + answ = listOrders.Count > 0; + Log.Instance.Trace($"Final check | S14 | answ: {answ} | listOrders.Count: {listOrders.Count} | numMove: {numMove} | numOk: {numOk}"); + // salvo tempo calcolo + stopWatch.Stop(); + var elapsTime = stopWatch.Elapsed; + Log.Instance.Info($"Rebalance executed | R01: {Ratio01:P1}/{SetNe01.ActualValue / FullSet.ActualValue:P1} | R02: {Ratio02:P1}/{SetNe02.ActualValue / FullSet.ActualValue:P1} | R03: {Ratio03:P1}/{SetNe03.ActualValue / FullSet.ActualValue:P1} | maxDepth: {maxDepth} | elapsed ms: {elapsTime.TotalMilliseconds:N1}"); + // resetto batch ordini... + ComLib.OrdersExtResetCache(); } - catch (Exception exc) - { - Log.Instance.Error($"Exception durante rebalance 02:{Environment.NewLine}{exc}"); - } - answ = listOrders.Count > 0; - Log.Instance.Trace($"Final check | S14 | answ: {answ} | listOrders.Count: {listOrders.Count} | numMove: {numMove} | numOk: {numOk}"); - // salvo tempo calcolo - stopWatch.Stop(); - var elapsTime = stopWatch.Elapsed; - Log.Instance.Info($"Rebalance executed | R01: {Ratio01:P1}/{SetNe01.ActualValue / FullSet.ActualValue:P1} | R02: {Ratio02:P1}/{SetNe02.ActualValue / FullSet.ActualValue:P1} | R03: {Ratio03:P1}/{SetNe03.ActualValue / FullSet.ActualValue:P1} | maxDepth: {maxDepth} | elapsed ms: {elapsTime.TotalMilliseconds:N1}"); - // resetto batch ordini... - ComLib.OrdersExtResetCache(); cmp_orderExtListNE01.doUpdate(); cmp_orderExtListNE02.doUpdate(); cmp_orderExtListNE03.doUpdate(); diff --git a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.designer.cs b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.designer.cs index e222b18..f1861f8 100644 --- a/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.designer.cs +++ b/NKC_WF/WebUserControls/cmp_batchDetailSplit.ascx.designer.cs @@ -77,6 +77,33 @@ namespace NKC_WF.WebUserControls /// protected global::System.Web.UI.WebControls.LinkButton lbtBalance; + /// + /// divError control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divError; + + /// + /// lblError control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblError; + + /// + /// lblErrorDetail control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblErrorDetail; + /// /// divHeadNe01 control. ///