Merge branch 'develop'

This commit is contained in:
Samuele E. Locatelli
2020-01-30 10:11:25 +01:00
7 changed files with 230 additions and 86 deletions
+2 -2
View File
@@ -1539,8 +1539,8 @@ namespace AppData
{
// aggiungoncomunque a lista generale...
itemsAll.Add(item.ItemDtmx);
// controllo SE sia stato depositato... check null su campo data
if (!item.IsOnCartDateNull())
// controllo SE sia stato depositato... check status 3/4
if (item.StatusID == 3 || item.StatusID == 4)
{
itemsDepo.Add(item.ItemDtmx);
}
Vendored
+1 -1
View File
@@ -17,7 +17,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=240']) {
withEnv(['NEXT_BUILD_NUMBER=241']) {
// env.versionNumber = VersionNumber(versionNumberString : '0.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '0.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberBeta = VersionNumber(versionNumberString : '0.9.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+31 -7
View File
@@ -10,15 +10,39 @@
<Columns>
<asp:TemplateField HeaderText="QR">
<ItemTemplate>
<asp:Image runat="server" Height='<%# qrSize %>' Visible='<%# hfShowQr.Value.ToLower()=="true" %>' ImageUrl='<%# getImgUrl(Eval("ItemDtmx")) %>' />
<asp:Image runat="server" Height='<%# qrSize %>' Visible='<%# hfShowQr.Value.ToLower()=="true" %>' ImageUrl='<%# getImgUrl(Eval("ItemDtmx")) %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ItemID" InsertVisible="False" SortExpression="ItemID">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ItemID") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="KitID" SortExpression="KitID">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("KitID") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="StatusID" SortExpression="StatusID">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("StatusID") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ItemDtmx" SortExpression="ItemDtmx">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("ItemDtmx") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ItemExtCode" SortExpression="ItemExtCode">
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("ItemExtCode") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ItemDesc" SortExpression="ItemDesc">
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Eval("ItemDesc") %>' CssClass='<%# cssByStatus(Eval("StatusID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" ReadOnly="True" SortExpression="ItemID" />
<asp:BoundField DataField="KitID" HeaderText="KitID" SortExpression="KitID" />
<asp:BoundField DataField="ItemDtmx" HeaderText="ItemDtmx" SortExpression="ItemDtmx" />
<asp:BoundField DataField="ItemExtCode" HeaderText="ItemExtCode" SortExpression="ItemExtCode" />
<asp:BoundField DataField="ItemDesc" HeaderText="ItemDesc" SortExpression="ItemDesc" />
<asp:BoundField DataField="PostProcList" HeaderText="PostProcList" SortExpression="PostProcList" />
<asp:BoundField DataField="ProcessesReq" HeaderText="ProcessesReq" SortExpression="ProcessesReq" />
<asp:BoundField DataField="OnCartDate" HeaderText="OnCartDate" SortExpression="OnCartDate" />
@@ -79,5 +79,35 @@ namespace NKC_WF.WebUserControls
doUpdate();
}
}
/// <summary>
/// Calcola css da statusID
/// </summary>
/// <param name="_statusID"></param>
/// <returns></returns>
public string cssByStatus(object _statusID)
{
string answ = "text-secondary";
int statusID = 0;
int.TryParse(_statusID.ToString(), out statusID);
switch (statusID)
{
case 1:
answ = "text-dark";
break;
case 2:
answ = "text-warning";
break;
case 3:
answ = "text-success";
break;
case 4:
answ = "text-info";
break;
default:
answ = "text-danger";
break;
}
return answ;
}
}
}
@@ -14,6 +14,9 @@
<uc1:cmp_barcode runat="server" ID="cmp_barcode" />
<asp:HiddenField runat="server" ID="hfLastBCode" />
<asp:HiddenField runat="server" ID="hfLastValidBCode" />
<asp:HiddenField runat="server" ID="hfShowCart" />
<asp:HiddenField runat="server" ID="hfShowBin" />
<asp:HiddenField runat="server" ID="hfShowSecOp" />
</div>
<div class="col-12 px-0">
<div runat="server" id="divItemDet" class="bg-success text-warning small" visible="false">
+136 -76
View File
@@ -6,9 +6,45 @@ namespace NKC_WF.WebUserControls
{
public partial class cmp_unloadSmart : BaseUserControl
{
protected bool showBin = false;
protected bool showCart = false;
protected bool showSecOp = false;
protected bool showBin
{
set
{
hfShowBin.Value = value.ToString();
}
get
{
bool answ = false;
bool.TryParse(hfShowBin.Value, out answ);
return answ;
}
}
protected bool showCart
{
set
{
hfShowCart.Value = value.ToString();
}
get
{
bool answ = false;
bool.TryParse(hfShowCart.Value, out answ);
return answ;
}
}
protected bool showSecOp
{
set
{
hfShowSecOp.Value = value.ToString();
}
get
{
bool answ = false;
bool.TryParse(hfShowSecOp.Value, out answ);
return answ;
}
}
/// <summary>
/// ID univoco da IP
/// </summary>
@@ -94,6 +130,7 @@ namespace NKC_WF.WebUserControls
{
if (!Page.IsPostBack)
{
resetShowData();
resetIcons();
updateCurrData();
}
@@ -104,6 +141,14 @@ namespace NKC_WF.WebUserControls
lblMessage.Text = "----";
lblDestination.Text = "--";
}
private void resetShowData()
{
showCart = false;
showBin = false;
showSecOp = false;
}
/// <summary>
/// Comando barcode letto
/// </summary>
@@ -164,8 +209,7 @@ namespace NKC_WF.WebUserControls
{
case codeType.UNK:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
// elimino item sel...
ComLib.resetItemPickup(SheetID, DeviceId);
resetSelection(true);
doRaiseEv = true;
break;
case codeType.Item:
@@ -204,8 +248,7 @@ namespace NKC_WF.WebUserControls
break;
default:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
// elimino item sel...
ComLib.resetItemPickup(SheetID, DeviceId);
resetSelection(true);
break;
}
@@ -263,42 +306,52 @@ namespace NKC_WF.WebUserControls
}
break;
case codeType.Cart:
if (currCartTab.Count == 1)
// verifico NON SIA richiesto PAINT
if (showBin)
{
// controllo se sia quello corretto
if (rawData != currCartTab[0].CartDtmx)
displError("PAINT: BIN REQUESTED: please retry", true);
}
else
{
if (currCartTab.Count == 1)
{
lblErrorMsg.Text = "INCORRECT CART: please retry";
itemIdSelected = 0;
divItemError.Visible = true;
}
else
{
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 3, PlaceId);
lblDestination.Text = $"Item {itemIdSelected} PUT IN CART {rawData}";
// elimino item sel...
ComLib.resetItemPickup(SheetID, DeviceId);
// controllo se sia quello corretto
if (rawData != currCartTab[0].CartDtmx)
{
displError("INCORRECT CART: please retry", true);
}
else
{
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 3, PlaceId);
lblDestination.Text = $"Item {itemIdSelected} PUT IN CART {rawData}";
resetSelection(false);
}
}
}
break;
case codeType.Bin:
if (currBinTab.Count == 1)
// verifico NON SIA richiesto PAINT
if (showCart)
{
// controllo se sia quello corretto
if (rawData != currBinTab[0].BinDtmx)
displError("NOT PAINTED: CART REQUESTED: please retry", true);
}
else
{
if (currBinTab.Count == 1)
{
lblErrorMsg.Text = "INCORRECT BIN: please retry";
itemIdSelected = 0;
divItemError.Visible = true;
}
else
{
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 4, PlaceId);
lblDestination.Text = $"Item {itemIdSelected} PUT IN BIN {rawData}";
// elimino item sel...
ComLib.resetItemPickup(SheetID, DeviceId);
// controllo se sia quello corretto
if (rawData != currBinTab[0].BinDtmx)
{
displError("INCORRECT BIN: please retry", true);
}
else
{
// dichiaro che è depositato
DataLayer.man.taIL.updateStatus(itemIdSelected, 4, PlaceId);
lblDestination.Text = $"Item {itemIdSelected} PUT IN BIN {rawData}";
resetSelection(false);
}
}
}
break;
@@ -318,13 +371,33 @@ namespace NKC_WF.WebUserControls
// mostro output (compreso che mi aspetto entro 30 sec lettura cart/Bin)
#if false
icnCart.Attributes.Remove("class");
icnCart.Attributes.Add("class", "btn btn-sm btn-block btn-success");
lblMessage.Text = "Riconosciuto item";
lblDestination.Text = "SEND TO CART CR00012";
lblDestination.CssClass = "text-success";
#endif
}
/// <summary>
/// Mostra errore ed effettua reset vari...
/// </summary>
/// <param name="errorMessage"></param>
/// <param name="resetStatus"></param>
protected void displError(string errorMessage, bool resetStatus)
{
lblErrorMsg.Text = errorMessage;
divItemError.Visible = true;
resetSelection(resetStatus);
}
/// <summary>
/// Reset selezione item + blocchi suggerimento + sel REDIS x pagina unload
/// </summary>
/// <param name="resetStatus"></param>
protected void resetSelection(bool resetStatus)
{
if (resetStatus)
{
// riposto item a status 1...
DataLayer.man.taIL.updateStatus(itemIdSelected, 1, PlaceId);
}
// elimino item sel...
itemIdSelected = 0;
resetShowData();
ComLib.resetItemPickup(SheetID, DeviceId);
}
/// <summary>
/// Mostra o nasconde dettaglio su ITEM letto
@@ -333,12 +406,12 @@ namespace NKC_WF.WebUserControls
/// <param name="itemRow"></param>
private void showItemDetail(bool showItem, DS_App.ItemListRow itemRow, bool showError)
{
resetShowData();
divItemDet.Visible = showItem;
divItemError.Visible = showError;
if (showError)
{
lblErrorMsg.Text = "Item not found";
itemIdSelected = 0;
displError("Item not found",true);
}
if (showItem)
{
@@ -350,9 +423,7 @@ namespace NKC_WF.WebUserControls
switch (itemRow.StatusID)
{
case 0:
lblErrorMsg.Text = "ERROR: Item not ready";
itemIdSelected = 0;
divItemError.Visible = true;
displError("ERROR: Item not ready", false);
break;
case 1:
case 2:
@@ -360,43 +431,30 @@ namespace NKC_WF.WebUserControls
// salvo che è in STATO 2 (picked up)
DataLayer.man.taIL.updateStatus(itemRow.ItemID, 2, PlaceId);
// verifico cosa devo mostrare come PROX passaggio...
showCart = itemRow.ProcessesReq == "0";
// !!!CHECK ME!!! deve cercare #PaintFlag?!?
showBin = itemRow.ProcessesReq == "2";
showCart = itemRow.ProcessesReq == "";
showBin = (itemRow.ProcessesReq.Contains("PaintFlag"));
secOp = itemRow.PostProcList;
showSecOp = (secOp != "0");
showSecOp = (secOp != "");
doUpdate();
break;
case 3:
lblErrorMsg.Text = "Item already on CART!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("Item already on CART!", false);
break;
case 4:
// fino a concorrenza qta richiesta sposto, POI do errori
lblErrorMsg.Text = "ALL Item already scanned on BIN!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("ALL Item already scanned on BIN!", false);
break;
case 5:
lblErrorMsg.Text = "Item already at KIT STATION!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("Item already at KIT STATION!", false);
break;
case 990:
lblErrorMsg.Text = "Item declared SCRAP!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("Item declared SCRAP!", false);
break;
case 991:
lblErrorMsg.Text = "Item declared SCRAP with CNC program created!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("Item declared SCRAP with CNC program created!",false);
break;
default:
lblErrorMsg.Text = "ERROR: Item status UNKNOWN!";
itemIdSelected = 0;
divItemError.Visible = true;
displError("ERROR: Item status UNKNOWN!", false);
break;
}
}
@@ -468,7 +526,9 @@ namespace NKC_WF.WebUserControls
// controllo SE HO cart
if (currCartTab.Count == 1)
{
lblDestination.Text = $"SEND TO CART {currCartTab[0].CartDtmx}";
var cartRow = currCartTab[0];
// imposto OUT
lblDestination.Text = $"SEND TO CART <b>C{cartRow.CartIndex}</b> ({cartRow.CartDtmx})";
}
else
{
@@ -483,7 +543,8 @@ namespace NKC_WF.WebUserControls
lblMessage.Text = "Item recognized";
if (currBinTab.Count == 1)
{
lblDestination.Text = $"SEND TO BIN {currBinTab[0].BinDtmx}";
var binRow = currBinTab[0];
lblDestination.Text = $"SEND TO BIN <b>B{binRow.BinIndex}</b> ({binRow.BinDtmx})";
}
else
{
@@ -507,7 +568,7 @@ namespace NKC_WF.WebUserControls
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 1, PlaceId);
itemIdSelected = 0;
resetSelection(true);
showItemDetail(false, null, false);
}
protected void lbtResetSel_Click(object sender, EventArgs e)
@@ -515,9 +576,10 @@ namespace NKC_WF.WebUserControls
var tabSheet = DataLayer.man.taSHL.getByItemID(itemIdSelected);
if (tabSheet.Count == 1)
{
resetShowData();
// resetto sheet selezionato...
DataLayer.man.taIL.updateSheetStatusPU(tabSheet[0].SheetID, PlaceId);
itemIdSelected = 0;
resetSelection(true);
showItemDetail(false, null, false);
}
}
@@ -530,7 +592,7 @@ namespace NKC_WF.WebUserControls
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 100, PlaceId);
itemIdSelected = 0;
resetSelection(true);
showItemDetail(false, null, false);
lblMessage.Text = "Item Parked";
}
@@ -543,8 +605,6 @@ namespace NKC_WF.WebUserControls
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 990, PlaceId);
//itemIdSelected = 0;
//showItemDetail(true, null, false);
lblMessage.Text = "Item Set SCRAPPED";
// rirprocesso barcode...
lastCmd = lastValidCmd;
+27
View File
@@ -68,6 +68,33 @@ namespace NKC_WF.WebUserControls
/// </remarks>
protected global::System.Web.UI.WebControls.HiddenField hfLastValidBCode;
/// <summary>
/// Controllo hfShowCart.
/// </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.HiddenField hfShowCart;
/// <summary>
/// Controllo hfShowBin.
/// </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.HiddenField hfShowBin;
/// <summary>
/// Controllo hfShowSecOp.
/// </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.HiddenField hfShowSecOp;
/// <summary>
/// Controllo divItemDet.
/// </summary>