diff --git a/GMW_data/TermClass.cs b/GMW_data/TermClass.cs index bf00791e..809c4b16 100644 --- a/GMW_data/TermClass.cs +++ b/GMW_data/TermClass.cs @@ -6,419 +6,432 @@ using SteamWare; namespace GMW_data { - /// - /// classe gestione operazioni con terminalino - /// - public class TermClass - { - #region area table adapters + /// + /// classe gestione operazioni con terminalino + /// + public class TermClass + { + #region area table adapters - // variabile di tipo table adapter + // variabile di tipo table adapter #if false - public DS_magazzinoTableAdapters.AnagMagTableAdapter taAnagMag; - public DS_magazzinoTableAdapters.BlocchiTableAdapter taBlocchi; - public DS_magazzinoTableAdapters.CelleTableAdapter taCelle; - public DS_magazzinoTableAdapters.TipoCellaTableAdapter taTipoCella; - public DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter taCartellini; - public DS_magazzinoTableAdapters.PosizioneUdcCorrenteTableAdapter taPosUdcCorr; - public DS_magazzinoTableAdapters.PosizioneUdcStoricoTableAdapter taPosUdcStorico; - public DS_magazzinoTableAdapters.V_MagazziniOverviewTableAdapter taMagOverw; - public DS_magazzinoTableAdapters.V_DettMagPartTableAdapter taDettMagPart; - public DS_magazzinoTableAdapters.v_UdcDetailTableAdapter taDettUDC; - public DS_magazzinoTableAdapters.ElencoListePrelievoTableAdapter taElencoListePrelievo; - public DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter taElencoCartellini; - public DS_magazzinoTableAdapters.RigheListePrelievoTableAdapter taRigheListePrelievo; - public DS_magazzinoTableAdapters.TipoListaPrelievoTableAdapter taTipoListaPrelievo; - public DS_magazzinoTableAdapters.V_ParticolariOverviewTableAdapter taVParticolariOverwiew; - public DS_magazzinoTableAdapters.v_particolariEsponenteFiguraTableAdapter taPartExpFig; + public DS_magazzinoTableAdapters.AnagMagTableAdapter taAnagMag; + public DS_magazzinoTableAdapters.BlocchiTableAdapter taBlocchi; + public DS_magazzinoTableAdapters.CelleTableAdapter taCelle; + public DS_magazzinoTableAdapters.TipoCellaTableAdapter taTipoCella; + public DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter taCartellini; + public DS_magazzinoTableAdapters.PosizioneUdcCorrenteTableAdapter taPosUdcCorr; + public DS_magazzinoTableAdapters.PosizioneUdcStoricoTableAdapter taPosUdcStorico; + public DS_magazzinoTableAdapters.V_MagazziniOverviewTableAdapter taMagOverw; + public DS_magazzinoTableAdapters.V_DettMagPartTableAdapter taDettMagPart; + public DS_magazzinoTableAdapters.v_UdcDetailTableAdapter taDettUDC; + public DS_magazzinoTableAdapters.ElencoListePrelievoTableAdapter taElencoListePrelievo; + public DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter taElencoCartellini; + public DS_magazzinoTableAdapters.RigheListePrelievoTableAdapter taRigheListePrelievo; + public DS_magazzinoTableAdapters.TipoListaPrelievoTableAdapter taTipoListaPrelievo; + public DS_magazzinoTableAdapters.V_ParticolariOverviewTableAdapter taVParticolariOverwiew; + public DS_magazzinoTableAdapters.v_particolariEsponenteFiguraTableAdapter taPartExpFig; #endif - /// - /// init dei table adapters - /// - protected void initTA() - { - // istanzio oggetto + /// + /// init dei table adapters + /// + protected void initTA() + { + // istanzio oggetto #if false - taAnagMag = new GMW_data.DS_magazzinoTableAdapters.AnagMagTableAdapter(); - taBlocchi = new GMW_data.DS_magazzinoTableAdapters.BlocchiTableAdapter(); - taCelle = new GMW_data.DS_magazzinoTableAdapters.CelleTableAdapter(); - taTipoCella = new GMW_data.DS_magazzinoTableAdapters.TipoCellaTableAdapter(); - taCartellini = new GMW_data.DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter(); - taPosUdcCorr = new GMW_data.DS_magazzinoTableAdapters.PosizioneUdcCorrenteTableAdapter(); - taPosUdcStorico = new GMW_data.DS_magazzinoTableAdapters.PosizioneUdcStoricoTableAdapter(); - taMagOverw = new GMW_data.DS_magazzinoTableAdapters.V_MagazziniOverviewTableAdapter(); - taDettMagPart = new GMW_data.DS_magazzinoTableAdapters.V_DettMagPartTableAdapter(); - taDettUDC = new GMW_data.DS_magazzinoTableAdapters.v_UdcDetailTableAdapter(); - taElencoListePrelievo = new GMW_data.DS_magazzinoTableAdapters.ElencoListePrelievoTableAdapter(); - taElencoCartellini = new GMW_data.DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter(); - taRigheListePrelievo = new GMW_data.DS_magazzinoTableAdapters.RigheListePrelievoTableAdapter(); - taTipoListaPrelievo = new GMW_data.DS_magazzinoTableAdapters.TipoListaPrelievoTableAdapter(); - taVParticolariOverwiew = new GMW_data.DS_magazzinoTableAdapters.V_ParticolariOverviewTableAdapter(); - taPartExpFig = new GMW_data.DS_magazzinoTableAdapters.v_particolariEsponenteFiguraTableAdapter(); + taAnagMag = new GMW_data.DS_magazzinoTableAdapters.AnagMagTableAdapter(); + taBlocchi = new GMW_data.DS_magazzinoTableAdapters.BlocchiTableAdapter(); + taCelle = new GMW_data.DS_magazzinoTableAdapters.CelleTableAdapter(); + taTipoCella = new GMW_data.DS_magazzinoTableAdapters.TipoCellaTableAdapter(); + taCartellini = new GMW_data.DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter(); + taPosUdcCorr = new GMW_data.DS_magazzinoTableAdapters.PosizioneUdcCorrenteTableAdapter(); + taPosUdcStorico = new GMW_data.DS_magazzinoTableAdapters.PosizioneUdcStoricoTableAdapter(); + taMagOverw = new GMW_data.DS_magazzinoTableAdapters.V_MagazziniOverviewTableAdapter(); + taDettMagPart = new GMW_data.DS_magazzinoTableAdapters.V_DettMagPartTableAdapter(); + taDettUDC = new GMW_data.DS_magazzinoTableAdapters.v_UdcDetailTableAdapter(); + taElencoListePrelievo = new GMW_data.DS_magazzinoTableAdapters.ElencoListePrelievoTableAdapter(); + taElencoCartellini = new GMW_data.DS_magazzinoTableAdapters.ElencoCartelliniTableAdapter(); + taRigheListePrelievo = new GMW_data.DS_magazzinoTableAdapters.RigheListePrelievoTableAdapter(); + taTipoListaPrelievo = new GMW_data.DS_magazzinoTableAdapters.TipoListaPrelievoTableAdapter(); + taVParticolariOverwiew = new GMW_data.DS_magazzinoTableAdapters.V_ParticolariOverviewTableAdapter(); + taPartExpFig = new GMW_data.DS_magazzinoTableAdapters.v_particolariEsponenteFiguraTableAdapter(); #endif - } - /// - /// effettua setup dei connection strings da web.config delal singola applicazione - /// - protected virtual void setupConnectionStringBase() - { - // connections del db + } + /// + /// effettua setup dei connection strings da web.config delal singola applicazione + /// + protected virtual void setupConnectionStringBase() + { + // connections del db #if false - taAnagMag.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taBlocchi.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taCelle.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taTipoCella.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taCartellini.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taPosUdcCorr.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taPosUdcStorico.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taMagOverw.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taDettMagPart.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taDettUDC.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taElencoListePrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taElencoCartellini.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taRigheListePrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taTipoListaPrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taVParticolariOverwiew.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); - taPartExpFig.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taAnagMag.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taBlocchi.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taCelle.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taTipoCella.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taCartellini.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taPosUdcCorr.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taPosUdcStorico.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taMagOverw.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taDettMagPart.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taDettUDC.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taElencoListePrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taElencoCartellini.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taRigheListePrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taTipoListaPrelievo.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taVParticolariOverwiew.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); + taPartExpFig.Connection.ConnectionString = memLayer.ML.confReadString("GMWConnectionString"); #endif - } + } - #endregion + #endregion - #region Inizializzazione + #region Inizializzazione - protected TermClass() - { - initTA(); - setupConnectionStringBase(); - } + protected TermClass() + { + // init oggetto + initTA(); + setupConnectionStringBase(); + } - /// - /// oggetto static per fare chiamate sul magazzino - /// - public static TermClass Ter = new TermClass(); + /// + /// oggetto static per fare chiamate sul magazzino + /// + public static TermClass Ter = new TermClass(); - #endregion + #endregion - #region metodi protected + #region metodi protected #if false - /// - /// aggiunge le righe liste di prelievo necessarie a soddisfare la richiesta in logica FIFO dato un elenco di cartellini, la qta totale da allocare e la lista attuale - /// - /// - /// - /// - private void allocaRigheListaPrelievo(decimal QtaTot, string codListaAttuale, DS_magazzino.ElencoCartelliniDataTable tabellaElencoCartellini) - { - //ricavo il valore UDC della riga del più vecchio - string udcAttuale; - bool qtaOk = false; - bool dataFinished = false; - int progrUdc = 0; - int numUdcDisponibili = tabellaElencoCartellini.Rows.Count; - // contiene la quantità della riga attuale - decimal qtaRiga; - // somma progressiva della qta allocata - calcolo da db! - decimal qtaAllocata = taElencoListePrelievo.getByCodLista(codListaAttuale)[0].Prelevato; - //ciclo WHILE per lo riempimento FIFO con UDC secondo richiesta a partire da elenco fornito - while (!qtaOk && !dataFinished) - { - /* - * crea una riga in righelistaprelievo passando come valori - * il codlista attuale ricavato da sopr - * l'UDC dal primo della tabella getOlderUDC - * - * - * recupero quantità dalla riga corrente; - * - * imposto proposto a 1; - * imposto prelevato 0; - * taRighelistePreliveo.Insert; - * - * qtaAllocata = qtaAllocata + Qta di questa riga (riuso il valore della colonna QTA - * tabella[contatore]; contatore++; - * qtaOk = (qtaAllocata >= qtaRichiesta) - * dataFinished = (contatore >= numRighe); - * - * */ - // ricavo la riga più vecchia - qtaRiga = tabellaElencoCartellini[progrUdc].Qta; - udcAttuale = tabellaElencoCartellini[progrUdc].UDC; - // eseguo query di insert - taRigheListePrelievo.Insert(codListaAttuale, udcAttuale, qtaRiga, true, false); + /// + /// aggiunge le righe liste di prelievo necessarie a soddisfare la richiesta in logica FIFO dato un elenco di cartellini, la qta totale da allocare e la lista attuale + /// + /// + /// + /// + private void allocaRigheListaPrelievo(decimal QtaTot, string codListaAttuale, DS_magazzino.ElencoCartelliniDataTable tabellaElencoCartellini) + { + //ricavo il valore UDC della riga del più vecchio + string udcAttuale; + bool qtaOk = false; + bool dataFinished = false; + int progrUdc = 0; + int numUdcDisponibili = tabellaElencoCartellini.Rows.Count; + // contiene la quantità della riga attuale + decimal qtaRiga; + // somma progressiva della qta allocata - calcolo da db! + decimal qtaAllocata = taElencoListePrelievo.getByCodLista(codListaAttuale)[0].Prelevato; + //ciclo WHILE per lo riempimento FIFO con UDC secondo richiesta a partire da elenco fornito + while (!qtaOk && !dataFinished) + { + /* + * crea una riga in righelistaprelievo passando come valori + * il codlista attuale ricavato da sopr + * l'UDC dal primo della tabella getOlderUDC + * + * + * recupero quantità dalla riga corrente; + * + * imposto proposto a 1; + * imposto prelevato 0; + * taRighelistePreliveo.Insert; + * + * qtaAllocata = qtaAllocata + Qta di questa riga (riuso il valore della colonna QTA + * tabella[contatore]; contatore++; + * qtaOk = (qtaAllocata >= qtaRichiesta) + * dataFinished = (contatore >= numRighe); + * + * */ + // ricavo la riga più vecchia + qtaRiga = tabellaElencoCartellini[progrUdc].Qta; + udcAttuale = tabellaElencoCartellini[progrUdc].UDC; + // eseguo query di insert + taRigheListePrelievo.Insert(codListaAttuale, udcAttuale, qtaRiga, true, false); - //incremento qta allocata - qtaAllocata = (qtaAllocata + qtaRiga); - //incremento contatore - progrUdc++; + //incremento qta allocata + qtaAllocata = (qtaAllocata + qtaRiga); + //incremento contatore + progrUdc++; - // verifico le condizioni, false se non cambia nulla true se cambia e si esce dal while - qtaOk = (qtaAllocata >= QtaTot); - dataFinished = (progrUdc >= numUdcDisponibili); - } - } + // verifico le condizioni, false se non cambia nulla true se cambia e si esce dal while + qtaOk = (qtaAllocata >= QtaTot); + dataFinished = (progrUdc >= numUdcDisponibili); + } + } #endif - #endregion + #endregion - #region Metodi esposti + #region Metodi esposti - /// - /// Verifica il login utente andando a controllare il CodSoggetto da RilPro e salvando in sessione un oggetto user_std x l'utente corrispondente al cod soggetto secondo la tab soggetti2utente - /// - /// - /// tipo di errore codificato - public esitoLoginTerm doUserLogin(string CodSoggetto) - { - esitoLoginTerm answ = esitoLoginTerm.errore; - try - { - // verifico che il cod operatore passato sia valido per RilPro.AnagOperatori e Soggetti2Utente - int trovatiAnagOp = DataProxy.obj.taAnagOperatore.getByCodSoggetto(CodSoggetto).Rows.Count; - int trovatiS2U = DataProxy.obj.taSogg2Oper.getByCodSoggetto(CodSoggetto).Rows.Count; - if (trovatiAnagOp == 1) - { - if (trovatiS2U == 1) - { - // è ok, proseguo facendo avvio user - DS_Applicazione.Soggetti2UtenteRow rigaOp = DataProxy.obj.taSogg2Oper.getByCodSoggetto(CodSoggetto)[0]; - // inizializzo utente con dati operatore - user_std _utente = new user_std(); - user_std.UtSn.isForcedUser = true; - bool fatto = _utente.startUpUtente(rigaOp.DOMINIO, rigaOp.USER_NAME); - if (fatto) - { - answ = esitoLoginTerm.ok; - logger.lg.scriviLog(String.Format("Forced user identity ok: logged as \t {0}\\{1}", user_std.UtSn.dominio, user_std.UtSn.utente), tipoLog.STARTUP); - } - } - else - { - logger.lg.scriviLog(string.Format("Attenzione: trovati {0} utenti in RilPro AnagOperatori e {1} utenti in Soggetti2Utente per il CodSoggetto {2}: login impossibile!", trovatiAnagOp, trovatiS2U, CodSoggetto), tipoLog.ERROR); - answ = esitoLoginTerm.errore_noUser; - } - } - else - { - logger.lg.scriviLog(string.Format("Attenzione: trovati {0} utenti in RilPro AnagOperatori e {1} utenti in Soggetti2Utente per il CodSoggetto {2}: login impossibile!", trovatiAnagOp, trovatiS2U, CodSoggetto), tipoLog.ERROR); - answ = esitoLoginTerm.errore_noCodSogg; - } - } - catch (Exception e) - { - logger.lg.scriviLog(string.Format("Errore in TermClass.doUserLogin per il CodSoggetto {0}: eccezione {1}", CodSoggetto, e), tipoLog.FATAL); - } - return answ; - } - /// - /// verifica se il codice barcode letto sia un particoalre con codice tipo "P" - /// - /// - /// - public bool isParticolare(string barcodeIN) - { - bool answ = false; - try - { - answ = utils.obj.taSelParticolari.getByConditioValue(barcodeIN, "P").Rows.Count == 1; - } - catch - { } - return answ; - } - /// - /// verifica se il codice barcode letto sia un anima - /// - /// - /// - public bool isAnima(string valore) - { - bool answ = false; - try - { - answ = utils.obj.taSelParticolari.getByConditioValue(valore, "A").Rows.Count == 1; - } - catch - { } - return answ; - } - /// - /// verifica se il codice barcode letto sia - /// - FinitoLiquidi - /// - NON consumato ( maggiore di 0 ) - /// - NON spedito ( minore di 200 ) - /// - /// UDC da verificare - /// - public bool isFinitoLiquidiOK(string UDC) - { - bool answ = false; - try - { - answ = DataProxy.obj.taCartellini.getByUdcStatoPosiz(UDC, "FinLiq", 1, 199).Rows.Count == 1; - } - catch - { } - return answ; - } - /// - /// verifica il codice barcode letto e restituisce il tipo di valore corrisponente - /// - /// - /// - public tipoCodiceBarcode riconosciBarcode(string barcodeIN) - { - tipoCodiceBarcode answ = tipoCodiceBarcode.ND; - if (barcodeIN != "") - { - // cerco se sia un particolare... - if (utils.obj.taSelParticolari.getByConditioValue(barcodeIN, "*").Rows.Count == 1) - { - answ = tipoCodiceBarcode.Particolare; - } - // se non lo è continuo - if (answ == tipoCodiceBarcode.ND) - { - switch (barcodeIN.Substring(0, 1)) - { - case "O": - answ = tipoCodiceBarcode.Operatore; - break; - case "K": - answ = tipoCodiceBarcode.ListaPrelievo; - break; - //case "P": - //case "A": - // answ = tipoCodiceBarcode.Particolare; - // break; - case "U": - answ = tipoCodiceBarcode.UDC; - break; - case "S": - answ = tipoCodiceBarcode.Cella; - break; - default: - // cerco se la stringa intera abbia un match con le celle... - if (MagClass.magazzino.taCelle.getByCodCella(barcodeIN).Rows.Count == 1) - { - answ = tipoCodiceBarcode.Cella; - } - break; - } - } - } - return answ; - } - /// - /// effettua il reset di tutti i valori in sesisone salvati a valle della scansione di un barcode - /// - /// true/false se resettare UDC selezionato - /// true/false se resettare Cella selezionata - /// true/false se resettare Particolare selezionato - public void resetScanBarcode(bool resetUdc, bool resetCella, bool resetParticolare) - { - if (resetCella) - { - memLayer.ML.emptySessionVal("IdxCella_sel"); - memLayer.ML.emptySessionVal("codCella_sel"); - } - if (resetParticolare) - { - memLayer.ML.emptySessionVal("Particolare_sel"); - } - if (resetUdc) - { - memLayer.ML.emptySessionVal("UDC_sel"); - } - } + /// + /// Verifica il login utente andando a controllare il CodSoggetto da RilPro e salvando in sessione un oggetto user_std x l'utente corrispondente al cod soggetto secondo la tab soggetti2utente + /// + /// + /// tipo di errore codificato + public esitoLoginTerm doUserLogin(string CodSoggetto) + { + esitoLoginTerm answ = esitoLoginTerm.errore; + try + { + // verifico che il cod operatore passato sia valido per RilPro.AnagOperatori e Soggetti2Utente + int trovatiAnagOp = DataProxy.obj.taAnagOperatore.getByCodSoggetto(CodSoggetto).Rows.Count; + int trovatiS2U = DataProxy.obj.taSogg2Oper.getByCodSoggetto(CodSoggetto).Rows.Count; + if (trovatiAnagOp == 1) + { + if (trovatiS2U == 1) + { + // è ok, proseguo facendo avvio user + DS_Applicazione.Soggetti2UtenteRow rigaOp = DataProxy.obj.taSogg2Oper.getByCodSoggetto(CodSoggetto)[0]; + // inizializzo utente con dati operatore + user_std _utente = new user_std(); + user_std.UtSn.isForcedUser = true; + bool fatto = _utente.startUpUtente(rigaOp.DOMINIO, rigaOp.USER_NAME); + if (fatto) + { + answ = esitoLoginTerm.ok; + logger.lg.scriviLog(String.Format("Forced user identity ok: logged as \t {0}\\{1}", user_std.UtSn.dominio, user_std.UtSn.utente), tipoLog.STARTUP); + } + } + else + { + logger.lg.scriviLog(string.Format("Attenzione: trovati {0} utenti in RilPro AnagOperatori e {1} utenti in Soggetti2Utente per il CodSoggetto {2}: login impossibile!", trovatiAnagOp, trovatiS2U, CodSoggetto), tipoLog.ERROR); + answ = esitoLoginTerm.errore_noUser; + } + } + else + { + logger.lg.scriviLog(string.Format("Attenzione: trovati {0} utenti in RilPro AnagOperatori e {1} utenti in Soggetti2Utente per il CodSoggetto {2}: login impossibile!", trovatiAnagOp, trovatiS2U, CodSoggetto), tipoLog.ERROR); + answ = esitoLoginTerm.errore_noCodSogg; + } + } + catch (Exception e) + { + logger.lg.scriviLog(string.Format("Errore in TermClass.doUserLogin per il CodSoggetto {0}: eccezione {1}", CodSoggetto, e), tipoLog.FATAL); + } + return answ; + } + /// + /// verifica se il codice barcode letto sia un particoalre con codice tipo "P" + /// + /// + /// + public bool isParticolare(string barcodeIN) + { + bool answ = false; + try + { + answ = utils.obj.taSelParticolari.getByConditioValue(barcodeIN, "P").Rows.Count == 1; + } + catch + { } + return answ; + } + /// + /// verifica se il codice barcode letto sia un anima + /// + /// + /// + public bool isAnima(string valore) + { + bool answ = false; + try + { + answ = utils.obj.taSelParticolari.getByConditioValue(valore, "A").Rows.Count == 1; + } + catch + { } + return answ; + } + /// + /// verifica se il codice barcode letto sia + /// - FinitoLiquidi + /// - NON consumato ( maggiore di 0 ) + /// - NON spedito ( minore di 200 ) + /// + /// UDC da verificare + /// + public bool isFinitoLiquidiOK(string UDC) + { + bool answ = false; + try + { + answ = DataProxy.obj.taCartellini.getByUdcStatoPosiz(UDC, "FinLiq", 1, 199).Rows.Count == 1; + } + catch + { } + return answ; + } + /// + /// verifica il codice barcode letto e restituisce il tipo di valore corrisponente + /// + /// + /// + public tipoCodiceBarcode riconosciBarcode(string barcodeIN) + { + tipoCodiceBarcode answ = tipoCodiceBarcode.ND; + if (barcodeIN != "") + { + // controllo se in sessione ci sia la stessa verifica e nel caso NON la rifaccio su DB... + if (memLayer.ML.StringCacheObj("lastBarcodeIN") == barcodeIN) + { + answ = (tipoCodiceBarcode)memLayer.ML.objCacheObj("lastBarcodeType"); + } + else + { + // salvo richiesta barcode in cache.. + memLayer.ML.setCacheVal("lastBarcodeIN", barcodeIN); + // cerco se sia un particolare... + if (utils.obj.taSelParticolari.getByConditioValue(barcodeIN, "*").Rows.Count == 1) + { + answ = tipoCodiceBarcode.Particolare; + } + // se non lo è continuo + if (answ == tipoCodiceBarcode.ND) + { + switch (barcodeIN.Substring(0, 1)) + { + case "O": + answ = tipoCodiceBarcode.Operatore; + break; + case "K": + answ = tipoCodiceBarcode.ListaPrelievo; + break; + //case "P": + //case "A": + // answ = tipoCodiceBarcode.Particolare; + // break; + case "U": + answ = tipoCodiceBarcode.UDC; + break; + case "S": + answ = tipoCodiceBarcode.Cella; + break; + default: + // cerco se la stringa intera abbia un match con le celle... + if (MagClass.magazzino.taCelle.getByCodCella(barcodeIN).Rows.Count == 1) + { + answ = tipoCodiceBarcode.Cella; + } + break; + } + } + // salvo in cache decodifica + memLayer.ML.setCacheVal("lastBarcodeType", answ); + } + } + return answ; + } + /// + /// effettua il reset di tutti i valori in sessione salvati a valle della scansione di un barcode + /// + /// true/false se resettare UDC selezionato + /// true/false se resettare Cella selezionata + /// true/false se resettare Particolare selezionato + public void resetScanBarcode(bool resetUdc, bool resetCella, bool resetParticolare) + { + if (resetUdc) + { + memLayer.ML.emptySessionVal("UDC_sel"); + } + if (resetCella) + { + memLayer.ML.emptySessionVal("IdxCella_sel"); + memLayer.ML.emptySessionVal("codCella_sel"); + } + if (resetParticolare) + { + memLayer.ML.emptySessionVal("Particolare_sel"); + } + } - #endregion - } + #endregion + } } /// /// definisce i tipi di codice che il barcode può leggere /// public enum tipoCodiceBarcode { - /// - /// Tipo non riconosciuto - /// - ND, - /// - /// [O] - il barcode rappresenta un codice operatore - /// - Operatore, - /// - /// [K] - il barcode rappresenta una lista di prelievo - /// - ListaPrelievo, - /// - /// [U] - il barcode rappresenta un UDC - /// - UDC, - /// - /// il barcode rappresenta un particolare - /// - Particolare, - /// - /// Cella [S] - /// - Cella, - /// - /// codice gitterbox - /// - Gitterbox, - /// - /// Codice PartNumber come sottoinsieme (iniziale ) di datamatrix BMW - /// - PartNumber, - /// - /// Codice datamatrix - /// - DataMatrix, - /// - /// codice che indica un comando (prefisso da web.config) - /// - Comando, - /// - /// Assieme Logico - /// - AL, - /// - /// Trattamento Termico - /// - TT, - /// - /// Codice di imballo - /// - Imballo, - /// - /// Marcatore DataOra - /// - DateTime + /// + /// Tipo non riconosciuto + /// + ND, + /// + /// [O] - il barcode rappresenta un codice operatore + /// + Operatore, + /// + /// [K] - il barcode rappresenta una lista di prelievo + /// + ListaPrelievo, + /// + /// [U] - il barcode rappresenta un UDC + /// + UDC, + /// + /// il barcode rappresenta un particolare + /// + Particolare, + /// + /// Cella [S] + /// + Cella, + /// + /// codice gitterbox + /// + Gitterbox, + /// + /// Codice PartNumber come sottoinsieme (iniziale ) di datamatrix BMW + /// + PartNumber, + /// + /// Codice datamatrix + /// + DataMatrix, + /// + /// codice che indica un comando (prefisso da web.config) + /// + Comando, + /// + /// Assieme Logico + /// + AL, + /// + /// Trattamento Termico + /// + TT, + /// + /// Codice di imballo + /// + Imballo, + /// + /// Marcatore DataOra + /// + DateTime } /// /// elenco degli esiti per una sessione di login da terminalino /// public enum esitoLoginTerm { - /// - /// tutto ok, come true - /// - ok, - /// - /// non è andata, errore generico - /// - errore, - /// - /// errore x mancanza record in tab operatori di RilPro x CodSoggetto - /// - errore_noCodSogg, - /// - /// errore mancanza username corrisponende all'operatore il cui cod soggetto è stato passato - /// - errore_noUser + /// + /// tutto ok, come true + /// + ok, + /// + /// non è andata, errore generico + /// + errore, + /// + /// errore x mancanza record in tab operatori di RilPro x CodSoggetto + /// + errore_noCodSogg, + /// + /// errore mancanza username corrisponende all'operatore il cui cod soggetto è stato passato + /// + errore_noUser } \ No newline at end of file