diff --git a/AppData/ComLib.cs b/AppData/ComLib.cs index 0e7773d..f3e7468 100644 --- a/AppData/ComLib.cs +++ b/AppData/ComLib.cs @@ -2150,5 +2150,17 @@ namespace AppData #endregion + #region metodi per SecScreen + + public static int getSecScreenCode() + { + int answ = 0; + Random rnd = new Random(); + return rnd.Next(10000); + } + + #endregion + + } } diff --git a/NKC_SDK/NKC.cs b/NKC_SDK/NKC.cs index 4fb0746..62aafa7 100644 --- a/NKC_SDK/NKC.cs +++ b/NKC_SDK/NKC.cs @@ -6,315 +6,315 @@ using System.Net.NetworkInformation; namespace NKC_SDK { - public class NKC - { - #region utils comunicazione HTTP + public class NKC + { + #region utils comunicazione HTTP - /// - /// Effettua chiamata URL e restituisce risultato - /// - /// - /// - public static string callUrl(string URL) - { - string answ = ""; - var client = new WebClientWT(); - //var client = new WebClient(); - client.Headers.Add("user-agent", "NKC_SDK"); - try - { - answ = client.DownloadString(URL); - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante callUrl per URL: {URL}{Environment.NewLine}{exc}"); - answ = exc.Message; - } - // restituisco valore! - return answ; - } - /// - /// Effettua chiamata URL e restituisce risultato - /// - /// - /// - /// - public static string callUrl(string URL, string payload) - { - string answ = ""; - var client = new WebClientWT(); - client.Headers.Add("user-agent", "NKC_SDK"); - try - { - answ = client.UploadString(URL, payload); - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante callUrl per URL: {URL} | payload: {payload}{Environment.NewLine}{exc}"); - answ = exc.Message; - } - // restituisco valore! - return answ; - } - - /// - /// Effettua chiamata PUT - /// - /// - /// - /// - public static string putData(string URL, string payload) - { - string answ = ""; - var client = new WebClientWT(); - client.Headers.Add("user-agent", "NKC_SDK"); - // importante x evitare errore 415 di dataType non ammesso - client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); - try - { - // va messo "PUT" e va configurato IIS per accettare PUT - answ = client.UploadString(URL, "PUT", payload); - answ = "ok"; - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante putData per {URL}{Environment.NewLine}{exc}"); - answ = exc.Message; - } - // restituisco valore! - return answ; - } - - - #endregion - - #region URL di base - - protected string urlAlive - { - get - { - return $"{_baseUrl}api/Alive"; - } - } - protected string urlAliveClock - { - get - { - return $"{_baseUrl}api/Alive/1"; - } - } - protected string urlCurrBunk - { - get - { - return $"{_baseUrl}api/Bunk"; - } - } - protected string urlCurrSheet4Mac - { - get - { - return $"{_baseUrl}api/Sheet/{_codPost}"; - } - } - protected string urlGetBunk(int currBunkId) - { - return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false"; - } - protected string urlNextBunk(int currBunkId) - { - return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true"; - } - protected string urlPutBunk(int currBunkId) - { - return $"{_baseUrl}api/Bunk/{currBunkId}"; - } - /// - /// URL x salvataggio dati SHEET - /// - /// - protected string urlPutSheetList - { - get - { - return $"{_baseUrl}api/Sheet/{_codPost}"; - } - } - /// - /// file locale per persistenza BUNK - /// - protected string persistFileName = "data/persistFile.json"; - - #endregion - - /// - /// URL di base per la comunicazione - /// - /// PROD: http://seriate.steamware.net:8083/NKC/ - /// DEV: https://localhost:44388/ - /// - protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/"; - /// - /// DnsName/IP di base x chaimate - /// - protected string _baseIp { get; set; } = "seriate.steamware.net"; - /// - /// COD macchina x cui si effettua chiamata - /// - protected string _codPost { get; set; } = ""; - - /// - /// Classe per effettuare comunicazioni con NKC - /// - /// IP di base x ping - /// URL di abse x chiamate REST - /// Codice posstazione/macchina x cui si fa chiamata - public NKC(string baseIp, string baseUrl, string codPost) - { - _baseIp = baseIp; - _baseUrl = baseUrl; - _codPost = codPost; - } - /// - /// Effettua test ping all'indirizzo del server - /// - public PingReply testPing - { - get - { - Ping myPing = new Ping(); - // timeout a 1 sec! - PingReply answ = myPing.Send(_baseIp, 1000); - // rendo! - return answ; - } - } - /// - /// Effettua test alive all'indirizzo del server - /// - public bool testAlive - { - get - { - bool answ = false; - string returnData = callUrl(urlAlive); - returnData = JsonConvert.DeserializeObject(returnData); - answ = returnData == "OK"; - // rendo! - return answ; - } - } - /// - /// Effettua test ping all'indirizzo del server - /// - public DateTime testClock - { - get - { - DateTime oggi = DateTime.Today; - DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1); - // recupero! - string returnData = callUrl(urlAliveClock); - try + /// + /// Effettua chiamata URL e restituisce risultato + /// + /// + /// + public static string callUrl(string URL) { - DateTime.TryParse(JsonConvert.DeserializeObject(returnData), out answ); + string answ = ""; + var client = new WebClientWT(); + //var client = new WebClient(); + client.Headers.Add("user-agent", "NKC_SDK"); + try + { + answ = client.DownloadString(URL); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante callUrl per URL: {URL}{Environment.NewLine}{exc}"); + answ = exc.Message; + } + // restituisco valore! + return answ; } - catch (Exception exc) + /// + /// Effettua chiamata URL e restituisce risultato + /// + /// + /// + /// + public static string callUrl(string URL, string payload) { - Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}"); + string answ = ""; + var client = new WebClientWT(); + client.Headers.Add("user-agent", "NKC_SDK"); + try + { + answ = client.UploadString(URL, payload); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante callUrl per URL: {URL} | payload: {payload}{Environment.NewLine}{exc}"); + answ = exc.Message; + } + // restituisco valore! + return answ; } - // rendo! - return answ; - } - } - #region metodi per SheetWorklist + /// + /// Effettua chiamata PUT + /// + /// + /// + /// + public static string putData(string URL, string payload) + { + string answ = ""; + var client = new WebClientWT(); + client.Headers.Add("user-agent", "NKC_SDK"); + // importante x evitare errore 415 di dataType non ammesso + client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); + try + { + // va messo "PUT" e va configurato IIS per accettare PUT + answ = client.UploadString(URL, "PUT", payload); + answ = "ok"; + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante putData per {URL}{Environment.NewLine}{exc}"); + answ = exc.Message; + } + // restituisco valore! + return answ; + } - /// - /// Recupera elenco dei fogli ATTIVI - /// - effettua chiamata tramite REST API HTTP - /// - il risutlato viene deserializzato nell'oggetto richiesto - /// - /// - public SheetWorkList getCurrentSheets() - { - SheetWorkList answ = null; - string rawdata = ""; - // chiamo metodo x recupero WBunk... - try - { - rawdata = callUrl(urlCurrSheet4Mac); - answ = JsonConvert.DeserializeObject(rawdata); - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante getCurrentSheets, ricevuto {rawdata}{Environment.NewLine}{exc}"); - } - return answ; - } - /// - /// Effettua salvataggio dell'elenco dei fogli (1..n) su NKC - /// - /// - public bool saveSheets(SheetWorkList updatedSheetList) - { - bool answ = false; - string rawdata = ""; - try - { - // serializzo oggetto - rawdata = JsonConvert.SerializeObject(updatedSheetList); - // invio con metodo put! - putData(urlPutSheetList, rawdata); - answ = true; - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante saveSheets, ricevuto {rawdata}{Environment.NewLine}{exc}"); - } - return answ; - } - /// - /// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE - /// - public SheetWorkList persistedSheetList - { - get - { - SheetWorkList answ = new SheetWorkList(); - try - { - string rawdata = File.ReadAllText(persistFileName); - answ = JsonConvert.DeserializeObject(rawdata); - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}"); - } - return answ; - } - set - { - try - { - // serializzo oggetto - string rawdata = JsonConvert.SerializeObject(value); - // salvo in locale - File.WriteAllText(persistFileName, rawdata); - } - catch (Exception exc) - { - Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}"); - } - } - } - #endregion + #endregion + + #region URL di base + + protected string urlAlive + { + get + { + return $"{_baseUrl}api/Alive"; + } + } + protected string urlAliveClock + { + get + { + return $"{_baseUrl}api/Alive/1"; + } + } + protected string urlCurrBunk + { + get + { + return $"{_baseUrl}api/Bunk"; + } + } + protected string urlCurrSheet4Mac + { + get + { + return $"{_baseUrl}api/Sheet/{_codPost}"; + } + } + protected string urlGetBunk(int currBunkId) + { + return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=false"; + } + protected string urlNextBunk(int currBunkId) + { + return $"{_baseUrl}api/Bunk/{currBunkId}?showNext=true"; + } + protected string urlPutBunk(int currBunkId) + { + return $"{_baseUrl}api/Bunk/{currBunkId}"; + } + /// + /// URL x salvataggio dati SHEET + /// + /// + protected string urlPutSheetList + { + get + { + return $"{_baseUrl}api/Sheet/{_codPost}"; + } + } + /// + /// file locale per persistenza BUNK + /// + protected string persistFileName = "data/persistFile.json"; + + #endregion + + /// + /// URL di base per la comunicazione + /// + /// PROD: http://seriate.steamware.net:8083/NKC/ + /// DEV: https://localhost:44388/ + /// + protected string _baseUrl { get; set; } = @"http://seriate.steamware.net:8083/NKC/"; + /// + /// DnsName/IP di base x chaimate + /// + protected string _baseIp { get; set; } = "seriate.steamware.net"; + /// + /// COD macchina x cui si effettua chiamata + /// + protected string _codPost { get; set; } = ""; + + /// + /// Classe per effettuare comunicazioni con NKC + /// + /// IP di base x ping + /// URL di abse x chiamate REST + /// Codice posstazione/macchina x cui si fa chiamata + public NKC(string baseIp, string baseUrl, string codPost) + { + _baseIp = baseIp; + _baseUrl = baseUrl; + _codPost = codPost; + } + /// + /// Effettua test ping all'indirizzo del server + /// + public PingReply testPing + { + get + { + Ping myPing = new Ping(); + // timeout a 1 sec! + PingReply answ = myPing.Send(_baseIp, 1000); + // rendo! + return answ; + } + } + /// + /// Effettua test alive all'indirizzo del server + /// + public bool testAlive + { + get + { + bool answ = false; + string returnData = callUrl(urlAlive); + returnData = JsonConvert.DeserializeObject(returnData); + answ = returnData == "OK"; + // rendo! + return answ; + } + } + /// + /// Effettua test ping all'indirizzo del server + /// + public DateTime testClock + { + get + { + DateTime oggi = DateTime.Today; + DateTime answ = oggi.AddYears(-oggi.Year + 1900).AddMonths(-oggi.Month).AddDays(-oggi.Day + 1); + // recupero! + string returnData = callUrl(urlAliveClock); + try + { + DateTime.TryParse(JsonConvert.DeserializeObject(returnData), out answ); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante testClock, ricevuto {returnData}{Environment.NewLine}{exc}"); + } + // rendo! + return answ; + } + } + + #region metodi per SheetWorklist + + /// + /// Recupera elenco dei fogli ATTIVI + /// - effettua chiamata tramite REST API HTTP + /// - il risutlato viene deserializzato nell'oggetto richiesto + /// + /// + public SheetWorkList getCurrentSheets() + { + SheetWorkList answ = null; + string rawdata = ""; + // chiamo metodo x recupero WBunk... + try + { + rawdata = callUrl(urlCurrSheet4Mac); + answ = JsonConvert.DeserializeObject(rawdata); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante getCurrentSheets, ricevuto {rawdata}{Environment.NewLine}{exc}"); + } + return answ; + } + /// + /// Effettua salvataggio dell'elenco dei fogli (1..n) su NKC + /// + /// + public bool saveSheets(SheetWorkList updatedSheetList) + { + bool answ = false; + string rawdata = ""; + try + { + // serializzo oggetto + rawdata = JsonConvert.SerializeObject(updatedSheetList); + // invio con metodo put! + putData(urlPutSheetList, rawdata); + answ = true; + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante saveSheets, ricevuto {rawdata}{Environment.NewLine}{exc}"); + } + return answ; + } + /// + /// Oggetto che contiene l'oggetto SHEET WorkList corrente salvato LOCALMENTE + /// + public SheetWorkList persistedSheetList + { + get + { + SheetWorkList answ = new SheetWorkList(); + try + { + string rawdata = File.ReadAllText(persistFileName); + answ = JsonConvert.DeserializeObject(rawdata); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante recupero locale della SheetList{Environment.NewLine}{exc}"); + } + return answ; + } + set + { + try + { + // serializzo oggetto + string rawdata = JsonConvert.SerializeObject(value); + // salvo in locale + File.WriteAllText(persistFileName, rawdata); + } + catch (Exception exc) + { + Log.Instance.Error($"Eccezione durante salvataggio locale della SheetList{Environment.NewLine}{exc}"); + } + } + } + + #endregion #if false - #region metodi per BUNK + #region metodi per BUNK /// /// Recupera il PRIMO BUNK @@ -439,8 +439,8 @@ namespace NKC_SDK } } - #endregion + #endregion #endif - } + } } diff --git a/NKC_SDK/Objects.cs b/NKC_SDK/Objects.cs index bf106cf..266e36f 100644 --- a/NKC_SDK/Objects.cs +++ b/NKC_SDK/Objects.cs @@ -6,677 +6,677 @@ using System.Collections.Generic; namespace NKC_SDK { - #region classi per NESTING + #region classi per NESTING - /// - /// Classe che rappresenta la richiesta di AZIONI al NESTING - /// - public class commandRequest - { /// - /// ID del processo richiesto (generato in fase di import) + /// Classe che rappresenta la richiesta di AZIONI al NESTING /// - public int BatchID { get; set; } - /// - /// Richiesta per il nesting: DoNesting / HaltNesting - /// - public string ActionRequested { get; set; } - } - /// - /// Classe che rappresenta la richiesta di processing di NESTING da inserire in REDIS - /// - public class batchRequest - { - /// - /// ID del processo richiesto (generato in fase di import) - /// - public int BatchId { get; set; } - /// - /// ID univoco dell'invio del TASK - /// - public string EnvNum { get; set; } = ""; - /// - /// tempo amssimo eprmesso x nesting (minuti) - /// - public int MaxTime { get; set; } - /// - /// Tipo di processing richiesto - /// 1 = stima - /// 2 = nesting - /// - public int ProcType { get; set; } - /// - /// Codice della amcchina x cui si effettua richeista - /// - [JsonConverter(typeof(StringEnumConverter))] - public mType MachineType { get; set; } - /// - /// Tipo di ordine richiesto - /// - [JsonConverter(typeof(StringEnumConverter))] - public oType OrderType { get; set; } - /// - /// Elenco ordini richeisti da processare / nestare - /// - public List OrderList { get; set; } - } - /// - /// Struttura Ordine passata a NESTING - /// - public class Order - { - /// - /// ID Ordine (da DB) - /// - public int OrderId { get; set; } = 0; - /// - /// Cod ordine di NKC - /// - public string OrderCod { get; set; } - /// - /// Codice ordine esterno da cliente (HFA) - /// - public string OrderExtCode { get; set; } - /// - /// Plant di destinazione - /// - public string DestPlant { get; set; } - - /// - /// Elenco dei KIT dell'ordine - /// - public List KitList { get; set; } - } - /// - /// Oggetto KIT - /// - public class Kit - { - /// - /// ID KIT (da DB) - /// - public int KitId { get; set; } = 0; - /// - /// Codice KIT da cod ordine ext - /// - public string KitExtCode { get; set; } = ""; - /// - /// Elenco Items da produrre x KIT - /// - public List PartList { get; set; } - } - /// - /// Struttura Item passata a NESTING - /// - public class Part - { - /// - /// Cod ITEM di NKC - /// - public int PartId { get; set; } = 0; - /// - /// Codice ITEM esterno da cliente (HFA) - /// - public string PartExtCode { get; set; } - /// - /// Codice Datamatrix dell'ITEM - /// - public string PartDtmx { get; set; } = ""; - /// - /// Quantità di Item per SINGOLO ordine - /// - public int PartQty { get; set; } - /// - /// ID del materiale dell'item - /// - public int MatId { get; set; } - /// - /// Path del disegno CAD dell'item da produrre x NESTING - /// - public string CadFilePath { get; set; } - /// - /// Parametri opzionali (es x risposta NESTING) - /// - public Dictionary OptParameters { get; set; } = null; - } - /// - /// Descrizione di un ITEM in fase di scarico - /// - public class PartUnload : Part - { - /// - /// Destinazione dell'item - /// - public ItemDest NextDest { get; set; } = ItemDest.Undef; - /// - /// Stato dell'item - /// - public ItemStatus Status { get; set; } = ItemStatus.Undef; - /// - /// Elenco di Secop opzionali (es T-NUT, RoundEdge) - /// - public List SecOp { get; set; } = new List(); - } - - - - /// - /// Classe Sheet x Nesting - /// - public class NestSheet - { - /// - /// Identificativo univoco Sheet - /// - public String SheetId { get; set; } = ""; - /// - /// Indice dello sheet - /// - public int SheetIndex { get; set; } = 0; - /// - /// Materiale - /// - public int MatId { get; set; } - /// - /// Tempo STIMATO di taglio calcolato dal Nesting espresso in Secondi - /// - public double EstimatedWorktime { get; set; } = 0; - /// - /// Superficie WORK (lavorata/tagliata) del foglio lavorato (= somma area dei pezzi disposti) - /// - public double SurfaceWork { get; set; } = 0; - /// - /// Superficie totale del foglio lavorato (= materiale) - /// - public double SurfaceTotal { get; set; } = 1; - /// - /// Resa (OEE) dell'impiego del materiale - /// - public double SurfaceOEE + public class commandRequest { - get - { - double answ = 0; - try - { - answ = SurfaceWork / SurfaceTotal; - } - catch - { } - return answ; - } + /// + /// ID del processo richiesto (generato in fase di import) + /// + public int BatchID { get; set; } + /// + /// Richiesta per il nesting: DoNesting / HaltNesting + /// + public string ActionRequested { get; set; } } /// - /// Programma x printing + /// Classe che rappresenta la richiesta di processing di NESTING da inserire in REDIS /// - public string PrintProgram { get; set; } = ""; - /// - /// Programma x Machining - /// - public string MachiningProgram { get; set; } = ""; - /// - /// SVG del lavoro previsto - /// - public string Drawing { get; set; } = ""; - /// - /// Elenco Part da produrre x ordine - /// - public List PartList { get; set; } = null; - /// - /// Eventuale remnant - /// - public NestRemn Remnant { get; set; } - } - /// - /// Dati di un foglio di Remnant - /// - public class NestRemn - { - /// - /// Dimensione L del remnant - /// - public decimal L_mm { get; set; } = 0; - /// - /// Dimensione W del remnant - /// - public decimal W_mm { get; set; } = 0; - } - /// - /// Struttura stack - /// - public class NestBunk - { - /// - /// Identificativo univoco stack - /// - public String BunkId { get; set; } = ""; - /// - /// Indice del Bunk - /// - public int BunkIndex { get; set; } = 0; - /// - /// Num di fogli nello stack - /// - public int NumSheet + public class batchRequest { - get - { - int answ = 0; - if (SheetList != null) - { - answ = SheetList.Count; - } - return answ; - } + /// + /// ID del processo richiesto (generato in fase di import) + /// + public int BatchId { get; set; } + /// + /// ID univoco dell'invio del TASK + /// + public string EnvNum { get; set; } = ""; + /// + /// tempo amssimo eprmesso x nesting (minuti) + /// + public int MaxTime { get; set; } + /// + /// Tipo di processing richiesto + /// 1 = stima + /// 2 = nesting + /// + public int ProcType { get; set; } + /// + /// Codice della amcchina x cui si effettua richeista + /// + [JsonConverter(typeof(StringEnumConverter))] + public mType MachineType { get; set; } + /// + /// Tipo di ordine richiesto + /// + [JsonConverter(typeof(StringEnumConverter))] + public oType OrderType { get; set; } + /// + /// Elenco ordini richeisti da processare / nestare + /// + public List OrderList { get; set; } } /// - /// Elenco Sheet previsti + /// Struttura Ordine passata a NESTING /// - public List SheetList { get; set; } - } - /// - /// Definizione classe x materiali - /// - public class Material - { - public int MatId { get; set; } = 0; - public int MatExtCode { get; set; } = 0; - public string MatDesc { get; set; } = ""; - public DateTime ApprovDate { get; set; } = DateTime.Now; - public string ApprovUser { get; set; } = ""; - public decimal L_mm { get; set; } = 0; - public decimal W_mm { get; set; } = 0; - public decimal T_mm { get; set; } = 0; - public string MatDtmx { get; set; } = ""; - } - - /// - /// Classe che rappresenta stato ordine ricevuto via REDIS da NESTING - /// - public class baseNestAnsw - { - /// - /// ID univoco invio del TASK - /// - public string EnvNum { get; set; } = ""; - /// - /// Tipo di processing richiesto - /// 1 = stima - /// 2 = nesting - /// - public int ProcType { get; set; } = 0; - /// - /// Codice della amcchina x cui si effettua richiesta - /// - [JsonConverter(typeof(StringEnumConverter))] - public mType MachineType { get; set; } = mType.Multiax; - /// - /// Tipo di ordine richiesto - /// - [JsonConverter(typeof(StringEnumConverter))] - public oType OrderType { get; set; } = oType.BatchRequest; - /// - /// Status del processo di nesting - /// - public procStatus ProcessStatus { get; set; } = procStatus.waiting; - /// - /// Note libere del nesting - /// - public string ProcessNotes { get; set; } = ""; - /// - /// Tempo di processing del Nesting espresso in Secondi - /// - public double ProcessingRuntime { get; set; } = 0; - /// - /// Tempo STIMATO di taglio calcolato dal Nesting espresso in Secondi - /// - public double EstimatedWorktime { get; set; } = 0; - /// - /// Elenco errori riscontrati - /// - public List ErrorList { get; set; } = null; - } - /// - /// Risposta NESTING x la STIMA iniziale - /// - public class nestReplyBatchInitial : orderStatus - { - /// - /// Elenco Items da produrre x ordine - /// - public List PartList { get; set; } - } - /// - /// Risposta NESTING x la STIMA iniziale - /// - public class nestReplyBatchFinal : orderStatus - { - /// - /// Elenco Stack previsti - /// - public List BunkList { get; set; } - /// - /// Elenco Carts - /// - public List CartList { get; set; } - /// - /// Elenco Bin - /// - public List BinList { get; set; } - } - - /// - /// Dati di un Cart post nesting - /// - public class NestCart - { - /// - /// Indice del CART nel TAKC / giorno - /// - public int CartIndex { get; set; } = 0; - /// - /// Elenco dei KIT dell'ordine - /// - public List KitList { get; set; } - } - /// - /// Dati di un Cart post nesting - /// - public class NestBin - { - /// - /// Indice del BIN nel TAKT / giorno - /// - public int BinIndex { get; set; } = 0; - /// - /// Elenco dei PART/ITEM dell'Ordine - /// - public List PartList { get; set; } - } - /// - /// Classe che rappresenta stato ordine ricevuto via REDIS da NESTING - /// - public class orderStatus : baseNestAnsw - { - /// - /// ID del processo di Nesting in corso (generato in fase di import) - /// - public int BatchID { get; set; } - } - - public class nestReplyOffOrd : orderStatus - { - /// - /// ID dell'ordine offlien da processare - /// - public string OffOrderID { get; set; } = ""; - - /// - /// Num di fogli nello stack - /// - public int NumSheet + public class Order { - get - { - int answ = 0; - if (SheetList != null) - { - answ = SheetList.Count; - } - return answ; - } + /// + /// ID Ordine (da DB) + /// + public int OrderId { get; set; } = 0; + /// + /// Cod ordine di NKC + /// + public string OrderCod { get; set; } + /// + /// Codice ordine esterno da cliente (HFA) + /// + public string OrderExtCode { get; set; } + /// + /// Plant di destinazione + /// + public string DestPlant { get; set; } + + /// + /// Elenco dei KIT dell'ordine + /// + public List KitList { get; set; } } /// - /// Elenco Sheet previsti + /// Oggetto KIT /// - public List SheetList { get; set; } - } - /// - /// Oggetto errore da poter rispondere con chiamate x stima/nesting - /// - public class ErrorRep - { - /// - /// DataOra registrazione record - /// - public DateTime DtRif { get; set; } = DateTime.Now; - /// - /// Tipo di errore - /// - public string ErrType { get; set; } = "NA"; - /// - /// Chiave di riferimento PARENT per l'errore (es il codice del batch, dell'item) - /// es: BatchId.OrderId.Row - /// - public string ParentUid { get; set; } = "A.B.C"; - /// - /// Chiave univoca per l'errore - /// es: BatchId.OrderId.Row.PartId... - /// - public string Uid { get; set; } = "A.B.C.D"; - /// - /// Descrizione estesa (human readable) dell'errore - /// - public string Description { get; set; } = ""; - } - - #endregion - - #region classi per PROD - - /// - /// dati del materiale - /// - public class MaterialData - { - /// - /// Identificativo univoco del materiale (DA ANAGRAFICA db) - /// - public int MaterialId { get; set; } - /// - /// Codice P/N del materiale (cliente) - /// - public string MaterialPN { get; set; } - /// - /// Codice P/N del materiale (cliente) - /// - public string MaterialDescription { get; set; } - } - /// - /// Dati della lavorazione - /// - public class WorkData - { - /// - /// Indica che la lavorazione è stata eseguita con successo (default = true) - /// - public bool Success { get; set; } - /// - /// Percorso del programma da eseguire - /// - public string ProgramPath { get; set; } - /// - /// Data inizio processing - /// - public DateTime? DtStart { get; set; } - /// - /// Data fine processing - /// - public DateTime? DtEnd { get; set; } - /// - /// Tempo di lavorazione in minuti decimali - /// - public double WorkTimeMin + public class Kit { - get - { - double answ = 0; - if (DtStart != null && DtEnd != null) - { - try - { - answ = ((DateTime)DtEnd).Subtract((DateTime)DtStart).TotalMinutes; - } - catch - { } - } - return answ; - } + /// + /// ID KIT (da DB) + /// + public int KitId { get; set; } = 0; + /// + /// Codice KIT da cod ordine ext + /// + public string KitExtCode { get; set; } = ""; + /// + /// Elenco Items da produrre x KIT + /// + public List PartList { get; set; } } - } - /// - /// Estensione classe sheet comprensiva di BunkId - /// - public class ProdSheetExt: ProdSheet - { /// - /// Identificativo univoco BUNK / Stack + /// Struttura Item passata a NESTING /// - public int BunkId { get; set; } - /// - /// INDICE del pannello (valido per BUNK) - /// - public int SheetIndex { get; set; } - } - - /// - /// Singolo Pannello IN LAVORAZIONE - /// - public class ProdSheet - { - /// - /// Identificativo univoco pannello - /// - public int SheetId { get; set; } - /// - /// Materiale - /// - public MaterialData Material { get; set; } - /// - /// Stato del pannello - /// - public PStatus Status { get; set; } - /// - /// Tempi processo x fase printing - /// - public WorkData Printing { get; set; } - /// - /// Tempi processo x fase CNC - /// - public WorkData Machining { get; set; } - /// - /// Tempi processo x scarico - /// - public WorkData Unloading { get; set; } - - } - - - /// - /// Classe che rappresenta un insieme di Sheet da lavorare (contenuti in 1 o + bunk) - /// - public class SheetWorkList - { - /// - /// Elenco dei pannelli (sheets) in lavorazione - /// - public List SheetList { get; set; } - /// - /// Numero di Sheets da lavorare - /// - public int NumSheets + public class Part { - get - { - int answ = 0; - try - { - answ = SheetList.Count; - } - catch - { } - return answ; - } + /// + /// Cod ITEM di NKC + /// + public int PartId { get; set; } = 0; + /// + /// Codice ITEM esterno da cliente (HFA) + /// + public string PartExtCode { get; set; } + /// + /// Codice Datamatrix dell'ITEM + /// + public string PartDtmx { get; set; } = ""; + /// + /// Quantità di Item per SINGOLO ordine + /// + public int PartQty { get; set; } + /// + /// ID del materiale dell'item + /// + public int MatId { get; set; } + /// + /// Path del disegno CAD dell'item da produrre x NESTING + /// + public string CadFilePath { get; set; } + /// + /// Parametri opzionali (es x risposta NESTING) + /// + public Dictionary OptParameters { get; set; } = null; } - } - - /// - /// Classe che rappresenta i BUNK da lavorare - /// - public class ProdBunk - { /// - /// Identificativo univoco BUNK / Stack + /// Descrizione di un ITEM in fase di scarico /// - public int BunkId { get; set; } - /// - /// Stato dello Stack di pannelli - /// - public CStatus Status { get; set; } - /// - /// Codice dataMatrix del BUNK - /// - public string DataMatrix { get; set; } - /// - /// Data inizio processing del BUNK - /// - public DateTime DtStart { get; set; } - /// - /// Data inizio processing dello Stack - /// - public DateTime DtEnd { get; set; } - /// - /// Elenco dei pannelli(sheets) dello Stack - /// - public List SheetList { get; set; } - /// - /// Numero di Sheets da lavorare - /// - public int NumSheets + public class PartUnload : Part { - get - { - int answ = 0; - try - { - answ = SheetList.Count; - } - catch - { } - return answ; - } + /// + /// Destinazione dell'item + /// + public ItemDest NextDest { get; set; } = ItemDest.Undef; + /// + /// Stato dell'item + /// + public ItemStatus Status { get; set; } = ItemStatus.Undef; + /// + /// Elenco di Secop opzionali (es T-NUT, RoundEdge) + /// + public List SecOp { get; set; } = new List(); } - } - - /// - /// Valori decodificati - /// - public class decodedData - { - /// - /// Tipo codice decodificato - /// - public codeType codeType { get; set; } = codeType.UNK; - /// - /// Codice decodificato - /// - public string code { get; set; } = ""; - /// - /// Codice decodificato in formato INT - /// - public int codeInt { get; set; } = 0; - /// - /// Descrizione associata - /// - public string description { get; set; } = ""; - /// - /// Dato letto RAW - /// - public string rawData { get; set; } = ""; - } - #endregion - + + /// + /// Classe Sheet x Nesting + /// + public class NestSheet + { + /// + /// Identificativo univoco Sheet + /// + public String SheetId { get; set; } = ""; + /// + /// Indice dello sheet + /// + public int SheetIndex { get; set; } = 0; + /// + /// Materiale + /// + public int MatId { get; set; } + /// + /// Tempo STIMATO di taglio calcolato dal Nesting espresso in Secondi + /// + public double EstimatedWorktime { get; set; } = 0; + /// + /// Superficie WORK (lavorata/tagliata) del foglio lavorato (= somma area dei pezzi disposti) + /// + public double SurfaceWork { get; set; } = 0; + /// + /// Superficie totale del foglio lavorato (= materiale) + /// + public double SurfaceTotal { get; set; } = 1; + /// + /// Resa (OEE) dell'impiego del materiale + /// + public double SurfaceOEE + { + get + { + double answ = 0; + try + { + answ = SurfaceWork / SurfaceTotal; + } + catch + { } + return answ; + } + } + /// + /// Programma x printing + /// + public string PrintProgram { get; set; } = ""; + /// + /// Programma x Machining + /// + public string MachiningProgram { get; set; } = ""; + /// + /// SVG del lavoro previsto + /// + public string Drawing { get; set; } = ""; + /// + /// Elenco Part da produrre x ordine + /// + public List PartList { get; set; } = null; + /// + /// Eventuale remnant + /// + public NestRemn Remnant { get; set; } + } + /// + /// Dati di un foglio di Remnant + /// + public class NestRemn + { + /// + /// Dimensione L del remnant + /// + public decimal L_mm { get; set; } = 0; + /// + /// Dimensione W del remnant + /// + public decimal W_mm { get; set; } = 0; + } + /// + /// Struttura stack + /// + public class NestBunk + { + /// + /// Identificativo univoco stack + /// + public String BunkId { get; set; } = ""; + /// + /// Indice del Bunk + /// + public int BunkIndex { get; set; } = 0; + /// + /// Num di fogli nello stack + /// + public int NumSheet + { + get + { + int answ = 0; + if (SheetList != null) + { + answ = SheetList.Count; + } + return answ; + } + } + /// + /// Elenco Sheet previsti + /// + public List SheetList { get; set; } + } + /// + /// Definizione classe x materiali + /// + public class Material + { + public int MatId { get; set; } = 0; + public int MatExtCode { get; set; } = 0; + public string MatDesc { get; set; } = ""; + public DateTime ApprovDate { get; set; } = DateTime.Now; + public string ApprovUser { get; set; } = ""; + public decimal L_mm { get; set; } = 0; + public decimal W_mm { get; set; } = 0; + public decimal T_mm { get; set; } = 0; + public string MatDtmx { get; set; } = ""; + } + + /// + /// Classe che rappresenta stato ordine ricevuto via REDIS da NESTING + /// + public class baseNestAnsw + { + /// + /// ID univoco invio del TASK + /// + public string EnvNum { get; set; } = ""; + /// + /// Tipo di processing richiesto + /// 1 = stima + /// 2 = nesting + /// + public int ProcType { get; set; } = 0; + /// + /// Codice della amcchina x cui si effettua richiesta + /// + [JsonConverter(typeof(StringEnumConverter))] + public mType MachineType { get; set; } = mType.Multiax; + /// + /// Tipo di ordine richiesto + /// + [JsonConverter(typeof(StringEnumConverter))] + public oType OrderType { get; set; } = oType.BatchRequest; + /// + /// Status del processo di nesting + /// + public procStatus ProcessStatus { get; set; } = procStatus.waiting; + /// + /// Note libere del nesting + /// + public string ProcessNotes { get; set; } = ""; + /// + /// Tempo di processing del Nesting espresso in Secondi + /// + public double ProcessingRuntime { get; set; } = 0; + /// + /// Tempo STIMATO di taglio calcolato dal Nesting espresso in Secondi + /// + public double EstimatedWorktime { get; set; } = 0; + /// + /// Elenco errori riscontrati + /// + public List ErrorList { get; set; } = null; + } + /// + /// Risposta NESTING x la STIMA iniziale + /// + public class nestReplyBatchInitial : orderStatus + { + /// + /// Elenco Items da produrre x ordine + /// + public List PartList { get; set; } + } + /// + /// Risposta NESTING x la STIMA iniziale + /// + public class nestReplyBatchFinal : orderStatus + { + /// + /// Elenco Stack previsti + /// + public List BunkList { get; set; } + /// + /// Elenco Carts + /// + public List CartList { get; set; } + /// + /// Elenco Bin + /// + public List BinList { get; set; } + } + + /// + /// Dati di un Cart post nesting + /// + public class NestCart + { + /// + /// Indice del CART nel TAKC / giorno + /// + public int CartIndex { get; set; } = 0; + /// + /// Elenco dei KIT dell'ordine + /// + public List KitList { get; set; } + } + /// + /// Dati di un Cart post nesting + /// + public class NestBin + { + /// + /// Indice del BIN nel TAKT / giorno + /// + public int BinIndex { get; set; } = 0; + /// + /// Elenco dei PART/ITEM dell'Ordine + /// + public List PartList { get; set; } + } + /// + /// Classe che rappresenta stato ordine ricevuto via REDIS da NESTING + /// + public class orderStatus : baseNestAnsw + { + /// + /// ID del processo di Nesting in corso (generato in fase di import) + /// + public int BatchID { get; set; } + } + + public class nestReplyOffOrd : orderStatus + { + /// + /// ID dell'ordine offlien da processare + /// + public string OffOrderID { get; set; } = ""; + + /// + /// Num di fogli nello stack + /// + public int NumSheet + { + get + { + int answ = 0; + if (SheetList != null) + { + answ = SheetList.Count; + } + return answ; + } + } + /// + /// Elenco Sheet previsti + /// + public List SheetList { get; set; } + } + /// + /// Oggetto errore da poter rispondere con chiamate x stima/nesting + /// + public class ErrorRep + { + /// + /// DataOra registrazione record + /// + public DateTime DtRif { get; set; } = DateTime.Now; + /// + /// Tipo di errore + /// + public string ErrType { get; set; } = "NA"; + /// + /// Chiave di riferimento PARENT per l'errore (es il codice del batch, dell'item) + /// es: BatchId.OrderId.Row + /// + public string ParentUid { get; set; } = "A.B.C"; + /// + /// Chiave univoca per l'errore + /// es: BatchId.OrderId.Row.PartId... + /// + public string Uid { get; set; } = "A.B.C.D"; + /// + /// Descrizione estesa (human readable) dell'errore + /// + public string Description { get; set; } = ""; + } + + #endregion + + #region classi per PROD + + /// + /// dati del materiale + /// + public class MaterialData + { + /// + /// Identificativo univoco del materiale (DA ANAGRAFICA db) + /// + public int MaterialId { get; set; } + /// + /// Codice P/N del materiale (cliente) + /// + public string MaterialPN { get; set; } + /// + /// Codice P/N del materiale (cliente) + /// + public string MaterialDescription { get; set; } + } + /// + /// Dati della lavorazione + /// + public class WorkData + { + /// + /// Indica che la lavorazione è stata eseguita con successo (default = true) + /// + public bool Success { get; set; } + /// + /// Percorso del programma da eseguire + /// + public string ProgramPath { get; set; } + /// + /// Data inizio processing + /// + public DateTime? DtStart { get; set; } + /// + /// Data fine processing + /// + public DateTime? DtEnd { get; set; } + /// + /// Tempo di lavorazione in minuti decimali + /// + public double WorkTimeMin + { + get + { + double answ = 0; + if (DtStart != null && DtEnd != null) + { + try + { + answ = ((DateTime)DtEnd).Subtract((DateTime)DtStart).TotalMinutes; + } + catch + { } + } + return answ; + } + } + } + /// + /// Estensione classe sheet comprensiva di BunkId + /// + public class ProdSheetExt : ProdSheet + { + /// + /// Identificativo univoco BUNK / Stack + /// + public int BunkId { get; set; } + /// + /// INDICE del pannello (valido per BUNK) + /// + public int SheetIndex { get; set; } + } + + /// + /// Singolo Pannello IN LAVORAZIONE + /// + public class ProdSheet + { + /// + /// Identificativo univoco pannello + /// + public int SheetId { get; set; } + /// + /// Materiale + /// + public MaterialData Material { get; set; } + /// + /// Stato del pannello + /// + public PStatus Status { get; set; } + /// + /// Tempi processo x fase printing + /// + public WorkData Printing { get; set; } + /// + /// Tempi processo x fase CNC + /// + public WorkData Machining { get; set; } + /// + /// Tempi processo x scarico + /// + public WorkData Unloading { get; set; } + + } + + + /// + /// Classe che rappresenta un insieme di Sheet da lavorare (contenuti in 1 o + bunk) + /// + public class SheetWorkList + { + /// + /// Elenco dei pannelli (sheets) in lavorazione + /// + public List SheetList { get; set; } + /// + /// Numero di Sheets da lavorare + /// + public int NumSheets + { + get + { + int answ = 0; + try + { + answ = SheetList.Count; + } + catch + { } + return answ; + } + } + } + + /// + /// Classe che rappresenta i BUNK da lavorare + /// + public class ProdBunk + { + /// + /// Identificativo univoco BUNK / Stack + /// + public int BunkId { get; set; } + /// + /// Stato dello Stack di pannelli + /// + public CStatus Status { get; set; } + /// + /// Codice dataMatrix del BUNK + /// + public string DataMatrix { get; set; } + /// + /// Data inizio processing del BUNK + /// + public DateTime DtStart { get; set; } + /// + /// Data inizio processing dello Stack + /// + public DateTime DtEnd { get; set; } + /// + /// Elenco dei pannelli(sheets) dello Stack + /// + public List SheetList { get; set; } + /// + /// Numero di Sheets da lavorare + /// + public int NumSheets + { + get + { + int answ = 0; + try + { + answ = SheetList.Count; + } + catch + { } + return answ; + } + } + } + + /// + /// Valori decodificati + /// + public class decodedData + { + /// + /// Tipo codice decodificato + /// + public codeType codeType { get; set; } = codeType.UNK; + /// + /// Codice decodificato + /// + public string code { get; set; } = ""; + /// + /// Codice decodificato in formato INT + /// + public int codeInt { get; set; } = 0; + /// + /// Descrizione associata + /// + public string description { get; set; } = ""; + /// + /// Dato letto RAW + /// + public string rawData { get; set; } = ""; + } + + + #endregion + } diff --git a/NKC_WF/NKC_WF.csproj b/NKC_WF/NKC_WF.csproj index f60558c..4308a39 100644 --- a/NKC_WF/NKC_WF.csproj +++ b/NKC_WF/NKC_WF.csproj @@ -429,6 +429,7 @@ + @@ -1188,6 +1189,13 @@ cmp_searchItems.ascx + + cmp_secScreen.ascx + ASPXCodeBehind + + + cmp_secScreen.ascx + cmp_slider.ascx ASPXCodeBehind diff --git a/NKC_WF/Web.config b/NKC_WF/Web.config index edd882e..416815b 100644 --- a/NKC_WF/Web.config +++ b/NKC_WF/Web.config @@ -4,408 +4,412 @@ https://go.microsoft.com/fwlink/?LinkId=169433 --> - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + \ No newline at end of file diff --git a/NKC_WF/WebUserControls/cmp_secScreen.ascx b/NKC_WF/WebUserControls/cmp_secScreen.ascx new file mode 100644 index 0000000..a0d60b4 --- /dev/null +++ b/NKC_WF/WebUserControls/cmp_secScreen.ascx @@ -0,0 +1,28 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_secScreen.ascx.cs" Inherits="NKC_WF.WebUserControls.cmp_secScreen" %> + + + +
+ + +
+
+
+
+
+

<%: traduci("SecScreen") %> - + <%: hfNum.Value %>

+
+
+ +
+
+
+
+
+
+ +
+
+
+
diff --git a/NKC_WF/WebUserControls/cmp_secScreen.ascx.cs b/NKC_WF/WebUserControls/cmp_secScreen.ascx.cs new file mode 100644 index 0000000..bcbcb91 --- /dev/null +++ b/NKC_WF/WebUserControls/cmp_secScreen.ascx.cs @@ -0,0 +1,88 @@ +using AppData; +using NKC_SDK; +using NKC_WF.Controllers; +using SteamWare; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace NKC_WF.WebUserControls +{ + public partial class cmp_secScreen : BaseUserControl + { + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + showMode = true; + doUpdate(); + } + } + + public int currNum + { + get + { + int answ = 0; + int.TryParse(hfNum.Value, out answ); + return answ; + } + set + { + hfNum.Value = $"{value:000000}"; + } + } + public bool showMode + { + get + { + bool answ = false; + bool.TryParse(hfShowMode.Value, out answ); + return answ; + } + set + { + hfShowMode.Value =value.ToString(); + } + } + + + /// + /// restituisce URL immagine QRCode + /// + /// + public string getLoginUrl() + { + string baseUrl = "https://qrcode.steamware.net/HOME/QR_site/JSON?val="; + string codSSC = $"SSC{currNum:000000}"; + string payload = "{'baseUrl':'{0}','parameters':['" + codSSC + "']}"; + //string payload = "{'baseUrl':'{0}','parameters':['" + memLayer.ML.CRS("BaseUrl") + "']}"; + string answ = $"{baseUrl}{payload}"; + return answ; + } + + /// + /// Aggiorna componente principale e child components + /// + public void doUpdate() + { + // recupero numero + currNum = ComLib.getSecScreenCode(); + // genero nuovo QR + string qrUrl = getLoginUrl(); + imgQrMain.Visible = showMode; + imgQrSmall.Visible = !showMode; + if (showMode) + { + imgQrMain.ImageUrl = qrUrl; + } + else + { + imgQrSmall.ImageUrl = qrUrl; + } + } + } +} \ No newline at end of file diff --git a/NKC_WF/WebUserControls/cmp_secScreen.ascx.designer.cs b/NKC_WF/WebUserControls/cmp_secScreen.ascx.designer.cs new file mode 100644 index 0000000..e082bfc --- /dev/null +++ b/NKC_WF/WebUserControls/cmp_secScreen.ascx.designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// Codice generato da uno strumento. +// +// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se +// il codice viene rigenerato. +// +//------------------------------------------------------------------------------ + +namespace NKC_WF.WebUserControls +{ + + + public partial class cmp_secScreen + { + + /// + /// Controllo hfNum. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HiddenField hfNum; + + /// + /// Controllo hfShowMode. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.HiddenField hfShowMode; + + /// + /// Controllo lblNum. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Label lblNum; + + /// + /// Controllo imgQrSmall. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Image imgQrSmall; + + /// + /// Controllo imgQrMain. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.Image imgQrMain; + } +} diff --git a/NKC_WF/site/SecondScreen.aspx b/NKC_WF/site/SecondScreen.aspx index 72380ce..71912b0 100644 --- a/NKC_WF/site/SecondScreen.aspx +++ b/NKC_WF/site/SecondScreen.aspx @@ -1,7 +1,13 @@ <%@ Page Title="" Language="C#" MasterPageFile="~/SiteContent.master" AutoEventWireup="true" CodeBehind="SecondScreen.aspx.cs" Inherits="NKC_WF.SecondScreen" %> -<%@ Register Src="~/WebUserControls/tpl_WIP.ascx" TagPrefix="uc1" TagName="tpl_WIP" %> +<%@ Register Src="~/WebUserControls/cmp_secScreen.ascx" TagPrefix="uc1" TagName="cmp_secScreen" %> - + + + + + + + diff --git a/NKC_WF/site/SecondScreen.aspx.cs b/NKC_WF/site/SecondScreen.aspx.cs index a3888f1..18fa833 100644 --- a/NKC_WF/site/SecondScreen.aspx.cs +++ b/NKC_WF/site/SecondScreen.aspx.cs @@ -12,5 +12,10 @@ namespace NKC_WF ((SiteContent)this.Master).showSearch = false; } } + + protected void timerSecScreen_Tick(object sender, EventArgs e) + { + cmp_secScreen.doUpdate(); + } } } \ No newline at end of file diff --git a/NKC_WF/site/SecondScreen.aspx.designer.cs b/NKC_WF/site/SecondScreen.aspx.designer.cs index ee5d757..e828744 100644 --- a/NKC_WF/site/SecondScreen.aspx.designer.cs +++ b/NKC_WF/site/SecondScreen.aspx.designer.cs @@ -7,18 +7,38 @@ // //------------------------------------------------------------------------------ -namespace NKC_WF { - - - public partial class SecondScreen { - +namespace NKC_WF +{ + + + public partial class SecondScreen + { + /// - /// Controllo tpl_WIP. + /// Controllo timerSecScreen. /// /// /// Campo generato automaticamente. /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. /// - protected global::NKC_WF.WebUserControls.tpl_WIP tpl_WIP; + protected global::System.Web.UI.Timer timerSecScreen; + + /// + /// Controllo UpdatePanel2. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.UpdatePanel UpdatePanel2; + + /// + /// Controllo cmp_secScreen. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::NKC_WF.WebUserControls.cmp_secScreen cmp_secScreen; } }