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); }
/// <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); }