Riaggiunto GMW_data
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using SteamWare;
|
||||
|
||||
namespace GMW_data
|
||||
{
|
||||
/// <summary>
|
||||
/// classe gestioen amcchina a stati
|
||||
/// </summary>
|
||||
public class StateMachine
|
||||
{
|
||||
#region area table adapters
|
||||
|
||||
public DS_SMTableAdapters.TabTranPosizEventiTableAdapter taTTPE;
|
||||
public DS_SMTableAdapters.AnagTipoDelibereTableAdapter taATD;
|
||||
|
||||
/// <summary>
|
||||
/// init dei table adapters
|
||||
/// </summary>
|
||||
protected void initTA()
|
||||
{
|
||||
taTTPE = new GMW_data.DS_SMTableAdapters.TabTranPosizEventiTableAdapter();
|
||||
taATD = new GMW_data.DS_SMTableAdapters.AnagTipoDelibereTableAdapter();
|
||||
}
|
||||
/// <summary>
|
||||
/// effettua setup dei connection strings da web.config delal singola applicazione
|
||||
/// </summary>
|
||||
protected virtual void setupConnectionStringBase()
|
||||
{
|
||||
// connections del db
|
||||
taTTPE.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString");
|
||||
taATD.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected StateMachine()
|
||||
{
|
||||
initTA();
|
||||
setupConnectionStringBase();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// effettua la delibera dell'UDC andando a processare tramite macchina a stati l'eventuale spostamento di IdxPosizione
|
||||
/// </summary>
|
||||
/// <param name="UDC"></param>
|
||||
/// <param name="CodTipoDelibera"></param>
|
||||
/// <param name="CodEvento"></param>
|
||||
/// <param name="clientIp">IP del client</param>
|
||||
/// <returns></returns>
|
||||
public void deliberaUdc(string UDC, string CodTipoDelibera, string CodEvento, string clientIp)
|
||||
{
|
||||
bool fatto = false;
|
||||
try
|
||||
{
|
||||
// calcolo la prima cella possibile data
|
||||
utils.obj.taSTP.stp_UDC_delibera(CodTipoDelibera, UDC, CodEvento, MagClass.magazzino.CodSoggCurrUser, memLayer.ML.confReadString("CodCS"));
|
||||
// dopo la delibera passo direttamente al consumo se richiesto!
|
||||
if (memLayer.ML.confReadBool("Cosumo84PostDelibera"))
|
||||
{
|
||||
// prendo i dati PRIMA che scarichi l'UDC... e con qta negativa xché qui devo "rimetterlo a posto"...
|
||||
DS_magazzino.ElencoCartelliniRow riga = MagClass.magazzino.taCartellini.getDetailsUdcByUdc(UDC)[0];
|
||||
string Particolare = riga.Particolare;
|
||||
int IdxPosizione = riga.IdxPosizione;
|
||||
decimal Quantita = -riga.Qta;
|
||||
// da db determino che non faccio scaricamento automatico da altre posizioni terzisti/clienti (solo 84) xché non c'è in TabTranEventi
|
||||
fatto = MagClass.magazzino.scaricaUdcMpWip(UDC, clientIp);
|
||||
}
|
||||
logger.lg.scriviLog(string.Format(" | {0} | deliberato UDC {1} | evento {2} | tipo delibera {2}", clientIp, UDC, CodEvento, CodTipoDelibera), tipoLog.INFO);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logger.lg.scriviLog(string.Format(" | {5} | Non sono riuscito a fare la delibera di tipo {0} per l'UDC {1} da parte dell'user {2}, messaggio d'errore {3}{4}", CodTipoDelibera, UDC, user_std.UtSn.userNameAD, Environment.NewLine, e, clientIp), SteamWare.tipoLog.ERROR);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// calcola dalla tabella di transizioni la nuova posizione associata all'evento ed alla posizione attuale
|
||||
/// </summary>
|
||||
/// <param name="CodEvento"></param>
|
||||
/// <param name="IdxPosizione"></param>
|
||||
/// <returns></returns>
|
||||
public int getIdxPostizioneTo(string CodEvento, int IdxPosizione)
|
||||
{
|
||||
int answ = 0;
|
||||
try
|
||||
{
|
||||
answ = taTTPE.getByEventoPosizione(CodEvento, IdxPosizione)[0].IdxPosizioneTo;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// calcola dalla tabella di transizioni il blocco di destinazione associato all'evento ed alla posizione attuale
|
||||
/// </summary>
|
||||
/// <param name="CodEvento"></param>
|
||||
/// <param name="IdxPosizione"></param>
|
||||
/// <returns></returns>
|
||||
public int getIdxBloccoTo(string CodEvento, int IdxPosizione)
|
||||
{
|
||||
int answ = 0;
|
||||
try
|
||||
{
|
||||
answ = taTTPE.getByEventoPosizione(CodEvento, IdxPosizione)[0].IdxBloccoTo;
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Singleton accesos a state machine
|
||||
/// </summary>
|
||||
public static StateMachine SM = new StateMachine();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user