예제 #1
0
        public void GetRuoliRiferimentoEsterni(out DataSet dataSet, DocsPaVO.addressbook.QueryCorrispondenteAutorizzato qc, DocsPaVO.utente.UnitaOrganizzativa uo)
        {
            DocsPaUtils.Query q        = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO3");
            string            idUO     = uo.systemId;
            string            strWhere = "";

            //condizione sulle autorizzazioni (registro, nodo di titolario)
            //condizione sulla gerarchia
            //elisa e sabri
            System.Collections.ArrayList ListaUO = new System.Collections.ArrayList();
            if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString())
            {
                DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia();
                ListaUO = gerarchia.getParentUO(qc.ruolo);
                ListaUO.Add(qc.ruolo.uo.systemId);
            }
            else if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString())
            {
                DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia();
                ListaUO = gerarchia.getChildrenUO(qc.ruolo);
                ListaUO.Add(qc.ruolo.uo.systemId);
            }
            else if (qc.ragione.tipoDestinatario.ToString() == DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString())
            {
                DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia();
                ListaUO = gerarchia.getPariUO(qc.ruolo);
                ListaUO.Add(qc.ruolo.uo.systemId);
            }
            else
            {
                //				DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia();
                ListaUO = null;
                //				ListaUO.Add(qc.ruolo.uo.systemId);
            }


            //			strWhere = getQueryAut(qc.tipoOggetto,qc.idRegistro,qc.idNodoTitolario,qc.ruolo,null,qc.ragione.tipoDestinatario.ToString());
            strWhere  = getQueryAut(qc.tipoOggetto, null, qc.idNodoTitolario, qc.ruolo, ListaUO, qc.ragione.tipoDestinatario.ToString());
            strWhere += " AND A.CHA_TIPO_URP='R' AND A.ID_UO=" + idUO + " AND A.CHA_TIPO_IE = 'I'";
            if (qc.queryCorrispondente != null && qc.queryCorrispondente.fineValidita)
            {
                strWhere += " AND A.DTA_FINE IS NULL";
            }
            q.setParam("param1", strWhere);
            string sql = q.getSQL();

            logger.Debug(sql);
            this.ExecuteQuery(out dataSet, "RUOLI_RIF_EST", sql);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="trasmissione"></param>
        /// <param name="corr"></param>
        /// <param name="ragione"></param>
        /// <param name="note"></param>
        /// <param name="tipoTrasm"></param>
        /// <param name="scadenza"></param>
        /// <returns></returns>
        public static DocsPaVO.trasmissione.Trasmissione addTrasmissioneSingola(
            DocsPaVO.utente.InfoUtente infoUtente,
            DocsPaVO.trasmissione.Trasmissione trasmissione,
            DocsPaVO.utente.Corrispondente corr,
            DocsPaVO.trasmissione.RagioneTrasmissione ragione,
            string note,
            string tipoTrasm,
            int scadenza)
        {
            if (trasmissione.trasmissioniSingole != null)
            {
                // controllo se esiste la trasmissione singola associata a corrispondente selezionato

                foreach (DocsPaVO.trasmissione.TrasmissioneSingola ts in trasmissione.trasmissioniSingole)
                {
                    if (ts.corrispondenteInterno.systemId.Equals(corr.systemId))
                    {
                        if (ts.daEliminare)
                        {
                            ts.daEliminare = false;
                            return(trasmissione);
                        }
                        else
                        {
                            return(trasmissione);
                        }
                    }
                }
            }

            // Aggiungo la trasmissione singola
            DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola();
            trasmissioneSingola.tipoTrasm             = tipoTrasm;
            trasmissioneSingola.corrispondenteInterno = corr;
            trasmissioneSingola.ragione     = ragione;
            trasmissioneSingola.noteSingole = note;
            //Imposto la data di scadenza
            if (scadenza > 0)
            {
                string          dataScadenza = "";
                System.DateTime data         = System.DateTime.Now.AddDays(scadenza);
                dataScadenza = data.Day + "/" + data.Month + "/" + data.Year;
                trasmissioneSingola.dataScadenza = dataScadenza;
            }

            // Aggiungo la lista di trasmissioniUtente
            if (corr is DocsPaVO.utente.Ruolo)
            {
                trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO;

                DocsPaVO.utente.Corrispondente[] listaUtenti = queryUtenti(infoUtente, corr);

                if (listaUtenti.Length == 0)
                {
                    trasmissioneSingola = null;
                }

                //ciclo per utenti se dest è gruppo o ruolo
                for (int i = 0; i < listaUtenti.Length; i++)
                {
                    DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente();
                    trasmissioneUtente.utente = (DocsPaVO.utente.Utente)listaUtenti[i];
                    trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
                }
            }

            if (corr is DocsPaVO.utente.Utente)
            {
                trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE;
                DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente();
                trasmissioneUtente.utente = (DocsPaVO.utente.Utente)corr;
                trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
            }

            if (corr is DocsPaVO.utente.UnitaOrganizzativa)
            {
                DocsPaVO.utente.UnitaOrganizzativa theUo = (DocsPaVO.utente.UnitaOrganizzativa)corr;
                DocsPaVO.addressbook.QueryCorrispondenteAutorizzato qca = new DocsPaVO.addressbook.QueryCorrispondenteAutorizzato();
                qca.ragione = trasmissioneSingola.ragione;
                qca.ruolo   = trasmissione.ruolo;

                System.Collections.ArrayList ruoli = BusinessLogic.Utenti.addressBookManager.getRuoliRiferimentoAutorizzati(qca, theUo);
                foreach (DocsPaVO.utente.Ruolo r in ruoli)
                {
                    trasmissione = addTrasmissioneSingola(infoUtente, trasmissione, r, ragione, note, tipoTrasm, scadenza);
                }

                return(trasmissione);
            }

            if (trasmissioneSingola != null)
            {
                trasmissione.trasmissioniSingole.Add(trasmissioneSingola);
            }

            return(trasmissione);
        }