Merge branch 'develop' into SDK

This commit is contained in:
Samuele E. Locatelli
2020-08-06 13:32:34 +02:00
12 changed files with 943 additions and 78 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=307']) {
withEnv(['NEXT_BUILD_NUMBER=308']) {
// env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberBeta = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+18 -19
View File
@@ -6,19 +6,18 @@
<TablixBody>
<TablixColumns>
<TablixColumn>
<Width>2in</Width>
<Width>3.9in</Width>
</TablixColumn>
</TablixColumns>
<TablixRows>
<TablixRow>
<Height>0.99in</Height>
<Height>1.9in</Height>
<TablixCells>
<TablixCell>
<CellContents>
<Rectangle Name="List1_Contents">
<ReportItems>
<Textbox Name="Destination">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
@@ -27,7 +26,7 @@
<Value>=First(Fields!Destination.Value)</Value>
<Style>
<FontFamily>Verdana Pro Cond Semibold</FontFamily>
<FontSize>40pt</FontSize>
<FontSize>72pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
@@ -38,10 +37,10 @@
</Paragraph>
</Paragraphs>
<rd:DefaultName>Destination</rd:DefaultName>
<Top>0.254cm</Top>
<Left>2.33539cm</Left>
<Height>0.8in</Height>
<Width>1.05555in</Width>
<Top>0.73025cm</Top>
<Left>3.7cm</Left>
<Height>1.3in</Height>
<Width>2.44331in</Width>
<Style>
<Border>
<Style>None</Style>
@@ -64,10 +63,10 @@
'https://qrcode.steamware.net/HOME/QR_site/JSON?val={'baseUrl':'http://10.74.82.219/StockMan/STEA/Items/Details/{0}?StockItemID={0}','parameters':['VARIABILE']}</Value>
<Sizing>FitProportional</Sizing>
<Top>0.1in</Top>
<Left>0.05in</Left>
<Height>0.8in</Height>
<Width>0.8in</Width>
<Top>0.2875in</Top>
<Left>0.1in</Left>
<Height>1.3in</Height>
<Width>1.3in</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
@@ -133,8 +132,8 @@
<PageBreak>
<BreakLocation>End</BreakLocation>
</PageBreak>
<Height>0.99in</Height>
<Width>2in</Width>
<Height>1.9in</Height>
<Width>3.9in</Width>
<Style>
<FontFamily>Tahoma</FontFamily>
<FontSize>14pt</FontSize>
@@ -142,16 +141,16 @@
</Style>
</Tablix>
</ReportItems>
<Height>0.99in</Height>
<Height>1.9in</Height>
<Style />
</Body>
<Width>2in</Width>
<Width>3.9in</Width>
<Page>
<PageHeight>1in</PageHeight>
<PageWidth>2in</PageWidth>
<PageHeight>2in</PageHeight>
<PageWidth>4.09in</PageWidth>
<Style />
</Page>
<Author>v. 1.1.1</Author>
<Author>v. 2.1.1</Author>
<AutoRefresh>0</AutoRefresh>
<DataSources>
<DataSource Name="Sauder_NKC">
@@ -720,32 +720,5 @@ namespace NKC_WF.WebUserControls
showItemDetail(false, null, false);
}
}
/// <summary>
/// imposto a parcheggiato
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtParkArea_Click(object sender, EventArgs e)
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 100, PlaceId);
resetSelection(true);
showItemDetail(false, null, false);
lblMessage.Text = "Item Parked";
}
/// <summary>
/// Imposto come danneggiato/scrapped da rilavorare offline
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtScrapped_Click(object sender, EventArgs e)
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 990, PlaceId);
lblMessage.Text = "Item Set SCRAPPED";
// rirprocesso barcode...
lastCmd = lastValidCmd;
processLastCmd(false);
}
}
}
@@ -1 +1,65 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_labelsPrint.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_labelsPrint" %>
<%@ Register Src="~/WebUserControls/cmp_barcode.ascx" TagPrefix="uc1" TagName="cmp_barcode" %>
<div class="mx-0">
<asp:HiddenField ID="hfBatchID" runat="server" />
<asp:HiddenField ID="hfSheetID" runat="server" />
<asp:HiddenField ID="hfDeviceId" runat="server" />
<div class="card text-center" style="width: 100%;">
<h4 class="card-header p-1 bg-secondary text-light"><%: traduci("LabelPrintSmart") %></h4>
<div class="card-body py-1">
<div class="row mt-2" style="min-height: 25rem;">
<div class="col-12 px-0">
<uc1:cmp_barcode runat="server" ID="cmp_barcode" />
<asp:HiddenField runat="server" ID="hfLastBCode" />
<asp:HiddenField runat="server" ID="hfLastObject" />
<asp:HiddenField runat="server" ID="hfLastValidBCode" />
</div>
<div class="col-12 px-0">
<asp:LinkButton runat="server" ID="lbtPrintLabels" CssClass="btn btn-info btn-block text-uppercase" OnClick="lbtPrintLabels_Click"><i class="fa fa-print" aria-hidden="true"></i> <%: traduci("DoPrintLabel") %></asp:LinkButton>
</div>
<div class="col-12 px-0">
<div runat="server" id="divItemDet" class="bg-success text-warning small" visible="false">
<asp:HiddenField runat="server" ID="hfItemID" />
<div class="row">
<div class="col-3 pr-0">
<b>
<asp:Label runat="server" ID="lblItemCode" /></b>
</div>
<div class="col-6 px-1">
<asp:Label runat="server" ID="lblItemDesc" />
</div>
<div class="col-3 pl-0">
<asp:Label runat="server" ID="lblItemDtmx" />
</div>
</div>
</div>
<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>
</div>
<div class="col-12 px-0">
<b>
<asp:Label runat="server" ID="lblLastBCode" /></b><br />
<asp:Label runat="server" ID="lblMessage" /><br />
<asp:Label runat="server" ID="lblDestination" />
</div>
<div class="col-12 px-0">
<asp:LinkButton runat="server" ID="lbtResetSel" CssClass="btn btn-block btn-warning text-uppercase" OnClick="lbtResetSel_Click"><i class="fa fa-ban" aria-hidden="true"></i> <%: traduci("ResetSel") %></asp:LinkButton>
</div>
</div>
</div>
</div>
</div>
+613 -2
View File
@@ -1,4 +1,7 @@
using System;
using AppData;
using NKC_SDK;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
@@ -7,11 +10,619 @@ using System.Web.UI.WebControls;
namespace NKC_WF.WebUserControls
{
public partial class cmp_labelsPrint : System.Web.UI.UserControl
public partial class cmp_labelsPrint : BaseUserControl
{
/// <summary>
/// ID univoco da IP
/// </summary>
protected string DeviceId
{
set
{
hfDeviceId.Value = value;
}
get
{
return hfDeviceId.Value;
}
}
/// <summary>
/// Postazione attuale (per ora cablata)
/// </summary>
protected string PlaceId
{
get
{
return "WRK001";
}
}
/// <summary>
/// Sheet selezionato...
/// </summary>
protected int SheetID
{
set
{
hfSheetID.Value = value.ToString();
}
get
{
int answ = 0;
int.TryParse(hfSheetID.Value, out answ);
return answ;
}
}
/// <summary>
/// Aggiorna dati correnti (IP, batch, sheet...)
/// </summary>
protected void updateCurrData()
{
// FORSE 5/5?!?
var sheetList = DataLayer.man.taSHL.getByMLStatus(PackListID, 3, 5);
if (sheetList.Count > 0)
{
SheetID = sheetList[0].SheetID;
}
DeviceId = ComLib.GetIPAddress().Replace(".", "0").Replace(":", "0");
}
/// <summary>
/// PackList corrente...
/// </summary>
public int PackListID
{
set
{
hfBatchID.Value = value.ToString();
}
get
{
int answ = 0;
int.TryParse(hfBatchID.Value, out answ);
return answ;
}
}
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;
}
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()
{
lbtPrintLabels.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 = DataLayer.man.decodeBcode(lastCmd);
switch (decoData.codeType)
{
case codeType.UNK:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.Item:
cmp_barcode.showOutput("badge badge-success", $"Valid IT Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.ItemGeneric:
cmp_barcode.showOutput("badge badge-success", $"Valid IG Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.OtherItem:
cmp_barcode.showOutput("badge badge-success", $"Valid Generic PART Code: {decoData.rawData}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
break;
case codeType.Material:
cmp_barcode.showOutput("badge badge-warning", $"MATERIAL - ignored: {decoData.description}");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.Sheet:
cmp_barcode.showOutput("badge badge-warning", $"SHEET - ignored: {decoData.description}");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.Stack:
cmp_barcode.showOutput("badge badge-warning", $"BUNK - ignored: {decoData.description}");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.Batch:
cmp_barcode.showOutput("badge badge-warning", $"BATCH - ignored: {decoData.description}");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.Cart:
cmp_barcode.showOutput("badge badge-warning", $"CART - ignored: {decoData.description}");
resetDisplay(true);
#if false
cmp_barcode.showOutput("badge badge-success", $"Valid CR Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
#endif
doRaiseEv = true;
break;
case codeType.Bin:
cmp_barcode.showOutput("badge badge-warning", $"BIN NOT PAINTED - Ignored: {decoData.description}");
resetDisplay(true);
doRaiseEv = true;
break;
case codeType.BinProcessed:
cmp_barcode.showOutput("badge badge-warning", $"BIN PAINTED - ignored: {decoData.description}");
resetDisplay(true);
#if false
cmp_barcode.showOutput("badge badge-success", $"Valid BP Code: {decoData.description}");
processItemSuggestion(decoData.codeType, decoData.rawData, decoData.codeInt);
#endif
doRaiseEv = true;
break;
default:
cmp_barcode.showOutput("text-danger", $"Unknown Data: {decoData.rawData} --> no action");
resetDisplay(true);
doRaiseEv = true;
break;
}
return doRaiseEv;
}
/// <summary>
/// Processo il DataMatrix letto
/// </summary>
/// <param name="tipoCod"></param>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
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)
{
case codeType.Item:
tabItem = DataLayer.man.taIL.getBySearch(codeInt, rawData, 0, 999);
if (tabItem.Count == 1)
{
showItemDetail(true, tabItem[0], false);
}
else if (tabItem.Count == 0)
{
showItemDetail(false, null, true);
}
// mostro print!
lbtPrintLabels.Visible = true;
break;
case codeType.ItemGeneric:
//// PRIMA CERCA SE ne ho in stato 1..3
//tabItem = DataLayer.man.taIL.getBySearch(0, rawData, 1, 3);
//if (tabItem.Count == 0)
//{
// // se NON ne trovo cerci FINO a stato 5...
// tabItem = DataLayer.man.taIL.getBySearch(0, rawData, 1, 5);
//}
//if (tabItem.Count == 1)
//{
// showItemDetail(true, tabItem[0], false);
//}
//else if (tabItem.Count == 0)
//{
// showItemDetail(false, null, true);
//}
// mostro print!
lbtPrintLabels.Visible = true;
break;
case codeType.OtherItem:
#if false
// recupero la tab OKOI x iniziare a controllare i dati...
var tabOKOI = DataLayer.man.taOKOI.getByOtherItemDtmx(rawData);
// PRIMO: verifico SE ho delle righe valide...
if (tabOKOI.Count == 0)
{
displError($"PART: Code not found {rawData}, please retry", true);
// reset preliminare
resetOtherItem();
}
else
{
var listAvailable = tabOKOI.Where(x => x.IsOnCartDateNull()).ToList();
if (listAvailable.Count == 0)
{
displError($"PART: No item available for pickup on target CART for code {rawData} | item {tabOKOI[0].OtherItemDesc} | order {tabOKOI[0].OrderExtCode}, please retry", true);
// reset preliminare
resetOtherItem();
}
else
{
// verifico SE ci sia ALMENO UN CART in postazione (iniziato KIT ma NON finito)...
var listCartAvailable = tabOKOI.Where(x => !x.IsCartKitStartNull() && x.IsCartKitEndNull()).ToList();
if (listCartAvailable.Count == 0)
{
displError($"PART: No CART available to proceed: {rawData} | item {tabOKOI[0].OtherItemDesc} | order {tabOKOI[0].OrderExtCode}", true);
// reset preliminare
resetOtherItem();
}
else
{
// mostro OtherItem!
setOtherItem(rawData, codeInt);
}
}
}
#endif
// mostro print!
lbtPrintLabels.Visible = true;
break;
default:
lastObject = "";
// nascondo print!
lbtPrintLabels.Visible = false;
break;
}
}
protected void lbtPrintLabels_Click(object sender, EventArgs e)
{
// chiamo procedura stampa report x etichette dei pezzi lavorati offline
string printer = DataLayer.man.getPrinter("PC-MACHINE-PARTS");
// mando stampa....
bool fatto = DataLayer.man.stampaDoc(itemIdSelected.ToString(), printer, tipoDocumento.docPart, Request.UserHostName);
if (fatto)
{
displInfo(traduci("PrintSendOk"), true);
}
else
{
displError(traduci("PrintSendKo"), true);
}
raiseEvent();
}
/// <summary>
/// Imposta il codice OtherItem sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
private void setOtherItem(string rawData, int codeInt)
{
#if false
cmp_KS_OtherItemsCart.OtherItemID = codeInt;
cmp_KS_OtherItemsCart.OtherItemDtmx = rawData;
cmp_KS_OtherItemsCart.doUpdate();
#endif
fixVisibility();
}
/// <summary>
/// Imposta il bin sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
private void setBin(string rawData, int codeInt)
{
#if false
cmp_KS_BinCart.BinID = codeInt;
cmp_KS_BinCart.BinDtmx = rawData;
cmp_KS_BinCart.doUpdate();
#endif
fixVisibility();
}
/// <summary>
/// Imposta il cart sugli oggetti dipendenti
/// </summary>
/// <param name="rawData"></param>
/// <param name="codeInt"></param>
private void setCart(string rawData, int codeInt)
{
#if false
cmp_KS_BinCart.CartID = codeInt;
cmp_KS_BinCart.CartDtmx = rawData;
cmp_KS_BinCart.doUpdate();
cmp_KS_OtherItemsCart.CartID = codeInt;
cmp_KS_OtherItemsCart.CartDtmx = rawData;
cmp_KS_OtherItemsCart.doUpdate();
cmp_KS_Cart.CartID = codeInt;
cmp_KS_Cart.CartDtmx = rawData;
cmp_KS_Cart.doUpdate();
#endif
fixVisibility();
}
private void resetBin()
{
#if false
cmp_KS_BinCart.BinID = 0;
#endif
fixVisibility();
}
private void resetCart()
{
#if false
cmp_KS_BinCart.CartID = 0;
cmp_KS_OtherItemsCart.CartID = 0;
cmp_KS_Cart.CartID = 0;
#endif
fixVisibility();
}
private void resetOtherItem()
{
#if false
cmp_KS_OtherItemsCart.OtherItemID = 0;
#endif
fixVisibility();
}
/// <summary>
/// Mostra errore ed effettua reset vari...
/// </summary>
/// <param name="infoMessage"></param>
/// <param name="resetAll"></param>
protected void displInfo(string infoMessage, bool resetAll)
{
lblSuccessMsg.Text = infoMessage;
divError.Visible = false;
divInfo.Visible = true;
resetDisplay(resetAll);
}
/// <summary>
/// Mostra errore ed effettua reset vari...
/// </summary>
/// <param name="errorMessage"></param>
/// <param name="resetAll"></param>
protected void displError(string errorMessage, bool resetAll)
{
lblErrorMsg.Text = errorMessage;
divError.Visible = true;
divInfo.Visible = false;
resetDisplay(resetAll);
}
/// <summary>
/// Reset visualizzazione
/// </summary>
/// <param name="resetAll">nasconde TUTTO</param>
protected void resetDisplay(bool resetAll)
{
if (resetAll)
{
divError.Visible = false;
divInfo.Visible = false;
divItemDet.Visible = false;
// elimino item sel...
itemIdSelected = 0;
}
resetShowData();
}
/// <summary>
/// Mostra o nasconde dettaglio su ITEM letto
/// </summary>
/// <param name="showItem"></param>
/// <param name="itemRow"></param>
/// <param name="showError"></param>
private void showItemDetail(bool showItem, DS_App.ItemListRow itemRow, bool showError)
{
resetShowData();
divItemDet.Visible = showItem;
divError.Visible = showError;
if (showError)
{
displError("Item not found", true);
}
if (showItem)
{
lblItemCode.Text = itemRow.ItemExtCode;
lblItemDesc.Text = itemRow.ItemDesc;
lblItemDtmx.Text = itemRow.ItemDtmx;
itemIdSelected = itemRow.ItemID;
// CONTROLLO SIA in stato 1 --> worked, 2--> selected, 100--> parked...
switch (itemRow.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(itemRow.ItemID, 2, PlaceId);
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
{
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;
}
}
private void resetIcons()
{
lblDestination.CssClass = "text-secondary";
lblMessage.Text = "";
lblDestination.Text = "";
lblLastBCode.Text = "";
lbtCancel.Visible = false;
lbtResetSel.Visible = (itemIdSelected != 0);
}
protected DS_App.BinsDataTable currBinTab
{
get
{
return DataLayer.man.taBN.getByItemID(itemIdSelected);
}
}
protected DS_App.CartsDataTable currCartTab
{
get
{
return DataLayer.man.taCR.getByItemID(itemIdSelected);
}
}
private void doUpdate()
{
fixVisibility();
}
private void fixVisibility()
{
// reset grafico
#if false
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;
#endif
// fix btn reset!
lbtResetSel.Visible = (itemIdSelected != 0);
}
protected void lbtCancel_Click(object sender, EventArgs e)
{
// resetto item selezionato...
DataLayer.man.taIL.updateStatus(itemIdSelected, 1, PlaceId);
resetDisplay(true);
showItemDetail(false, null, false);
}
protected void lbtResetSel_Click(object sender, EventArgs e)
{
var tabSheet = DataLayer.man.taSHL.getByItemID(itemIdSelected);
if (tabSheet.Count == 1)
{
resetShowData();
// resetto sheet selezionato...
DataLayer.man.taIL.updateSheetStatusPU(tabSheet[0].SheetID, PlaceId);
resetDisplay(true);
showItemDetail(false, null, false);
}
}
}
}
+201 -3
View File
@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// <generato automaticamente>
// Codice generato da uno strumento.
//
// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se
// il codice viene rigenerato.
// </auto-generated>
// il codice viene rigenerato.
// </generato automaticamente>
//------------------------------------------------------------------------------
namespace NKC_WF.WebUserControls
@@ -13,5 +13,203 @@ namespace NKC_WF.WebUserControls
public partial class cmp_labelsPrint
{
/// <summary>
/// Controllo hfBatchID.
/// </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 hfBatchID;
/// <summary>
/// Controllo hfSheetID.
/// </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 hfSheetID;
/// <summary>
/// Controllo hfDeviceId.
/// </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 hfDeviceId;
/// <summary>
/// Controllo cmp_barcode.
/// </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_barcode cmp_barcode;
/// <summary>
/// Controllo hfLastBCode.
/// </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 hfLastBCode;
/// <summary>
/// Controllo hfLastObject.
/// </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 hfLastObject;
/// <summary>
/// Controllo hfLastValidBCode.
/// </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 hfLastValidBCode;
/// <summary>
/// Controllo lbtPrintLabels.
/// </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.LinkButton lbtPrintLabels;
/// <summary>
/// Controllo divItemDet.
/// </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 divItemDet;
/// <summary>
/// Controllo hfItemID.
/// </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 hfItemID;
/// <summary>
/// Controllo lblItemCode.
/// </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 lblItemCode;
/// <summary>
/// Controllo lblItemDesc.
/// </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 lblItemDesc;
/// <summary>
/// Controllo lblItemDtmx.
/// </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 lblItemDtmx;
/// <summary>
/// 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 divError;
/// <summary>
/// Controllo lblErrorMsg.
/// </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 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>
/// <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.LinkButton lbtCancel;
/// <summary>
/// Controllo lblLastBCode.
/// </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 lblLastBCode;
/// <summary>
/// Controllo lblMessage.
/// </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 lblMessage;
/// <summary>
/// Controllo lblDestination.
/// </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 lblDestination;
/// <summary>
/// Controllo lbtResetSel.
/// </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.LinkButton lbtResetSel;
}
}
+29 -10
View File
@@ -163,15 +163,34 @@ namespace NKC_WF.WebUserControls
}
set
{
// poiché è necessario copiare in locale il pdf...
string nameOnly = $"~/temp/{itemCode}.pdf";
hfItemPdf.Value = nameOnly;
// svuoto files vecchi...
removeOldTemp();
// copio in locale file...
File.Copy(value.Trim(), Server.MapPath(nameOnly));
// update...
hlPdfOpener.NavigateUrl = nameOnly;
// check preliminare: deve essere un file ".pdf..."
if (value.Trim().EndsWith(".pdf"))
{
// poiché è necessario copiare in locale il pdf...
string nameOnly = $"~/temp/{itemCode}.pdf";
hfItemPdf.Value = nameOnly;
// svuoto files vecchi...
removeOldTemp();
try
{
// loggo che sto x copiare
logger.lg.scriviLog($"Requested copy from {value.Trim()} --> Server.MapPath(nameOnly)");
// copio in locale file...
File.Copy(value.Trim(), Server.MapPath(nameOnly));
}
catch (Exception exc)
{
string fullMessage = $"SecScreed: Exception on setPdfPath:{Environment.NewLine}{exc}";
logger.lg.scriviLog(fullMessage);
}
// update...
hlPdfOpener.NavigateUrl = nameOnly;
}
else
{
string fullMessage = $"SecScreed: Error on pdfPath set value: [{value}]";
logger.lg.scriviLog(fullMessage);
}
}
}
@@ -217,7 +236,7 @@ namespace NKC_WF.WebUserControls
{
// valutato ma non usato pdf.js:
// https://mozilla.github.io/pdf.js/examples/index.html#interactive-examples
// se è variato da current...
if (newDtmx != itemDtmx)
{
@@ -298,7 +298,7 @@ namespace NKC_WF.WebUserControls
}
break;
case codeType.ItemGeneric:
// PRIMA CERCSE ne ho in stato 1..3
// PRIMA CERCA SE ne ho in stato 1..3
tabItem = DataLayer.man.taIL.getBySearch(0, rawData, 1, 3);
if (tabItem.Count == 0)
{
+1 -1
View File
@@ -6,9 +6,9 @@
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<asp:Timer ID="timerKitting" runat="server" Interval="1000" OnTick="timerKitting_Tick"></asp:Timer>
<asp:UpdatePanel runat="server" ID="UpdatePanel2" UpdateMode="Conditional">
<ContentTemplate>
<asp:Timer ID="timerKitting" runat="server" Interval="1000" OnTick="timerKitting_Tick"></asp:Timer>
<div class="m-2">
<uc1:cmp_kitRunning runat="server" ID="cmp_kitRunning" />
<uc1:cmp_kitting runat="server" ID="cmp_kitting" />
+9 -9
View File
@@ -14,15 +14,6 @@ namespace NKC_WF.site
public partial class Kitting
{
/// <summary>
/// Controllo timerKitting.
/// </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.Timer timerKitting;
/// <summary>
/// Controllo UpdatePanel2.
/// </summary>
@@ -32,6 +23,15 @@ namespace NKC_WF.site
/// </remarks>
protected global::System.Web.UI.UpdatePanel UpdatePanel2;
/// <summary>
/// Controllo timerKitting.
/// </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.Timer timerKitting;
/// <summary>
/// Controllo cmp_kitRunning.
/// </summary>
+4 -3
View File
@@ -1,9 +1,10 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="LabelsPrint.aspx.cs" Inherits="NKC_WF.site.LabelsPrint" %>
<%@ Register Src="~/WebUserControls/tpl_WIP.ascx" TagPrefix="uc1" TagName="tpl_WIP" %>
<%@ Register Src="~/WebUserControls/cmp_labelsPrint.ascx" TagPrefix="uc1" TagName="cmp_labelsPrint" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<div class="container px-1">
<uc1:tpl_WIP runat="server" ID="tpl_WIP" />
</div>
<uc1:cmp_labelsPrint runat="server" ID="cmp_labelsPrint" />
</div>
</asp:Content>
+2 -2
View File
@@ -15,12 +15,12 @@ namespace NKC_WF.site
{
/// <summary>
/// Controllo tpl_WIP.
/// Controllo cmp_labelsPrint.
/// </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.tpl_WIP tpl_WIP;
protected global::NKC_WF.WebUserControls.cmp_labelsPrint cmp_labelsPrint;
}
}