Пример #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);
            }
        }
Пример #2
0
        /// <summary>
        /// Handler dell'evento di avvenuta trasmissione di un documento / fascicolo
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="infoSecurity">
        /// Oggetto contenente i metadati relativi alla tipologia di ACL
        /// impostata nella trasmissione di un documento / fascicolo
        /// </param>
        public void TrasmissioneCompletataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.infoSecurity[] infoSecurityList)
        {
            // In caso di trasmissione con cessione diritti attivata, cambia il proprietario del documento
            // in OCS proprietario e non, hanno il solo diritto di lettura, quindi basta aggiornare l'acl

            //TODO:
            if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                // Reperimento ACL per il documento smistato

                bool retValue = false;

                try
                {
                    //bisogna reperire l'id OCS
                    UserCredentialsType credentials = OCSUtils.getApplicationUserCredentials();

                    long idOCS = OCSDocumentHelper.getDocumentIdOCS(trasmissione.infoDocumento.docNumber, null, credentials);

                    //reperisco la acl del documento docspa e aggiorno quelle di OCS
                    retValue = OCSDocumentHelper.setAclDocument(trasmissione.infoDocumento.idProfile, idOCS, this.InfoUtente, credentials);
                }
                catch (Exception ex)
                {
                    retValue = false;

                    logger.Error("Errore in OCS.TrasmissioneCompletataEventHandler", ex);
                }
            }
        }
Пример #3
0
 internal static void trasmetti(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello, ref DocsPaVO.documento.resultProtoEmergenza res, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo)
 {
     try
     {
         //cerca trasmissione dal template
         //DocsPaVO.trasmissione.Trasmissione trasm =Trasmissioni.TemplateTrasmManager.creaTrasmDaTemplate(schedaDocumento, template, infoUtente, ruolo);
         DocsPaVO.trasmissione.Trasmissione trasm = creaTrasmDaModello(schedaDocumento, modello, infoUtente, ruolo);
         if (trasm == null)
         {
             res.messaggio = res.messaggio + " - " + " Trasmissione annullata!";
             return;
         }
         if (infoUtente.delegato != null)
         {
             trasm.delegato = ((DocsPaVO.utente.InfoUtente)(infoUtente.delegato)).idPeople;
         }
         //trasm = Trasmissioni.TrasmManager.saveTrasmMethod(trasm);
         //trasm = Trasmissioni.ExecTrasmManager.executeTrasmMethod(null, trasm);
         trasm           = Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(null, trasm);
         res.isTrasmesso = true;
     }
     catch (Exception e)
     {
         res.messaggio = res.messaggio + " - " + e.Message;
         logger.Debug(e.ToString());
     }
 }
Пример #4
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);
        }
Пример #5
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);
        }
Пример #6
0
        private static DocsPaVO.trasmissione.Trasmissione ExecuteTransmission(DocsPaVO.documento.SchedaDocumento schedaDoc, string idGruppoDest, string idPeopleDest, DocsPaVO.utente.InfoUtente infoUtente)
        {
            DocsPaVO.trasmissione.Trasmissione trasm = new DocsPaVO.trasmissione.Trasmissione();

            DocsPaDB.Query_DocsPAWS.Utenti u = new DocsPaDB.Query_DocsPAWS.Utenti();

            trasm.ruolo  = u.GetRuoloByIdGruppo(infoUtente.idGruppo); //istanzaProcesso.RuoloProponente;
            trasm.utente = u.getUtenteById(infoUtente.idPeople);      //istanzaProcesso.UtenteProponente;
            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();

            trasm.infoDocumento = schedaDoc.InfoDocumento;

            //INSERISCO LA RAGIONE DI TRASMISSIONE DI SISTEMA PER LIBRO FIRMA
            DocsPaVO.trasmissione.RagioneTrasmissione ragione = getRagioneTrasm(infoUtente.idAmministrazione, "D");

            //CREO LA TRASMISSIONE SINGOLA
            DocsPaVO.trasmissione.TrasmissioneSingola trasmSing = new DocsPaVO.trasmissione.TrasmissioneSingola();
            trasmSing.ragione   = ragione;
            trasmSing.tipoTrasm = "S";


            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            DocsPaVO.utente.Ruolo          ruolo  = utenti.GetRuoloByIdGruppo(idGruppoDest);
            trasmSing.corrispondenteInterno = ruolo;
            trasmSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO;

            System.Collections.ArrayList             listaUtenti = new System.Collections.ArrayList();
            DocsPaVO.addressbook.QueryCorrispondente qc          = new DocsPaVO.addressbook.QueryCorrispondente();
            qc.codiceRubrica = ruolo.codiceRubrica;
            System.Collections.ArrayList registri = ruolo.registri;
            qc.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO;
            //qc.idRegistri = registri;
            qc.idAmministrazione = ruolo.idAmministrazione;
            qc.getChildren       = true;
            qc.fineValidita      = true;
            listaUtenti          = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qc);
            System.Collections.ArrayList trasmissioniUt = new System.Collections.ArrayList();

            for (int k = 0; k < listaUtenti.Count; k++)
            {
                DocsPaVO.trasmissione.TrasmissioneUtente trUt = new DocsPaVO.trasmissione.TrasmissioneUtente();
                trUt.utente       = (DocsPaVO.utente.Utente)listaUtenti[k];
                trUt.daNotificare = (listaUtenti[k] as DocsPaVO.utente.Utente).idPeople.Equals(idPeopleDest);
                trasmissioniUt.Add(trUt);
            }

            trasmSing.trasmissioneUtente = trasmissioniUt;
            trasm.trasmissioniSingole    = new System.Collections.ArrayList()
            {
                trasmSing
            };
            return(BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod("", trasm));
        }
Пример #7
0
        /// <summary>
        /// Handler dell'evento di avvenuta accettazione / rifiuto di una trasmissione di un documento / fascicolo
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="ruolo"></param>
        /// <param name="tipoRisposta"></param>
        public void TrasmissioneAccettataRifiutataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.trasmissione.TipoRisposta tipoRisposta)
        {
            CustomServices.AclDefinition aclData = null;

            DateTime startDate = DateTime.Now;

            // Aggiornamento ACL in DCTM, con le credenziali di superuser
            CustomServices.IAclService aclService = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());

            if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                // Reperimento della lista delle ACL aggiornata nella tabella security di docspa
                aclData = Dfs4DocsPa.getAclDefinition(trasmissione.infoDocumento.docNumber, DocsPaObjectTypes.ObjectTypes.DOCUMENTO, this.InfoUtente);
                aclService.ClearAndGrant(aclData, trasmissione.infoDocumento.idProfile);
            }
            else if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO)
            {
                DateTime startDateFasc = DateTime.Now;

                // Reperimento della lista delle ACL aggiornata nella tabella security di docspa
                aclData = Dfs4DocsPa.getAclDefinition(trasmissione.infoFascicolo.idFascicolo, DocsPaObjectTypes.ObjectTypes.FASCICOLO, this.InfoUtente);
                aclService.ClearAndGrant(aclData, trasmissione.infoFascicolo.idFascicolo);

                logger.Debug("Tot sec. FASC: " + DateTime.Now.Subtract(startDateFasc).TotalSeconds.ToString());
                string[] idProfiles = DocsPaQueryHelper.getDocumentiInFascicolo(trasmissione.infoFascicolo.idFascicolo);


                //PORKING: nonè necessario farlo ora, perchè le aCL di Documenti vengono rimappate se necesario quando gli utenti o i ruoli faranno
                //          GetDettaglio con il metedo RefreshAcl
                if (idProfiles != null && idProfiles.Length < 20)
                {
                    foreach (string idProfile in idProfiles)
                    {
                        DateTime startDateDoc = DateTime.Now;

                        // Aggiornamento delle ACL per tutti i documenti nel fascicolo (compresi eventuali sottofascicoli)
                        // Aggiornamento delle ACL per tutti i documenti nel fascicolo (compresi eventuali sottofascicoli)
                        //DCTM è usato solo con PITRE e in PITRE storicamente il idprofile è sempre uguale a docnumber quindi posso togliere questa query
                        //DocsPaQueryHelper.getDocNumber(idProfile) è passare in input direttamente idProfile al metodo getAclDefinition
                        aclData = Dfs4DocsPa.getAclDefinition(idProfile, DocsPaObjectTypes.ObjectTypes.DOCUMENTO, this.InfoUtente);
                        aclService.ClearAndGrant(aclData, idProfile);

                        logger.DebugFormat("Tot sec. DOC_{0}: {1}", idProfile, DateTime.Now.Subtract(startDateDoc).TotalSeconds.ToString());
                    }
                }
            }

            logger.Debug("Tot sec.: " + DateTime.Now.Subtract(startDate).TotalSeconds.ToString());
        }
Пример #8
0
        /// <summary>
        /// Associa il nuovo documento creato al task di origine
        /// </summary>
        /// <param name="idTask"></param>
        /// <param name="docnumber"></param>
        /// <param name="infoUtente"></param>
        /// <returns></returns>
        public static bool AssociaContributoAlTask(DocsPaVO.Task.Task task, DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.InfoUtente infoUtente)
        {
            logger.Debug("Chiusura del TASK in BusinessLogic.Task.TaskManager  - metodo: AssociaContributoAlTask ");
            bool result = false;

            try
            {
                DocsPaDB.Query_DocsPAWS.Task t = new DocsPaDB.Query_DocsPAWS.Task();
                result = t.AssociaContributoAlTask(task.ID_TASK, schedaDoc.docNumber, infoUtente);

                // Aggiorno la profile
                result = t.UpdateTaskStatusInProfile(schedaDoc.docNumber, DocsPaDB.Query_DocsPAWS.Task.TaskStatus.IN_PROGRESS);

                //Dò visibilità al ruolo mittente del task.Se il contributo viene inserito nel fascicolo da cui è partito il task non è necessario
                if (result && !string.IsNullOrEmpty(task.ID_PROFILE))
                {
                    DocsPaVO.trasmissione.Trasmissione resultTrasm = ExecuteTransmission(schedaDoc, task.RUOLO_MITTENTE.idGruppo, task.UTENTE_MITTENTE.idPeople, infoUtente);

                    string desc   = string.Empty;
                    string method = "TRASM_DOC_" + (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).ragione.descrizione.ToUpper().Replace(" ", "_");
                    if (resultTrasm.infoDocumento.segnatura == null)
                    {
                        desc = "Trasmesso Documento : " + resultTrasm.infoDocumento.docNumber.ToString();
                    }
                    else
                    {
                        desc = "Trasmesso Documento : " + resultTrasm.infoDocumento.segnatura.ToString();
                    }
                    if (resultTrasm != null)
                    {
                        BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK,
                                                               (infoUtente != null && infoUtente.delegato != null ? infoUtente.delegato : null), "0", (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).systemId);
                    }
                    else
                    {
                        BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.KO,
                                                               (infoUtente != null && infoUtente.delegato != null ? infoUtente.delegato : null), "0", (resultTrasm.trasmissioniSingole[0] as DocsPaVO.trasmissione.TrasmissioneSingola).systemId);
                    }
                }
            }
            catch (Exception e)
            {
                logger.Debug("Errore in BusinessLogic.Task.TaskManager  - metodo: AssociaContributoAlTask ", e);
                result = false;
            }

            return(result);
        }
Пример #9
0
        private static DocsPaVO.trasmissione.Trasmissione addTrasmissioneSingola(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.TrasmissioneSingola trasmSingolaTemplate, string idAmministrazione)
        {
            DocsPaVO.utente.Corrispondente corr = trasmSingolaTemplate.corrispondenteInterno;
            if (!Utenti.addressBookManager.isCorrispondenteValido(corr.systemId))
            {
                logger.Debug("Corrispondente: id:" + corr.systemId + " - desc:" + corr.descrizione + " non valido");
                return(trasmissione);
            }
            DocsPaVO.trasmissione.RagioneTrasmissione ragione = trasmSingolaTemplate.ragione;
            // Aggiungo la trasmissione singola
            DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola();
            trasmissioneSingola.tipoTrasm             = "S";
            trasmissioneSingola.corrispondenteInterno = corr;
            trasmissioneSingola.ragione = ragione;

            // Aggiungo la lista di trasmissioniUtente
            if (corr.GetType() == typeof(DocsPaVO.utente.Ruolo))
            {
                trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO;
                ArrayList listaUtenti = queryUtenti(corr.codiceRubrica, idAmministrazione);
                //ciclo per utenti se dest è gruppo o ruolo
                if (listaUtenti == null || listaUtenti.Count == 0)
                {
                    return(trasmissione);
                }
                for (int i = 0; i < listaUtenti.Count; i++)
                {
                    DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente();
                    trasmissioneUtente.utente = (DocsPaVO.utente.Utente)listaUtenti[i];
                    if (ragione.descrizione.Equals("RISPOSTA"))
                    {
                        trasmissioneUtente.idTrasmRispSing = trasmissioneSingola.systemId;
                    }
                    trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
                }
            }
            else
            {
                trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE;
                DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente();
                trasmissioneUtente.utente = (DocsPaVO.utente.Utente)corr;
                trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
            }
            trasmissione.trasmissioniSingole.Add(trasmissioneSingola);
            return(trasmissione);
        }
Пример #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="objTrasm"></param>
        /// <param name="modello"></param>
        /// <returns></returns>
        private DocsPaVO.trasmissione.Trasmissione ImpostaNotificheUtentiDaModello(
            DocsPaVO.utente.InfoUtente infoUtente,
            DocsPaVO.trasmissione.Trasmissione objTrasm,
            DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello)
        {
            if (objTrasm.trasmissioniSingole != null && objTrasm.trasmissioniSingole.Count > 0)
            {
                foreach (DocsPaVO.trasmissione.TrasmissioneSingola ts in objTrasm.trasmissioniSingole)
                {
                    foreach (DocsPaVO.trasmissione.TrasmissioneUtente tu in ts.trasmissioneUtente)
                    {
                        tu.daNotificare = DaNotificareSuModello(infoUtente, tu.utente.idPeople, ts.corrispondenteInterno.systemId, modello);
                    }
                }
            }

            return(objTrasm);
        }
Пример #11
0
        public static DocsPaVO.trasmissione.Trasmissione addTrasmFascicoloDaTemplate(DocsPaVO.fascicolazione.InfoFascicolo infoFascicolo, DocsPaVO.trasmissione.TemplateTrasmissione template, DocsPaVO.utente.Utente utente, DocsPaVO.utente.Ruolo ruolo)
        {
            //DocsPaVO.utente.Utente utente = utenti.getUtente(infoUtente.idPeople);
            //DocsPaVO.utente.Ruolo ruolo = Utenti.UserManager.getRuolo(infoUtente.idCorrGlobali);
            //			DocsPaVO.utente.InfoUtente infoUtente = null;
            if (template == null)
            {
                return(null);
            }

            DocsPaVO.trasmissione.Trasmissione trasmTemplate = cercaTrasmissioneFascicoloTemplate(template, infoFascicolo, utente, ruolo);
            if (trasmTemplate == null)
            {
                return(null);
            }
            DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione();
            //Ricostruisci la nuova trasmissione, con le trasmissioni utenti aggiornate
            trasmissione.utente        = utente;
            trasmissione.ruolo         = ruolo;
            trasmissione.tipoOggetto   = trasmTemplate.tipoOggetto;
            trasmissione.noteGenerali  = template.descrizione;            // CONTROLLARE DOVE PRENDERE L'INFORMAZIONE
            trasmissione.infoFascicolo = infoFascicolo;

            if (trasmTemplate.trasmissioniSingole != null && trasmTemplate.trasmissioniSingole.Count > 0)
            {
                for (int i = 0; i < trasmTemplate.trasmissioniSingole.Count; i++)
                {
                    trasmissione = addTrasmissioneSingola(trasmissione, ((DocsPaVO.trasmissione.TrasmissioneSingola)trasmTemplate.trasmissioniSingole[i]), utente.idAmministrazione);
                }
            }
            if (trasmissione != null && trasmissione.trasmissioniSingole != null && trasmissione.trasmissioniSingole.Count > 0)
            {
                trasmissione = TrasmManager.saveTrasmMethod(trasmissione);
            }
            else
            {
                logger.Debug("Errore nella creazione dell'oggetto trasmissione da template o trasmissioni singole non presenti");
                return(null);
            }
            return(trasmissione);
        }
Пример #12
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);
            }
        }
Пример #13
0
        /// <summary>
        /// Handler dell'evento di avvenuta trasmissione di un documento / fascicolo
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="infoSecurity">
        /// Oggetto contenente i metadati relativi alla tipologia di ACL
        /// impostata nella trasmissione di un documento / fascicolo
        /// </param>
        public void TrasmissioneCompletataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.infoSecurity[] infoSecurityList)
        {
            // In caso di trasmissione con cessione diritti,
            // viene modificata l'ownership del documento / fascicolo trasmesso
            // se il documento era di proprietà del cedente
            if (trasmissione.cessione != null && trasmissione.cessione.docCeduto)
            {
                // imposta l'Ownership solo se è stato impostato il nuovo utente che diventerà proprietario del doc/fas.
                // Questo avviene quando si stanno cedendo i diritti di proprietà (P).
                // Se si stanno cedendo i diritti acquisiti (A o T o F) questo blocco viene saltato.
                if (trasmissione.cessione.idPeopleNewPropr != null && trasmissione.cessione.idPeopleNewPropr != "")
                {
                    IQueryService queryService = DctmServiceFactory.GetServiceInstance <IQueryService>(UserManager.ImpersonateSuperUser());

                    // Reperimento nome utente e ruolo cui viene impostata l'ownership del documento
                    string ownerUser = DocsPaObjectTypes.TypeUtente.NormalizeUserName(DocsPaQueryHelper.getCodiceUtente(trasmissione.cessione.idPeopleNewPropr));

                    if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
                    {
                        string ownerRole = DocsPaObjectTypes.TypeGruppo.NormalizeGroupName(DocsPaQueryHelper.getCodiceRuoloFromIdGroups(trasmissione.cessione.idRuoloNewPropr));

                        Dfs4DocsPa.setOwnershipDocumento(trasmissione.infoDocumento.idProfile, ownerUser, ownerRole, queryService);
                    }
                    else if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO)
                    {
                        Dfs4DocsPa.setOwnershipFascicolo(trasmissione.infoFascicolo.idFascicolo, ownerUser, queryService);
                    }
                }
            }

            CustomServices.AclDefinition aclData = null;

            if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                // Reperimento della lista delle ACL aggiornata nella tabella security di docspa
                aclData = Dfs4DocsPa.getAclDefinition(trasmissione.infoDocumento.docNumber, DocsPaObjectTypes.ObjectTypes.DOCUMENTO, this.InfoUtente);

                // Aggiornamento ACL in DCTM, con le credenziali di superuser
                CustomServices.IAclService aclService = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());
                aclService.ClearAndGrant(aclData, trasmissione.infoDocumento.idProfile);
            }
            else if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.FASCICOLO)
            {
                // Reperimento della lista delle ACL aggiornata nella tabella security di docspa
                aclData = Dfs4DocsPa.getAclDefinition(trasmissione.infoFascicolo.idFascicolo, DocsPaObjectTypes.ObjectTypes.FASCICOLO, this.InfoUtente);

                // Aggiornamento ACL in DCTM, con le credenziali di superuser
                CustomServices.IAclService aclService = DctmServiceFactory.GetCustomServiceInstance <CustomServices.IAclService>(UserManager.ImpersonateSuperUser());
                aclService.ClearAndGrant(aclData, trasmissione.infoFascicolo.idFascicolo);

                string[] idProfiles = DocsPaQueryHelper.getDocumentiInFascicolo(trasmissione.infoFascicolo.idFascicolo);
                //PORKING: nonè necessario farlo ora, perchè le aCL di Documenti vengono rimappate se necesario quando gli utenti o i ruoli faranno
                //          GetDettaglio con il metedo RefreshAcl
                if (idProfiles != null && idProfiles.Length < 20)
                {
                    foreach (string idProfile in idProfiles)
                    {
                        // Aggiornamento delle ACL per tutti i documenti nel fascicolo (compresi eventuali sottofascicoli)
                        //DCTM è usato solo con PITRE e in PITRE storicamente il idprofile è sempre uguale a docnumber quindi posso togliere questa query
                        //DocsPaQueryHelper.getDocNumber(idProfile) è passare in input direttamente idProfile al metodo getAclDefinition

                        aclData = Dfs4DocsPa.getAclDefinition(idProfile, DocsPaObjectTypes.ObjectTypes.DOCUMENTO, this.InfoUtente);

                        aclService.ClearAndGrant(aclData, idProfile);
                    }
                }
            }
        }
Пример #14
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);
        }
Пример #15
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);
        }
Пример #16
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>
        ///
        public static void effettuaTrasmissioneFascDaModello(
            DocsPaVO.utente.InfoUtente infoUtente,
            DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello,
            string idStato,
            DocsPaVO.fascicolazione.Fascicolo fascicolo)
        {
            DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione();

            trasmissione.noteGenerali  = modello.VAR_NOTE_GENERALI;
            trasmissione.tipoOggetto   = DocsPaVO.trasmissione.TipoOggetto.FASCICOLO;
            trasmissione.infoFascicolo = new DocsPaVO.fascicolazione.InfoFascicolo(fascicolo);
            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
                    {
                        corr = getCorrispondenti(infoUtente, mittDest.CHA_TIPO_MITT_DEST, fascicolo, 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);

            string desc = "";

            string notify = "1";

            if (trasmissione.NO_NOTIFY != null && trasmissione.NO_NOTIFY.Equals("1"))
            {
                notify = "0";
            }
            else
            {
                notify = "1";
            }

            if (trasmissione != null)
            {
                // LOG per documento
                if (trasmissione.infoDocumento != null && !string.IsNullOrEmpty(trasmissione.infoDocumento.idProfile))
                {
                    foreach (DocsPaVO.trasmissione.TrasmissioneSingola single in trasmissione.trasmissioniSingole)
                    {
                        string method = "TRASM_DOC_" + single.ragione.descrizione.ToUpper().Replace(" ", "_");
                        if (trasmissione.infoDocumento.segnatura == null)
                        {
                            desc = "Trasmesso Documento : " + trasmissione.infoDocumento.docNumber.ToString();
                        }
                        else
                        {
                            desc = "Trasmesso Documento : " + trasmissione.infoDocumento.segnatura.ToString();
                        }

                        BusinessLogic.UserLog.UserLog.WriteLog(trasmissione.utente.userId, trasmissione.utente.idPeople, trasmissione.ruolo.idGruppo, trasmissione.utente.idAmministrazione, method, trasmissione.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, infoUtente.delegato, notify, single.systemId);
                    }
                }
                // LOG per fascicolo
                if (trasmissione.infoFascicolo != null && !string.IsNullOrEmpty(trasmissione.infoFascicolo.idFascicolo))
                {
                    foreach (DocsPaVO.trasmissione.TrasmissioneSingola single in trasmissione.trasmissioniSingole)
                    {
                        string method = "TRASM_FOLDER_" + single.ragione.descrizione.ToUpper().Replace(" ", "_");
                        desc = "Trasmesso Fascicolo ID: " + trasmissione.infoFascicolo.idFascicolo.ToString();
                        BusinessLogic.UserLog.UserLog.WriteLog(trasmissione.utente.userId, trasmissione.utente.idPeople, trasmissione.ruolo.idGruppo, trasmissione.utente.idAmministrazione, method, trasmissione.infoFascicolo.idFascicolo, desc, DocsPaVO.Logger.CodAzione.Esito.OK, infoUtente.delegato, notify, single.systemId);
                    }
                }
            }

            if (!string.IsNullOrEmpty(idStato))
            {
                BusinessLogic.DiagrammiStato.DiagrammiStato.salvaStoricoTrasmDiagrammiFasc(trasmissione.systemId, fascicolo.systemID, idStato);
            }
        }
Пример #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="infoSecurity"></param>
        public void TrasmissioneCompletataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.infoSecurity[] infoSecurityList)
        {
            this.InstanceETDOCS.TrasmissioneCompletataEventHandler(trasmissione, infoSecurityList);

            this.InstanceOCS.TrasmissioneCompletataEventHandler(trasmissione, infoSecurityList);
        }
Пример #18
0
        /// <summary>
        /// Handler dell'evento di avvenuta accettazione / rifiuto di una trasmissione di un documento / fascicolo
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="ruolo"></param>
        /// <param name="tipoRisposta"></param>
        public void TrasmissioneAccettataRifiutataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.trasmissione.TipoRisposta tipoRisposta)
        {
            this.InstanceETDOCS.TrasmissioneAccettataRifiutataEventHandler(trasmissione, ruolo, tipoRisposta);

            this.InstanceOCS.TrasmissioneAccettataRifiutataEventHandler(trasmissione, ruolo, tipoRisposta);
        }
Пример #19
0
        private static DocsPaVO.trasmissione.Trasmissione creaTrasmDaModello(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo)
        {
            DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione();

            try
            {
                DocsPaVO.documento.InfoDocumento infoDocumento = Documenti.DocManager.getInfoDocumento(schedaDocumento);
                trasmissione.infoDocumento = infoDocumento;

                DocsPaVO.utente.Utente utente = Utenti.UserManager.getUtente(infoUtente.idPeople);
                trasmissione.utente = utente;

                trasmissione.ruolo       = ruolo;
                trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO;

                trasmissione.noteGenerali = modello.VAR_NOTE_GENERALI;

                for (int i = 0; i < modello.RAGIONI_DESTINATARI.Count; i++)
                {
                    DocsPaVO.Modelli_Trasmissioni.RagioneDest ragDest = (DocsPaVO.Modelli_Trasmissioni.RagioneDest)modello.RAGIONI_DESTINATARI[i];
                    ArrayList destinatari = new ArrayList(ragDest.DESTINATARI);
                    for (int j = 0; j < destinatari.Count; j++)
                    {
                        DocsPaVO.Modelli_Trasmissioni.MittDest mittDest = (DocsPaVO.Modelli_Trasmissioni.MittDest)destinatari[j];

                        DocsPaVO.trasmissione.RagioneTrasmissione ragione = Trasmissioni.QueryTrasmManager.getRagioneById(mittDest.ID_RAGIONE.ToString());

                        DocsPaVO.utente.Corrispondente corr = Utenti.UserManager.getCorrispondenteBySystemID(mittDest.ID_CORR_GLOBALI.ToString());

                        if (corr != null) //corr nullo se non esiste o se è stato disabilitato
                        {
                            // Aggiungo la trasmissione singola
                            DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola();
                            trasmissioneSingola.tipoTrasm             = mittDest.CHA_TIPO_TRASM;
                            trasmissioneSingola.corrispondenteInterno = corr;
                            trasmissioneSingola.ragione     = ragione;
                            trasmissioneSingola.noteSingole = mittDest.VAR_NOTE_SING;

                            // RUOLO
                            if (corr is DocsPaVO.utente.Ruolo)
                            {
                                trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO;
                                ArrayList listaUtenti = queryUtenti(corr, modello.ID_AMM);
                                if (listaUtenti.Count == 0)
                                {
                                    trasmissioneSingola = null;
                                }

                                for (int ut = 0; ut < listaUtenti.Count; ut++)
                                {
                                    DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente();

                                    trasmissioneUtente.utente       = (DocsPaVO.utente.Utente)listaUtenti[ut];
                                    trasmissioneUtente.daNotificare = true;
                                    trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
                                }
                            }

                            // UTENTE
                            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;
                                trasmissioneUtente.daNotificare = true;
                                trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente);
                            }

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

            return(trasmissione);
        }
Пример #20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="tipo_destinatario"></param>
        /// <param name="fascicolo"></param>
        /// <param name="trasmissione"></param>
        /// <returns></returns>
        public static DocsPaVO.utente.Corrispondente getCorrispondenti(
            DocsPaVO.utente.InfoUtente infoUtente,
            string tipo_destinatario,
            DocsPaVO.fascicolazione.Fascicolo fascicolo,
            DocsPaVO.trasmissione.Trasmissione trasmissione)
        {
            DocsPaVO.utente.Corrispondente corr = null;

            //se la il modello di trasmissione ha come destinatario l'utente proprietario del documento

            //trsmissione a utente proprietario del documento
            if (tipo_destinatario == "UT_P")
            {
                corr = BusinessLogic.Utenti.UserManager.getCorrispondenteByIdPeople(fascicolo.creatoreFascicolo.idPeople, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
            }
            //ruolo proprietario
            else if (tipo_destinatario == "R_P")
            {
                corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(fascicolo.creatoreFascicolo.idCorrGlob_Ruolo, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
            }
            //uo proprietaria
            else if (tipo_destinatario == "UO_P")
            {
                corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(fascicolo.creatoreFascicolo.idCorrGlob_UO, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
            }
            //responsabile uo proprietario
            else if (tipo_destinatario == "RSP_P")
            {
                string idCorrGlobaliUo          = fascicolo.creatoreFascicolo.idCorrGlob_UO;
                string idCorr                   = fascicolo.creatoreFascicolo.idCorrGlob_Ruolo;
                string idCorrGlobaliRuoloRespUo = BusinessLogic.Utenti.UserManager.getRuoloRespUofromUo(idCorrGlobaliUo, "R", idCorr);

                if (idCorrGlobaliRuoloRespUo != "0" && idCorrGlobaliRuoloRespUo != "-1")
                {
                    corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(idCorrGlobaliRuoloRespUo, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
                }
            }
            //ruolo segretario uo del proprietario
            else if (tipo_destinatario == "R_S")
            {
                string idCorrGlobaliUo          = fascicolo.creatoreFascicolo.idCorrGlob_UO;
                string idCorr                   = fascicolo.creatoreFascicolo.idCorrGlob_Ruolo;
                string idCorrGlobaliRuoloRespUo = BusinessLogic.Utenti.UserManager.getRuoloRespUofromUo(idCorrGlobaliUo, "S", idCorr);

                if (idCorrGlobaliRuoloRespUo != "0" && idCorrGlobaliRuoloRespUo != "-1")
                {
                    corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(idCorrGlobaliRuoloRespUo, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
                }
            }
            //ruolo responsabile uo del mittente
            else if (tipo_destinatario == "RSP_M")
            {
                string idCorrGlobaliUo = trasmissione.ruolo.uo.systemId;
                string idCorr          = trasmissione.ruolo.systemId;

                string idCorrGlobaliRuoloRespUo = BusinessLogic.Utenti.UserManager.getRuoloRespUofromUo(idCorrGlobaliUo, "R", idCorr);

                if (idCorrGlobaliRuoloRespUo != "0" && idCorrGlobaliRuoloRespUo != "-1")
                {
                    corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(idCorrGlobaliRuoloRespUo, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
                }
            }
            //RUOLO SEGRETARIO UO DEL MITTENTE
            else if (tipo_destinatario == "S_M")
            {
                string idCorrGlobaliUo          = trasmissione.ruolo.uo.systemId;
                string idCorr                   = trasmissione.ruolo.systemId;
                string idCorrGlobaliRuoloRespUo = BusinessLogic.Utenti.UserManager.getRuoloRespUofromUo(idCorrGlobaliUo, "S", idCorr);

                if (idCorrGlobaliRuoloRespUo != "0" && idCorrGlobaliRuoloRespUo != "-1")
                {
                    corr = BusinessLogic.Utenti.UserManager.getCorrispondenteCompletoBySystemId(idCorrGlobaliRuoloRespUo, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
                }
            }

            return(corr);
        }
Пример #21
0
 /// <summary>
 /// Handler dell'evento di avvenuta accettazione / rifiuto di una trasmissione di un documento / fascicolo
 /// </summary>
 /// <param name="trasmissione"></param>
 /// <param name="ruolo"></param>
 /// <param name="tipoRisposta"></param>
 public void TrasmissioneAccettataRifiutataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.trasmissione.TipoRisposta tipoRisposta)
 {
 }
Пример #22
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="trasmissione"></param>
 /// <param name="infoSecurity"></param>
 public void TrasmissioneCompletataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.infoSecurity[] infoSecurityList)
 {
 }
Пример #23
0
        /// <summary>
        /// Trasmissione di notifica di conversione in PDF terminata (con successo o meno)
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="documentoConvertito"></param>
        /// <param name="noteGenerali">
        /// Note generali da inserire nella trasmissione
        /// </param>
        /// <param name="noteIndividuali"></param>
        private static void ExecuteTrasmissione(DocsPaVO.utente.InfoUtente infoUtente,
                                                DocsPaVO.documento.SchedaDocumento documentoConvertito,
                                                string noteGenerali)
        {
            try
            {
                if (documentoConvertito == null)
                {
                    throw new ApplicationException("Scheda Documento non disponibile per la trasmissione");
                }

                DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.UserManager.getUtente(infoUtente.idPeople);

                //Effettuo una trasmissione all'utente per comunicare l'esito della conversione pdf
                DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione();

                trasmissione.utente       = utente;
                trasmissione.tipoOggetto  = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO;
                trasmissione.noteGenerali = noteGenerali;

                string commandText = "(SELECT SYSTEM_ID FROM DPA_CORR_GLOBALI WHERE ID_GRUPPO = " + infoUtente.idGruppo + ")";
                trasmissione.ruolo         = BusinessLogic.Utenti.UserManager.getRuolo(commandText);
                trasmissione.infoDocumento = BusinessLogic.Documenti.DocManager.getInfoDocumento(documentoConvertito);

                DocsPaVO.trasmissione.RagioneTrasmissione ragione = BusinessLogic.Trasmissioni.RagioniManager.getRagioneNotifica(trasmissione.ruolo.idAmministrazione);
                DocsPaVO.utente.Corrispondente            corr    = null;
                string tipoNotify = "";
                if (!string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["PDF_CONVERT_SERVER_NOTIFY"].ToString()))
                {
                    tipoNotify = System.Configuration.ConfigurationManager.AppSettings["PDF_CONVERT_SERVER_NOTIFY"].ToString();
                }

                if (tipoNotify != "" || tipoNotify != "0")
                {
                    if (tipoNotify == "RS")
                    {
                        corr         = (DocsPaVO.utente.Corrispondente)BusinessLogic.Utenti.UserManager.getRuolo(commandText);
                        trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "S");
                    }
                    if (tipoNotify == "RT")
                    {
                        corr         = (DocsPaVO.utente.Corrispondente)BusinessLogic.Utenti.UserManager.getRuolo(commandText);
                        trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "T");
                    }
                    if (tipoNotify == "US")
                    {
                        //corr = (DocsPaVO.utente.Corrispondente) utente;
                        corr         = BusinessLogic.Utenti.UserManager.getCorrispondenteByIdPeople(utente.idPeople, DocsPaVO.addressbook.TipoUtente.INTERNO, infoUtente);
                        trasmissione = BusinessLogic.Trasmissioni.TrasmManager.addTrasmissioneSingola(trasmissione, corr, ragione, string.Empty, "S");
                    }

                    trasmissione = BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(infoUtente.urlWA, trasmissione);
                    if (trasmissione == null)
                    {
                        throw new ApplicationException();
                    }
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Format("Si è verificato un errore nell'invio della trasmissione di notifica all'utente '{0}' di conversione in PDF del documento. NoteGenerali di trasmissione: '{1}', Note individuali di trasmissione: '{2}'",
                                                    infoUtente.userId,
                                                    noteGenerali,
                                                    string.Empty);

                logger.Debug(errorMessage, ex);
            }
        }
Пример #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="serverName"></param>
        /// <param name="path"></param>
        /// <param name="messaggio"></param>
        /// <param name="infoUtente"></param>
        /// <param name="ruolo"></param>
        /// <param name="registro"></param>
        /// <param name="destinatario"></param>
        private static void processaMessaggio(string serverName, string path, ZfLib.Message messaggio, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Registro registro, DocsPaVO.utente.Corrispondente destinatario)
        {
            logger.Debug("processaMessaggio");
            System.IO.FileStream fs = null;
            bool daAggiornareUffRef = false;
            bool dbOpen             = false;
            bool fsOpen             = false;

            try
            {
                //informazioni sul fax
                string dataRic = messaggio.GetMsgHistories()[0].Date.ToString();
                logger.Debug(" @ dataric = " + dataRic);

                //accesso al file del fax
                fs = getFileStream(path + messaggio.GetMsgInfo().Body);              //=new System.IO.FileStream(path+messaggio.GetMsgInfo().Body+".G3N",System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,System.IO.FileShare.ReadWrite);

                logger.Debug(fs.CanRead.ToString() + "@ OK @");
                fsOpen = true;

                //creazione scheda documento
                DocsPaVO.documento.SchedaDocumento sd = new DocsPaVO.documento.SchedaDocumento();
                sd.idPeople = infoUtente.idPeople;

                logger.Debug("sd.idPeople = " + sd.idPeople.ToString());

                sd.userId = infoUtente.userId;
                logger.Debug("sd.userId = " + sd.userId.ToString());
                DocsPaVO.documento.Oggetto ogg = new DocsPaVO.documento.Oggetto();
                ogg.descrizione = "Fax ricevuto in data " + dataRic;              //DA COMPLETARE
                sd.oggetto      = ogg;
                sd.predisponiProtocollazione = true;
                sd.registro  = registro;
                sd.tipoProto = "A";
                sd.typeId    = "MAIL";

                //aggiunta protocollo entrata
                DocsPaVO.documento.ProtocolloEntrata protEntr = new DocsPaVO.documento.ProtocolloEntrata();
                DocsPaVO.utente.Corrispondente       mittente = new DocsPaVO.utente.Corrispondente();
                mittente.descrizione = messaggio.GetMsgInfo().Comment;
                logger.Debug(" @ mittente.descrizione = " + mittente.descrizione);               //"QUI SI METTONO INFORMAZIONI";
                protEntr.mittente = mittente;

                sd.protocollo = protEntr;
                protEntr.dataProtocollazione = System.DateTime.Today.ToString();
                sd.appId = "ACROBAT";
                sd       = BusinessLogic.Documenti.DocSave.addDocGrigia(sd, infoUtente, ruolo);
                logger.Debug("Salvataggio doc...");
                sd = BusinessLogic.Documenti.DocSave.save(infoUtente, sd, false, out daAggiornareUffRef, ruolo);
                logger.Debug("Salvataggio eseguito");
                DocsPaVO.documento.FileDocumento fd = new DocsPaVO.documento.FileDocumento();
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
                fd.content = buffer;
                fd.length  = buffer.Length;
                fd.name    = "fax.tif";

                BusinessLogic.Documenti.FileManager.putFile((DocsPaVO.documento.FileRequest)sd.documenti[0], fd, infoUtente);
                logger.Debug("Documento inserito");
                fs.Close();
                fsOpen = false;

                //TRASMISSIONE
                DocsPaVO.trasmissione.Trasmissione trasm = new DocsPaVO.trasmissione.Trasmissione();
                trasm.ruolo = ruolo;
                //db.openConnection();
                dbOpen       = true;
                trasm.utente = BusinessLogic.Utenti.UserManager.getUtente(infoUtente.idPeople);
                DocsPaVO.documento.InfoDocumento infoDoc = new DocsPaVO.documento.InfoDocumento();
                infoDoc.idProfile   = sd.systemId;
                infoDoc.docNumber   = sd.docNumber;
                infoDoc.oggetto     = sd.oggetto.descrizione;
                infoDoc.tipoProto   = "A";
                trasm.infoDocumento = infoDoc;
                //costruzione singole trasmissioni
                DocsPaVO.trasmissione.RagioneTrasmissione ragione = getRagioneTrasm();
                System.Collections.ArrayList dest = new System.Collections.ArrayList();
                dest.Add(destinatario);
                System.Collections.ArrayList trasmissioniSing = new System.Collections.ArrayList();

                for (int i = 0; i < dest.Count; i++)
                {
                    DocsPaVO.trasmissione.TrasmissioneSingola trSing = new DocsPaVO.trasmissione.TrasmissioneSingola();
                    trSing.ragione = ragione;
                    logger.Debug(dest[i].GetType().ToString());
                    if (dest[i].GetType().Equals(typeof(DocsPaVO.utente.Ruolo)))
                    {
                        logger.Debug("ruolo");
                        trSing.corrispondenteInterno = (DocsPaVO.utente.Ruolo)dest[i];
                    }
                    else
                    {
                        logger.Debug("utente");
                        trSing.corrispondenteInterno = (DocsPaVO.utente.Utente)dest[i];
                    }
                    logger.Debug("ok");
                    trSing.tipoTrasm = "S";
                    if (dest[i].GetType().Equals(typeof(DocsPaVO.utente.Ruolo)))
                    {
                        logger.Debug("caso ruolo");
                        trSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO;
                        //ricerca degli utenti del ruolo
                        System.Collections.ArrayList             utenti = new System.Collections.ArrayList();
                        DocsPaVO.addressbook.QueryCorrispondente qc     = new DocsPaVO.addressbook.QueryCorrispondente();
                        qc.codiceRubrica = ((DocsPaVO.utente.Ruolo)dest[i]).codiceRubrica;
                        System.Collections.ArrayList registri = new System.Collections.ArrayList();
                        registri.Add(registro.systemId);
                        qc.idRegistri        = registri;
                        qc.idAmministrazione = registro.idAmministrazione;
                        qc.getChildren       = true;
                        utenti = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qc);
                        System.Collections.ArrayList trasmissioniUt = new System.Collections.ArrayList();
                        for (int k = 0; k < utenti.Count; k++)
                        {
                            DocsPaVO.trasmissione.TrasmissioneUtente trUt = new DocsPaVO.trasmissione.TrasmissioneUtente();
                            trUt.utente = (DocsPaVO.utente.Utente)utenti[k];
                            trasmissioniUt.Add(trUt);
                        }
                        trSing.trasmissioneUtente = trasmissioniUt;
                    }
                    else
                    {
                        logger.Debug("Caso utente");
                        trSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE;
                        System.Collections.ArrayList             trasmissioniUt = new System.Collections.ArrayList();
                        DocsPaVO.trasmissione.TrasmissioneUtente trUt           = new DocsPaVO.trasmissione.TrasmissioneUtente();
                        trUt.utente = (DocsPaVO.utente.Utente)dest[i];
                        trasmissioniUt.Add(trUt);
                        trSing.trasmissioneUtente = trasmissioniUt;
                    }
                    trasmissioniSing.Add(trSing);
                }

                trasm.trasmissioniSingole = trasmissioniSing;
                if (infoUtente.delegato != null)
                {
                    trasm.delegato = ((DocsPaVO.utente.InfoUtente)(infoUtente.delegato)).idPeople;
                }
                //BusinessLogic.Trasmissioni.TrasmManager.saveTrasmMethod(trasm);
                //BusinessLogic.Trasmissioni.ExecTrasmManager.executeTrasmMethod(serverName,trasm);
                BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(serverName, trasm);
            }
            catch (Exception e)
            {
                logger.Debug(e.Message);
                if (fsOpen)
                {
                    fs.Close();
                }
                if (dbOpen)
                {
                    //db.closeConnection();
                }

                logger.Debug("Errore nella gestione dei fax (processaMessaggio)", e);
                throw e;
            }
        }
Пример #25
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="idDestinatari"></param>
        /// <returns></returns>
        protected virtual void UpdateTrasmissione(
            DocsPaVO.trasmissione.Trasmissione trasmissione,
            params string[] idDestinatari)
        {
            DocsPaVO.trasmissione.TrasmissioneSingola[] tsingole = (DocsPaVO.trasmissione.TrasmissioneSingola[])
                                                                   trasmissione.trasmissioniSingole.ToArray(typeof(DocsPaVO.trasmissione.TrasmissioneSingola));

            foreach (string idDest in idDestinatari)
            {
                if (tsingole.Count(e => e.corrispondenteInterno.systemId == idDest) == 0)
                {
                    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)
                    {
                        // Reperimento ragione trasmissione di default
                        string idRagioneDefault = BusinessLogic.Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(this._infoUtente.idAmministrazione).IDRagioneCompetenza;

                        DocsPaVO.trasmissione.RagioneTrasmissione ragione = BusinessLogic.Trasmissioni.QueryTrasmManager.getRagioneById(idRagioneDefault);

                        string tipoTrasm = (this._tipoTrasmissione == TipiTrasmissioneEnum.Utente ? "S" : "T");

                        trasmissione = AddTrasmissioneSingola(this._infoUtente,
                                                              trasmissione,
                                                              corrispondenteDestinatario,
                                                              ragione,
                                                              string.Empty,
                                                              tipoTrasm,
                                                              0);
                    }
                }
            }
        }
Пример #26
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);
        }