/// <summary> /// Trasmissione manuale dell'oggetto agli utenti destinatari /// </summary> /// <param name="idOggetto">Id dell'oggetto da trasmettere</param> /// <param name="tipoOggetto">Tipo dell'oggetto da trasmettere</param> /// <param name="modello">Modello trasmissione da utilizzare</param> /// <remarks> /// Sarà applicata la ragione trasmissione predefinita per l'amministrazione /// </remarks> public virtual void Execute(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string ragione, string noteGenerali, bool notificaInToDoList, params string[] idDestinatari) { //string idTrasmissione = this.GetIdTrasmissione(idOggetto, tipoOggetto, (ragione ?? string.Empty)); string idTrasmissione = this.GetIdTrasmissioneDaInviare(idOggetto, tipoOggetto, (ragione ?? string.Empty)); if (string.IsNullOrEmpty(idTrasmissione)) { // Creazione della nuova trasmissione DocsPaVO.trasmissione.Trasmissione tx = this.PrepareTrasmissione(idOggetto, tipoOggetto, ragione, noteGenerali, notificaInToDoList, idDestinatari); tx = BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(string.Empty, tx); } else { // Invio della trasmissione esistente DocsPaVO.trasmissione.Trasmissione tx = this.GetTrasmissione(idTrasmissione, idOggetto, tipoOggetto); // La trasmissione ancora non è stata inviata this.UpdateTrasmissione(tx, idDestinatari); tx = BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(string.Empty, tx); } }
/// <summary> /// Query per il metodo "getGerarchiaSup" /// </summary> /// <param name="tipoOggetto"></param> /// <param name="idRegistro"></param> /// <param name="idNodoTitolario"></param> /// <param name="ruolo"></param> /// <param name="idParentUO"></param> public void selCorGlTipRuoSup(out DataSet dataSet, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList idParentUO, DocsPaDB.DBProvider dbProvider) { DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO2"); string queryString = ""; /// string hint = "/*+ index (A) index (B) */"; string hint = "/*+ "; queryString = getQueryAut(tipoOggetto, idRegistro, idNodoTitolario, ruolo, idParentUO, DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()); q.setParam("param1", queryString); if (queryString.ToLower().IndexOf("security c") > 0) { /// hint = "/*+index(C) index (A) index (B) */"; hint += "index(C) "; } if (queryString.ToLower().IndexOf("dpa_l_ruolo_reg d") > 0) { hint += "index(D) "; } hint += "index(A) index(B)"; hint += "*/"; q.setParam("hint", hint); string myString = q.getSQL(); logger.Debug(myString); dbProvider.ExecuteQuery(out dataSet, "RUOLI", myString); }
/// <summary> /// Inizializzazione della trasmissione /// </summary> /// <param name="tipoOggetto"></param> /// <param name="idOggetto"></param> /// <remarks> /// Le classi derivate dovranno utilizzare tale metodo per inizializzare l'oggetto trasmissione piuttosto che crearne uno nuovo /// </remarks> /// <returns></returns> protected virtual DocsPaVO.trasmissione.Trasmissione CreateTrasmissione(DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idOggetto) { DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione(); DocsPaVO.documento.SchedaDocumento schedaDocumento = null; DocsPaVO.fascicolazione.Fascicolo schedaFascicolo = null; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(this._infoUtente, idOggetto, idOggetto); trasmissione.infoDocumento = new DocsPaVO.documento.InfoDocumento(schedaDocumento); } else if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.FASCICOLO; schedaFascicolo = BusinessLogic.Fascicoli.FascicoloManager.getFascicoloById(idOggetto, this._infoUtente); trasmissione.infoFascicolo = new DocsPaVO.fascicolazione.InfoFascicolo(schedaFascicolo); } trasmissione.utente = BusinessLogic.Utenti.UserManager.getUtente(this._infoUtente.idPeople); trasmissione.ruolo = BusinessLogic.Utenti.UserManager.getRuoloById(this._infoUtente.idCorrGlobali); return(trasmissione); }
/// <summary> /// /// </summary> /// <param name="idOggetto">Id dell'oggetto da trasmettere</param> /// <param name="tipoOggetto">Tipo dell'oggetto da trasmettere</param> /// <param name="modello">Modello trasmissione da utilizzare</param> public virtual void Execute(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello) { if (modello == null) { throw new ApplicationException("Modello trasmissione non trovato"); } if (modello.SINGLE == "1") { EffettuaTrasmissioneDaModello(this._infoUtente, modello, idOggetto, tipoOggetto); } else { foreach (DocsPaVO.Modelli_Trasmissioni.MittDest mitt in modello.MITTENTE) { if (string.Compare(mitt.ID_CORR_GLOBALI.ToString(), this._infoUtente.idCorrGlobali, true) == 0) { EffettuaTrasmissioneDaModello(this._infoUtente, modello, idOggetto, tipoOggetto); break; } } } }
/// <summary> /// Query per il metodo "getGerarchiaPariLiv" /// </summary> /// <param name="tipoOggetto"></param> /// <param name="idRegistro"></param> /// <param name="idNodoTitolario"></param> /// <param name="ruolo"></param> /// <param name="idPariUO"></param> public void selCorGlTipRuoPari(out DataSet dataSet, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList idPariUO) { DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO2"); string queryString = ""; queryString = getQueryAut(tipoOggetto, idRegistro, idNodoTitolario, ruolo, idPariUO, DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString()); #region commenti // if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) // { // if(idRegistro!=null && idRegistro!="") // queryString=queryString+",DPA_L_RUOLO_REG C"; // } // else // { // queryString=queryString+",SECURITY C"; // if(idRegistro!=null) // queryString=queryString+",DPA_L_RUOLO_REG D"; // } // queryString=queryString+" WHERE"; // if(ruolo.idAmministrazione!=null && !ruolo.idAmministrazione.ToString().Equals("")) // queryString=queryString+" A.ID_AMM="+ruolo.idAmministrazione+" AND"; // // if(idPariUO.Count!=0) // { // queryString=queryString+" A.ID_UO IN ("; // for(int i=0;i<idParentUO.Count;i++) // { // queryString=queryString+idParentUO[i].ToString(); // if(i<idParentUO.Count-1) // queryString=queryString+","; // } // queryString=queryString+") AND"; // } // // queryString=queryString+" B.NUM_LIVELLO="+ruolo.livello+" AND B.SYSTEM_ID=A.ID_TIPO_RUOLO"; // if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) // { // if(idRegistro!=null && idRegistro != "") // { // queryString=queryString+" AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID"; // queryString=queryString+" AND C.ID_REGISTRO="+idRegistro+""; // } // } // else // { // queryString=queryString+" AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING="+idNodoTitolario+" AND C.ACCESSRIGHTS > 0"; // if(idRegistro!=null && idRegistro != "") // { // queryString=queryString+" AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID"; // queryString=queryString+" AND D.ID_REGISTRO="+idRegistro+""; // } // } #endregion commenti q.setParam("param1", queryString); q.setParam("hint", ""); string myString = q.getSQL(); this.ExecuteQuery(out dataSet, "RUOLI", myString); }
/// <summary> /// /// </summary> /// <param name="idOggetto"></param> /// <param name="tipoOggetto"></param> /// <param name="idModello"></param> public virtual void Execute(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idModello) { // Reperimento del modello trasmissione DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modelloTrasmissione = BusinessLogic.Trasmissioni.ModelliTrasmissioni.getModelloByID(this._infoUtente.idAmministrazione, idModello); this.Execute(idOggetto, tipoOggetto, modelloTrasmissione); }
/// <summary> /// Reperimento trasmissione corrente /// </summary> /// <param name="idTrasmissione"></param> /// <returns></returns> protected virtual DocsPaVO.trasmissione.Trasmissione GetTrasmissione(string idTrasmissione, string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { DocsPaVO.trasmissione.Trasmissione retValue = null; if (!string.IsNullOrEmpty(idTrasmissione)) { // Reperimento oggetto trasmissione DocsPaVO.trasmissione.OggettoTrasm oggettoTrasm = new DocsPaVO.trasmissione.OggettoTrasm(); if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { DocsPaVO.documento.SchedaDocumento schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(this._infoUtente, idOggetto, idOggetto); oggettoTrasm.infoDocumento = new DocsPaVO.documento.InfoDocumento(schedaDocumento); } else if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) { DocsPaVO.fascicolazione.Fascicolo schedaFascicolo = BusinessLogic.Fascicoli.FascicoloManager.getFascicoloById(idOggetto, this._infoUtente); oggettoTrasm.infoFascicolo = new DocsPaVO.fascicolazione.InfoFascicolo(schedaFascicolo); } System.Collections.Generic.List <DocsPaVO.filtri.FiltroRicerca> filters = new System.Collections.Generic.List <DocsPaVO.filtri.FiltroRicerca>(); DocsPaVO.filtri.FiltroRicerca item = new DocsPaVO.filtri.FiltroRicerca(); item.argomento = DocsPaVO.filtri.trasmissione.listaArgomentiNascosti.ID_TRASMISSIONE.ToString(); item.valore = idTrasmissione; filters.Add(item); DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.UserManager.getUtente(this._infoUtente.idPeople); DocsPaVO.utente.Ruolo ruolo = BusinessLogic.Utenti.UserManager.getRuoloById(this._infoUtente.idCorrGlobali); // Utilizzo del metodo di ricerca trasmissioni fornendo i filtri di ricerca int totalPageNumber; int recordCount; DocsPaVO.trasmissione.Trasmissione[] trasmissioni = (DocsPaVO.trasmissione.Trasmissione[]) BusinessLogic.Trasmissioni.QueryTrasmManager.getQueryEffettuateDocMethodPaging( oggettoTrasm, utente, ruolo, filters.ToArray(), 1, out totalPageNumber, out recordCount).ToArray(typeof(DocsPaVO.trasmissione.Trasmissione)); if (trasmissioni.Length == 1) { // Reperimento prima trasmissione estratta retValue = trasmissioni[0]; } } return(retValue); }
/// <summary> /// /// </summary> /// <param name="idOggetto"></param> /// <param name="tipoOggetto"></param> /// <param name="ragione"></param> /// <param name="noteGenerali"></param> /// <param name="idDestinatari"></param> public virtual void SaveAsync(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string ragione, string noteGenerali, bool notificaInToDoList, params string[] idDestinatari) { // Avvio task di salvataggio trasmissione asincrono SaveTrasmissioneDelegate del = new SaveTrasmissioneDelegate(this.Save); IAsyncResult result = del.BeginInvoke(idOggetto, tipoOggetto, ragione, noteGenerali, notificaInToDoList, idDestinatari, this.SaveTrasmissioneCompleted, this); }
/// <summary> /// /// </summary> /// <param name="idOggetto"></param> /// <param name="tipoOggetto"></param> /// <param name="idStato"></param> public void ExecuteStato(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idStato) { System.Collections.ArrayList listModelliTrasmissione = null; string idTemplate = string.Empty; // Reperimento id del template if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { idTemplate = BusinessLogic.ProfilazioneDinamica.ProfilazioneDocumenti.getIdTemplate(idOggetto); // Reperimento degli eventuali modelli trasmissione associati allo stato del documento listModelliTrasmissione = BusinessLogic.DiagrammiStato.DiagrammiStato.isStatoTrasmAuto( this._infoUtente.idAmministrazione, idStato, idTemplate); } else if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) { idTemplate = BusinessLogic.ProfilazioneDinamica.ProfilazioneFascicoli.getIdTemplateFasc(idOggetto); // Reperimento degli eventuali modelli trasmissione associati allo stato del fascicolo listModelliTrasmissione = BusinessLogic.DiagrammiStato.DiagrammiStato.isStatoTrasmAutoFasc( this._infoUtente.idAmministrazione, idStato, idTemplate); } foreach (DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione m in listModelliTrasmissione) { if (m.SINGLE == "1") { this.EffettuaTrasmissioneDaModello(this._infoUtente, m, idOggetto, tipoOggetto); } else { foreach (DocsPaVO.Modelli_Trasmissioni.MittDest mitt in m.MITTENTE) { if (string.Compare(mitt.ID_CORR_GLOBALI.ToString(), this._infoUtente.idCorrGlobali, true) == 0) { this.EffettuaTrasmissioneDaModello(this._infoUtente, m, idOggetto, tipoOggetto); break; } } } } }
/// <summary> /// Salva la trasmissione manuale dell'oggetto agli utenti destinatari /// </summary> /// <param name="idOggetto">Id dell'oggetto da trasmettere</param> /// <param name="tipoOggetto"></param> /// <param name="ragione"></param> /// <param name="noteGenerali"></param> /// <param name="notificaInToDoList"></param> /// <param name="idDestinatari"></param> /// <remarks> /// Sarà applicata la ragione trasmissione predefinita per l'amministrazione /// </remarks> public virtual void Save(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string ragione, string noteGenerali, bool notificaInToDoList, params string[] idDestinatari) { //DocsPaVO.ricerche.SearchPagingContext pc = new DocsPaVO.ricerche.SearchPagingContext(1, Int32.MaxValue); //DocsPaVO.trasmissione.InfoTrasmissione[] txEffettuate = BusinessLogic.Trasmissioni.QueryTrasmManager.GetInfoTrasmissioniEffettuate(this._infoUtente, idOggetto, (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO ? "D" : "F"), pc); string idTrasmissione = this.GetIdTrasmissioneDaInviare(idOggetto, tipoOggetto, (ragione ?? string.Empty)); bool prepareNew = false; if (string.IsNullOrEmpty(idTrasmissione)) { prepareNew = true; } else { DocsPaVO.trasmissione.Trasmissione tx = this.GetTrasmissione(idTrasmissione, idOggetto, tipoOggetto); this.UpdateTrasmissione(tx, idDestinatari); tx = BusinessLogic.Trasmissioni.TrasmManager.saveTrasmMethod(tx); } if (prepareNew) { DocsPaVO.trasmissione.Trasmissione tx = this.PrepareTrasmissione(idOggetto, tipoOggetto, ragione, noteGenerali, notificaInToDoList, idDestinatari); tx = BusinessLogic.Trasmissioni.TrasmManager.saveTrasmMethod(tx); } }
/// <summary> /// /// </summary> /// <param name="idOggetto"></param> /// <param name="tipoOggetto"></param> /// <param name="ragione"></param> /// <returns></returns> protected string GetIdTrasmissione(string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string ragione) { string idTrasmissione = string.Empty; DocsPaVO.trasmissione.RagioneTrasmissione ragioneTrasmissione = this.GetRagioneTrasmissione(ragione); using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) { string filtroOggetto = string.Empty; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { filtroOggetto = string.Format("T.ID_PROFILE = {0}", idOggetto); } else { filtroOggetto = string.Format("T.ID_PROJECT = {0}", idOggetto); } string commandText = string.Format( "SELECT T.SYSTEM_ID, CG.ID_PEOPLE, CG.ID_GRUPPO " + "FROM DPA_TRASMISSIONE T " + "INNER JOIN DPA_TRASM_SINGOLA TS ON TS.ID_TRASMISSIONE = T.SYSTEM_ID " + "INNER JOIN DPA_CORR_GLOBALI CG ON CG.SYSTEM_ID = TS.ID_CORR_GLOBALE " + "WHERE {0} AND TS.ID_RAGIONE = '{1}'", filtroOggetto, ragioneTrasmissione.systemId); dbProvider.ExecuteScalar(out idTrasmissione, commandText); } return(idTrasmissione); }
/// <summary> /// /// </summary> /// <param name="ruolo"></param> /// <param name="idRegistro"></param> /// <param name="idNodoTitolario"></param> /// <param name="tipoOggetto"></param> /// <returns> ritorna un arraylist e in caso di eccezione null</returns> //ricerca dei ruoli autorizzati di livello superiore public System.Collections.ArrayList getGerarchiaSup(DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, DocsPaDB.DBProvider dbProvider) { logger.Debug("getGerarchiaSup"); System.Collections.ArrayList listaRuoli = new System.Collections.ArrayList(); try { DataSet dataSet; //si estraggono i codici delle UO parent del ruolo System.Collections.ArrayList idParentUO = new System.Collections.ArrayList(); DocsPaVO.utente.UnitaOrganizzativa currentUO; currentUO = ruolo.uo; DocsPaDB.Query_DocsPAWS.AmministrazioneXml amministrazioneXml = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); idParentUO = getParentUO(ruolo, dbProvider); DocsPaDB.Query_Utils.Utils obj = new DocsPaDB.Query_Utils.Utils(); obj.selCorGlTipRuoSup(out dataSet, tipoOggetto, idRegistro, idNodoTitolario, ruolo, idParentUO, dbProvider); foreach (DataRow ruoloRow in dataSet.Tables["RUOLI"].Rows) { DocsPaVO.utente.Ruolo ruoloSup = new DocsPaVO.utente.Ruolo(); ruoloSup.systemId = ruoloRow["SYSTEM_ID"].ToString(); ruoloSup.descrizione = ruoloRow["VAR_DESC_RUOLO"].ToString(); ruoloSup.codice = ruoloRow["VAR_CODICE"].ToString(); ruoloSup.codiceCorrispondente = ruoloSup.codice; ruoloSup.codiceRubrica = ruoloRow["VAR_COD_RUBRICA"].ToString(); ruoloSup.uo = getParents(ruoloRow["ID_UO"].ToString(), ruolo); ruoloSup.idGruppo = ruoloRow["ID_GRUPPO"].ToString(); listaRuoli.Add(ruoloSup); } } catch (Exception e) { string exMessage = e.Message; listaRuoli = null; } return(listaRuoli); }
/// <summary> /// /// </summary> /// <param name="ruolo"></param> /// <param name="idRegistro"></param> /// <param name="idNodoTitolario"></param> /// <param name="tipoOggetto"></param> /// <returns> ritorna un arraylist e in caso di eccezione null</returns> //ricerca dei ruoli autorizzati di livello superiore public System.Collections.ArrayList getGerarchiaSup(DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { logger.Debug("getGerarchiaSup"); System.Collections.ArrayList listaRuoli = new System.Collections.ArrayList(); try { DataSet dataSet; //Costruzione della query //si estraggono i codici delle UO parent del ruolo System.Collections.ArrayList idParentUO = new System.Collections.ArrayList(); DocsPaVO.utente.UnitaOrganizzativa currentUO; currentUO = ruolo.uo; DocsPaDB.Query_DocsPAWS.AmministrazioneXml amministrazioneXml = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); idParentUO = getParentUO(ruolo); DocsPaDB.Query_Utils.Utils obj = new DocsPaDB.Query_Utils.Utils(); obj.selCorGlTipRuoSup(out dataSet, tipoOggetto, idRegistro, idNodoTitolario, ruolo, idParentUO); foreach (DataRow ruoloRow in dataSet.Tables["RUOLI"].Rows) { listaRuoli.Add(this.GetRuolo(ruoloRow)); } } catch (Exception e) { // TODO: Utilizzare il progetto DocsPaDbManagement //database.closeConnection(); //throw e; string exMessage = e.Message; listaRuoli = null; } return(listaRuoli); }
//ricerca di tutti i ruoli autorizzati public System.Collections.ArrayList getRuoliAut(DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { System.Collections.ArrayList listaRuoli = new System.Collections.ArrayList(); //DocsPaWS.Utils.Database database=DocsPaWS.Utils.dbControl.getDatabase(); try { // TODO: Utilizzare il progetto DocsPaDbManagement //database.openConnection(); DataSet dataSet; DocsPaDB.Query_Utils.Utils obj = new DocsPaDB.Query_Utils.Utils(); obj.getRuoAut(out dataSet, ruolo, idRegistro, idNodoTitolario, tipoOggetto); foreach (DataRow ruoloRow in dataSet.Tables["RUOLI"].Rows) { listaRuoli.Add(this.GetRuolo(ruoloRow)); } } catch (Exception) { // TODO: Utilizzare il progetto DocsPaDbManagement //database.closeConnection(); listaRuoli = null; } return(listaRuoli); }
//ricerca dei ruoli autorizzati di livello inferiore public System.Collections.ArrayList getGerarchiaInf(DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { System.Collections.ArrayList listaRuoli = new System.Collections.ArrayList(); //DocsPaWS.Utils.Database database=DocsPaWS.Utils.dbControl.getDatabase(); try { // TODO: Utilizzare il progetto DocsPaDbManagement //database.openConnection(); DataSet dataSet = new DataSet(); // //si estraggono le uo di livello superiore, possibili figlie della uo del ruolo // DocsPaDB.Query_Utils.Utils obj = new DocsPaDB.Query_Utils.Utils(); // obj.getGerInf(dataSet,ruolo); // //si inseriscono in un array list i system_id delle UO gerarchicamente inferiori // System.Collections.ArrayList childrenUO= getChildrenUO(ruolo.uo.systemId,dataSet.Tables["UO"]); System.Collections.ArrayList childrenUO = getChildrenUO(ruolo); //si aggiunge la systemId della nostra UO childrenUO.Add(ruolo.uo.systemId); logger.Debug(childrenUO.Count.ToString()); DocsPaDB.Query_Utils.Utils obj = new DocsPaDB.Query_Utils.Utils(); obj.selCorGlTipRuoInf(dataSet, tipoOggetto, idRegistro, idNodoTitolario, ruolo, childrenUO); foreach (DataRow ruoloRow in dataSet.Tables["RUOLI"].Rows) { listaRuoli.Add(this.GetRuolo(ruoloRow)); } } catch (Exception) { // TODO: Utilizzare il progetto DocsPaDbManagement //database.closeConnection(); listaRuoli = null; } return(listaRuoli); }
// private string getQueryAut(DocsPaVO.trasmissione.TipoOggetto tipoOggetto,string idRegistro,string idNodoTitolario,DocsPaVO.utente.Ruolo ruolo,System.Collections.ArrayList listaIdUO, string tipoGerarchia) // { // string queryString=""; // // if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) // { // if(idRegistro!=null && idRegistro!="") // queryString=queryString+",DPA_L_RUOLO_REG C"; // } // else // { // queryString=queryString+",SECURITY C"; // if(idRegistro!=null) // queryString=queryString+",DPA_L_RUOLO_REG D"; // } // queryString=queryString+" WHERE"; // if(ruolo.idAmministrazione!=null && !ruolo.idAmministrazione.ToString().Equals("")) // queryString=queryString+" A.ID_AMM="+ruolo.idAmministrazione+" AND"; // // if(listaIdUO != null && listaIdUO.Count>0) // { // queryString=queryString+" A.ID_UO IN ("; // for(int i=0;i<listaIdUO.Count;i++) // { // queryString=queryString+listaIdUO[i].ToString(); // if(i<listaIdUO.Count-1) // queryString=queryString+","; // } // queryString=queryString+") AND"; // } // string segn = ""; // if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString())) // segn="<"; // else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString())) // segn=">"; // else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString())) // segn="="; // if (!segn.Equals("")) // queryString=queryString+" B.NUM_LIVELLO "+segn+ruolo.livello + " AND"; // queryString=queryString+" B.SYSTEM_ID=A.ID_TIPO_RUOLO"; // if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) // { // if(idRegistro!=null && idRegistro != "") // { // queryString=queryString+" AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID"; // queryString=queryString+" AND C.ID_REGISTRO="+idRegistro+""; // } // } // else // { // queryString=queryString+" AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING="+idNodoTitolario+" AND C.ACCESSRIGHTS > 0"; // if(idRegistro!=null && idRegistro != "") // { // queryString=queryString+" AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID"; // queryString=queryString+" AND D.ID_REGISTRO="+idRegistro+""; // } // } // return queryString; // } #endregion private string getQueryAut(DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList listaIdUO, string tipoGerarchia) { string queryString = ""; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + ",DPA_L_RUOLO_REG C"; } } else { queryString = queryString + ",SECURITY C"; if (idRegistro != null) { queryString = queryString + ",DPA_L_RUOLO_REG D"; } } queryString = queryString + " WHERE"; if (ruolo.idAmministrazione != null && !ruolo.idAmministrazione.ToString().Equals("")) { queryString = queryString + " A.ID_AMM=" + ruolo.idAmministrazione + " AND"; } //se la chiave sul web.config è assente oppure è impostata a "0" if (System.Configuration.ConfigurationManager.AppSettings["EST_VIS_SUP_PARI_LIV"] == null || System.Configuration.ConfigurationManager.AppSettings["EST_VIS_SUP_PARI_LIV"].Equals("0")) { if (listaIdUO != null && listaIdUO.Count > 0) { queryString = queryString + " A.ID_UO IN ("; for (int i = 0; i < listaIdUO.Count; i++) { queryString = queryString + listaIdUO[i].ToString(); if (i < listaIdUO.Count - 1) { queryString = queryString + ","; } } queryString = queryString + ") AND"; } string segn = ""; if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString())) { segn = "<"; } else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString())) { segn = ">"; } else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString())) { segn = "="; } if (!segn.Equals("")) { queryString = queryString + " B.NUM_LIVELLO " + segn + ruolo.livello + " AND"; } queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO"; } else { /* caso nuovo per ANAS -- si estende la visibilità a tutti i ruoli dello stesso livello * apparteneti a UO gerarchicamente superiori */ string segn = ""; if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString())) { if (listaIdUO != null && listaIdUO.Count > 1) { queryString = queryString + " ((A.ID_UO IN ("; for (int i = 0; i < listaIdUO.Count; i++) { if (ruolo.uo.systemId != listaIdUO[i].ToString()) { queryString = queryString + listaIdUO[i].ToString(); if (i < listaIdUO.Count - 1) { queryString = queryString + ","; } } } if (queryString.Substring(queryString.Length - 1, 1).Equals(",")) { queryString = queryString.Substring(0, queryString.Length - 1); } queryString = queryString + ") AND B.NUM_LIVELLO <= " + ruolo.livello + ") OR (A.ID_UO = " + ruolo.uo.systemId + " AND "; } else { //caso in cui la UO non ha UO gerarchicamente superiori queryString = queryString + " A.ID_UO = " + ruolo.uo.systemId + " AND "; } } else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString())) { //risoluzione bug 1586 - per ora riportato per i sottoposti. if (listaIdUO != null && listaIdUO.Count > 1) { queryString = queryString + " ((A.ID_UO IN ("; for (int i = 0; i < listaIdUO.Count; i++) { if (ruolo.uo.systemId != listaIdUO[i].ToString()) { queryString = queryString + listaIdUO[i].ToString(); if (i < listaIdUO.Count - 1) { if (i % 998 == 0 && i > 0) { queryString = queryString + ") OR A.ID_UO IN ("; } else { queryString = queryString + ","; } } else { queryString = queryString + " )"; } } } if (queryString.Substring(queryString.Length - 1, 1).Equals(",")) { queryString = queryString.Substring(0, queryString.Length - 1); } queryString = queryString + ") AND B.NUM_LIVELLO >= " + ruolo.livello + ") OR (A.ID_UO = " + ruolo.uo.systemId + " AND "; } else { //caso in cui la UO non ha UO gerarchicamente superiori queryString = queryString + " A.ID_UO = " + ruolo.uo.systemId + " AND "; } } if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString())) { segn = "<"; } else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString())) { segn = ">"; } else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString())) { segn = "="; } if (!segn.Equals("")) { queryString = queryString + " B.NUM_LIVELLO " + segn + ruolo.livello; } if ((tipoGerarchia.ToString() == DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString() || tipoGerarchia.ToString() == DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()) && (listaIdUO != null && listaIdUO.Count > 1)) { if ((listaIdUO != null) && listaIdUO.Count > 1) { queryString += " )) AND"; } else { queryString += " AND"; } } else { if ((listaIdUO != null) && listaIdUO.Count > 0) { queryString = queryString + " AND"; } } queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO "; } if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + " AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID"; queryString = queryString + " AND C.ID_REGISTRO=" + idRegistro + ""; } } else { //nel caso di una sottocartella THING contiene la system_id del fascicolo a cui è associata, //mentre nel caso di un fascicolo contiene la system_id del nodo di titolario a cui è associata queryString = queryString + " AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING=" + idNodoTitolario + " AND C.ACCESSRIGHTS > 0"; if (idRegistro != null && idRegistro != "") { queryString = queryString + " AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID"; queryString = queryString + " AND D.ID_REGISTRO=" + idRegistro + ""; } } return(queryString); }
/// <summary> /// Query per il metodo "getRuoliAut" /// </summary> /// <param name="ruolo"></param> /// <param name="idRegistro"></param> /// <param name="idNodoTitolario"></param> /// <param name="tipoOggetto"></param> public void getRuoAut(out DataSet dataSet, DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { string queryString = ""; DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO4"); if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + ", DPA_L_RUOLO_REG C"; } } else { //Emanuela 07/04/2014: nel caso di trasmissione massiva di fascicoli, idNodoTitolario è vuoto e la query non fornisce alcun //risulato. if (!string.IsNullOrEmpty(idNodoTitolario)) { queryString = queryString + ", SECURITY C"; } if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + ", DPA_L_RUOLO_REG D"; } } queryString = queryString + " WHERE"; if (ruolo != null && ruolo.idAmministrazione != null && !ruolo.idAmministrazione.ToString().Equals("")) { queryString = queryString + " A.ID_AMM=" + ruolo.idAmministrazione + " AND"; } queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO "; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + " AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID"; queryString = queryString + " AND C.ID_REGISTRO='" + idRegistro + "'"; } } else { //Emanuela 07/04/2014: nel caso di trasmissione massiva di fascicoli, idNodoTitolario è vuoto e la query non fornisce alcun //risulato. if (!string.IsNullOrEmpty(idNodoTitolario)) { queryString = queryString + "AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING='" + idNodoTitolario + "'"; } if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled()) { queryString = queryString + " AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID"; queryString = queryString + " AND D.ID_REGISTRO='" + idRegistro + "'"; } } q.setParam("param1", queryString); string myString = q.getSQL(); logger.Debug("getRuoAut - S_J_DPA_CORR_GLOBALI__TIPO_RUOLO4 - " + myString); this.ExecuteQuery(out dataSet, "RUOLI", myString); }
/// <summary> /// Tramissione di un fascicolo usando un modello di trasmissione /// Il parametro "idStato" puo' essere null o meno a seconda delle necessità /// </summary> /// <returns></returns> private void EffettuaTrasmissioneDaModello( DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello, string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione(); trasmissione.noteGenerali = modello.VAR_NOTE_GENERALI; DocsPaVO.documento.SchedaDocumento schedaDocumento = null; DocsPaVO.fascicolazione.Fascicolo schedaFascicolo = null; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, idOggetto, idOggetto); trasmissione.infoDocumento = new DocsPaVO.documento.InfoDocumento(schedaDocumento); } else if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.FASCICOLO; schedaFascicolo = BusinessLogic.Fascicoli.FascicoloManager.getFascicoloById(idOggetto, infoUtente); trasmissione.infoFascicolo = new DocsPaVO.fascicolazione.InfoFascicolo(schedaFascicolo); } trasmissione.utente = BusinessLogic.Utenti.UserManager.getUtente(infoUtente.idPeople); trasmissione.ruolo = BusinessLogic.Utenti.UserManager.getRuoloById(infoUtente.idCorrGlobali); if (modello != null) { trasmissione.NO_NOTIFY = modello.NO_NOTIFY; } //Parametri delle trasmissioni singole foreach (DocsPaVO.Modelli_Trasmissioni.RagioneDest ragioneDest in modello.RAGIONI_DESTINATARI) { foreach (DocsPaVO.Modelli_Trasmissioni.MittDest mittDest in ragioneDest.DESTINATARI) { DocsPaVO.utente.Corrispondente corr = new DocsPaVO.utente.Corrispondente(); if (mittDest.CHA_TIPO_MITT_DEST == "D") { corr = BusinessLogic.Utenti.UserManager.getCorrispondenteByCodRubrica(mittDest.VAR_COD_RUBRICA, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente); } else { if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { corr = GetCorrispondente(infoUtente, mittDest.CHA_TIPO_MITT_DEST, schedaDocumento.creatoreDocumento.idPeople, schedaDocumento.creatoreDocumento.idCorrGlob_Ruolo, schedaDocumento.creatoreDocumento.idCorrGlob_UO, trasmissione); } else { corr = GetCorrispondente(infoUtente, mittDest.CHA_TIPO_MITT_DEST, schedaFascicolo.creatoreFascicolo.idPeople, schedaFascicolo.creatoreFascicolo.idCorrGlob_Ruolo, schedaFascicolo.creatoreFascicolo.idCorrGlob_UO, trasmissione); } } if (corr != null) { DocsPaVO.trasmissione.RagioneTrasmissione ragione = BusinessLogic.Trasmissioni.QueryTrasmManager.getRagioneById(mittDest.ID_RAGIONE.ToString()); trasmissione = AddTrasmissioneSingola(infoUtente, trasmissione, corr, ragione, mittDest.VAR_NOTE_SING, mittDest.CHA_TIPO_TRASM, mittDest.SCADENZA); } } } trasmissione = ImpostaNotificheUtentiDaModello(infoUtente, trasmissione, modello); trasmissione = BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(string.Empty, trasmissione); }
//ricerca dei ruoli autorizzati di pari livello public System.Collections.ArrayList getGerarchiaPariLiv(DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto) { logger.Debug("getGerarchiaPariLiv"); System.Collections.ArrayList listaRuoli = new System.Collections.ArrayList(); try { DataSet dataSet = new DataSet(); //Costruzione della query //si estraggono i codici delle UO di pari livello del ruolo System.Collections.ArrayList idPariUO = new System.Collections.ArrayList(); DocsPaVO.utente.UnitaOrganizzativa currentUO; currentUO = ruolo.uo; idPariUO = getPariUO(ruolo); //si aggiunge la systemId della nostra UO idPariUO.Add(ruolo.uo.systemId); logger.Debug(idPariUO.Count.ToString()); DocsPaDB.Query_Utils.Utils obj2 = new DocsPaDB.Query_Utils.Utils(); obj2.selCorGlTipRuoPari(out dataSet, tipoOggetto, idRegistro, idNodoTitolario, ruolo, idPariUO); foreach (DataRow ruoloRow in dataSet.Tables["RUOLI"].Rows) { listaRuoli.Add(this.GetRuolo(ruoloRow)); } } catch (Exception e) { // TODO: Utilizzare il progetto DocsPaDbManagement //database.closeConnection(); //throw e; string exMessage = e.Message; listaRuoli = null; } return(listaRuoli); }
/// <summary> /// /// </summary> /// <param name="idOggetto"></param> /// <param name="tipoOggetto"></param> /// <param name="ragione"></param> /// <param name="noteGenerali"></param> /// <param name="idDestinatari"></param> /// <returns></returns> protected virtual DocsPaVO.trasmissione.Trasmissione PrepareTrasmissione( string idOggetto, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string ragione, string noteGenerali, bool notificaInToDoList, params string[] idDestinatari) { DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione(); trasmissione.noteGenerali = noteGenerali; DocsPaVO.documento.SchedaDocumento schedaDocumento = null; DocsPaVO.fascicolazione.Fascicolo schedaFascicolo = null; if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(this._infoUtente, idOggetto, idOggetto); trasmissione.infoDocumento = new DocsPaVO.documento.InfoDocumento(schedaDocumento); } else if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO) { trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.FASCICOLO; schedaFascicolo = BusinessLogic.Fascicoli.FascicoloManager.getFascicoloById(idOggetto, this._infoUtente); trasmissione.infoFascicolo = new DocsPaVO.fascicolazione.InfoFascicolo(schedaFascicolo); } trasmissione.NO_NOTIFY = (notificaInToDoList ? "0" : "1"); trasmissione.utente = BusinessLogic.Utenti.UserManager.getUtente(this._infoUtente.idPeople); trasmissione.ruolo = BusinessLogic.Utenti.UserManager.getRuoloById(this._infoUtente.idCorrGlobali); foreach (string idDest in idDestinatari) { string codiceDestinatario = string.Empty; if (this._tipoTrasmissione == TipiTrasmissioneEnum.Utente) { DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.UserManager.getUtenteById(idDest); codiceDestinatario = utente.userId; } else { DocsPaVO.utente.Ruolo ruolo = null; int idDestAsInt; if (Int32.TryParse(idDest, out idDestAsInt)) { // L'identificativo fornito è l'id del ruolo direttamente ruolo = BusinessLogic.Utenti.UserManager.getRuoloById(idDest); if (ruolo == null) { ruolo = BusinessLogic.Utenti.UserManager.getRuoloByIdGruppo(idDest); } } else { // L'identificativo fornito è il codice del ruolo ruolo = BusinessLogic.Utenti.UserManager.getRuoloByCodice(idDest); } codiceDestinatario = ruolo.codiceRubrica; } DocsPaVO.utente.Corrispondente corrispondenteDestinatario = BusinessLogic.Utenti.UserManager.getCorrispondenteByCodRubrica( codiceDestinatario, DocsPaVO.addressbook.TipoUtente.INTERNO, this._infoUtente); if (corrispondenteDestinatario != null) { DocsPaVO.trasmissione.RagioneTrasmissione ragioneTrasmissione = this.GetRagioneTrasmissione(ragione); string tipoTrasm = (this._tipoTrasmissione == TipiTrasmissioneEnum.Utente ? "S" : "T"); trasmissione = this.AddTrasmissioneSingola(this._infoUtente, trasmissione, corrispondenteDestinatario, ragioneTrasmissione, string.Empty, tipoTrasm, 0); } } return(trasmissione); }