Files
GMW/GMW_data/DataMatrix.cs
T
2015-04-21 12:20:44 +02:00

184 lines
7.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SteamWare;
namespace GMW_data
{
/// <summary>
/// fa da proxy singleton x gli oggetti legati ai DATAMATRIX
/// </summary>
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;
/// <summary>
/// init dei table adapters
/// </summary>
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();
}
/// <summary>
/// effettua setup dei connection strings da web.config delal singola applicazione
/// </summary>
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();
}
/// <summary>
/// singleton datamatrix
/// </summary>
public static DataMatrix mgr = new DataMatrix();
/// <summary>
/// effettua import nuovi dati datamatrix/gitterbox
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// restituisce codice gitterbox dato datamatrix
/// </summary>
/// <param name="codDataMatrix"></param>
/// <returns></returns>
public string gitterboxFromDataMatrix(decimal codDataMatrix)
{
string answ = "";
try
{
answ = taElencoDM.getByCode(codDataMatrix)[0].CodGitterbox;
}
catch
{ }
return answ;
}
/// <summary>
/// restituisce codice gitterbox ORIGINALE (pre import) dato datamatrix
/// </summary>
/// <param name="codDataMatrix"></param>
/// <returns></returns>
public string gitterboxOrigFromDataMatrix(decimal codDataMatrix)
{
string answ = "";
try
{
answ = DataMatrix.mgr.taDtMtxOrig.getByDtMtx(codDataMatrix.ToString())[0].CodGitterbox;
}
catch
{ }
return answ;
}
/// <summary>
/// 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
/// </summary>
/// <param name="DataMatrix"></param>
/// <returns></returns>
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;
}
/// <summary>
/// ottiene elenco dei formati datamatrix compatibili SE ne ha
/// </summary>
/// <param name="DataMatrix"></param>
/// <returns></returns>
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;
}
}
}