diff --git a/AppData/AppData.csproj b/AppData/AppData.csproj index c573657..17d6eb2 100644 --- a/AppData/AppData.csproj +++ b/AppData/AppData.csproj @@ -77,6 +77,7 @@ + diff --git a/AppData/ProdLib.cs b/AppData/ProdLib.cs new file mode 100644 index 0000000..bd5b8c3 --- /dev/null +++ b/AppData/ProdLib.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AppData +{ + /// + /// Classe con metodi di supporto per PROD + /// + public class ProdLib + { + + #region definizione classi impiegate + + /// + /// Stati degli oggetti TAKT e Stack + /// + public enum CStatus + { + /// + /// Programmato + /// + Programmed = 0, + /// + /// In corso + /// + Running, + /// + /// Completato + /// + Done + } + /// + /// Stati degli oggetti PANEL/SHEET + /// + public enum PStatus + { + /// + /// Programmato + /// + Programmed = 0, + /// + /// Presente / letto su PROD e pronto su scissor lift + /// + Present, + /// + /// Stampa in corso + /// + Printing, + /// + /// Stampa completata + /// + Printed, + /// + /// Lavorazione in corso + /// + Machining, + /// + /// Lavorazione completata + /// + Machined, + /// + /// Completato / scaricato da macchina (anche su tavola di scarico) + /// + Out + } + /// + /// 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 delal lavorazione + /// + public class WorkData + { + /// + /// 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 = DtEnd.Subtract(DtStart).TotalMinutes; + } + catch + { } + } + return answ; + } + } + } + + /// + /// Singolo Pannello da lavorare + /// + public class Panel + { + /// + /// Identificativo univoco pannello + /// + public int PanelId { 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 gli stack da lavorare + /// + public class WStack + { + /// + /// Identificativo univoco stack + /// + public int StackId { get; set; } + /// + /// Stato dello Stack di pannelli + /// + public CStatus Status { get; set; } + /// + /// Codice dataMAtrix dello stack + /// + public string DataMatrix { get; set; } + /// + /// Data inizio processing dello Stack + /// + public DateTime DtStart { get; set; } + /// + /// Data inizio processing dello Stack + /// + public DateTime DtEnd { get; set; } + /// + /// Elenco dei pannelli(sheets) dello Stack + /// + public List PanelsList { get; set; } + /// + /// Numero di Panels da lavorare + /// + public int NumPanels + { + get + { + int answ = 0; + try + { + answ = PanelsList.Count; + } + catch + { } + return answ; + } + } + } + + /// + /// Oggetto globale TAKT + /// + public class Takt + { + /// + /// Codice univoco oggetto TAKT (data.num) + /// + public string TaktId { get; set; } + /// + /// Stato del TAKT + /// + public CStatus Status { get; set; } + /// + /// Elenco degli Stack da lavorare + /// + public List StackList { get; set; } + /// + /// Numero di Stack da lavorare + /// + public int NumStack + { + get + { + int answ = 0; + try + { + answ = StackList.Count; + } + catch + { } + return answ; + } + } + } + + + #endregion + + + /// + /// Fornisce il prossimo TAKT da elaborare oppure null se non ce ne fossero altri da elaborare per la data CORRENTE + /// + /// + public int getNextTakt() + { + return 0; + } + + } +}