Ok x IX on KIT

This commit is contained in:
Samuele E. Locatelli
2020-07-24 12:44:36 +02:00
parent 0990859bda
commit 2dad93cc4d
8 changed files with 122 additions and 113 deletions
+3
View File
@@ -11,6 +11,7 @@ namespace AppData
public DS_AppTableAdapters.BatchListTableAdapter taBL;
public DS_AppTableAdapters.BinsTableAdapter taBN;
public DS_AppTableAdapters.BinListTableAdapter taBNLS;
public DS_AppTableAdapters.CartOnKitTableAdapter taCOK;
public DS_AppTableAdapters.CountersTableAdapter taCount;
public DS_AppTableAdapters.CartsTableAdapter taCR;
public DS_AppTableAdapters.ErrorsLogTableAdapter taEL;
@@ -55,6 +56,7 @@ namespace AppData
taBL.Connection.ConnectionString = connString;
taBN.Connection.ConnectionString = connString;
taBNLS.Connection.ConnectionString = connString;
taCOK.Connection.ConnectionString = connString;
taCount.Connection.ConnectionString = connString;
taCR.Connection.ConnectionString = connString;
taEL.Connection.ConnectionString = connString;
@@ -91,6 +93,7 @@ namespace AppData
taBL = new DS_AppTableAdapters.BatchListTableAdapter();
taBN = new DS_AppTableAdapters.BinsTableAdapter();
taBNLS = new DS_AppTableAdapters.BinListTableAdapter();
taCOK= new DS_AppTableAdapters.CartOnKitTableAdapter ();
taCount = new DS_AppTableAdapters.CountersTableAdapter();
taCR = new DS_AppTableAdapters.CartsTableAdapter();
taEL = new DS_AppTableAdapters.ErrorsLogTableAdapter();
+15 -5
View File
@@ -69,15 +69,17 @@ namespace NKC_WF.WebUserControls
{
cmp_KS_OkibBin.Visible = binOk;
}
lbtAddAll.Visible = showBtns;
lbtAddOne.Visible = showBtns;
// se ho bin e cart --> mostro buttons calcolati!
lbtAddAll.Visible = false;
lbtAddOne.Visible = false;
if (showBtns)
{
var tabOKIB = DataLayer.man.taOKIB_Sum.getByKey(BinID, CartID);
if (tabOKIB.Count > 0)
{
numMax = tabOKIB[0].NumItems - tabOKIB[0].NumPicked;
lbtAddAll.Visible = true;
lbtAddOne.Visible = true;
}
}
}
@@ -130,7 +132,7 @@ namespace NKC_WF.WebUserControls
}
set
{
cmp_KS_currBin.CurrId = value;
}
}
/// <summary>
@@ -152,13 +154,21 @@ namespace NKC_WF.WebUserControls
protected void lbtAddOne_Click(object sender, EventArgs e)
{
DataLayer.man.taPLog.acquirePaint(BinID, CartID, 1, currIpAddress(), user_std.UtSn.userNameAD);
doUpdate();
// resetto
CartID = 0;
BinID = 0;
// sollevo evento
raiseEvent();
}
protected void lbtAddAll_Click(object sender, EventArgs e)
{
DataLayer.man.taPLog.acquirePaint(BinID, CartID, numMax, currIpAddress(), user_std.UtSn.userNameAD);
doUpdate();
// resetto
CartID = 0;
BinID = 0;
// sollevo evento
raiseEvent();
}
}
}
+4 -1
View File
@@ -13,10 +13,13 @@
<asp:Label ID="ItemDescLabel" runat="server" Text='<%# Eval("ItemDesc") %>'></asp:Label>
</div>
<div class="col-6 text-left">
<asp:Label runat="server" ID="lblTitle" Text='<%# $"<b>B{Eval("BinIndex")}</b> | {Eval("BinDtmxProc")}" %>' CssClass="text-uppercase" />
</div>
<div class="col-3 text-left">
Picked: <b>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("NumPicked") %>'></asp:Label></b>
</div>
<div class="col-6 text-right">
<div class="col-3 text-right">
Total:
<asp:Label ID="Label1" runat="server" Text='<%# Eval("NumItems") %>'></asp:Label>
</div>
+3 -4
View File
@@ -3,7 +3,7 @@
<asp:GridView ID="grView" runat="server" AutoGenerateColumns="False" DataKeyNames="OtherItemID,CartID" DataSourceID="ods" Width="100%" CssClass="table table-sm table-striped small textCondens">
<Columns>
<asp:TemplateField HeaderText="Part" SortExpression="ItemExtCode">
<asp:TemplateField HeaderText="Other Part" SortExpression="ItemExtCode">
<ItemTemplate>
<div class="row">
<div class="col-3 text-left">
@@ -14,13 +14,12 @@
<asp:Label ID="ItemDescLabel" runat="server" Text='<%# Eval("OtherItemDesc") %>'></asp:Label>
</div>
<div class="col-6 text-left">
<asp:Label runat="server" ID="lblTitle" Text='<%# $"<b>C{Eval("CartIndex")}</b> | {Eval("CartDtmx")}" %>' CssClass="text-uppercase" />
</div>
<div class="col-3">
<div class="col-3 text-left">
Picked: <b>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("NumPicked") %>'></asp:Label></b>
</div>
<div class="col-3">
<div class="col-3 text-right">
Total:
<asp:Label ID="Label1" runat="server" Text='<%# Eval("NumItems") %>'></asp:Label>
</div>
@@ -68,14 +68,15 @@ namespace NKC_WF.WebUserControls
{
cmp_KS_OkoiOI.Visible = otherItemOk;
}
lbtAddAll.Visible = showBtns;
// se ho bin e cart --> mostro buttons calcolati!
lbtAddAll.Visible = false;
if (showBtns)
{
var tabOKOI = DataLayer.man.taOKOI_Sum.getByKey(OtherItemID, CartID);
if (tabOKOI.Count > 0)
{
numMax = tabOKOI[0].NumItems - tabOKOI[0].NumPicked;
lbtAddAll.Visible = true;
}
}
}
@@ -150,7 +151,11 @@ namespace NKC_WF.WebUserControls
protected void lbtAddAll_Click(object sender, EventArgs e)
{
DataLayer.man.taPLog.acquireOtherItems(OtherItemID, CartID, numMax, currIpAddress(), user_std.UtSn.userNameAD);
doUpdate();
// resetto
CartID = 0;
OtherItemID = 0;
// sollevo evento
raiseEvent();
}
}
}
+7 -6
View File
@@ -19,14 +19,10 @@
<asp:HiddenField runat="server" ID="hfLastObject" />
<asp:HiddenField runat="server" ID="hfLastValidBCode" />
</div>
<div class="col-12 px-0">
<uc1:cmp_KS_Cart runat="server" id="cmp_KS_Cart" />
</div>
<div class="col-12 px-0">
<uc1:cmp_KS_BinCart runat="server" id="cmp_KS_BinCart" />
</div>
<div class="col-12 px-0">
<uc1:cmp_KS_OtherItemsCart runat="server" id="cmp_KS_OtherItemsCart" />
<uc1:cmp_KS_Cart runat="server" id="cmp_KS_Cart" />
</div>
<div class="col-12 px-0">
<div runat="server" id="divItemDet" class="bg-success text-warning small" visible="false">
@@ -44,11 +40,16 @@
</div>
</div>
</div>
<div runat="server" id="divItemError" class="bg-danger text-warning" visible="false">
<div runat="server" id="divError" class="bg-danger text-warning" visible="false">
<div class="col-12 px-1">
<asp:Label runat="server" ID="lblErrorMsg" />
</div>
</div>
<div runat="server" id="divInfo" class="bg-info text-light" visible="false">
<div class="col-12 px-1">
<asp:Label runat="server" ID="lblSuccessMsg" />
</div>
</div>
</div>
<div class="col-12 px-0">
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-block btn-warning text-uppercase" OnClick="lbtCancel_Click"><i class="fa fa-ban" aria-hidden="true"></i> <%: traduci("cancel") %></asp:LinkButton>
+54 -84
View File
@@ -90,10 +90,23 @@ namespace NKC_WF.WebUserControls
}
cmp_barcode.eh_doRefresh += Cmp_barcode_eh_doRefresh;
cmp_barcode.eh_doReset += Cmp_barcode_eh_doReset;
cmp_KS_BinCart.eh_doRefresh += cmp_KS_BinCart_eh_doRefresh;
cmp_KS_OtherItemsCart.eh_doRefresh += cmp_KS_OtherItemsCart_eh_doRefresh;
}
private void cmp_KS_OtherItemsCart_eh_doRefresh(object sender, EventArgs e)
{
displInfo("Other PART added", true);
}
private void cmp_KS_BinCart_eh_doRefresh(object sender, EventArgs e)
{
displInfo("PAINT PART added", true);
}
private void resetShowData()
{
cmp_KS_Cart.Visible = false;
cmp_KS_BinCart.Visible = false;
cmp_KS_OtherItemsCart.Visible = false;
}
@@ -225,7 +238,6 @@ namespace NKC_WF.WebUserControls
resetSelection(false);
break;
}
return doRaiseEv;
}
@@ -239,6 +251,7 @@ namespace NKC_WF.WebUserControls
private void processItemSuggestion(codeType tipoCod, string rawData, int codeInt)
{
DS_App.ItemListDataTable tabItem = null;
divInfo.Visible = false;
// processo suggerimenti x ITEM / cart / bin dato suo RawData (Dtmx) e Cod univoco (intero)
switch (tipoCod)
{
@@ -269,8 +282,15 @@ namespace NKC_WF.WebUserControls
var tabLog = DataLayer.man.taPLog.getByCartId(codeInt);
if (tabLog.Count > 0)
{
// se già in scarico ok --> segnalo
displError($"CART already on KIT: Cart {rawData}", true);
// verifico se sia completo -_> reset... altrimenti lascio così...
var tabCOK = DataLayer.man.taCOK.GetData();
// cerco se sia "green" numWait + numReady + numOtherWait = 0
var tabGreen = tabCOK.Where(x => (x.NumPzWaiting + x.NumPzBinAvail + x.OtherQtyWait == 0) && x.CartDtmx == rawData).ToList();
if(tabGreen.Count>0)
{
displInfo("Cart already completed", true);
resetCart();
}
}
else
{
@@ -368,10 +388,6 @@ namespace NKC_WF.WebUserControls
// reset preliminare
resetBin();
}
else
{
displError($"BIN: already completed: {rawData} | item {tabOKIB[0].ItemDesc} | order {tabOKIB[0].OrderExtCode}", true);
}
}
else
{
@@ -451,6 +467,7 @@ namespace NKC_WF.WebUserControls
cmp_KS_OtherItemsCart.OtherItemID = codeInt;
cmp_KS_OtherItemsCart.OtherItemDtmx = rawData;
cmp_KS_OtherItemsCart.doUpdate();
fixVisibility();
}
/// <summary>
@@ -463,6 +480,7 @@ namespace NKC_WF.WebUserControls
cmp_KS_BinCart.BinID = codeInt;
cmp_KS_BinCart.BinDtmx = rawData;
cmp_KS_BinCart.doUpdate();
fixVisibility();
}
/// <summary>
/// Imposta il cart sugli oggetti dipendenti
@@ -480,36 +498,50 @@ namespace NKC_WF.WebUserControls
cmp_KS_Cart.CartID = codeInt;
cmp_KS_Cart.CartDtmx = rawData;
cmp_KS_Cart.doUpdate();
fixVisibility();
}
private void resetBin()
{
cmp_KS_BinCart.BinID = 0;
cmp_KS_BinCart.doUpdate();
fixVisibility();
}
private void resetCart()
{
cmp_KS_BinCart.CartID = 0;
cmp_KS_BinCart.doUpdate();
cmp_KS_OtherItemsCart.CartID = 0;
cmp_KS_OtherItemsCart.doUpdate();
cmp_KS_Cart.CartID = 0;
fixVisibility();
}
private void resetOtherItem()
{
cmp_KS_OtherItemsCart.OtherItemID = 0;
cmp_KS_OtherItemsCart.doUpdate();
fixVisibility();
}
/// <summary>
/// Mostra errore ed effettua reset vari...
/// </summary>
/// <param name="infoMessage"></param>
/// <param name="resetStatus"></param>
protected void displInfo(string infoMessage, bool resetStatus)
{
lblSuccessMsg.Text = infoMessage;
divError.Visible = false;
divInfo.Visible = true;
resetSelection(resetStatus);
}
/// <summary>
/// Mostra errore ed effettua reset vari...
/// </summary>
/// <param name="errorMessage"></param>
/// <param name="resetStatus"></param>
protected void displError(string errorMessage, bool resetStatus)
protected void displError(string errorMessage, bool resetStatus)
{
lblErrorMsg.Text = errorMessage;
divItemError.Visible = true;
divError.Visible = true;
divInfo.Visible = false;
resetSelection(resetStatus);
}
/// <summary>
@@ -548,7 +580,7 @@ namespace NKC_WF.WebUserControls
{
resetShowData();
divItemDet.Visible = showItem;
divItemError.Visible = showError;
divError.Visible = showError;
if (showError)
{
displError("Item not found", true);
@@ -595,68 +627,6 @@ namespace NKC_WF.WebUserControls
}
lbtResetSel.Visible = (itemIdSelected != 0);
}
/// <summary>
/// Mostra o nasconde dettaglio su OTHER ITEM letto
/// </summary>
/// <param name="showItem"></param>
/// <param name="otherItemRow"></param>
/// <param name="showError"></param>
private void showOtherItemDetail(bool showItem, DS_App.OtherItemRow otherItemRow, bool showError)
{
resetShowData();
divItemDet.Visible = showItem;
divItemError.Visible = showError;
if (showError)
{
displError("Other Item not found", true);
}
if (showItem)
{
lblItemCode.Text = otherItemRow.OtherItemExtCode;
lblItemDesc.Text = otherItemRow.OtherItemDesc;
lblItemDtmx.Text = otherItemRow.OtherItemDtmx;
itemIdSelected = otherItemRow.OtherItemID;
//// CONTROLLO SIA in stato 1 --> worked, 2--> selected, 100--> parked...
//switch (otherItemRow.StatusID)
//{
// case 0:
// displError("ERROR: Item not ready", false);
// break;
// case 1:
// case 2:
// case 100:
// // salvo che è in STATO 2 (picked up)
// DataLayer.man.taIL.updateStatus(otherItemRow.ItemID, 2, PlaceId);
// // verifico cosa devo mostrare come PROX passaggio...
// showCart = otherItemRow.ProcessesReq == "";
// showBin = (otherItemRow.ProcessesReq.Contains("PaintFlag"));
// secOp = otherItemRow.PostProcList;
// showSecOp = (secOp != "");
// doUpdate();
// break;
// case 3:
// displError("Item already on CART!", false);
// break;
// case 4:
// // fino a concorrenza qta richiesta sposto, POI do errori
// displError("ALL Item already scanned on BIN!", false);
// break;
// case 5:
// displError("Item already at KIT STATION!", false);
// break;
// case 990:
// displError("Item declared SCRAP!", false);
// break;
// case 991:
// displError("Item declared SCRAP with CNC program created!", false);
// break;
// default:
// displError("ERROR: Item status UNKNOWN!", false);
// break;
//}
}
lbtResetSel.Visible = (itemIdSelected != 0);
}
public int itemIdSelected
{
@@ -701,16 +671,16 @@ namespace NKC_WF.WebUserControls
}
private void doUpdate()
{
fixVisibility();
}
private void fixVisibility()
{
// reset grafico
if (cmp_KS_BinCart.BinID > 0 || cmp_KS_BinCart.CartID > 0)
{
cmp_KS_BinCart.Visible = true;
}
if (cmp_KS_OtherItemsCart.OtherItemID > 0 || cmp_KS_OtherItemsCart.CartID > 0)
{
cmp_KS_OtherItemsCart.Visible = true;
}
cmp_KS_Cart.Visible = cmp_KS_Cart.CartID > 0 && (cmp_KS_BinCart.BinID + cmp_KS_OtherItemsCart.OtherItemID == 0);
cmp_KS_BinCart.Visible = cmp_KS_BinCart.BinID > 0;
cmp_KS_OtherItemsCart.Visible = cmp_KS_OtherItemsCart.OtherItemID > 0;
// fix btn reset!
lbtResetSel.Visible = (itemIdSelected != 0);
+29 -11
View File
@@ -77,15 +77,6 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfLastValidBCode;
/// <summary>
/// Controllo cmp_KS_Cart.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::NKC_WF.WebUserControls.cmp_KS_Cart cmp_KS_Cart;
/// <summary>
/// Controllo cmp_KS_BinCart.
/// </summary>
@@ -104,6 +95,15 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::NKC_WF.WebUserControls.cmp_KS_OtherItemsCart cmp_KS_OtherItemsCart;
/// <summary>
/// Controllo cmp_KS_Cart.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::NKC_WF.WebUserControls.cmp_KS_Cart cmp_KS_Cart;
/// <summary>
/// Controllo divItemDet.
/// </summary>
@@ -150,13 +150,13 @@ namespace NKC_WF.WebUserControls
protected global::System.Web.UI.WebControls.Label lblItemDtmx;
/// <summary>
/// Controllo divItemError.
/// Controllo divError.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divItemError;
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divError;
/// <summary>
/// Controllo lblErrorMsg.
@@ -167,6 +167,24 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblErrorMsg;
/// <summary>
/// Controllo divInfo.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divInfo;
/// <summary>
/// Controllo lblSuccessMsg.
/// </summary>
/// <remarks>
/// Campo generato automaticamente.
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblSuccessMsg;
/// <summary>
/// Controllo lbtCancel.
/// </summary>