Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ruolo"></param>
        /// <returns></returns>
        public EsitoOperazione InserisciRuolo(OrgRuolo ruolo, bool computeAtipicita)
        {
            DocsPaDB.Query_DocsPAWS.Amministrazione  dbAmm = new DocsPaDB.Query_DocsPAWS.Amministrazione();
            DocsPaVO.amministrazione.EsitoOperazione esito = new DocsPaVO.amministrazione.EsitoOperazione();

            //verifica se il codice è univoco sulla corr_globali
            DocsPaDB.Query_DocsPAWS.AmministrazioneXml obj = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml();
            if (!obj.CheckCountCondition("DPA_CORR_GLOBALI", "UPPER(VAR_CODICE)=UPPER('" + ruolo.Codice + "') AND ID_AMM=" + ruolo.IDAmministrazione))
            {
                esito.Codice      = 1;
                esito.Descrizione = "codice già utilizzato da altro ruolo";
            }
            else
            {
                //verifica se il codice è univoco sulla groups
                if (!obj.CheckCountCondition("GROUPS", "UPPER(GROUP_ID)=UPPER('" + ruolo.Codice + "')"))
                {
                    esito.Codice      = 2;
                    esito.Descrizione = "codice già utilizzato da altro gruppo";
                }
                else
                {
                    if (!dbAmm.AmmInsNuovoRuolo(ruolo))
                    {
                        esito.Codice      = 3;
                        esito.Descrizione = "si è verificato un errore: inserimento del ruolo";
                    }

                    //verifica se si vuole disabilitare alla ricezione delle trasmissioni un ruolo di riferimento
                    if (ruolo.DiRiferimento.ToString().Equals("1") && ruolo.DisabledTrasm.ToString().Equals("1"))
                    {
                        esito.Codice      = 4;
                        esito.Descrizione = "Impossibile disabilitare alla ricezione delle trasmissioni un ruolo di riferimento";
                    }
                }
            }

            // Se è richiesto il calcolo dell'atipicità, viene richiamata la procedura
            if (esito.Codice == 0 && computeAtipicita)
            {
                try
                {
                    using (DocsPaDB.Query_DocsPAWS.Documentale doc = new DocsPaDB.Query_DocsPAWS.Documentale())
                        doc.CalcolaAtipicitaRuoliSottoposti(ruolo);
                }
                catch (Exception e)
                {
                    esito.Codice      = 5;
                    esito.Descrizione = "Errore durante il calcolo di atipicità su documenti e fascicoli dei ruoli sottoposti";
                }
            }

            obj   = null;
            dbAmm = null;

            return(esito);
        }