Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="schedaDocumento"></param>
        /// <param name="ruoliSuperiori"></param>
        public void DocumentoCreatoEventHandler(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            this.InstanceETDOCS.DocumentoCreatoEventHandler(schedaDocumento, ruolo, ruoliSuperiori);

            this.InstanceDCTM.DocumentoCreatoEventHandler(schedaDocumento, ruolo, ruoliSuperiori);
        }
Beispiel #2
0
        /// <summary>
        /// </summary>
        /// <param name="utente"></param>
        /// <param name="ruolo"></param>
        /// <param name="tipoObj"></param>
        /// <param name="tipoDoc"></param>
        /// <param name="tipoFasc"></param>
        /// <param name="numPage"></param>
        /// <param name="numTotPage"></param>
        /// <param name="nRec"></param>
        /// <returns></returns>
        public static DocsPaVO.areaLavoro.AreaLavoro getAreaLavoroPaging(DocsPaVO.utente.Utente utente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.areaLavoro.TipoOggetto tipoObj, DocsPaVO.areaLavoro.TipoDocumento tipoDoc, DocsPaVO.areaLavoro.TipoFascicolo tipoFasc, string idRegistro, bool enableUffRef, string chaDaProto, int numPage, out int numTotPage, out int nRec, DocsPaVO.filtri.FiltroRicerca[][] query = null)
        {
            //DocsPaWS.Utils.Database db=DocsPaWS.Utils.dbControl.getDatabase();
            DataSet dataSet;

            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            DocsPaVO.areaLavoro.AreaLavoro    al  = new DocsPaVO.areaLavoro.AreaLavoro();
            try
            {
                //db.openConnection();
                string idPeople    = utente.idPeople;
                string idRuoloInUo = ruolo.systemId;
                //DocsPaVO.areaLavoro.QueryAreaLavoro qal = new DocsPaVO.areaLavoro.QueryAreaLavoro();

                //costruzione della query
                //doc.GetAreaLavoro(out dataSet, idPeople, idRuoloInUo, tipoObj, tipoDoc, tipoFasc);
                doc.GetAreaLavoroPaging(out dataSet, idPeople, idRuoloInUo, tipoObj, tipoDoc, tipoFasc, idRegistro, chaDaProto, numPage, out numTotPage, out nRec, query);
                #region codice originale

                /*string queryString="SELECT * FROM DPA_AREA_LAVORO WHERE ID_PEOPLE='"+idPeople+"' AND ID_RUOLO_IN_UO='"+idRuoloInUo+"'";
                 *              if(tipoObj==DocsPaVO.areaLavoro.TipoOggetto.DOCUMENTO)
                 *              {
                 *                      queryString=queryString+" AND ID_PROFILE IS NOT NULL";
                 *                      if(tipoDoc!=DocsPaVO.areaLavoro.TipoDocumento.TUTTI){
                 *                        queryString=queryString+" AND CHA_TIPO_DOC='"+DocsPaVO.areaLavoro.QueryAreaLavoro.tipoDocString[tipoDoc]+ "'";
                 *                      }
                 *              }
                 *              else
                 *              {
                 *                      queryString=queryString+" AND ID_PROJECT IS NOT NULL";
                 *                      if(tipoFasc!=DocsPaVO.areaLavoro.TipoFascicolo.TUTTI)
                 *                      {
                 *                              queryString=queryString+" AND CHA_TIPO_FASC='"+DocsPaVO.areaLavoro.QueryAreaLavoro.tipoFascString[tipoFasc]+"'";
                 *                      }
                 *              }
                 *              logger.Debug(queryString);
                 *              db.fillTable(queryString,dataSet,"OGGETTI");
                 */
                #endregion
                //si riempie la lista
                if (tipoObj == DocsPaVO.areaLavoro.TipoOggetto.DOCUMENTO)
                {
                    logger.Debug("lista documenti");
                    foreach (DataRow dr in dataSet.Tables["PagingTable"].Rows)
                    {
                        DocsPaVO.documento.InfoDocumento id = new DocsPaVO.documento.InfoDocumento();
                        id.idProfile = dr["ID_PROFILE"].ToString();
                        id.tipoProto = dr["CHA_TIPO_DOC"].ToString();
                        id.docNumber = dr["DOCNUMBER"].ToString();
                        //DocsPaVO.utente.InfoUtente infoUtente=new DocsPaVO.utente.InfoUtente(utente,ruolo);

                        /* mod sab
                         * DocsPaVO.documento.SchedaDocumento sd=DocManager.getDettaglio(id,sic);
                         * //DocsPaVO.documento.Documento doc=(DocsPaVO.documento.Documento) sd.documenti[0];
                         * DocsPaVO.documento.InfoDocumento infoDoc=new DocsPaVO.documento.InfoDocumento(sd);
                         */
                        //nuovo
                        DocsPaDB.Query_DocsPAWS.Documenti documento = new DocsPaDB.Query_DocsPAWS.Documenti();
                        DocsPaVO.documento.InfoDocumento  infoDoc;
                        infoDoc = documento.GetInfoDocumento(ruolo.idGruppo, utente.idPeople, id.docNumber, true);
                        //fine nuovo
                        if (infoDoc != null)
                        {
                            infoDoc.tipoProto = dr["CHA_TIPO_DOC"].ToString();
                            al.lista.Add(infoDoc);
                        }
                    }
                }
                else
                {
                    logger.Debug("lista fascicoli");
                    foreach (DataRow dr in dataSet.Tables["DPA_AREA_LAVORO"].Rows)
                    {
                        DocsPaVO.fascicolazione.InfoFascicolo infoFasc = new DocsPaVO.fascicolazione.InfoFascicolo();
                        infoFasc.idFascicolo = dr["ID_PROJECT"].ToString();
                        DocsPaVO.utente.InfoUtente sic = new DocsPaVO.utente.InfoUtente(utente, ruolo);
                        //Federica 5 ott 2005
                        DocsPaVO.fascicolazione.Fascicolo fasc = BusinessLogic.Fascicoli.FascicoloManager.getDettaglio(sic, infoFasc, enableUffRef);

                        if (fasc == null)
                        {
                            logger.Debug("Errore nella gestione dell'area lavoro (getAreaLavoroPaging)");
                            //TODO: gestire la throw
                            throw new Exception();
                        }

                        fasc.tipo = dr["CHA_TIPO_FASC"].ToString();
                        al.lista.Add(fasc);
                    }
                }
                //				db.closeConnection();
                return(al);
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione dell'area lavoro (getAreaLavoroPaging)", e);
                //db.closeConnection();
                throw e;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Creazione nuovo sottofascicolo
 /// </summary>
 /// <param name="folder"></param>
 /// <param name="ruolo"></param>
 /// <param name="result"></param>
 /// <param name="ruoliSuperiori">
 /// Ruoli superiori cui è impostata la visibilità del sottofascicolo
 /// </param>
 /// <returns></returns>
 public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori)
 {
     return(this.Instance.CreateFolder(folder, ruolo, out result, out ruoliSuperiori));
 }
Beispiel #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="schedaDocumento"></param>
 /// <param name="ruoliSuperiori"></param>
 public void DocumentoCreatoEventHandler(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
 {
 }
Beispiel #5
0
 /// <summary>
 /// Handler dell'evento di avvenuta creazione di un sottofascicolo
 /// </summary>
 /// <param name="folder"></param>
 /// <param name="ruolo">Ruolo creatore del sottofascicolo</param>
 /// <param name="ruoliSuperiori">
 /// Riporta una lista di ruoli superiori al ruolo creatore
 /// che devono avere la visibilità sul sottofascicolo
 /// </param>
 public void SottofascicoloCreatoEventHandler(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
 {
 }
Beispiel #6
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());
        }
Beispiel #7
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(DocsPaVO.fascicolazione.Classificazione classifica, DocsPaVO.fascicolazione.Fascicolo fascicolo, DocsPaVO.utente.Ruolo ruolo, bool enableUfficioReferente, out DocsPaVO.fascicolazione.ResultCreazioneFascicolo result)
 {
     // Delega l'operazione al documentale etdocs
     return(this.InstanceEtdocs.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result));
 }
Beispiel #8
0
        /// <summary>
        /// Query per il metodo "getGerarchiaSup"
        /// </summary>
        /// <param name="tipoOggetto"></param>
        /// <param name="idRegistro"></param>
        /// <param name="idNodoTitolario"></param>
        /// <param name="ruolo"></param>
        /// <param name="idParentUO"></param>
        public void selCorGlTipRuoSup(out DataSet dataSet, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList idParentUO, DocsPaDB.DBProvider dbProvider)
        {
            DocsPaUtils.Query q           = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO2");
            string            queryString = "";
            /// string hint = "/*+ index (A) index (B) */";
            string hint = "/*+ ";

            queryString = getQueryAut(tipoOggetto, idRegistro, idNodoTitolario, ruolo, idParentUO, DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString());

            q.setParam("param1", queryString);
            if (queryString.ToLower().IndexOf("security c") > 0)
            {
                /// hint = "/*+index(C) index (A) index (B) */";
                hint += "index(C) ";
            }

            if (queryString.ToLower().IndexOf("dpa_l_ruolo_reg d") > 0)
            {
                hint += "index(D) ";
            }

            hint += "index(A) index(B)";
            hint += "*/";

            q.setParam("hint", hint);

            string myString = q.getSQL();

            logger.Debug(myString);
            dbProvider.ExecuteQuery(out dataSet, "RUOLI", myString);
        }
Beispiel #9
0
        private DocsPaVO.InstanceAccess.Metadata.Registrazione getRegistrazione(DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo)
        {
            if (schDoc.protocollo != null)
            {
                DocsPaVO.InstanceAccess.Metadata.Registrazione registrazione = new DocsPaVO.InstanceAccess.Metadata.Registrazione();
                registrazione.DataProtocollo      = formattaData(convertiData(schDoc.protocollo.dataProtocollazione));
                registrazione.OraProtocollo       = formattaOra(convertiData(schDoc.protocollo.dataProtocollazione));
                registrazione.NumeroProtocollo    = schDoc.protocollo.numero;
                registrazione.SegnaturaProtocollo = schDoc.protocollo.segnatura;
                registrazione.TipoProtocollo      = schDoc.tipoProto;

                registrazione.CodiceRF      = null;
                registrazione.DescrizioneRF = null;

                if (schDoc.datiEmergenza != null)
                {
                    registrazione.SegnaturaEmergenza = schDoc.datiEmergenza.protocolloEmergenza;
                }

                if (schDoc.registro != null)
                {
                    registrazione.CodiceAOO      = schDoc.registro.codRegistro;
                    registrazione.DescrizioneAOO = schDoc.registro.descrizione;
                }

                EstraiDatiProtoEntrata(schDoc, registrazione);
                EstraiDatiProtoUscita(schDoc, registrazione);
                EstraiDatiProtoInterno(schDoc, registrazione);

                if (schDoc.protocollatore != null)
                {
                    DocsPaVO.utente.Utente userProt  = BusinessLogic.Utenti.UserManager.getUtente(schDoc.protocollatore.utente_idPeople);
                    DocsPaVO.utente.Ruolo  ruoloProt = BusinessLogic.Utenti.UserManager.getRuolo(schDoc.creatoreDocumento.idCorrGlob_Ruolo);
                    DocsPaVO.InstanceAccess.Metadata.Protocollista protocollista = new DocsPaVO.InstanceAccess.Metadata.Protocollista();

                    protocollista.DescrizioneUtente = userProt.descrizione;
                    protocollista.CodiceUtente      = userProt.userId;
                    protocollista.DescrizioneRuolo  = ruoloProt.descrizione;
                    protocollista.CodiceRuolo       = ruoloProt.codiceRubrica;
                    protocollista.UOAppartenenza    = ruolo.uo.codiceRubrica;
                    registrazione.Protocollista     = protocollista;
                }
                return(registrazione);
            }
            return(null);
        }
Beispiel #10
0
        /// <summary>
        /// Query per il metodo "getGerarchiaPariLiv"
        /// </summary>
        /// <param name="tipoOggetto"></param>
        /// <param name="idRegistro"></param>
        /// <param name="idNodoTitolario"></param>
        /// <param name="ruolo"></param>
        /// <param name="idPariUO"></param>
        public void selCorGlTipRuoPari(out DataSet dataSet, DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList idPariUO)
        {
            DocsPaUtils.Query q           = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO2");
            string            queryString = "";

            queryString = getQueryAut(tipoOggetto, idRegistro, idNodoTitolario, ruolo, idPariUO, DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString());

            #region commenti
//			if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
//			{
//				if(idRegistro!=null && idRegistro!="")
//					queryString=queryString+",DPA_L_RUOLO_REG C";
//			}
//			else
//			{
//				queryString=queryString+",SECURITY C";
//				if(idRegistro!=null)
//					queryString=queryString+",DPA_L_RUOLO_REG D";
//			}
//			queryString=queryString+" WHERE";
//			if(ruolo.idAmministrazione!=null && !ruolo.idAmministrazione.ToString().Equals(""))
//				queryString=queryString+" A.ID_AMM="+ruolo.idAmministrazione+" AND";
//
//			if(idPariUO.Count!=0)
//			{
//				queryString=queryString+" A.ID_UO IN (";
//				for(int i=0;i<idParentUO.Count;i++)
//				{
//					queryString=queryString+idParentUO[i].ToString();
//					if(i<idParentUO.Count-1)
//						queryString=queryString+",";
//				}
//				queryString=queryString+") AND";
//			}
//
//			queryString=queryString+" B.NUM_LIVELLO="+ruolo.livello+" AND B.SYSTEM_ID=A.ID_TIPO_RUOLO";
//			if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
//			{
//				if(idRegistro!=null && idRegistro != "")
//				{
//					queryString=queryString+" AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID";
//					queryString=queryString+" AND C.ID_REGISTRO="+idRegistro+"";
//				}
//			}
//			else
//			{
//				queryString=queryString+" AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING="+idNodoTitolario+" AND C.ACCESSRIGHTS > 0";
//				if(idRegistro!=null && idRegistro != "")
//				{
//					queryString=queryString+" AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID";
//					queryString=queryString+" AND D.ID_REGISTRO="+idRegistro+"";
//				}
//			}
            #endregion commenti

            q.setParam("param1", queryString);
            q.setParam("hint", "");
            string myString = q.getSQL();
            this.ExecuteQuery(out dataSet, "RUOLI", myString);
        }
Beispiel #11
0
        //		private string getQueryAut(DocsPaVO.trasmissione.TipoOggetto tipoOggetto,string idRegistro,string idNodoTitolario,DocsPaVO.utente.Ruolo ruolo,System.Collections.ArrayList listaIdUO, string tipoGerarchia)
        //		{
        //			string queryString="";
        //
        //			if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
        //			{
        //				if(idRegistro!=null && idRegistro!="")
        //					queryString=queryString+",DPA_L_RUOLO_REG C";
        //			}
        //			else
        //			{
        //				queryString=queryString+",SECURITY C";
        //				if(idRegistro!=null)
        //					queryString=queryString+",DPA_L_RUOLO_REG D";
        //			}
        //			queryString=queryString+" WHERE";
        //			if(ruolo.idAmministrazione!=null && !ruolo.idAmministrazione.ToString().Equals(""))
        //				queryString=queryString+" A.ID_AMM="+ruolo.idAmministrazione+" AND";
        //
        //			if(listaIdUO != null && listaIdUO.Count>0)
        //			{
        //				queryString=queryString+" A.ID_UO IN (";
        //				for(int i=0;i<listaIdUO.Count;i++)
        //				{
        //					queryString=queryString+listaIdUO[i].ToString();
        //					if(i<listaIdUO.Count-1)
        //						queryString=queryString+",";
        //				}
        //				queryString=queryString+") AND";
        //			}
        //			string segn = "";
        //			if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()))
        //				segn="<";
        //			else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()))
        //				segn=">";
        //			else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString()))
        //				segn="=";
        //			if (!segn.Equals(""))
        //				queryString=queryString+" B.NUM_LIVELLO "+segn+ruolo.livello + " AND";
        //			queryString=queryString+" B.SYSTEM_ID=A.ID_TIPO_RUOLO";
        //			if(tipoOggetto==DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
        //			{
        //				if(idRegistro!=null && idRegistro != "")
        //				{
        //					queryString=queryString+" AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID";
        //					queryString=queryString+" AND C.ID_REGISTRO="+idRegistro+"";
        //				}
        //			}
        //			else
        //			{
        //				queryString=queryString+" AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING="+idNodoTitolario+" AND C.ACCESSRIGHTS > 0";
        //				if(idRegistro!=null && idRegistro != "")
        //				{
        //					queryString=queryString+" AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID";
        //					queryString=queryString+" AND D.ID_REGISTRO="+idRegistro+"";
        //				}
        //			}
        //			return queryString;
        //		}
        #endregion

        private string getQueryAut(DocsPaVO.trasmissione.TipoOggetto tipoOggetto, string idRegistro, string idNodoTitolario, DocsPaVO.utente.Ruolo ruolo, System.Collections.ArrayList listaIdUO, string tipoGerarchia)
        {
            string queryString = "";

            if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + ",DPA_L_RUOLO_REG C";
                }
            }
            else
            {
                queryString = queryString + ",SECURITY C";
                if (idRegistro != null)
                {
                    queryString = queryString + ",DPA_L_RUOLO_REG D";
                }
            }
            queryString = queryString + " WHERE";
            if (ruolo.idAmministrazione != null && !ruolo.idAmministrazione.ToString().Equals(""))
            {
                queryString = queryString + " A.ID_AMM=" + ruolo.idAmministrazione + " AND";
            }

            //se la chiave sul web.config è assente oppure è impostata a "0"
            if (System.Configuration.ConfigurationManager.AppSettings["EST_VIS_SUP_PARI_LIV"] == null || System.Configuration.ConfigurationManager.AppSettings["EST_VIS_SUP_PARI_LIV"].Equals("0"))
            {
                if (listaIdUO != null && listaIdUO.Count > 0)
                {
                    queryString = queryString + " A.ID_UO IN (";
                    for (int i = 0; i < listaIdUO.Count; i++)
                    {
                        queryString = queryString + listaIdUO[i].ToString();
                        if (i < listaIdUO.Count - 1)
                        {
                            queryString = queryString + ",";
                        }
                    }
                    queryString = queryString + ") AND";
                }
                string segn = "";
                if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()))
                {
                    segn = "<";
                }
                else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()))
                {
                    segn = ">";
                }
                else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString()))
                {
                    segn = "=";
                }
                if (!segn.Equals(""))
                {
                    queryString = queryString + " B.NUM_LIVELLO " + segn + ruolo.livello + " AND";
                }
                queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO";
            }
            else
            {
                /* caso nuovo per ANAS -- si estende la visibilità a tutti i ruoli dello stesso livello
                 * apparteneti a UO gerarchicamente superiori */
                string segn = "";
                if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()))
                {
                    if (listaIdUO != null && listaIdUO.Count > 1)
                    {
                        queryString = queryString + " ((A.ID_UO IN (";
                        for (int i = 0; i < listaIdUO.Count; i++)
                        {
                            if (ruolo.uo.systemId != listaIdUO[i].ToString())
                            {
                                queryString = queryString + listaIdUO[i].ToString();
                                if (i < listaIdUO.Count - 1)
                                {
                                    queryString = queryString + ",";
                                }
                            }
                        }
                        if (queryString.Substring(queryString.Length - 1, 1).Equals(","))
                        {
                            queryString = queryString.Substring(0, queryString.Length - 1);
                        }
                        queryString = queryString + ") AND B.NUM_LIVELLO <= " + ruolo.livello + ") OR (A.ID_UO = " + ruolo.uo.systemId + " AND ";
                    }
                    else
                    {
                        //caso in cui la UO non ha UO gerarchicamente superiori
                        queryString = queryString + " A.ID_UO = " + ruolo.uo.systemId + " AND ";
                    }
                }
                else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()))
                {
                    //risoluzione bug 1586 - per ora riportato per i sottoposti.
                    if (listaIdUO != null && listaIdUO.Count > 1)
                    {
                        queryString = queryString + " ((A.ID_UO IN (";
                        for (int i = 0; i < listaIdUO.Count; i++)
                        {
                            if (ruolo.uo.systemId != listaIdUO[i].ToString())
                            {
                                queryString = queryString + listaIdUO[i].ToString();

                                if (i < listaIdUO.Count - 1)
                                {
                                    if (i % 998 == 0 && i > 0)
                                    {
                                        queryString = queryString + ") OR A.ID_UO IN (";
                                    }
                                    else
                                    {
                                        queryString = queryString + ",";
                                    }
                                }
                                else
                                {
                                    queryString = queryString + " )";
                                }
                            }
                        }

                        if (queryString.Substring(queryString.Length - 1, 1).Equals(","))
                        {
                            queryString = queryString.Substring(0, queryString.Length - 1);
                        }
                        queryString = queryString + ") AND B.NUM_LIVELLO >= " + ruolo.livello + ") OR (A.ID_UO = " + ruolo.uo.systemId + " AND ";
                    }
                    else
                    {
                        //caso in cui la UO non ha UO gerarchicamente superiori
                        queryString = queryString + " A.ID_UO = " + ruolo.uo.systemId + " AND ";
                    }
                }
                if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString()))
                {
                    segn = "<";
                }
                else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()))
                {
                    segn = ">";
                }
                else if (tipoGerarchia.Equals(DocsPaVO.trasmissione.TipoGerarchia.PARILIVELLO.ToString()))
                {
                    segn = "=";
                }
                if (!segn.Equals(""))
                {
                    queryString = queryString + " B.NUM_LIVELLO " + segn + ruolo.livello;
                }

                if ((tipoGerarchia.ToString() == DocsPaVO.trasmissione.TipoGerarchia.SUPERIORE.ToString() || tipoGerarchia.ToString() == DocsPaVO.trasmissione.TipoGerarchia.INFERIORE.ToString()) && (listaIdUO != null && listaIdUO.Count > 1))
                {
                    if ((listaIdUO != null) && listaIdUO.Count > 1)
                    {
                        queryString += " )) AND";
                    }
                    else
                    {
                        queryString += " AND";
                    }
                }
                else
                {
                    if ((listaIdUO != null) && listaIdUO.Count > 0)
                    {
                        queryString = queryString + " AND";
                    }
                }

                queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO ";
            }
            if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + " AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID";
                    queryString = queryString + " AND C.ID_REGISTRO=" + idRegistro + "";
                }
            }
            else
            {
                //nel caso di una sottocartella THING contiene la system_id del fascicolo a cui è associata,
                //mentre nel caso di un fascicolo contiene la system_id del nodo di titolario a cui è associata
                queryString = queryString + " AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING=" + idNodoTitolario + " AND C.ACCESSRIGHTS > 0";
                if (idRegistro != null && idRegistro != "")
                {
                    queryString = queryString + " AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID";
                    queryString = queryString + " AND D.ID_REGISTRO=" + idRegistro + "";
                }
            }
            return(queryString);
        }
Beispiel #12
0
        /// <summary>
        /// Query per il metodo "getRuoliAut"
        /// </summary>
        /// <param name="ruolo"></param>
        /// <param name="idRegistro"></param>
        /// <param name="idNodoTitolario"></param>
        /// <param name="tipoOggetto"></param>
        public void getRuoAut(out DataSet dataSet, DocsPaVO.utente.Ruolo ruolo, string idRegistro, string idNodoTitolario, DocsPaVO.trasmissione.TipoOggetto tipoOggetto)
        {
            string queryString = "";

            DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_J_DPA_CORR_GLOBALI__TIPO_RUOLO4");

            if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + ", DPA_L_RUOLO_REG C";
                }
            }
            else
            {
                //Emanuela 07/04/2014: nel caso di trasmissione massiva di fascicoli, idNodoTitolario è vuoto e la query non fornisce alcun
                //risulato.
                if (!string.IsNullOrEmpty(idNodoTitolario))
                {
                    queryString = queryString + ", SECURITY C";
                }
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + ", DPA_L_RUOLO_REG D";
                }
            }
            queryString = queryString + " WHERE";
            if (ruolo != null && ruolo.idAmministrazione != null && !ruolo.idAmministrazione.ToString().Equals(""))
            {
                queryString = queryString + " A.ID_AMM=" + ruolo.idAmministrazione + " AND";
            }
            queryString = queryString + " B.SYSTEM_ID=A.ID_TIPO_RUOLO ";
            if (tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + " AND C.ID_RUOLO_IN_UO=A.SYSTEM_ID";
                    queryString = queryString + " AND C.ID_REGISTRO='" + idRegistro + "'";
                }
            }
            else
            {
                //Emanuela 07/04/2014: nel caso di trasmissione massiva di fascicoli, idNodoTitolario è vuoto e la query non fornisce alcun
                //risulato.
                if (!string.IsNullOrEmpty(idNodoTitolario))
                {
                    queryString = queryString + "AND C.PERSONORGROUP=A.ID_GRUPPO AND C.THING='" + idNodoTitolario + "'";
                }
                if (idRegistro != null && idRegistro != "" && !isFiltroAooEnabled())
                {
                    queryString = queryString + " AND D.ID_RUOLO_IN_UO=A.SYSTEM_ID";
                    queryString = queryString + " AND D.ID_REGISTRO='" + idRegistro + "'";
                }
            }

            q.setParam("param1", queryString);
            string myString = q.getSQL();

            logger.Debug("getRuoAut - S_J_DPA_CORR_GLOBALI__TIPO_RUOLO4 - " + myString);
            this.ExecuteQuery(out dataSet, "RUOLI", myString);
        }
Beispiel #13
0
        /// <summary>
        /// Handler dell'evento di avvenuta creazione di un sottofascicolo
        /// </summary>
        /// <param name="folder"></param>
        /// <param name="ruolo">Ruolo creatore del sottofascicolo</param>
        /// <param name="ruoliSuperiori">
        /// Riporta una lista di ruoli superiori al ruolo creatore
        /// che devono avere la visibilità sul sottofascicolo
        /// </param>
        public void SottofascicoloCreatoEventHandler(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            this.InstanceETDOCS.SottofascicoloCreatoEventHandler(folder, ruolo, ruoliSuperiori);

            this.InstanceDCTM.SottofascicoloCreatoEventHandler(folder, ruolo, ruoliSuperiori);
        }
Beispiel #14
0
        /// <summary>
        /// Handler dell'evento di avvenuta creazione di un fascicolo
        /// </summary>
        /// <param name="classificazione">Posizione nella gerarchia di titolario del fascicolo</param>
        /// <param name="fascicolo"></param>
        /// <param name="ruolo">Ruolo creatore del fascicolo</param>
        /// <param name="ruoliSuperiori">
        /// Riporta una lista di ruoli superiori al ruolo creatore
        /// che devono avere la visibilità sul fascicolo
        /// </param>
        public void FascicoloCreatoEventHandler(DocsPaVO.fascicolazione.Classificazione classificazione, DocsPaVO.fascicolazione.Fascicolo fascicolo, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
        {
            this.InstanceETDOCS.FascicoloCreatoEventHandler(classificazione, fascicolo, ruolo, ruoliSuperiori);

            this.InstanceDCTM.FascicoloCreatoEventHandler(classificazione, fascicolo, ruolo, ruoliSuperiori);
        }
Beispiel #15
0
 internal static DocsPaVO.documento.SchedaDocumento getDatiCreatore(DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.Ruolo objRuolo, DocsPaVO.utente.InfoUtente objUtente)
 {
     if (schedaDoc.creatoreDocumento == null || schedaDoc.creatoreDocumento.idPeople.Equals(String.Empty))
     {
         schedaDoc.creatoreDocumento = new DocsPaVO.documento.CreatoreDocumento(objUtente, objRuolo);
     }
     return(schedaDoc);
 }
Beispiel #16
0
        private DocsPaVO.InstanceAccess.Metadata.ContestoArchivistico getContestoArchivistico(DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.InfoUtente infoUtente)
        {
            DocsPaVO.InstanceAccess.Metadata.ContestoArchivistico   retval  = new DocsPaVO.InstanceAccess.Metadata.ContestoArchivistico();
            List <DocsPaVO.InstanceAccess.Metadata.Fascicolazione>  fasList = new List <DocsPaVO.InstanceAccess.Metadata.Fascicolazione>();
            List <DocsPaVO.InstanceAccess.Metadata.Classificazione> titList = new List <DocsPaVO.InstanceAccess.Metadata.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")
                    {
                        DocsPaVO.InstanceAccess.Metadata.Fascicolazione fascicolazione = new DocsPaVO.InstanceAccess.Metadata.Fascicolazione();

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

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


                        fasList.Add(fascicolazione);
                        if (fas.idTitolario != null)
                        {
                            DocsPaVO.amministrazione.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))
                        {
                            DocsPaVO.InstanceAccess.Metadata.Fascicolazione fasFolder = new DocsPaVO.InstanceAccess.Metadata.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
                    {
                        DocsPaVO.amministrazione.OrgNodoTitolario        nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario);
                        DocsPaVO.InstanceAccess.Metadata.Classificazione cl   = new DocsPaVO.InstanceAccess.Metadata.Classificazione();
                        cl.TitolarioDiRiferimento = nodo.Descrizione;
                        cl.CodiceClassificazione  = nodo.Codice;
                        titList.Add(cl);
                    }
                }
            }

            List <DocsPaVO.InstanceAccess.Metadata.DocumentoCollegato> lstDocColl = new List <DocsPaVO.InstanceAccess.Metadata.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);
                    DocsPaVO.InstanceAccess.Metadata.DocumentoCollegato docColl = new DocsPaVO.InstanceAccess.Metadata.DocumentoCollegato
                    {
                        IDdocumento   = schDoc.rispostaDocumento.idProfile,
                        DataCreazione = formattaData(convertiData(sc.dataCreazione)),
                        Oggetto       = sc.oggetto.descrizione,
                    };
                    if (sc.protocollo != null)
                    {
                        docColl.DataProtocollo      = formattaData(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);
        }
Beispiel #17
0
        /// <summary>
        /// </summary>
        /// <param name="schedaDoc"></param>
        /// <param name="objSicurezza"></param>
        /// <param name="objRuolo"></param>
        /// <param name="debug"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.SchedaDocumento addDocGrigia(DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.InfoUtente objSicurezza, DocsPaVO.utente.Ruolo objRuolo)
        {
            logger.Info("BEGIN");
            try
            {
                semProtNuovo.WaitOne();

                // Avvio del contesto transazionale
                using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
                {
                    //SOSTITUISCO IL CARATTERE SPECIALE
                    if (schedaDoc.oggetto.descrizione.Contains("–"))
                    {
                        schedaDoc.oggetto.descrizione = schedaDoc.oggetto.descrizione.Replace("–", "-");
                    }

                    // verifico i dati di ingresso
                    ProtoManager.checkInputData(objSicurezza.idAmministrazione, schedaDoc);
                    logger.Debug("nomeUtente=" + schedaDoc.userId);

                    //add massimo digregorio carica dati protocollatore in schedaProtocollo
                    schedaDoc = getDatiProtocollatore(schedaDoc, objRuolo, objSicurezza);
                    schedaDoc = getDatiCreatore(schedaDoc, objRuolo, objSicurezza);

                    // creo il nuovo documento
                    DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(objSicurezza);

                    DocsPaVO.utente.Ruolo[] ruoliSuperiori;

                    List <DocsPaVO.documento.FileRequest> versions = new List <DocsPaVO.documento.FileRequest>();

                    if (schedaDoc.documenti != null && schedaDoc.documenti.Count > 0)
                    {
                        versions = new List <DocsPaVO.documento.FileRequest>((DocsPaVO.documento.FileRequest[])schedaDoc.documenti.ToArray(typeof(DocsPaVO.documento.FileRequest)));

                        // Ordinamento versioni
                        versions.Sort(
                            delegate(DocsPaVO.documento.FileRequest x, DocsPaVO.documento.FileRequest y)
                        {
                            int versionX, versionY;
                            Int32.TryParse(x.version, out versionX);
                            Int32.TryParse(y.version, out versionY);

                            return(versionX.CompareTo(versionY));
                        }
                            );
                    }

                    if (!documentManager.CreateDocumentoGrigio(schedaDoc, objRuolo, out ruoliSuperiori))
                    {
                        throw new ApplicationException("Errore nella creazione del documento grigio");
                    }
                    else
                    {
                        // Notifica evento documento creato
                        DocsPaDocumentale.Interfaces.IAclEventListener eventsNotification = new DocsPaDocumentale.Documentale.AclEventListener(objSicurezza);

                        eventsNotification.DocumentoCreatoEventHandler(schedaDoc, objRuolo, ruoliSuperiori);

                        // Sincronizzazione repository
                        if (schedaDoc.repositoryContext != null)
                        {
                            SessionRepositoryFileManager fileManager = SessionRepositoryFileManager.GetFileManager(schedaDoc.repositoryContext);

                            // In fase di inserimento di un repository temporaneo,
                            // possono essere creati:
                            // - la prima versione del documento e, qualora sia stato acquisito un file
                            //   e firmato, anche la seconda versione firmata del documento
                            // - la prima versione di n allegati
                            // La prima versione del documento è creata automaticamente con la creazione del documento stesso.
                            // In caso di seconda versione firmata del documento, è necessario procedre alla creazione.
                            foreach (DocsPaVO.documento.FileRequest v in versions)
                            {
                                int version;
                                Int32.TryParse(v.version, out version);

                                DocsPaVO.documento.FileRequest savedVersion = null;

                                if (version > 1)
                                {
                                    // Seconda versione firmata del documento,
                                    // impostazione dell'id del documento di appartenenza
                                    v.docNumber = schedaDoc.docNumber;

                                    // Inserimento delle versioni del documento,
                                    // acquisite oltre alla versione principale
                                    if (!documentManager.AddVersion(v, false))
                                    {
                                        throw new ApplicationException(string.Format("Errore nella creazione della versione {0} del documento con id {1}", version, schedaDoc.systemId));
                                    }

                                    savedVersion = SessionRepositorySyncronizer.CopyToRepository(fileManager, v);

                                    // Inserimento della nuova versione come primo elemento della lista documenti
                                    schedaDoc.documenti.Insert(0, savedVersion);
                                }
                                else
                                {
                                    // La versione principale del documento è già stata creata al momento dell'inserimento,
                                    // pertanto è necessario copiare solamente il file acquisito nel repository
                                    savedVersion = SessionRepositorySyncronizer.CopyToRepository(fileManager, (DocsPaVO.documento.FileRequest)schedaDoc.documenti[0]);

                                    // Aggiornamento istanza documento principale
                                    schedaDoc.documenti[0] = savedVersion;
                                }
                            }

                            if (schedaDoc.allegati != null && schedaDoc.allegati.Count > 0)
                            {
                                // Gli allegati e le rispettive versioni andranno create manualmente
                                foreach (DocsPaVO.documento.Allegato allegato in schedaDoc.allegati)
                                {
                                    string oldVersionLabel = allegato.versionLabel;

                                    // Impostazione del docnumber del documento principale
                                    // cui sarà associato l'allegato
                                    allegato.docNumber = schedaDoc.docNumber;

                                    if (!documentManager.AddAttachment(allegato, "N"))
                                    {
                                        throw new ApplicationException(string.Format("Errore nella creazione dell'allegato {0} del documento con id {1}", allegato.position, schedaDoc.systemId));
                                    }

                                    allegato.versionLabel = oldVersionLabel;
                                }

                                DocsPaVO.documento.FileRequest[] allegati = (DocsPaVO.documento.FileRequest[])schedaDoc.allegati.ToArray(typeof(DocsPaVO.documento.Allegato));

                                if (allegati.Length > 0)
                                {
                                    schedaDoc.allegati = new ArrayList(SessionRepositorySyncronizer.CopyToRepository(fileManager, allegati));
                                }
                            }

                            // Se è presente un repository temporaneo, viene effettuato l'inserimento del file nel repository del documentale
                            // Imposta il repository come scaduto
                            fileManager.Delete();

                            schedaDoc.repositoryContext = null;
                        }
                    }

                    //Richiamo il metodo per il calcolo della atipicità del documento
                    DocsPaDB.Query_DocsPAWS.Documentale documentale = new DocsPaDB.Query_DocsPAWS.Documentale();
                    schedaDoc.InfoAtipicita = documentale.CalcolaAtipicita(objSicurezza, schedaDoc.docNumber, DocsPaVO.Security.InfoAtipicita.TipoOggettoAtipico.DOCUMENTO);

                    if (schedaDoc != null)
                    {
                        // Impostazione della transazione come completata,
                        // solamente se il documento è stato creato correttamente
                        transactionContext.Complete();
                    }
                }
                logger.Info("END");
                return(schedaDoc);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                semProtNuovo.ReleaseMutex();
            }
        }
Beispiel #18
0
 public static DocsPaVO.InstanceAccess.Metadata.Creatore getCreatore(SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo)
 {
     DocsPaVO.InstanceAccess.Metadata.Creatore creatore = new DocsPaVO.InstanceAccess.Metadata.Creatore();
     creatore.CodiceRuolo      = ruolo.codiceRubrica;
     creatore.DescrizioneRuolo = ruolo.descrizione;
     creatore.CodiceUtente     = schDoc.userId;
     DocsPaVO.utente.Utente user = BusinessLogic.Utenti.UserManager.getUtente(schDoc.creatoreDocumento.idPeople);
     if (user != null)
     {
         creatore.DescrizioneUtente = user.descrizione;
     }
     return(creatore);
 }
Beispiel #19
0
        public static VtDocsWS.Services.APSS_Services.SendPublicationResult.SendPublicationResultResponse SendPublicationResult(VtDocsWS.Services.APSS_Services.SendPublicationResult.SendPublicationResultRequest request)
        {
            Services.APSS_Services.SendPublicationResult.SendPublicationResultResponse response = new Services.APSS_Services.SendPublicationResult.SendPublicationResultResponse();
            try
            {
                response.Success = true;
                DocsPaVO.utente.Utente     utente     = null;
                DocsPaVO.utente.InfoUtente infoUtente = null;

                //Inizio controllo autenticazione utente
                infoUtente = Utils.CheckAuthentication(request, "SendPublicationResult");

                utente = BusinessLogic.Utenti.UserManager.getUtenteById(infoUtente.idPeople);
                if (utente == null)
                {
                    //Utente non trovato
                    throw new PisException("USER_NO_EXIST");
                }
                //Fine controllo autenticazione utente

                if (string.IsNullOrEmpty(request.IdDocument))
                {
                    throw new PisException("REQUIRED_ID");
                }

                if (string.IsNullOrEmpty(request.PublicationResult))
                {
                    throw new Exception("Publication Result Required");
                }

                DocsPaVO.ExternalServices.PubblicazioneAPSS pubb = BusinessLogic.Amministrazione.SistemiEsterni.APSSGetPubbByDocId(request.IdDocument);
                if (pubb == null)
                {
                    throw new Exception("Id documento non presente nella tabella di pubblicazione.");
                }
                //Reperimento ruolo utente
                DocsPaVO.utente.Ruolo ruolo = new DocsPaVO.utente.Ruolo();
                try
                {
                    ruolo = BusinessLogic.Utenti.UserManager.getRuoloByIdGruppo(infoUtente.idGruppo);
                    if (ruolo == null)
                    {
                        //Ruolo non trovato
                        throw new PisException("ROLE_NO_EXIST");
                    }
                }
                catch
                {
                    //Ruolo non trovato
                    throw new PisException("ROLE_NO_EXIST");
                }

                pubb.PublishResult       = request.PublicationResult;
                pubb.PublishReason       = request.ResultReason;
                pubb.PublishedResultDate = DateTime.Now.ToString();

                if (request.PublicationResult == "OK")
                {
                    //DocsPaVO.documento.SchedaDocumento documento = new DocsPaVO.documento.SchedaDocumento();

                    //// flusso pubblicazione con modifica campo Data Esito Pubblicazione
                    //try
                    //{
                    //    if (!string.IsNullOrEmpty(request.IdDocument))
                    //    {
                    //        documento = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, request.IdDocument, request.IdDocument);
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    throw new PisException("DOCUMENT_NOT_FOUND");
                    //}

                    //foreach (DocsPaVO.ProfilazioneDinamica.OggettoCustom ogg in documento.template.ELENCO_OGGETTI)
                    //{
                    //    if (ogg.DESCRIZIONE.ToUpper() == "ESITO PUBBLICAZIONE")
                    //    {
                    //        ogg.VALORE_DATABASE = DateTime.Now.ToString("dd/MM/yyyy");
                    //    }
                    //}



                    if (!string.IsNullOrEmpty(pubb.IdSingleTrasm))
                    {
                        // flusso ripubblicazione con accettazione trasmissione
                        DocsPaVO.trasmissione.TrasmissioneUtente[] ArrayTrasmUtente = BusinessLogic.Trasmissioni.TrasmManager.getTrasmissioneUtenteInRuolo(infoUtente, pubb.IdSingleTrasm, utente);
                        if (ArrayTrasmUtente == null || ArrayTrasmUtente.Length < 1)
                        {
                            throw new Exception("Trasmissione relativa alla ripubblicazione non trovata");
                        }
                        DocsPaVO.trasmissione.TrasmissioneUtente trasmUtente = ArrayTrasmUtente[0];
                        trasmUtente.tipoRisposta = DocsPaVO.trasmissione.TipoRisposta.ACCETTAZIONE;
                        //trasmUtente.dataAccettata = DateTime.Now.ToString("dd/MM/yyyy");
                        trasmUtente.noteAccettazione = "Ripubblicazione effettuata.";
                        string idTrasm = BusinessLogic.Amministrazione.SistemiEsterni.APSSgetIdTrasmFromTUtente(trasmUtente.systemId);
                        string errore = "", mode = "", idObj = "";
                        bool   effettuata = BusinessLogic.Trasmissioni.ExecTrasmManager.executeAccRifMethod(trasmUtente, idTrasm, ruolo, infoUtente, out errore, out mode, out idObj);
                        if (!effettuata)
                        {
                            throw new Exception("Errore nell'accettazione : " + errore);
                        }
                    }
                    bool daAggiornareUffRef = false;
                    //BusinessLogic.Documenti.DocSave.save(infoUtente, documento, false, out daAggiornareUffRef, ruolo);
                    //BusinessLogic.ProfilazioneDinamica.ProfilazioneDocumenti.salvaInserimentoUtenteProfDim(infoUtente, documento.template, request.IdDocument);
                    BusinessLogic.Amministrazione.SistemiEsterni.APSSUpdateEsitoPubb(request.IdDocument, DateTime.Now.ToString("dd/MM/yyyy"));

                    // update tabella trasmissioni
                    BusinessLogic.Amministrazione.SistemiEsterni.APSSUpdateResultPubbInTable(pubb);
                    response.OperationResult = "OK";
                }
                else
                {
                    // funzionamento traslato in un altra classe

                    //if (!string.IsNullOrEmpty(pubb.IdSingleTrasm))
                    //{
                    //    // flusso ripubblicazione con rifiuto trasmissione
                    //    DocsPaVO.trasmissione.TrasmissioneUtente[] ArrayTrasmUtente = BusinessLogic.Trasmissioni.TrasmManager.getTrasmissioneUtenteInRuolo(infoUtente, pubb.IdSingleTrasm, utente);
                    //    if (ArrayTrasmUtente == null || ArrayTrasmUtente.Length < 1)
                    //    {
                    //        throw new Exception("Trasmissione relativa alla ripubblicazione non trovata");
                    //    }
                    //    DocsPaVO.trasmissione.TrasmissioneUtente trasmUtente = ArrayTrasmUtente[0];
                    //    trasmUtente.tipoRisposta = DocsPaVO.trasmissione.TipoRisposta.RIFIUTO;
                    //    //trasmUtente.dataAccettata = DateTime.Now.ToString("dd/MM/yyyy");
                    //    if (!string.IsNullOrEmpty(request.ResultReason))
                    //        trasmUtente.noteRifiuto = "Ripubblicazione non effettuata per la seguente ragione: " + request.ResultReason;
                    //    else
                    //        trasmUtente.noteRifiuto = "Ripubblicazione non effettuata";

                    //    string idTrasm = BusinessLogic.Amministrazione.SistemiEsterni.APSSgetIdTrasmFromTUtente(trasmUtente.systemId);
                    //    string errore = "", mode = "", idObj = "";
                    //    bool effettuata = BusinessLogic.Trasmissioni.ExecTrasmManager.executeAccRifMethod(trasmUtente, idTrasm, ruolo, infoUtente, out errore, out mode, out idObj);
                    //    if (!effettuata)
                    //    {
                    //        throw new Exception("Errore nell'accettazione : " + errore);
                    //    }
                    //}

                    // update tabella trasmissioni
                    BusinessLogic.Amministrazione.SistemiEsterni.APSSUpdateResultPubbInTable(pubb);
                    response.OperationResult = "OK";
                }
            }
            catch (PisException pisEx)
            {
                logger.ErrorFormat("PISException: {0}, {1}", pisEx.ErrorCode, pisEx.Description);
                response.Error = new Services.ResponseError
                {
                    Code        = pisEx.ErrorCode,
                    Description = pisEx.Description
                };

                response.Success = false;
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Eccezione Generica: APPLICATION_ERROR, {0}", ex.Message);
                response.Error = new Services.ResponseError
                {
                    Code        = "APPLICATION_ERROR",
                    Description = ex.Message
                };

                response.Success = false;
            }

            return(response);
        }
Beispiel #20
0
        public static void parseExtraXmlfiles(DocsPaVO.documento.SchedaDocumento schedaDoc, string fileName, byte [] filecontents, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo)
        {
            //controllo dei file.
            //descrittore SUAP
            if (fileName.ToLower().EndsWith("suap.xml"))
            {
                suap.SuapManager s = new suap.SuapManager("SUAPENTE");


                bool retval = s.ImportSuapEnteXMLIntoTemplate(infoUtente, ruolo, schedaDoc, filecontents);
                if (retval)
                {
                    logger.DebugFormat("suap {0} processato correttamente", fileName);
                }
                else
                {
                    logger.DebugFormat("Errore: suap {0} NON processato", fileName);
                }
            }
        }
Beispiel #21
0
 /// <summary>
 /// I campi minimi che devono essere settati per l'oggetto Folder sono:
 /// descrizione
 /// idFascicolo
 /// idParent
 /// </summary>
 /// <param name="folder"></param>
 /// <param name="ruolo"></param>
 /// <returns></returns>
 public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result)
 {
     // Delega l'operazione al documentale etdocs
     return(this.InstanceEtdocs.CreateFolder(folder, ruolo, out result));
 }
Beispiel #22
0
        public static DocsPaVO.documento.SchedaDocumento InoltraDoc(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.documento.SchedaDocumento schedaOLD)
        {
            string err = "";

            DocsPaVO.documento.SchedaDocumento schedaNEW = null;
            bool   daAggiornareUffRef = false;
            string filepath           = "";

            DocsPaVO.documento.FileDocumento fd = null;

            //se arriva sch con solo system_id e docnumber la ricerco
            if (schedaOLD != null && schedaOLD.protocollo == null)
            {
                schedaOLD = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, schedaOLD.systemId, schedaOLD.docNumber);
            }
            schedaNEW = new DocsPaVO.documento.SchedaDocumento();

            schedaNEW.systemId  = null;
            schedaNEW.docNumber = null;
            schedaNEW.oggetto   = schedaOLD.oggetto;
            schedaNEW.idPeople  = infoUtente.idPeople;
            schedaNEW.userId    = infoUtente.userId;
            schedaNEW.registro  = schedaOLD.registro;
            //schedaNEW.tipoProto = "P";
            schedaNEW.typeId              = "LETTERA";
            schedaNEW.privato             = schedaOLD.privato;
            schedaNEW.mezzoSpedizione     = schedaOLD.mezzoSpedizione;
            schedaNEW.descMezzoSpedizione = schedaOLD.descMezzoSpedizione;
            schedaNEW.tipologiaAtto       = schedaOLD.tipologiaAtto;
            schedaNEW.template            = schedaOLD.template;
            //schedaNEW.predisponiProtocollazione = true;

            //creo un nuovo documento grigio
            logger.Debug("Creazione doc...");
            schedaNEW = BusinessLogic.Documenti.DocSave.addDocGrigia(schedaNEW, infoUtente, ruolo);

            //Dopo aver creato il documento grigio lo predispongo alla protocollazione
            logger.Debug("Predisponi doc...");
            schedaNEW.tipoProto = "P";
            schedaNEW.typeId    = schedaOLD.typeId;
            schedaNEW.predisponiProtocollazione = true;

            schedaNEW.protocollo = new DocsPaVO.documento.ProtocolloUscita();

            DocsPaVO.utente.Corrispondente corr = ruolo.uo;
            ((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).mittente = corr;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).mittente = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).mittente;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).destinatari = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).destinatari;
            //((DocsPaVO.documento.ProtocolloUscita)schedaNEW.protocollo).destinatariConoscenza = ((DocsPaVO.documento.ProtocolloUscita)schedaOLD.protocollo).destinatariConoscenza;


            schedaNEW = BusinessLogic.Documenti.DocSave.save(infoUtente, schedaNEW, false, out daAggiornareUffRef, ruolo);
            logger.Debug("Creato documento grigio e predisposto alla protocollazione");

            //Copia del documento principale e degli allegati del vecchio documento
            //nel nuovo documento come allegati
            #region ricerca e copia degli allegati
            logger.Debug("Inserimento degli allegati");
            for (int i = 0; schedaOLD.allegati != null && i < schedaOLD.allegati.Count; i++)
            {
                //estrazione dati dell'allegato
                DocsPaVO.documento.Allegato documentoAllegato = (DocsPaVO.documento.Allegato)schedaOLD.allegati[i];
                filepath = documentoAllegato.docServerLoc + documentoAllegato.path;
                string nomeAllegato = "Inoltro " + documentoAllegato.fileName;
                string numPagine    = documentoAllegato.numeroPagine.ToString();
                string titoloDoc    = documentoAllegato.descrizione;
                logger.Debug("Inserimento allegato " + nomeAllegato);
                DocsPaVO.documento.Allegato all = new DocsPaVO.documento.Allegato();
                all.descrizione = "allegato " + i;
                logger.Debug("docnumber=" + schedaNEW.docNumber);
                all.docNumber = schedaNEW.docNumber;
                all.fileName  = getFileName(nomeAllegato);
                all.version   = "0";
                //numero pagine
                if (numPagine != null && !numPagine.Trim().Equals(""))
                {
                    all.numeroPagine = Int32.Parse(numPagine);
                }
                //descrizione allegato
                if (titoloDoc != null && !titoloDoc.Trim().Equals(""))
                {
                    all.descrizione = "Inoltro " + titoloDoc;
                }
                BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, all);
                logger.Debug("Allegato id=" + all.versionId);
                logger.Debug("Allegato version label=" + all.versionLabel);
                logger.Debug("Inserimento nel filesystem");
                DocsPaVO.documento.FileDocumento fdAllNew = new DocsPaVO.documento.FileDocumento();
                DocsPaVO.documento.FileDocumento fdAll    = null;
                if (Int32.Parse(documentoAllegato.fileSize) > 0)
                {
                    try
                    {
                        fdAll = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.allegati[i], infoUtente);
                        if (fdAll == null)
                        {
                            throw new Exception("Errore nel reperimento dell'allegato numero" + i.ToString());
                        }
                        fdAllNew.content     = fdAll.content;
                        fdAllNew.length      = fdAll.length;
                        fdAllNew.name        = fdAll.name;
                        fdAllNew.fullName    = fdAll.fullName;
                        fdAllNew.contentType = fdAll.contentType;
                        DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)all;
                        if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdAllNew, infoUtente, out err))
                        {
                            throw new Exception(err);
                        }
                        logger.Debug("Allegato " + i + " inserito");
                    }
                    catch (Exception ex)
                    {
                        err = "Errore nel reperimento dell'allegato numero " + i.ToString() + " : " + ex.Message;
                        if (schedaNEW != null && schedaNEW.systemId != null && schedaNEW.systemId != "")
                        {
                            //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                            BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, schedaNEW);

                            logger.Debug("Eseguita rimozione profilo");
                        }
                        logger.Debug(err);//se non si riesce a prener eil file per problemi vari continuo comunque per arrivare a eseguiTrasmissione
                        throw ex;
                    }
                }
            }
            #endregion
            #region copia documento principale in allegato
            //DocsPaVO.documento.FileDocumento fdNew = null;
            if (schedaOLD.documenti != null && schedaOLD.documenti[0] != null &&
                Int32.Parse(((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0]).fileSize) > 0)
            {
                try
                {
                    fd = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0], infoUtente);
                    if (fd == null)
                    {
                        throw new Exception("Errore nel reperimento del file principale.");
                    }
                    //copio in un nuovo filerequest perchè putfile lo vuole senza

                    DocsPaVO.documento.Allegato allDocPrinc = new DocsPaVO.documento.Allegato();
                    allDocPrinc.descrizione = "Inoltro documento principale id: " + schedaOLD.docNumber;
                    allDocPrinc.docNumber   = schedaNEW.docNumber;
                    allDocPrinc.fileName    = getFileName(fd.name);
                    allDocPrinc.version     = "0";
                    BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, allDocPrinc);

                    DocsPaVO.documento.FileDocumento fdAllNew = new DocsPaVO.documento.FileDocumento();
                    DocsPaVO.documento.FileDocumento fdAll    = null;
                    fdAll = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)schedaOLD.documenti[0], infoUtente);
                    if (fdAll == null)
                    {
                        throw new Exception("Errore nel reperimento del file principale come allegato");
                    }
                    fdAllNew.content     = fdAll.content;
                    fdAllNew.length      = fdAll.length;
                    fdAllNew.name        = fdAll.name;
                    fdAllNew.fullName    = fdAll.fullName;
                    fdAllNew.contentType = fdAll.contentType;
                    DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)allDocPrinc;
                    if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdAllNew, infoUtente, out err))
                    {
                        throw new Exception(err);
                    }
                    logger.Debug("Doc principale inserito come allegato");

                    DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
                    schedaNEW.allegati = doc.GetAllegati(schedaNEW.docNumber, string.Empty);
                }
                catch (Exception ex)
                {
                    err = "Errore nel reperimento del file principale : " + ex.Message;
                    if (schedaNEW != null && schedaNEW.systemId != null && schedaNEW.systemId != "")
                    {
                        //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                        BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, schedaNEW);
                        logger.Debug("Eseguita rimozione profilo");
                    }
                    logger.Debug(err);
                    throw ex;
                }
            }
            #endregion



            err = err + " " + schedaNEW.docNumber;
            if (schedaNEW != null && schedaNEW.docNumber != null)
            {
                err = "errore " + err + " documento  rimosso: " + schedaNEW.docNumber;
            }
            else
            {
                err = "errore " + err;
            }
            logger.Debug(err);
            schedaNEW.predisponiProtocollazione = true;
            return(schedaNEW);
        }
Beispiel #23
0
 /// <summary>
 /// Handler dell'evento di avvenuta creazione di un fascicolo
 /// </summary>
 /// <param name="classificazione">Posizione nella gerarchia di titolario del fascicolo</param>
 /// <param name="fascicolo"></param>
 /// <param name="ruolo">Ruolo creatore del fascicolo</param>
 /// <param name="ruoliSuperiori">
 /// Riporta una lista di ruoli superiori al ruolo creatore
 /// che devono avere la visibilità sul fascicolo
 /// </param>
 public void FascicoloCreatoEventHandler(DocsPaVO.fascicolazione.Classificazione classificazione, DocsPaVO.fascicolazione.Fascicolo fascicolo, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Ruolo[] ruoliSuperiori)
 {
 }
Beispiel #24
0
        /// <summary>
        /// Riproponi avanzato: ripropone il documento con la copia dell'eventuale documento
        /// principale e degli eventuali allegati
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="ruolo"></param>
        /// <param name="sch"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.SchedaDocumento riproponiConCopiaDoc(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.documento.SchedaDocumento sch)
        {
            string err = "";

            DocsPaVO.documento.SchedaDocumento sd = null;
            bool   daAggiornareUffRef             = false;
            string filepath = "";

            DocsPaVO.documento.FileDocumento fd = null;

            //se arriva sch con solo system_id e docnumber la ricerco
            if (sch != null && sch.protocollo == null)
            {
                sch = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, sch.systemId, sch.docNumber);
            }
            sd = new DocsPaVO.documento.SchedaDocumento();
            if (sch.documenti != null && sch.documenti[0] != null &&
                Int32.Parse(((DocsPaVO.documento.FileRequest)sch.documenti[0]).fileSize) > 0)
            {
                sd.appId = sch.appId;
            }
            else
            {
                sd.appId = "ACROBAT";
            }
            if (sd.appId == null)
            {
                sd.appId = "ACROBAT";
            }

            sd.systemId                  = null;
            sd.docNumber                 = null;
            sd.oggetto                   = sch.oggetto;
            sd.idPeople                  = infoUtente.idPeople;
            sd.userId                    = infoUtente.userId;
            sd.registro                  = sch.registro;
            sd.tipoProto                 = "G";
            sd.typeId                    = "LETTERA";
            sd.privato                   = sch.privato;
            sd.mezzoSpedizione           = sch.mezzoSpedizione;
            sd.descMezzoSpedizione       = sch.descMezzoSpedizione;
            sd.tipologiaAtto             = sch.tipologiaAtto;
            sd.predisponiProtocollazione = true;

            //creo un nuovo documento grigio
            logger.Debug("Creazione doc...");
            sd = BusinessLogic.Documenti.DocSave.addDocGrigia(sd, infoUtente, ruolo);

            //Dopo aver creato il documento grigio lo predispongo alla protocollazione
            logger.Debug("Predisponi doc...");
            sd.tipoProto = sch.tipoProto;
            sd.typeId    = sch.typeId;
            sd.predisponiProtocollazione = true;
            switch (sd.tipoProto)
            {
            case "A":
                sd.protocollo = new DocsPaVO.documento.ProtocolloEntrata();
                ((DocsPaVO.documento.ProtocolloEntrata)sd.protocollo).mittente           = ((DocsPaVO.documento.ProtocolloEntrata)sch.protocollo).mittente;
                ((DocsPaVO.documento.ProtocolloEntrata)sd.protocollo).mittenteIntermedio = ((DocsPaVO.documento.ProtocolloEntrata)sch.protocollo).mittenteIntermedio;
                //if (eUffRef)
                //{
                //    ((DocsPaVO.documento.ProtocolloEntrata)sd.protocollo).ufficioReferente = ((DocsPaVO.documento.ProtocolloEntrata)sch.protocollo).ufficioReferente;
                //}
                break;

            case "P":
                sd.protocollo = new DocsPaVO.documento.ProtocolloUscita();
                ((DocsPaVO.documento.ProtocolloUscita)sd.protocollo).mittente              = ((DocsPaVO.documento.ProtocolloUscita)sch.protocollo).mittente;
                ((DocsPaVO.documento.ProtocolloUscita)sd.protocollo).destinatari           = ((DocsPaVO.documento.ProtocolloUscita)sch.protocollo).destinatari;
                ((DocsPaVO.documento.ProtocolloUscita)sd.protocollo).destinatariConoscenza = ((DocsPaVO.documento.ProtocolloUscita)sch.protocollo).destinatariConoscenza;
                //if (eUffRef)
                //{
                //    ((DocsPaVO.documento.ProtocolloUscita)sd.protocollo).ufficioReferente = ((DocsPaVO.documento.ProtocolloUscita)sch.protocollo).ufficioReferente;
                //}
                break;

            case "I":
                sd.protocollo = new DocsPaVO.documento.ProtocolloInterno();
                ((DocsPaVO.documento.ProtocolloInterno)sd.protocollo).mittente              = ((DocsPaVO.documento.ProtocolloInterno)sch.protocollo).mittente;
                ((DocsPaVO.documento.ProtocolloInterno)sd.protocollo).destinatari           = ((DocsPaVO.documento.ProtocolloInterno)sch.protocollo).destinatari;
                ((DocsPaVO.documento.ProtocolloInterno)sd.protocollo).destinatariConoscenza = ((DocsPaVO.documento.ProtocolloInterno)sch.protocollo).destinatariConoscenza;
                //if (eUffRef)
                //{
                //    ((DocsPaVO.documento.ProtocolloInterno)sd.protocollo).ufficioReferente = ((DocsPaVO.documento.ProtocolloInterno)sch.protocollo).ufficioReferente;
                //}
                break;
            }
            sd = BusinessLogic.Documenti.DocSave.save(infoUtente, sd, false, out daAggiornareUffRef, ruolo);
            logger.Debug("Creato documento grigio e predisposto alla protocollazione");

            //Copia del documento principale e degli allegati del vecchio documento
            //nel nuovo documento
            #region copia documento principale e allegati
            DocsPaVO.documento.FileDocumento fdNew = null;
            if (sch.documenti != null && sch.documenti[0] != null &&
                Int32.Parse(((DocsPaVO.documento.FileRequest)sch.documenti[0]).fileSize) > 0)
            {
                try
                {
                    fd = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)sch.documenti[0], infoUtente);
                    if (fd == null)
                    {
                        throw new Exception("Errore nel reperimento del file principale.");
                    }
                    //copio in un nuovo filerequest perchè putfile lo vuole senza
                    fdNew             = new DocsPaVO.documento.FileDocumento();
                    fdNew.content     = fd.content;
                    fdNew.length      = fd.length;
                    fdNew.name        = fd.name;
                    fdNew.fullName    = fd.fullName;
                    fdNew.contentType = fd.contentType;
                    DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)sd.documenti[0];
                    if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdNew, infoUtente, out err))
                    {
                        throw new Exception(err);
                    }
                    logger.Debug("file principale inserito");
                }
                catch (Exception ex)
                {
                    err = "Errore nel reperimento del file principale : " + ex.Message;
                    if (sd != null && sd.systemId != null && sd.systemId != "")
                    {
                        //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                        BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, sd);
                        logger.Debug("Eseguita rimozione profilo");
                    }
                    logger.Debug(err);
                    throw ex;
                }
            }
            //ricerca degli allegati
            logger.Debug("Inserimento degli allegati");
            for (int i = 0; sch.allegati != null && i < sch.allegati.Count; i++)
            {
                //estrazione dati dell'allegato
                DocsPaVO.documento.Allegato documentoAllegato = (DocsPaVO.documento.Allegato)sch.allegati[i];
                filepath = documentoAllegato.docServerLoc + documentoAllegato.path;
                string nomeAllegato = documentoAllegato.fileName;
                string numPagine    = documentoAllegato.numeroPagine.ToString();
                string titoloDoc    = documentoAllegato.descrizione;
                logger.Debug("Inserimento allegato " + nomeAllegato);
                DocsPaVO.documento.Allegato all = new DocsPaVO.documento.Allegato();
                all.descrizione = "allegato " + i;
                logger.Debug("docnumber=" + sd.docNumber);
                all.docNumber = sd.docNumber;
                all.fileName  = getFileName(nomeAllegato);
                all.version   = "0";
                //numero pagine
                if (numPagine != null && !numPagine.Trim().Equals(""))
                {
                    all.numeroPagine = Int32.Parse(numPagine);
                }
                //descrizione allegato
                if (titoloDoc != null && !titoloDoc.Trim().Equals(""))
                {
                    all.descrizione = titoloDoc;
                }
                BusinessLogic.Documenti.AllegatiManager.aggiungiAllegato(infoUtente, all);
                logger.Debug("Allegato id=" + all.versionId);
                logger.Debug("Allegato version label=" + all.versionLabel);
                logger.Debug("Inserimento nel filesystem");
                DocsPaVO.documento.FileDocumento fdAllNew = new DocsPaVO.documento.FileDocumento();
                DocsPaVO.documento.FileDocumento fdAll    = null;
                if (Int32.Parse(documentoAllegato.fileSize) > 0)
                {
                    try
                    {
                        fdAll = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)sch.allegati[i], infoUtente);
                        if (fdAll == null)
                        {
                            throw new Exception("Errore nel reperimento dell'allegato numero" + i.ToString());
                        }
                        fdAllNew.content     = fdAll.content;
                        fdAllNew.length      = fdAll.length;
                        fdAllNew.name        = fdAll.name;
                        fdAllNew.fullName    = fdAll.fullName;
                        fdAllNew.contentType = fdAll.contentType;
                        DocsPaVO.documento.FileRequest fr = (DocsPaVO.documento.FileRequest)all;
                        if (!BusinessLogic.Documenti.FileManager.putFile(ref fr, fdAllNew, infoUtente, out err))
                        {
                            throw new Exception(err);
                        }
                        logger.Debug("Allegato " + i + " inserito");
                    }
                    catch (Exception ex)
                    {
                        err = "Errore nel reperimento dell'allegato numero " + i.ToString() + " : " + ex.Message;
                        if (sd != null && sd.systemId != null && sd.systemId != "")
                        {
                            //se il putFile va in errore devo rimuovere il profile (predisposto appena inserito)
                            BusinessLogic.Documenti.DocManager.ExecRimuoviSchedaMethod(infoUtente, sd);

                            logger.Debug("Eseguita rimozione profilo");
                        }
                        logger.Debug(err);//se non si riesce a prener eil file per problemi vari continuo comunque per arrivare a eseguiTrasmissione
                        throw ex;
                    }
                }
            }
            #endregion

            err = err + " " + sd.docNumber;
            if (sd != null && sd.docNumber != null)
            {
                err = "errore " + err + " documento  rimosso: " + sd.docNumber;
            }
            else
            {
                err = "errore " + err;
            }
            logger.Debug(err);
            sd.predisponiProtocollazione = true;
            return(sd);
        }
Beispiel #25
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)
 {
 }
Beispiel #26
0
        /// <summary>
        /// </summary>
        /// <param name="schedaDoc"></param>
        /// <param name="objSicurezza"></param>
        /// <param name="debug"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.SchedaDocumento save(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDoc, bool enableUffRef, out bool daAggiornareUffRef, DocsPaVO.utente.Ruolo ruolo)
        {
            logger.Info("BEGIN");

            //SOSTITUISCO IL CARATTERE SPECIALE
            if (schedaDoc.oggetto.descrizione.Contains("–"))
            {
                schedaDoc.oggetto.descrizione = schedaDoc.oggetto.descrizione.Replace("–", "-");
            }

            // Controllo su stato congelato del documento
            DocumentConsolidation.CanChangeMetadata(infoUtente, schedaDoc, true);

            DocsPaVO.documento.SchedaDocumento savedDocument = null;

            daAggiornareUffRef = false;
            string incestino = string.Empty;

            //controllo se doc in cestino
            incestino = BusinessLogic.Documenti.DocManager.checkdocInCestino(schedaDoc.docNumber);

            if (incestino != "" &&
                incestino == "1")
            {
                throw new Exception("Il documento è stato rimosso, non è più possibile modificarlo");
            }

            //Verifico se il documento è in libro firma e se è prevista la repertoriazione del documento
            #region CHECK_LIBRO_FIRMA
            if (LibroFirma.LibroFirmaManager.IsDocInLibroFirma(schedaDoc.docNumber))
            {
                bool daRepertoriare = false;
                if (schedaDoc.template != null && !string.IsNullOrEmpty(schedaDoc.template.ID_TIPO_ATTO) && schedaDoc.template.ELENCO_OGGETTI != null && schedaDoc.template.ELENCO_OGGETTI.Count > 0)
                {
                    DocsPaVO.ProfilazioneDinamica.OggettoCustom ogg = (from o in schedaDoc.template.ELENCO_OGGETTI.Cast <DocsPaVO.ProfilazioneDinamica.OggettoCustom>()
                                                                       where o.TIPO.DESCRIZIONE_TIPO.Equals("Contatore") && o.REPERTORIO.Equals("1") &&
                                                                       o.CONTATORE_DA_FAR_SCATTARE && string.IsNullOrEmpty(o.VALORE_DATABASE)
                                                                       select o).FirstOrDefault();
                    if (ogg != null && !LibroFirma.LibroFirmaManager.IsTitolarePassoInAttesa(schedaDoc.docNumber, infoUtente, DocsPaVO.LibroFirma.Azione.DOCUMENTO_REPERTORIATO))
                    {
                        throw new Exception("Non è possibile procedere con la repertoriazione poichè il documento è in Libro Firma");
                    }
                }
            }
            #endregion

            // Contesto transazionale
            using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
            {
                if (schedaDoc.repositoryContext != null)
                {
                    // Cerazione del documento grigio se è stata fornita una scheda documento in repository context
                    schedaDoc = addDocGrigia(schedaDoc, infoUtente, ruolo);
                }

                if (schedaDoc.systemId != null && !schedaDoc.systemId.Equals(""))
                {
                    if (schedaDoc.predisponiProtocollazione || (schedaDoc.protocollo != null && (schedaDoc.protocollo.segnatura == null || (schedaDoc.protocollo.segnatura != null && schedaDoc.protocollo.segnatura == "")) && schedaDoc.protocollo.ModUffRef == true && enableUffRef))
                    {
                        savedDocument = predisponiAllaProtocollazione(infoUtente, schedaDoc);
                    }
                    else
                    {
                        savedDocument = salvaModifiche(infoUtente, schedaDoc, enableUffRef, out daAggiornareUffRef);
                    }
                }
                else
                {
                    savedDocument = schedaDoc;
                }

                //Richiamo il metodo per il calcolo della atipicità del documento
                DocsPaDB.Query_DocsPAWS.Documentale documentale = new DocsPaDB.Query_DocsPAWS.Documentale();
                schedaDoc.InfoAtipicita = documentale.CalcolaAtipicita(infoUtente, schedaDoc.docNumber, DocsPaVO.Security.InfoAtipicita.TipoOggettoAtipico.DOCUMENTO);

                if (savedDocument != null)
                {
                    // La transazione viene completata, se le modifiche sono state effettuate correttamente
                    transactionContext.Complete();
                }
            }
            logger.Info("END");
            return(savedDocument);
        }
Beispiel #27
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(DocsPaVO.fascicolazione.Classificazione classifica, DocsPaVO.fascicolazione.Fascicolo fascicolo, DocsPaVO.utente.Ruolo ruolo, bool enableUfficioReferente, out DocsPaVO.fascicolazione.ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori)
 {
     return(this.Instance.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result, out ruoliSuperiori));
 }
Beispiel #28
0
 /// <summary>
 /// add massimo digregorio gestione protocollatore
 /// </summary>
 /// <param name="schedaDoc"></param>
 /// <param name="objRuolo"></param>
 /// <param name="objUtente"></param>
 /// <returns></returns>
 internal static DocsPaVO.documento.SchedaDocumento getDatiProtocollatore(DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.Ruolo objRuolo, DocsPaVO.utente.InfoUtente objUtente)
 {
     if (schedaDoc.protocollatore == null || schedaDoc.protocollatore.utente_idPeople.Equals(String.Empty))
     {
         schedaDoc.protocollatore = new DocsPaVO.documento.Protocollatore(objUtente, objRuolo);
     }
     return(schedaDoc);
 }
Beispiel #29
0
        //5.
        public static DocsPaVO.utente.Corrispondente getCorrispondente(DocsPaVO.OggettiLite.CorrispondenteLite corLite)
        {
            DocsPaVO.utente.Corrispondente corr = new DocsPaVO.utente.Corrispondente();
            if (corLite == null)
            {
                return(null);
            }

            switch (corLite.tipoCorrispondente)
            {
            case "U":
            {
                DocsPaVO.utente.UnitaOrganizzativa corrUO = new DocsPaVO.utente.UnitaOrganizzativa();
                corrUO.cap                = corLite.cap;
                corrUO.citta              = corLite.citta;
                corrUO.codiceAmm          = corLite.codiceAmm;
                corrUO.codiceAOO          = corLite.codiceAOO;
                corrUO.codfisc            = corLite.codfisc;
                corrUO.codiceRubrica      = corLite.codiceRubrica;
                corrUO.descrizione        = corLite.descrizione;
                corrUO.dta_fine           = corLite.dta_fine;
                corrUO.email              = corLite.email;
                corrUO.fax                = corLite.fax;
                corrUO.idAmministrazione  = corLite.idAmministrazione;
                corrUO.idRegistro         = corLite.idRegistro;
                corrUO.indirizzo          = corLite.indirizzo;
                corrUO.localita           = corLite.localita;
                corrUO.nazionalita        = corLite.nazionalita;
                corrUO.note               = corLite.note;
                corrUO.prov               = corLite.prov;
                corrUO.systemId           = corLite.systemId;
                corrUO.telefono1          = corLite.telefono1;
                corrUO.telefono2          = corLite.telefono2;
                corrUO.tipoCorrispondente = corLite.tipoCorrispondente;
                return(corrUO);

                break;
            }

            case "P":
            {
                DocsPaVO.utente.Utente corrP = new DocsPaVO.utente.Utente();
                corrP.cap                = corLite.cap;
                corrP.citta              = corLite.citta;
                corrP.codiceAmm          = corLite.codiceAmm;
                corrP.codiceAOO          = corLite.codiceAOO;
                corrP.codfisc            = corLite.codfisc;
                corrP.codiceRubrica      = corLite.codiceRubrica;
                corrP.descrizione        = corLite.descrizione;
                corrP.dta_fine           = corLite.dta_fine;
                corrP.email              = corLite.email;
                corrP.fax                = corLite.fax;
                corrP.idAmministrazione  = corLite.idAmministrazione;
                corrP.idRegistro         = corLite.idRegistro;
                corrP.indirizzo          = corLite.indirizzo;
                corrP.localita           = corLite.localita;
                corrP.nazionalita        = corLite.nazionalita;
                corrP.note               = corLite.note;
                corrP.prov               = corLite.prov;
                corrP.systemId           = corLite.systemId;
                corrP.telefono1          = corLite.telefono1;
                corrP.telefono2          = corLite.telefono2;
                corrP.tipoCorrispondente = corLite.tipoCorrispondente;
                return(corrP);

                break;
            }

            case "R":
            {
                DocsPaVO.utente.Ruolo corrR = new DocsPaVO.utente.Ruolo();
                corrR.cap                = corLite.cap;
                corrR.citta              = corLite.citta;
                corrR.codiceAmm          = corLite.codiceAmm;
                corrR.codiceAOO          = corLite.codiceAOO;
                corrR.codfisc            = corLite.codfisc;
                corrR.codiceRubrica      = corLite.codiceRubrica;
                corrR.descrizione        = corLite.descrizione;
                corrR.dta_fine           = corLite.dta_fine;
                corrR.email              = corLite.email;
                corrR.fax                = corLite.fax;
                corrR.idAmministrazione  = corLite.idAmministrazione;
                corrR.idRegistro         = corLite.idRegistro;
                corrR.indirizzo          = corLite.indirizzo;
                corrR.localita           = corLite.localita;
                corrR.nazionalita        = corLite.nazionalita;
                corrR.note               = corLite.note;
                corrR.prov               = corLite.prov;
                corrR.systemId           = corLite.systemId;
                corrR.telefono1          = corLite.telefono1;
                corrR.telefono2          = corLite.telefono2;
                corrR.tipoCorrispondente = corLite.tipoCorrispondente;
                return(corrR);

                break;
            }

            default:
            {
                DocsPaVO.utente.Corrispondente corrC = new DocsPaVO.utente.Corrispondente();
                corrC.cap                = corLite.cap;
                corrC.citta              = corLite.citta;
                corrC.codiceAmm          = corLite.codiceAmm;
                corrC.codiceAOO          = corLite.codiceAOO;
                corrC.codfisc            = corLite.codfisc;
                corrC.codiceRubrica      = corLite.codiceRubrica;
                corrC.descrizione        = corLite.descrizione;
                corrC.dta_fine           = corLite.dta_fine;
                corrC.email              = corLite.email;
                corrC.fax                = corLite.fax;
                corrC.idAmministrazione  = corLite.idAmministrazione;
                corrC.idRegistro         = corLite.idRegistro;
                corrC.indirizzo          = corLite.indirizzo;
                corrC.localita           = corLite.localita;
                corrC.nazionalita        = corLite.nazionalita;
                corrC.note               = corLite.note;
                corrC.prov               = corLite.prov;
                corrC.systemId           = corLite.systemId;
                corrC.telefono1          = corLite.telefono1;
                corrC.telefono2          = corLite.telefono2;
                corrC.tipoCorrispondente = corLite.tipoCorrispondente;

                return(corrC);
            }
                return(corr);
            }
            return(corr);
        }
Beispiel #30
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.InstanceDCTM.TrasmissioneAccettataRifiutataEventHandler(trasmissione, ruolo, tipoRisposta);
        }