using System; using System.Collections.Generic; using System.Linq; using System.Text; using SteamWare; namespace GMW_data { /// /// fa da proxy singleton x gli oggetti legati ai DATAMATRIX /// public class DataMatrix { #region area table adapters public DS_DataMatrixTableAdapters.ElencoDataMatrixTableAdapter taElencoDM; public DS_DataMatrixTableAdapters.v_trasfDataMatrixTableAdapter taDtMtxOrig; public DS_DataMatrixTableAdapters.stp_verificaDtxTableAdapter taVerifica; public DS_DataMatrixTableAdapters.stp_decodeDtxTableAdapter taDecode; public DS_DataMatrixTableAdapters.stp_conteggioDtxTableAdapter taConteggio; public DS_DataMatrixTableAdapters.v_DtxAcquisitiTableAdapter taDtxAcq; public DS_DataMatrixTableAdapters.Dtx2UDCTableAdapter taDtx2UDC; public DS_DataMatrixTableAdapters.stp_getFirstLastDtxTableAdapter taFirstLastUdc; public DS_DataMatrixTableAdapters.stp_DtxGetAvailFreeAnomTableAdapter taDtxAvailFree; public DS_DataMatrixTableAdapters.stp_DtxCheckBlockedTableAdapter taDtxBlocked; public DS_DataMatrixTableAdapters.Attr2DtxTableAdapter taAtt2Dtx; public DS_DataMatrixTableAdapters.AnagFormatiDtmxTableAdapter taAnagFormDtx; public DS_DataMatrixTableAdapters.v_DtxAcquisitiTableAdapter taDtxAcquisiti; /// /// init dei table adapters /// protected void initTA() { taElencoDM = new GMW_data.DS_DataMatrixTableAdapters.ElencoDataMatrixTableAdapter(); taDtMtxOrig = new GMW_data.DS_DataMatrixTableAdapters.v_trasfDataMatrixTableAdapter(); taDtMtxOrig = new GMW_data.DS_DataMatrixTableAdapters.v_trasfDataMatrixTableAdapter(); taVerifica = new DS_DataMatrixTableAdapters.stp_verificaDtxTableAdapter(); taDecode = new DS_DataMatrixTableAdapters.stp_decodeDtxTableAdapter(); taConteggio = new DS_DataMatrixTableAdapters.stp_conteggioDtxTableAdapter(); taDtxAcq = new DS_DataMatrixTableAdapters.v_DtxAcquisitiTableAdapter(); taDtx2UDC = new DS_DataMatrixTableAdapters.Dtx2UDCTableAdapter(); taFirstLastUdc = new DS_DataMatrixTableAdapters.stp_getFirstLastDtxTableAdapter(); taDtxAvailFree = new DS_DataMatrixTableAdapters.stp_DtxGetAvailFreeAnomTableAdapter(); taDtxBlocked = new DS_DataMatrixTableAdapters.stp_DtxCheckBlockedTableAdapter(); taAtt2Dtx = new DS_DataMatrixTableAdapters.Attr2DtxTableAdapter(); taAnagFormDtx = new DS_DataMatrixTableAdapters.AnagFormatiDtmxTableAdapter(); taDtxAcquisiti = new DS_DataMatrixTableAdapters.v_DtxAcquisitiTableAdapter(); } /// /// effettua setup dei connection strings da web.config delal singola applicazione /// protected virtual void setupConnectionStringBase() { // connections strings del db verso GMW string connString = memLayer.ML.confReadString("GMWConnectionString"); taElencoDM.Connection.ConnectionString = connString; taDtMtxOrig.Connection.ConnectionString = connString; taVerifica.Connection.ConnectionString = connString; taDecode.Connection.ConnectionString = connString; taConteggio.Connection.ConnectionString = connString; taDtxAcq.Connection.ConnectionString = connString; taDtx2UDC.Connection.ConnectionString = connString; taFirstLastUdc.Connection.ConnectionString = connString; taDtxAvailFree.Connection.ConnectionString = connString; taDtxBlocked.Connection.ConnectionString = connString; taAtt2Dtx.Connection.ConnectionString = connString; taAnagFormDtx.Connection.ConnectionString = connString; taDtxAcquisiti.Connection.ConnectionString = connString; } #endregion protected DataMatrix() { initTA(); setupConnectionStringBase(); } /// /// singleton datamatrix /// public static DataMatrix mgr = new DataMatrix(); /// /// effettua import nuovi dati datamatrix/gitterbox /// /// public bool importNuoviDati() { bool answ = false; try { taElencoDM.stp_DtMtrx_import(memLayer.ML.confReadString("CodCS"), memLayer.ML.confReadInt("IdxPosizioneOdette"), MagClass.magazzino.CodSoggCurrUser); answ = true; } catch { } return answ; } /// /// restituisce codice gitterbox dato datamatrix /// /// /// public string gitterboxFromDataMatrix(decimal codDataMatrix) { string answ = ""; try { answ = taElencoDM.getByCode(codDataMatrix)[0].CodGitterbox; } catch { } return answ; } /// /// restituisce codice gitterbox ORIGINALE (pre import) dato datamatrix /// /// /// public string gitterboxOrigFromDataMatrix(decimal codDataMatrix) { string answ = ""; try { answ = DataMatrix.mgr.taDtMtxOrig.getByDtMtx(codDataMatrix.ToString())[0].CodGitterbox; } catch { } return answ; } /// /// verifica SE il codice datamatrix POSSA rappresentare un codice valido, ovvero /// - lunghezza compatibile coi formati supportati /// - decodifica datamatrix (da formato plausibile, 1 o +) con esito positivo /// /// /// public bool maybeDatamatrix(string DataMatrix) { bool answ = false; // provo a verificare SE abbia una lunghezza compatibile con 1 o + datamatrix e nel caso CERCO di decodificarlo DS_DataMatrix.AnagFormatiDtmxDataTable tab = taAnagFormDtx.getFormatiCompatibili(DataMatrix); if (tab.Rows.Count > 0) { int trovati = 0; // cerco per ogni riga di decodificare... foreach (DS_DataMatrix.AnagFormatiDtmxRow riga in tab) { trovati += taDecode.GetData(DataMatrix, riga.FormatoDtmx).Rows.Count; } if (trovati > 0) answ = true; } return answ; } /// /// ottiene elenco dei formati datamatrix compatibili SE ne ha /// /// /// public string[] maybeDatamatrixFormat(string DataMatrix) { string[] answ; string _concatAnsw = ""; if (maybeDatamatrix(DataMatrix)) { // cerco i vari formati e costruisco elenco... DS_DataMatrix.AnagFormatiDtmxDataTable tab = taAnagFormDtx.getFormatiCompatibili(DataMatrix); if (tab.Rows.Count > 0) { // cerco per ogni riga di decodificare... foreach (DS_DataMatrix.AnagFormatiDtmxRow riga in tab) { _concatAnsw += string.Format("#{0}", riga.FormatoDtmx); } } } answ = _concatAnsw.Substring(1, _concatAnsw.Length - 1).Split('#'); return answ; } } }