Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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;
                    }
                }
            }
        }
Exemple #5
0
        /// <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);
        }
Exemple #6
0
        /// <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);
        }
Exemple #7
0
        /// <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);
        }
Exemple #8
0
 /// <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);
 }
Exemple #9
0
        /// <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;
                        }
                    }
                }
            }
        }
Exemple #10
0
        /// <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);
            }
        }
Exemple #11
0
        /// <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);
        }
Exemple #12
0
        /// <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);
        }
Exemple #13
0
        /// <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);
        }
Exemple #14
0
        //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);
        }
Exemple #15
0
        //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);
        }
Exemple #16
0
        //		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);
        }
Exemple #17
0
        /// <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);
        }
Exemple #18
0
        /// <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);
        }
Exemple #19
0
        //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);
        }
Exemple #20
0
        /// <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);
        }