/// <summary> /// Reperimento funzione elementare da codice e id tipo funzione /// </summary> /// <param name="codiceFunzione"></param> /// <param name="idTipoFunzione"></param> /// <returns></returns> public static OrgFunzione GetFunzione(string codiceFunzione, int idTipoFunzione) { OrgFunzione retValue = null; DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_S_GET_FUNZIONE_ELEMENTARE_DA_CODICE"); queryDef.setParam("codiceFunzione", codiceFunzione); queryDef.setParam("idTipoFunzione", idTipoFunzione.ToString()); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) { using (System.Data.IDataReader reader = dbProvider.ExecuteReader(commandText)) { if (reader.Read()) { retValue = CreateFunzione(reader); } } } return(retValue); }
/// <summary> /// Aggiornamento del legame tra funzione e tipo funzione /// </summary> /// <param name="funzione"></param> /// <returns></returns> public static ValidationResultInfo Update(OrgFunzione funzione) { ValidationResultInfo retValue = new ValidationResultInfo(); if (funzione.StatoFunzione != OrgFunzione.StatoOrgFunzioneEnum.Unchanged) { DBProvider dbProvider = new DBProvider(); try { dbProvider.BeginTransaction(); retValue.Value = Update(dbProvider, funzione); if (retValue.Value) { dbProvider.CommitTransaction(); } else { dbProvider.RollbackTransaction(); retValue.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("DB_ERROR", "Errore in aggiornamento della funzione")); } } catch { dbProvider.RollbackTransaction(); retValue.Value = false; } finally { dbProvider.Dispose(); dbProvider = null; } } return(retValue); }
/// <summary> /// Creazione oggetto "OrgFunzione" da datareader /// </summary> /// <param name="reader"></param> /// <returns></returns> private static OrgFunzione CreateFunzione(System.Data.IDataReader reader) { OrgFunzione retValue = new OrgFunzione(); if (!reader.IsDBNull(reader.GetOrdinal("ID_ASSOCIAZIONE"))) { retValue.ID = reader.GetValue(reader.GetOrdinal("ID_ASSOCIAZIONE")).ToString(); } if (!reader.IsDBNull(reader.GetOrdinal("ID_TIPO_FUNZIONE"))) { retValue.IDTipoFunzione = reader.GetValue(reader.GetOrdinal("ID_TIPO_FUNZIONE")).ToString(); } string associato = reader.GetString(reader.GetOrdinal("ASSOCIATO")); retValue.Associato = Convert.ToBoolean(associato); retValue.FunzioneAnagrafica = CreateFunzioneAnagrafica(reader); return(retValue); }
/// <summary> /// Aggiornamento legame funzione - tipo funzione /// </summary> /// <param name="dbProvider"></param> /// <param name="funzione"></param> /// <returns></returns> internal static bool Update(DBProvider dbProvider, OrgFunzione funzione) { bool retValue = false; bool insertMode = (funzione.StatoFunzione == DocsPaVO.amministrazione.OrgFunzione.StatoOrgFunzioneEnum.Inserted); bool deleteMode = (funzione.StatoFunzione == DocsPaVO.amministrazione.OrgFunzione.StatoOrgFunzioneEnum.Deleted); DocsPaUtils.Query queryDef = null; string commandText = string.Empty; if (insertMode) { // Inserimento del legame tra tipo funzione e anagrafica funzione queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_I_INSERT_FUNZIONE_ELEMENTARE"); queryDef.setParam("colSystemID", DocsPaDbManagement.Functions.Functions.GetSystemIdColName()); queryDef.setParam("systemID", DocsPaDbManagement.Functions.Functions.GetSystemIdNextVal(null)); queryDef.setParam("codiceFunzione", GetStringParameterValue(funzione.FunzioneAnagrafica.Codice)); queryDef.setParam("idTipoFunzione", funzione.IDTipoFunzione); queryDef.setParam("chaTipoFunz", GetStringParameterValue(funzione.FunzioneAnagrafica.TipoFunzione)); queryDef.setParam("descrizioneFunzione", GetStringParameterValue(funzione.FunzioneAnagrafica.Codice)); queryDef.setParam("idAmm", funzione.IDAmministrazione); } else if (deleteMode) { // Cancellazione del legame tra tipo funzione e anagrafica funzione queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("AMM_D_DELETE_FUNZIONE_ELEMENTARE"); queryDef.setParam("systemID", funzione.ID); } commandText = queryDef.getSQL(); logger.Debug(commandText); int rowsAffected = 0; try { retValue = dbProvider.ExecuteNonQuery(commandText, out rowsAffected); retValue = (retValue && rowsAffected == 1); if (retValue) { if (insertMode) { // Reperimento e impostazione systemID appena inserita commandText = DocsPaDbManagement.Functions.Functions.GetQueryLastSystemIdInserted(); logger.Debug(commandText); string outParam; retValue = dbProvider.ExecuteScalar(out outParam, commandText); if (retValue) { funzione.ID = outParam; } } else if (deleteMode) { // Funzione non più presente su database, // rimozione degli id funzione.ID = string.Empty; funzione.IDTipoFunzione = string.Empty; } // Impostazione dello stato della funzione funzione.StatoFunzione = DocsPaVO.amministrazione.OrgFunzione.StatoOrgFunzioneEnum.Unchanged; } } catch { retValue = false; } finally { } return(retValue); }