Esempio n. 1
0
        /// <summary>
        /// Formatta il codice della fascicolatura a seconda del formato
        /// specificato per la corrente amministrazione
        /// </summary>
        /// <param name="idAmm">Id Amministrazione</param>
        /// <param name="codTitolo">codice classifica</param>
        /// <param name="data">data corrente</param>
        /// <param name="codFascicolo">codice del fascicolo</param>
        /// <param name="onlyFormatCode">True se deve essere solamente formattato il codice, false se deve essere
        /// anche calcolato il nuovo codice fascicolo</param>
        /// <returns>Codice formattato</returns>
        //private string CalcolaCodiceFascicolo(string idAmm, string codTitolo, string data, string systemIdTitolario, ref string codFascicolo, bool onlyFormatCode, DocsPaDB.DBProvider dbProvider)
        private string CalcolaCodiceFascicolo(string idAmm, Classificazione classificazione, string data, ref string codFascicolo, bool onlyFormatCode, DocsPaDB.DBProvider dbProvider)
        {
            logger.Info("BEGIN");
            string format = "";

            if (!onlyFormatCode)
            {
                // caso in cui devo calcolare il codice fascicolo e poi formattarlo
                string sqlCommand = "SELECT MAX (NUM_FASCICOLO) + 1 " +
                                    "FROM PROJECT A " +
                                    //"WHERE CHA_TIPO_PROJ = 'F' AND CHA_TIPO_FASCICOLO = 'P' AND ID_PARENT ='" + systemIdTitolario + "'";
                                    "WHERE CHA_TIPO_PROJ = 'F' AND CHA_TIPO_FASCICOLO = 'P' AND ID_PARENT ='" + classificazione.systemID + "'";

                dbProvider.ExecuteScalar(out codFascicolo, sqlCommand);
            }
            logger.Debug("getCodiceFascicolo");
            //logger.Debug("codTitolo " + codTitolo);
            logger.Debug("codTitolo " + classificazione.codice);
            logger.Debug("data " + data);
            logger.Debug("codFascicolo " + codFascicolo);

            format = DocsPaDB.Utils.Personalization.getInstance(idAmm).FormatoFascicolatura;
            logger.Debug("format = " + format);

            //format = format.Replace("COD_TITOLO", codTitolo);
            format = format.Replace("COD_TITOLO", classificazione.codice);
            format = format.Replace("DATA_COMP", data.Substring(0, 10));
            format = format.Replace("DATA_ANNO", data.Substring(6, 4));
            format = format.Replace("NUM_PROG", codFascicolo);

            //Gestione protocollo titolario
            int indexOfContTit = format.IndexOf("CONT_TIT");

            if (indexOfContTit != -1)
            {
                Classifica[] classifica = this.GetGerarchia(classificazione.systemID, classificazione.registro, idAmm);
                if (classifica.Length > 0)
                {
                    Classifica ultimoNodoSelezionato = classifica[classifica.Length - 1];
                    if (!string.IsNullOrEmpty(ultimoNodoSelezionato.numProtoTit))
                    {
                        format = format.Replace("CONT_TIT", ultimoNodoSelezionato.numProtoTit);
                    }
                    else
                    {
                        format = format.Replace("CONT_TIT", "");
                        if (indexOfContTit > 0)
                        {
                            format = format.Remove(indexOfContTit - 1, 1);
                        }
                        else
                        {
                            format = format.Remove(indexOfContTit, 1);
                        }
                    }
                }
            }
            logger.Info("END");
            return(format);
        }
Esempio n. 2
0
        /// <summary>
        /// Creazione di un nuovo fascicolo in DocsPa
        /// </summary>
        /// <remarks>
        ///
        /// PreCondizioni:
        ///     Il fascicolo è stato inserito correttamente in DocsPa
        ///     ed è stato generato un'identificativo univoco
        ///
        /// PostCondizioni:
        ///     Creato un oggetto in Documentum corrispondente all'oggetto
        ///     fascicolo di DocsPa. L'oggetto avrà i metadati del fascicolo
        ///     per la sola consultazione in documentum.
        ///
        /// </remarks>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result)
        {
            bool retValue = true;

            //... non fa nulla
            result = ResultCreazioneFascicolo.OK;
            return(retValue);
        }
Esempio n. 3
0
        /// <summary>
        /// Creazione nuovo fascicolo
        /// </summary>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result)
        {
            logger.Info("BEGIN");
            bool retValue = this.ProjectManagerETDOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result);

            logger.Info("END");
            return(retValue);
        }
Esempio n. 4
0
        /// <summary>
        /// Creazione nuovo fascicolo
        /// </summary>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <param name="result"></param>
        /// <param name="ruoliSuperiori">
        /// Ruoli superiori cui è stata impostata la visibilità del fascicolo
        /// </param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            bool retValue = this.ProjectManagerETDOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result, out ruoliSuperiori);

            if (retValue)
            {
                retValue = this.ProjectManagerOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result);
            }

            return(retValue);
        }
Esempio n. 5
0
        public Classificazione FascicolazioneGetClassificazione(string idAmministrazione, string idGruppo, string idPeople, Registro registro, string codiceClassifica, string idTitolario)
        {
            Classificazione nodo = null;

            try
            {
                Classificazione[] result = (Classificazione[])BusinessLogic.Fascicoli.TitolarioManager.getTitolario2(idAmministrazione, idGruppo, idPeople, registro, codiceClassifica, false, idTitolario).ToArray(typeof(Classificazione));
                if (result.Length > 0)
                {
                    nodo = result[0];
                }
            }
            catch (Exception e)
            {
                logger.Debug("Hermes  - metodo: FascicolazioneGetClassificazione", e);
            }

            return(nodo);
        }
Esempio n. 6
0
        public Fascicolo FascicolazioneNewFascicolo(Classificazione classificazione, Fascicolo fascicolo, bool enableUffRef, InfoUtente infoUtente, Ruolo ruolo)
        {
            DocsPaVO.fascicolazione.Fascicolo objFascicolo = null;
            DocsPaVO.fascicolazione.ResultCreazioneFascicolo resultCreazione = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK;
            try
            {
                objFascicolo = BusinessLogic.Fascicoli.FascicoloManager.newFascicolo(classificazione, fascicolo, infoUtente, ruolo, enableUffRef, out resultCreazione);
                if (objFascicolo != null)
                {
                    BusinessLogic.UserLog.UserLog.WriteLog(infoUtente, "FASCICOLAZIONENEWFASCICOLO", objFascicolo.systemID, string.Format("{0} {1}", "Cod. Fascicolo:", objFascicolo.codice), DocsPaVO.Logger.CodAzione.Esito.OK);
                }
            }
            catch (Exception e)
            {
                resultCreazione = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.GENERIC_ERROR;
                logger.Debug("Hermes  - metodo: FascicolazioneNewFascicolo", e);
                objFascicolo = null;
            }

            return(objFascicolo);
        }
Esempio n. 7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <param name="result"></param>
        /// <param name="ruoliSuperiori"></param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            logger.Info("BEGIN");
            bool retValue = false;

            ruoliSuperiori = null;

            using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider())
            {
                using (System.Data.IDataReader reader = dbProvider.ExecuteReader("select a.CHA_STATO from project a where a.SYSTEM_ID in (select b.ID_TITOLARIO from project b where b.SYSTEM_ID =" + classifica.systemID + ")"))
                {
                    if (reader.FieldCount > 0)
                    {
                        while (reader.Read())
                        {
                            string valorechiave = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_FASC_TUTTI_TIT");
                            if (string.IsNullOrEmpty(valorechiave) || !valorechiave.Equals("1"))
                            {
                                if (reader.GetString(reader.GetOrdinal("CHA_STATO")).ToUpper().Equals("C"))
                                {
                                    logger.Debug("sottofascilo chiuso");
                                    throw new Exception("sottofascilo chiuso");
                                }
                            }
                        }
                    }
                }

                logger.Debug(" *** INIZIO TRANSAZIONE CREAZIONE FASCICOLO ***");
                dbProvider.BeginTransaction();

                fascicolo.idClassificazione = classifica.systemID;

                result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK;
                DocsPaVO.fascicolazione.Folder             folder    = new DocsPaVO.fascicolazione.Folder();
                DocsPaDB.Query_DocsPAWS.AmministrazioneXml objAX     = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml();
                DocsPaDB.Query_DocsPAWS.Fascicoli          fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli();

                try
                {
                    fascicolo.stato = "A";
                    fascicolo.tipo  = "P";

                    // 6 - Si aggiorna il codUltimo relativo al fascicolo (solo per ora perchè andrà tolta questa gestione)
                    if (!fascicoli.aggiornaDpaRegFasc(ref fascicolo.codUltimo, fascicolo.idClassificazione, fascicolo.idRegistro, dbProvider))
                    {
                        throw new Exception("Errore nell'aggiornamento della tabella dpa_reg_fasc");
                    }

                    //prova per verifica codice univoco
                    string format = DocsPaDB.Utils.Personalization.getInstance(this.UserInfo.idAmministrazione).FormatoFascicolatura;
                    if (format == null || format.Equals(""))
                    {
                        //in alcuni casi, l'oggetto Personalization non è not null, ma il formato segnatura è null!!
                        //per evitare il blocco della protocollazione a meno di un iisreset inserisco questo codice.
                        logger.Debug("Ricalcolo Personalization");
                        DocsPaDB.Utils.Personalization.Reset();
                        format = DocsPaDB.Utils.Personalization.getInstance(this.UserInfo.idAmministrazione).FormatoFascicolatura;
                        if (format == null || format.Equals(""))
                        {
                            throw new FormatoFascicolaturaException();
                        }
                    }

                    //string codiceFasc = this.CalcolaCodiceFascicolo(this.UserInfo.idAmministrazione, classifica.codice, fascicolo.apertura, classifica.systemID, ref fascicolo.codUltimo, true, dbProvider);
                    string codiceFasc = this.CalcolaCodiceFascicolo(this.UserInfo.idAmministrazione, classifica, fascicolo.apertura, ref fascicolo.codUltimo, true, dbProvider);
                    string idReg      = fascicolo.idRegistro;

                    if (idReg != null && idReg == "")
                    {
                        idReg = classifica.registro.systemId;
                    }

                    // 4 - Si verifica che il codice sia univoco
                    if (!objAX.CheckUniqueCode("PROJECT", "VAR_CODICE", codiceFasc, "AND ((ID_REGISTRO IS NULL OR ID_REGISTRO=" + idReg + " ) ) AND ID_AMM =" + this.UserInfo.idAmministrazione + " AND ID_PARENT = " + classifica.systemID + "", dbProvider))
                    {
                        // 4 - Si verifica se il codice è già presente vienelanciata una eccezione
                        //codiceFascNew = calcolaCodiceFascicolo(infoUtente.idAmministrazione,classificazione.codice, fascicolo.apertura, classificazione.systemID, ref fascicolo.codUltimo, false, dbProvider);
                        throw new FascicoloPresenteException();
                    }

                    // Creazione fascicolo
                    string idPeopleDelegato = string.Empty;
                    if (fascicolo.creatoreFascicolo != null && fascicolo.creatoreFascicolo.idPeopleDelegato != null)
                    {
                        idPeopleDelegato = fascicolo.creatoreFascicolo.idPeopleDelegato;
                    }
                    string systemIdFasc = this.CreateProject(fascicolo.descrizione, idPeopleDelegato);

                    if (systemIdFasc != null && systemIdFasc != "")
                    {
                        fascicolo.systemID = systemIdFasc;

                        /* 2 - VIENE INVOCATO IL METODO PER LA CREAZIONE DEL FASCICOLO
                         * e della ROOT FOLDER */
                        bool resultNewFasc = this.CreazioneFascicoloConTransazione(classifica, fascicolo, this.UserInfo, ruolo, enableUfficioReferente, folder, codiceFasc, dbProvider, out ruoliSuperiori);

                        //3 - SE LA CREAZIONE DEL FASCICOLO è ANDATA A BUON FINE SI EFFETTUA IL COMMIT
                        //DELLA TRANSAZIONE
                        if (resultNewFasc)
                        {
                            result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK;
                        }
                        else
                        {
                            throw new Exception("Errore nella gestione dei fascicoli (newFascicolo)");
                        }
                    }
                    else
                    {
                        throw new Exception("Errore nella gestione dei fascicoli (newFascicolo)");
                    }

                    //Profilazione dinamica fascicoli
                    if (fascicolo.template != null)
                    {
                        DocsPaDB.Query_DocsPAWS.ModelFasc modelFasc = new DocsPaDB.Query_DocsPAWS.ModelFasc();
                        modelFasc.salvaInserimentoUtenteProfDimFasc(fascicolo.template, fascicolo.systemID);
                    }
                    //Fine profilazione dinamica fascicoli

                    logger.Debug("Fascicolo creato: idFascicolo = " + fascicolo.systemID);
                    logger.Debug("Folder creata: = " + folder.systemID);

                    if (result == ResultCreazioneFascicolo.OK)
                    {
                        retValue = true;
                    }
                }
                catch (FascicoloPresenteException e)
                {
                    retValue  = false;
                    fascicolo = null;
                    result    = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.FASCICOLO_GIA_PRESENTE;

                    logger.Debug(e.Message);
                }
                catch (FormatoFascicolaturaException e)
                {
                    retValue  = false;
                    fascicolo = null;
                    result    = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.FORMATO_FASCICOLATURA_NON_PRESENTE;

                    logger.Debug(e.Message);
                }
                catch (Exception e)
                {
                    //SE LA CREAZIONE DEL FASCICOLO GENERA ERRORE,
                    //SI RILASCIANO RISORSE ALLOCATE E SI EFFETTUA IL ROLLBACK DELLA TRANSAZIONE
                    retValue  = false;
                    fascicolo = null;
                    result    = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.GENERIC_ERROR;

                    logger.Debug(e.Message);
                }

                if (retValue)
                {
                    dbProvider.CommitTransaction();
                }
                else
                {
                    dbProvider.RollbackTransaction();
                }
            }
            logger.Info("END");
            return(retValue);
        }
Esempio n. 8
0
 /// <summary>
 /// Creazione di un nuovo fascicolo
 /// </summary>
 /// <param name="classifica">Nodo di classificazione in cui creare il fascicolo</param>
 /// <param name="fascicolo">Metadati del fascicolo</param>
 /// <param name="ruolo">Ruolo dell'utente che inserisce il fascicolo</param>
 /// <param name="enableUfficioReferente"></param>
 /// <param name="result">Esito dettagliato dell'inserimento del fascicolo</param>
 /// <returns></returns>
 public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result)
 {
     Ruolo[] ruoliSuperiori;
     return(this.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result, out ruoliSuperiori));
 }
Esempio n. 9
0
        public virtual BandoSyncResponse InsertBando(BandoSyncRequest _bandoSyncRequest)
        {
            string user                = string.Empty;
            string password            = "******";
            string codiceNodoTitolario = string.Empty;
            string NomeTemplate        = string.Empty;

            if (ConfigurationManager.AppSettings["UtenteIntegrazione"] != null)
            {
                user = ConfigurationManager.AppSettings["UtenteIntegrazione"];
            }

            if (ConfigurationManager.AppSettings["CodiceNodoTitolario"] != null)
            {
                codiceNodoTitolario = ConfigurationManager.AppSettings["CodiceNodoTitolario"];
            }

            if (ConfigurationManager.AppSettings["NomeTemplate"] != null)
            {
                NomeTemplate = ConfigurationManager.AppSettings["NomeTemplate"];
            }

            BandoSyncResponse _BandoSyncResponse = new BandoSyncResponse();
            Utility           _utility           = new Utility();
            UserLogin         login = new UserLogin();

            login.UserName = user;
            login.Password = password;
            Utente utente = _utility.Login(login);

            if (utente.ruoli.Count > 0)
            {
                Ruolo      ruolo    = utente.ruoli[0] as Ruolo;
                Registro[] registri = _utility.RegistroGetRegistriRuolo(ruolo.systemId);
                if (registri.Length > 0)
                {
                    OrgTitolario _classificazione = _utility.GetTitolarioAttivo(utente.idAmministrazione);
                    if (_classificazione != null)
                    {
                        Classificazione nodo = _utility.FascicolazioneGetClassificazione(ruolo.idAmministrazione, ruolo.idGruppo, utente.idPeople, registri[0], codiceNodoTitolario, _classificazione.ID);
                        if (nodo != null)
                        {
                            Templates template = BusinessLogic.ProfilazioneDinamica.ProfilazioneFascicoli.getTemplateByDescrizione(NomeTemplate);
                            if (template.ELENCO_OGGETTI.Count > 0)
                            {
                                template.ELENCO_OGGETTI[0]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[0] as OggettoCustom, _bandoSyncRequest.Mandante);
                                template.ELENCO_OGGETTI[1]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[1] as OggettoCustom, _bandoSyncRequest.NumeroGaraAppalto.ToString());
                                template.ELENCO_OGGETTI[2]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[2] as OggettoCustom, _bandoSyncRequest.OrganizzazioneAcquisti);
                                template.ELENCO_OGGETTI[3]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[3] as OggettoCustom, _bandoSyncRequest.GruppoAcquisti);
                                template.ELENCO_OGGETTI[4]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[4] as OggettoCustom, _bandoSyncRequest.DescrizioneGara);
                                template.ELENCO_OGGETTI[5]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[5] as OggettoCustom, _bandoSyncRequest.DataScadenzaGara.ToString());
                                template.ELENCO_OGGETTI[6]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[6] as OggettoCustom, _bandoSyncRequest.DataEmissioneGara.ToString());
                                template.ELENCO_OGGETTI[7]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[7] as OggettoCustom, _bandoSyncRequest.DataAperturaBusteTecniche.ToString());
                                template.ELENCO_OGGETTI[8]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[8] as OggettoCustom, _bandoSyncRequest.DataRicezioneRelazioneTecnica.ToString());
                                template.ELENCO_OGGETTI[9]  = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[9] as OggettoCustom, _bandoSyncRequest.DataAperturaBusteEconomiche.ToString());
                                template.ELENCO_OGGETTI[10] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[10] as OggettoCustom, _bandoSyncRequest.DataPropostaAggiudicazioneTrattativa.ToString());
                                template.ELENCO_OGGETTI[11] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[11] as OggettoCustom, _bandoSyncRequest.DataAggiudicazione.ToString());
                                template.ELENCO_OGGETTI[12] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[12] as OggettoCustom, _bandoSyncRequest.DataAnnulamentoGara.ToString());
                                template.ELENCO_OGGETTI[13] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[13] as OggettoCustom, _bandoSyncRequest.ValoreGara.ToString());

                                InfoUtente        infoutente  = BusinessLogic.Utenti.UserManager.GetInfoUtente(utente, ruolo);
                                FiltroRicerca[][] listaFiltri = new FiltroRicerca[1][];
                                listaFiltri[0] = new FiltroRicerca[1];
                                List <FiltroRicerca> fVList = new List <FiltroRicerca>();
                                FiltroRicerca        fV1    = new FiltroRicerca();
                                fV1.argomento = listaArgomenti.TIPO_FASCICOLO.ToString();
                                fV1.valore    = "P";
                                fVList.Add(fV1);

                                fV1.argomento = listaArgomenti.PROFILAZIONE_DINAMICA.ToString();
                                fV1.template  = template;
                                fV1.argomento = string.Empty;
                                fVList.Add(fV1);


                                listaFiltri[0] = fVList.ToArray();
                                //La classificazione è null perchè non specifico nessun nodo di titolario
                                //Ricerco i fascicoli
                                Fascicolo[] fascicoli     = _utility.FascicolazioneGetListaFascicoli(null, listaFiltri[0], false, false, false, infoutente);
                                Fascicolo   _fascicoloNew = null;
                                if (fascicoli.Length > 0)
                                {
                                    fascicoli[0].template = template;
                                    _fascicoloNew         = BusinessLogic.Fascicoli.FascicoloManager.updateFascicolo(fascicoli[0]);
                                    if (_fascicoloNew != null)
                                    {
                                        _BandoSyncResponse.CodiceEsito = 0;
                                        _BandoSyncResponse.DescrEsito  = "Modifica effettuata correttamente";
                                    }
                                }
                                else
                                {
                                    Fascicolo _fascicolo = new Fascicolo();
                                    _fascicolo.descrizione = _bandoSyncRequest.DescrizioneGara;
                                    _fascicolo.idRegistro  = registri[0].systemId;
                                    _fascicolo.apertura    = System.DateTime.Now.ToShortDateString();
                                    _fascicolo.privato     = "0";
                                    _fascicolo.codUltimo   = _utility.FascicolazioneGetFascNumRif(nodo.systemID, registri[0].systemId);
                                    _fascicolo.template    = template;
                                    //creazione di un nuovo fascicolo
                                    _fascicoloNew = _utility.FascicolazioneNewFascicolo(nodo, _fascicolo, false, infoutente, ruolo);

                                    if (_fascicoloNew != null)
                                    {
                                        _BandoSyncResponse.CodiceEsito = 0;
                                        _BandoSyncResponse.DescrEsito  = "Inserimento effettuato correttamente";
                                    }
                                }
                            }
                            else
                            {
                                _BandoSyncResponse.CodiceEsito = 200;
                                _BandoSyncResponse.DescrEsito  = "Il template " + NomeTemplate + " non è corretto o inesiste";
                            }
                        }
                        else
                        {
                            _BandoSyncResponse.CodiceEsito = 310;
                            _BandoSyncResponse.DescrEsito  = "Il nodo" + codiceNodoTitolario + " non è corretto o inesiste";
                        }
                    }
                    else
                    {
                        _BandoSyncResponse.CodiceEsito = 300;
                        _BandoSyncResponse.DescrEsito  = "Non è presente nessun titolario attivo";
                    }
                }
                else
                {
                    _BandoSyncResponse.CodiceEsito = 100;
                    _BandoSyncResponse.DescrEsito  = "L'utente non ha associato nessun Registro";
                }
            }
            else
            {
                _BandoSyncResponse.CodiceEsito = 600;
                _BandoSyncResponse.DescrEsito  = "Autenticazione utente fallita";
            }

            return(_BandoSyncResponse);
        }
Esempio n. 10
0
        private ContestoArchivistico getContestoArchivistico(InfoConservazione infoCons, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.InfoUtente infoUtente)
        {
            ContestoArchivistico   retval  = new ContestoArchivistico();
            List <Fascicolazione>  fasList = new List <Fascicolazione>();
            List <Classificazione> titList = new List <Classificazione>();

            object[] fasAList = BusinessLogic.Fascicoli.FascicoloManager.getFascicoliDaDocNoSecurity(infoUtente, schDoc.systemId).ToArray();
            foreach (object fo in fasAList)
            {
                DocsPaVO.fascicolazione.Fascicolo fas = fo as DocsPaVO.fascicolazione.Fascicolo;

                if (fas != null)
                {
                    if (fas.tipo == "P")
                    {
                        Fascicolazione fascicolazione = new Fascicolazione();

                        fascicolazione.DescrizioneFascicolo = fas.descrizione;
                        fascicolazione.CodiceFascicolo      = fas.codice;

                        fascicolazione.CodiceSottofascicolo      = null;
                        fascicolazione.DescrizioneSottofascicolo = null;


                        fasList.Add(fascicolazione);
                        if (fas.idTitolario != null)
                        {
                            OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario);
                            fascicolazione.TitolarioDiRierimento = nodo.Descrizione;
                        }


                        foreach (DocsPaVO.fascicolazione.Folder f in BusinessLogic.Fascicoli.FolderManager.GetFoldersDocument(schDoc.systemId, fas.systemID))
                        {
                            Fascicolazione fasFolder = new Fascicolazione();
                            fasFolder.CodiceFascicolo           = fas.descrizione;
                            fasFolder.DescrizioneFascicolo      = fas.codice;
                            fasFolder.CodiceSottofascicolo      = f.systemID;
                            fasFolder.DescrizioneSottofascicolo = f.descrizione;
                            fasFolder.TitolarioDiRierimento     = fascicolazione.TitolarioDiRierimento;
                            fasList.Add(fasFolder);
                        }
                    }
                    else
                    {
                        OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario);
                        Classificazione  cl   = new Classificazione();
                        cl.TitolarioDiRiferimento = nodo.Descrizione;
                        cl.CodiceClassificazione  = nodo.Codice;
                        titList.Add(cl);
                    }
                }
            }



            List <DocumentoCollegato> lstDocColl = new List <DocumentoCollegato>();

            if (schDoc.rispostaDocumento != null)
            {
                if ((schDoc.rispostaDocumento.docNumber != null) && (schDoc.rispostaDocumento.idProfile != null))
                {
                    SchedaDocumento    sc      = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, schDoc.rispostaDocumento.idProfile, schDoc.rispostaDocumento.docNumber);
                    DocumentoCollegato docColl = new DocumentoCollegato
                    {
                        IDdocumento   = schDoc.rispostaDocumento.idProfile,
                        DataCreazione = Utils.formattaData(Utils.convertiData(sc.dataCreazione)),
                        Oggetto       = sc.oggetto.descrizione,
                    };
                    if (sc.protocollo != null)
                    {
                        docColl.DataProtocollo      = Utils.formattaData(Utils.convertiData(sc.protocollo.dataProtocollazione));
                        docColl.NumeroProtocollo    = sc.protocollo.numero;
                        docColl.SegnaturaProtocollo = sc.protocollo.segnatura;
                    }
                    lstDocColl.Add(docColl);
                }
            }



            retval.Fascicolazione     = fasList.ToArray();
            retval.Classificazione    = titList.ToArray();
            retval.DocumentoCollegato = lstDocColl.ToArray();
            return(retval);
        }
Esempio n. 11
0
        /// <summary>
        /// Aggiornamento Acl per il documento
        /// </summary>
        /// <param name="idProfile"></param>

        /// <summary>
        /// Creazione nuovo fascicolo
        /// </summary>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <param name="result"></param>
        /// <param name="ruoliSuperiori">
        /// Ruoli superiori cui è stata impostata la visibilità del fascicolo
        /// </param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            result         = ResultCreazioneFascicolo.OK;
            ruoliSuperiori = null;
            return(true);
        }
Esempio n. 12
0
        /// <summary>
        /// Creazione di un nuovo fascicolo in DCTM
        /// </summary>
        /// <remarks>
        ///
        /// PreCondizioni:
        ///     Il fascicolo è stato inserito correttamente in DocsPa
        ///     ed è stato generato un'identificativo univoco
        ///
        /// PostCondizioni:
        ///     Creato un oggetto in Documentum corrispondente all'oggetto
        ///     fascicolo di DocsPa. L'oggetto avrà i metadati del fascicolo
        ///     per la sola consultazione in documentum.
        ///
        /// </remarks>
        /// <param name="classifica"></param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo"></param>
        /// <param name="enableUfficioReferente"></param>
        /// <returns></returns>
        public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result)
        {
            logger.Info("BEGIN");
            bool retValue = false;

            result = ResultCreazioneFascicolo.GENERIC_ERROR;

            CustomServices.AclDefinition aclFascicolo = null;

            try
            {
                //fascicolo.systemID  viene SEMPRE valorizzato da ETDOCS; se così non è --> ERRORE
                if (string.IsNullOrEmpty(fascicolo.systemID))
                {
                    logger.Debug("Errore passaggio dati da ETDOCS.");
                }
                else
                {
                    // Reperimento dell'objectidentity relativo al nodo titolario in cui andrà inserito il fascicolo
                    ObjectIdentity nodoTitolarioIdentity = Dfs4DocsPa.getNodoTitolarioIdentity(fascicolo.idClassificazione);

                    // Reperimento properties del fascicolo procedimentale
                    PropertySet props = new PropertySet();
                    props.Properties.AddRange(Dfs4DocsPa.getFascicoloProcedimentaleProperties(fascicolo));

                    // Creazione delle ACL per il fascicolo
                    aclFascicolo = this.CreateAclFascicolo(fascicolo, ruolo);

                    // Associazione delle ACL al fascicolo da creare
                    AclHelper.setAclObjectProperties(props, aclFascicolo);

                    ObjectIdentity identity   = new ObjectIdentity(DctmConfigurations.GetRepositoryName());
                    DataObject     dataObject = new DataObject(identity, ObjectTypes.FASCICOLO_PROCEDIMENTALE);
                    dataObject.Properties = props;
                    dataObject.Relationships.Add(DfsHelper.createParentFolderRelationship(nodoTitolarioIdentity));

                    DataPackage dataPackage = new DataPackage(dataObject);

                    IObjectService objectService = this.GetServiceInstance <IObjectService>(false);
                    dataPackage = objectService.Create(dataPackage, null);

                    retValue = (dataPackage.DataObjects.Count == 1);

                    if (retValue)
                    {
                        result = ResultCreazioneFascicolo.OK;

                        logger.Debug(string.Format("Documentum.CreateProject: creato fascicolo con id {0}", fascicolo.systemID));
                    }
                }
            }
            catch (Exception ex)
            {
                retValue = false;
                result   = ResultCreazioneFascicolo.GENERIC_ERROR;

                logger.Debug(string.Format("Errore in Documentum.CreateProject:\n{0}", ex.ToString()));

                if (aclFascicolo != null)
                {
                    // Rimozione ACL fascicolo in caso di errore
                    this.DeleteAcl(aclFascicolo);
                }
            }
            logger.Info("END");
            return(retValue);
        }