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