Merge branch 'develop' into SDK

This commit is contained in:
Samuele E. Locatelli
2020-10-07 13:26:00 +02:00
2 changed files with 340 additions and 286 deletions
Vendored
+1 -1
View File
@@ -11,7 +11,7 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=370']) {
withEnv(['NEXT_BUILD_NUMBER=371']) {
// env.versionNumber = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberBeta = VersionNumber(versionNumberString : '1.2.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+339 -285
View File
@@ -9,6 +9,24 @@ namespace NKC_WF.WebUserControls
{
public partial class cmp_kittingSmart : BaseUserControl
{
#region Protected Properties
protected DS_App.BinsDataTable currBinTab
{
get
{
return DLMan.taBN.getByItemID(itemIdSelected);
}
}
protected DS_App.CartsDataTable currCartTab
{
get
{
return DLMan.taCR.getByItemID(itemIdSelected);
}
}
/// <summary>
/// ID univoco da IP
/// </summary>
@@ -23,6 +41,57 @@ namespace NKC_WF.WebUserControls
return hfDeviceId.Value;
}
}
/// <summary>
/// Comando barcode letto
/// </summary>
protected string lastCmd
{
get
{
return hfLastBCode.Value;
}
set
{
hfLastBCode.Value = value;
lastValidCmd = value;
}
}
/// <summary>
/// Ultimo object letto
/// </summary>
protected string lastObject
{
get
{
return hfLastObject.Value;
}
set
{
hfLastObject.Value = value;
}
}
/// <summary>
/// ULTIMO Comando barcode VALIDO (!="") letto
/// </summary>
protected string lastValidCmd
{
get
{
return hfLastValidBCode.Value;
}
set
{
// solo se è !=""
if (!string.IsNullOrEmpty(value))
{
hfLastValidBCode.Value = value;
}
}
}
/// <summary>
/// Sheet selezionato...
/// </summary>
@@ -39,20 +108,28 @@ namespace NKC_WF.WebUserControls
return answ;
}
}
/// <summary>
/// Aggiorna dati correnti (IP, batch, sheet...)
/// </summary>
protected void updateCurrData()
#endregion Protected Properties
#region Public Properties
public int itemIdSelected
{
// FORSE 5/5?!?
DataLayer DLMan = new DataLayer();
var sheetList = DLMan.taSHL.getByMLStatus(PackListID, 3, 5);
if (sheetList.Count > 0)
get
{
SheetID = sheetList[0].SheetID;
int answ = 0;
int.TryParse(hfItemID.Value, out answ);
return answ;
}
set
{
hfItemID.Value = value.ToString();
bool showBtn = value != 0;
// fix visibilità
lbtCancel.Visible = showBtn;
}
DeviceId = ComLib.GetIPAddress().Replace(".", "0").Replace(":", "0");
}
/// <summary>
/// PackList corrente...
/// </summary>
@@ -69,20 +146,40 @@ namespace NKC_WF.WebUserControls
return answ;
}
}
protected void Page_Load(object sender, EventArgs e)
#endregion Public Properties
#region Private Methods
private void Cmp_barcode_eh_doRefresh(object sender, EventArgs e)
{
if (!Page.IsPostBack)
bool doRaiseEv = false;
// processo evento..
lastCmd = cmp_barcode.inputAcquired.ToUpper();
doRaiseEv = processLastCmd(doRaiseEv);
// reset comando
cmp_barcode.inputAcquired = "";
// aggiorno...
doUpdate();
if (doRaiseEv)
{
lastObject = "";
resetShowData();
resetIcons();
updateCurrData();
raiseEvent();
}
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;
cmp_KS_Items.eh_doRefresh += cmp_KS_Items_eh_doRefresh;
}
private void Cmp_barcode_eh_doReset(object sender, EventArgs e)
{
resetIcons();
}
private void cmp_KS_BinCart_eh_doRefresh(object sender, EventArgs e)
{
displInfo("PAINT PART added");
// resetto BIN & CART
resetBin();
resetCart();
resetItem();
}
private void cmp_KS_Items_eh_doRefresh(object sender, EventArgs e)
@@ -103,151 +200,20 @@ namespace NKC_WF.WebUserControls
resetItem();
}
private void cmp_KS_BinCart_eh_doRefresh(object sender, EventArgs e)
private void doUpdate()
{
displInfo("PAINT PART added");
// resetto BIN & CART
resetBin();
resetCart();
resetItem();
fixVisibility();
}
private void resetShowData()
private void fixVisibility()
{
cmp_KS_Cart.Visible = false;
cmp_KS_BinCart.Visible = false;
cmp_KS_OtherItemsCart.Visible = false;
cmp_KS_Items.Visible = false;
}
/// <summary>
/// Comando barcode letto
/// </summary>
protected string lastCmd
{
get
{
return hfLastBCode.Value;
}
set
{
hfLastBCode.Value = value;
lastValidCmd = value;
}
}
/// <summary>
/// Ultimo object letto
/// </summary>
protected string lastObject
{
get
{
return hfLastObject.Value;
}
set
{
hfLastObject.Value = value;
}
}
/// <summary>
/// ULTIMO Comando barcode VALIDO (!="") letto
/// </summary>
protected string lastValidCmd
{
get
{
return hfLastValidBCode.Value;
}
set
{
// solo se è !=""
if (!string.IsNullOrEmpty(value))
{
hfLastValidBCode.Value = value;
}
}
}
private void Cmp_barcode_eh_doReset(object sender, EventArgs e)
{
resetIcons();
}
private void Cmp_barcode_eh_doRefresh(object sender, EventArgs e)
{
bool doRaiseEv = false;
// processo evento..
lastCmd = cmp_barcode.inputAcquired.ToUpper();
doRaiseEv = processLastCmd(doRaiseEv);
// reset comando
cmp_barcode.inputAcquired = "";
// aggiorno...
doUpdate();
if (doRaiseEv)
{
raiseEvent();
}
}
private bool processLastCmd(bool doRaiseEv)
{
if (string.IsNullOrEmpty(lastCmd)) doRaiseEv = true;
// processiamo barcode letto
decodedData decoData = DLMan.decodeBcode(lastCmd);
switch (decoData.codeType)
{
case codeType.UNK:
cmp_barcode.showOutput(cssClass.danger, $"Unknown Data: {decoData.rawData} --> no action");
resetSelection();
doRaiseEv = true;
break;
case codeType.Item:
cmp_barcode.showOutput(cssClass.success, $"Valid IT Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.ItemGeneric:
cmp_barcode.showOutput(cssClass.success, $"Valid IG Code: {decoData.rawData}");
//processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.OtherItem:
cmp_barcode.showOutput(cssClass.success, $"Valid Generic PART Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.Material:
cmp_barcode.showOutput(cssClass.warning, $"Material - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Sheet:
cmp_barcode.showOutput(cssClass.warning, $"Sheet - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Stack:
cmp_barcode.showOutput(cssClass.warning, $"BUNK - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Batch:
cmp_barcode.showOutput(cssClass.warning, $"Batch - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Cart:
cmp_barcode.showOutput(cssClass.success, $"Valid CR Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
doRaiseEv = true;
break;
case codeType.Bin:
cmp_barcode.showOutput(cssClass.warning, $"BIN NOT PAINTED - Ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.BinProcessed:
cmp_barcode.showOutput(cssClass.success, $"Valid BP Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
default:
cmp_barcode.showOutput(cssClass.danger, $"Unknown Data: {decoData.rawData} --> no action");
resetSelection();
break;
}
return doRaiseEv;
// reset grafico
cmp_KS_Cart.Visible = cmp_KS_Cart.CartID > 0 && (cmp_KS_BinCart.BinID + cmp_KS_OtherItemsCart.OtherItemID + cmp_KS_Items.ItemID == 0);
cmp_KS_BinCart.Visible = cmp_KS_BinCart.BinID > 0;
cmp_KS_OtherItemsCart.Visible = cmp_KS_OtherItemsCart.OtherItemID > 0;
cmp_KS_Items.Visible = cmp_KS_Items.ItemID > 0;
// fix btn reset!
lbtResetSel.Visible = (itemIdSelected != 0);
}
/// <summary>
@@ -373,6 +339,7 @@ namespace NKC_WF.WebUserControls
}
}
break;
case codeType.BinProcessed:
// recupero la tab OKIB x iniziare a controllare i dati...
var tabOKIB = DLMan.taOKIB.getByBinDtmxProc(rawData);
@@ -461,6 +428,7 @@ namespace NKC_WF.WebUserControls
}
}
break;
case codeType.Item:
// recupero la tab ITEMS x iniziare a controllare i dati...
tabItem = DLMan.taIL.getBySearch(codeInt, rawData, 0, 999);
@@ -491,6 +459,7 @@ namespace NKC_WF.WebUserControls
}
}
break;
case codeType.OtherItem:
// recupero la tab OKOI x iniziare a controllare i dati...
var tabOKOI = DLMan.taOKOI.getByOtherItemDtmx(rawData);
@@ -535,39 +504,130 @@ namespace NKC_WF.WebUserControls
}
}
break;
default:
lastObject = "";
break;
}
}
/// <summary>
/// Imposta il codice Item sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
private void setItem(string rawData, int codeInt)
private bool processLastCmd(bool doRaiseEv)
{
itemIdSelected = codeInt;
cmp_KS_Items.ItemID = codeInt;
cmp_KS_Items.ItemDtmx = rawData;
cmp_KS_Items.doUpdate();
if (string.IsNullOrEmpty(lastCmd)) doRaiseEv = true;
// processiamo barcode letto
decodedData decoData = DLMan.decodeBcode(lastCmd);
switch (decoData.codeType)
{
case codeType.UNK:
cmp_barcode.showOutput(cssClass.danger, $"Unknown Data: {decoData.rawData} --> no action");
resetSelection();
doRaiseEv = true;
break;
case codeType.Item:
cmp_barcode.showOutput(cssClass.success, $"Valid IT Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.ItemGeneric:
cmp_barcode.showOutput(cssClass.success, $"Valid IG Code: {decoData.rawData}");
//processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.OtherItem:
cmp_barcode.showOutput(cssClass.success, $"Valid Generic PART Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.Material:
cmp_barcode.showOutput(cssClass.warning, $"Material - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Sheet:
cmp_barcode.showOutput(cssClass.warning, $"Sheet - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Stack:
cmp_barcode.showOutput(cssClass.warning, $"BUNK - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Batch:
cmp_barcode.showOutput(cssClass.warning, $"Batch - ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.Cart:
cmp_barcode.showOutput(cssClass.success, $"Valid CR Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
doRaiseEv = true;
break;
case codeType.Bin:
cmp_barcode.showOutput(cssClass.warning, $"WRONG BIN CODE (BN) - Ignored: {decoData.description}");
doRaiseEv = true;
break;
case codeType.BinProcessed:
cmp_barcode.showOutput(cssClass.success, $"Valid BP Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
default:
cmp_barcode.showOutput(cssClass.danger, $"Unknown Data: {decoData.rawData} --> no action");
resetSelection();
break;
}
return doRaiseEv;
}
private void resetBin()
{
cmp_KS_BinCart.BinID = 0;
fixVisibility();
}
/// <summary>
/// Imposta il codice OtherItem sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
/// <param name="Description"></param>
private void setOtherItem(string rawData, int codeInt, string Description)
private void resetCart()
{
cmp_KS_OtherItemsCart.OtherItemID = codeInt;
cmp_KS_OtherItemsCart.OtherItemDtmx = rawData;
cmp_KS_OtherItemsCart.OtherItemDesc = Description;
cmp_KS_OtherItemsCart.doUpdate();
cmp_KS_BinCart.CartID = 0;
cmp_KS_OtherItemsCart.CartID = 0;
cmp_KS_Cart.CartID = 0;
cmp_KS_Items.CartID = 0;
fixVisibility();
}
private void resetIcons()
{
lblDestination.CssClass = "text-secondary";
lblDestination.Text = "";
lblLastBCode.Text = "";
lbtCancel.Visible = false;
lbtResetSel.Visible = (itemIdSelected != 0);
}
private void resetItem()
{
itemIdSelected = 0;
cmp_KS_Items.ItemID = 0;
fixVisibility();
}
private void resetOtherItem()
{
cmp_KS_OtherItemsCart.OtherItemID = 0;
fixVisibility();
}
private void resetShowData()
{
cmp_KS_Cart.Visible = false;
cmp_KS_BinCart.Visible = false;
cmp_KS_OtherItemsCart.Visible = false;
cmp_KS_Items.Visible = false;
}
/// <summary>
/// Imposta il bin sugli oggetti dipendenti
/// </summary>
@@ -582,6 +642,7 @@ namespace NKC_WF.WebUserControls
cmp_KS_BinCart.doUpdate();
fixVisibility();
}
/// <summary>
/// Imposta il cart sugli oggetti dipendenti
/// </summary>
@@ -609,65 +670,35 @@ namespace NKC_WF.WebUserControls
fixVisibility();
}
private void resetBin()
/// <summary>
/// Imposta il codice Item sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
private void setItem(string rawData, int codeInt)
{
cmp_KS_BinCart.BinID = 0;
fixVisibility();
}
private void resetCart()
{
cmp_KS_BinCart.CartID = 0;
cmp_KS_OtherItemsCart.CartID = 0;
cmp_KS_Cart.CartID = 0;
cmp_KS_Items.CartID = 0;
fixVisibility();
}
private void resetOtherItem()
{
cmp_KS_OtherItemsCart.OtherItemID = 0;
fixVisibility();
}
private void resetItem()
{
itemIdSelected = 0;
cmp_KS_Items.ItemID = 0;
itemIdSelected = codeInt;
cmp_KS_Items.ItemID = codeInt;
cmp_KS_Items.ItemDtmx = rawData;
cmp_KS_Items.doUpdate();
fixVisibility();
}
/// <summary>
/// Mostra INFO ed effettua reset vari...
/// Imposta il codice OtherItem sugli oggetti dipendenti
/// </summary>
/// <param name="infoMessage"></param>
protected void displInfo(string infoMessage)
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
/// <param name="Description"></param>
private void setOtherItem(string rawData, int codeInt, string Description)
{
lblSuccessMsg.Text = infoMessage;
divError.Visible = false;
divInfo.Visible = true;
resetSelection();
}
/// <summary>
/// Mostra ERROR ed effettua reset vari...
/// </summary>
/// <param name="errorMessage"></param>
protected void displError(string errorMessage)
{
lblErrorMsg.Text = errorMessage;
divError.Visible = true;
divInfo.Visible = false;
resetSelection();
}
/// <summary>
/// Reset selezione item + blocchi suggerimento + sel REDIS x pagina unload
/// </summary>
protected void resetSelection()
{
// elimino item sel...
itemIdSelected = 0;
resetShowData();
bool fatto = ComLib.resetItemPickup(SheetID, DeviceId);
lgInfo($"cmp_kittingSmart | ComLib.resetItemPickup | SheetID: {SheetID} | DeviceId: {DeviceId} | done: {fatto}");
cmp_KS_OtherItemsCart.OtherItemID = codeInt;
cmp_KS_OtherItemsCart.OtherItemDtmx = rawData;
cmp_KS_OtherItemsCart.OtherItemDesc = Description;
cmp_KS_OtherItemsCart.doUpdate();
fixVisibility();
}
/// <summary>
/// Mostra o nasconde dettaglio su ITEM letto
/// </summary>
@@ -708,27 +739,34 @@ namespace NKC_WF.WebUserControls
case 0:
displError(traduci("ErrPartNotReady"));
break;
case 1:
case 2:
case 100:
doUpdate();
break;
case 3:
displError(traduci("ErrPartAlreadyOnCart"));
break;
case 4:
// fino a concorrenza qta richiesta sposto, POI do errori
displError(traduci("ErrAllPartAlreadyOnBin"));
break;
case 5:
displError(traduci("ErrPartAlreadyOnKit"));
break;
case 990:
displError(traduci("ErrPartSt990"));
break;
case 991:
displError(traduci("ErrPartSt991"));
break;
default:
displError(traduci("ErrPartStUnkn"));
break;
@@ -737,61 +775,32 @@ namespace NKC_WF.WebUserControls
lbtResetSel.Visible = (itemIdSelected != 0);
}
public int itemIdSelected
#endregion Private Methods
#region Protected Methods
/// <summary>
/// Mostra ERROR ed effettua reset vari...
/// </summary>
/// <param name="errorMessage"></param>
protected void displError(string errorMessage)
{
get
{
int answ = 0;
int.TryParse(hfItemID.Value, out answ);
return answ;
}
set
{
hfItemID.Value = value.ToString();
bool showBtn = value != 0;
// fix visibilità
lbtCancel.Visible = showBtn;
}
lblErrorMsg.Text = errorMessage;
divError.Visible = true;
divInfo.Visible = false;
resetSelection();
}
private void resetIcons()
/// <summary>
/// Mostra INFO ed effettua reset vari...
/// </summary>
/// <param name="infoMessage"></param>
protected void displInfo(string infoMessage)
{
lblDestination.CssClass = "text-secondary";
lblDestination.Text = "";
lblLastBCode.Text = "";
lbtCancel.Visible = false;
lbtResetSel.Visible = (itemIdSelected != 0);
}
protected DS_App.BinsDataTable currBinTab
{
get
{
return DLMan.taBN.getByItemID(itemIdSelected);
}
}
protected DS_App.CartsDataTable currCartTab
{
get
{
return DLMan.taCR.getByItemID(itemIdSelected);
}
}
private void doUpdate()
{
fixVisibility();
}
private void fixVisibility()
{
// reset grafico
cmp_KS_Cart.Visible = cmp_KS_Cart.CartID > 0 && (cmp_KS_BinCart.BinID + cmp_KS_OtherItemsCart.OtherItemID + cmp_KS_Items.ItemID == 0);
cmp_KS_BinCart.Visible = cmp_KS_BinCart.BinID > 0;
cmp_KS_OtherItemsCart.Visible = cmp_KS_OtherItemsCart.OtherItemID > 0;
cmp_KS_Items.Visible = cmp_KS_Items.ItemID > 0;
// fix btn reset!
lbtResetSel.Visible = (itemIdSelected != 0);
lblSuccessMsg.Text = infoMessage;
divError.Visible = false;
divInfo.Visible = true;
resetSelection();
}
protected void lbtCancel_Click(object sender, EventArgs e)
@@ -799,6 +808,7 @@ namespace NKC_WF.WebUserControls
resetSelection();
showItemDetail(false, null, false);
}
protected void lbtResetSel_Click(object sender, EventArgs e)
{
var tabSheet = DLMan.taSHL.getByItemID(itemIdSelected);
@@ -813,5 +823,49 @@ namespace NKC_WF.WebUserControls
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lastObject = "";
resetShowData();
resetIcons();
updateCurrData();
}
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;
cmp_KS_Items.eh_doRefresh += cmp_KS_Items_eh_doRefresh;
}
/// <summary>
/// Reset selezione item + blocchi suggerimento + sel REDIS x pagina unload
/// </summary>
protected void resetSelection()
{
// elimino item sel...
itemIdSelected = 0;
resetShowData();
bool fatto = ComLib.resetItemPickup(SheetID, DeviceId);
lgInfo($"cmp_kittingSmart | ComLib.resetItemPickup | SheetID: {SheetID} | DeviceId: {DeviceId} | done: {fatto}");
}
/// <summary>
/// Aggiorna dati correnti (IP, batch, sheet...)
/// </summary>
protected void updateCurrData()
{
// FORSE 5/5?!?
DataLayer DLMan = new DataLayer();
var sheetList = DLMan.taSHL.getByMLStatus(PackListID, 3, 5);
if (sheetList.Count > 0)
{
SheetID = sheetList[0].SheetID;
}
DeviceId = ComLib.GetIPAddress().Replace(".", "0").Replace(":", "0");
}
#endregion Protected Methods
}
}