/// <summary> /// </summary> /// <param name="infoUtente"></param> /// <param name="nodoTitolario"></param> /// <param name="corrAdd"></param> /// <param name="corrRemove"></param> /// <param name="ereditaDiritti"></param> public static void setAutorizzazioniNodoTitolario(DocsPaVO.fascicolazione.Classificazione nodoTitolario, DocsPaVO.utente.Corrispondente[] corrAdd, DocsPaVO.utente.Corrispondente[] corrRemove, bool ereditaDiritti) { logger.Debug("setAutorizzazioniNodoTitolario"); ArrayList listaID = new ArrayList(); #region Codice Commentato // DocsPa_V15_Utils.database.SqlServerAgent db = new DocsPa_V15_Utils.database.SqlServerAgent(); // //db.openConnection(); // if(!ereditaDiritti) // checkChildsPermission(/*db,*/ nodoTitolario, corrRemove); // try { // db.beginTransaction(); // ArrayList listaID = new ArrayList(); // listaID.Add(nodoTitolario.systemID); // if(nodoTitolario.childs != null) { // for(int i=0; i < nodoTitolario.childs.Count; i++) // listaID.Add(((DocsPaVO.fascicolazione.Classificazione)nodoTitolario.childs[i]).systemID); // } // ProjectsManager.setVisibilita(/*db,*/ "T", listaID, corrAdd, corrRemove); // db.commitTransaction(); // //db.closeConnection(); // } catch (Exception e) { // //db.closeConnection(); // throw new Exception(e.Message); // } #endregion DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); fascicoli.SetAutorizzazioniNodoTitolario(nodoTitolario, corrAdd, corrRemove, ereditaDiritti); fascicoli.Dispose(); }
/// <summary> /// </summary> /// <param name="nodoTitolario"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static DocsPaVO.fascicolazione.Classificazione updateTitolario(DocsPaVO.fascicolazione.Classificazione nodoTitolario) { #region Codice Commentato /*logger.Debug("updateTitolario"); * if(nodoTitolario != null && nodoTitolario.systemID != null) { * if (!(nodoTitolario.descrizione != null && !nodoTitolario.descrizione.Equals(""))) * throw new Exception("Verificare il campo descrizione"); * * string updateStr = * "UPDATE PROJECT SET DESCRIPTION = '" + nodoTitolario.descrizione.Replace("'", "''") + "' WHERE SYSTEM_ID=" + nodoTitolario.systemID; * logger.Debug(updateStr); * DocsPa_V15_Utils.Database db = DocsPa_V15_Utils.dbControl.getDatabase(); * db.openConnection(); * db.executeNonQuery(updateStr); * db.closeConnection(); * } * return nodoTitolario;*/ #endregion DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); DocsPaVO.fascicolazione.Classificazione result = fascicoli.UpdateTitolario(nodoTitolario); if (result == null) { logger.Debug("Errore nella gestione del titolario. (updateTitolario)"); throw new Exception("Verificare il campo descrizione"); } return(result); }
///// <summary> ///// </summary> ///// <param name="nodoTitolario"></param> ///// <param name="infoUtente"></param> //public static void deleteTitolario(DocsPaVO.fascicolazione.Classificazione nodoTitolario, DocsPaVO.utente.InfoUtente infoUtente) //{ // ArrayList listaID = new ArrayList(); // listaID.Add(nodoTitolario.systemID); // /*DocsPa_V15_Utils.Database db = DocsPa_V15_Utils.dbControl.getDatabase();*/ // int numFigli = 1; // try { // //db.openConnection(); // listaID = ProjectsManager.getChildren(/*db,*/ "T", listaID); // // posso cancellare il folder solo se non ha figli // string idProject = (string)listaID[0]; // for (int i=1; i < listaID.Count; i++) // idProject += "," + (string)listaID[i]; // #region Codice Commentato // /*string queryString = // "SELECT COUNT(*) FROM PROJECT_COMPONENTS WHERE PROJECT_ID IN (" + idProject + ")"; // logger.Debug(queryString); // numFigli = Int32.Parse(db.executeScalar(queryString).ToString());*/ // #endregion // DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); // numFigli = fascicoli.DeleteTitolario(idProject); // fascicoli.Dispose(); // //db.closeConnection(); // } catch (Exception e) { // logger.Debug(e.Message); // //db.closeConnection(); // logger.Debug("Errore nella gestione dei fascicoli. (deleteTitolario)",e); // throw e; // } // if (numFigli == 0) // { // for (int i=0; i < listaID.Count; i++) // { // //ProjectsManager.deletePCDProject((string)listaID[i], infoUtente); // string library = DocsPaDB.Utils.Personalization.getInstance(infoUtente.idAmministrazione).getLibrary(); // DocsPaDocumentale.Documentale.ProjectManager documentManager = new DocsPaDocumentale.Documentale.ProjectManager(infoUtente, library); // if(!documentManager.DeleteProject((string)listaID[i])) // { // logger.Debug("Errore nella gestione dei fascicoli. (deleteTitolario)"); // throw new Exception("Errore della cancellazione di un progetto"); // } // } // } // else // { // logger.Debug("Errore nella gestione dei fascicoli. Il titolario contiene dei documenti. (deleteTitolario)"); // throw new Exception("Il titolario contiene dei documenti"); // } //} /// <summary> /// </summary> /// <param name="infoUtente"></param> /// <param name="nodoTitolario"></param> /// <returns></returns> public static string getCodiceFiglioTitolario(string idAmministrazione, DocsPaVO.fascicolazione.Classificazione nodoTitolario) { int nextVal = 1; string codiceParent = null; if (nodoTitolario != null && nodoTitolario.systemID != null) { string separator = DocsPaDB.Utils.Personalization.getInstance(idAmministrazione).getSeparator(); codiceParent = nodoTitolario.codice + separator; if (nodoTitolario.childs != null && nodoTitolario.childs.Count > 0) { for (int i = 0; i < nodoTitolario.childs.Count; i++) { string tmp = codiceParent + nextVal.ToString(); if (((DocsPaVO.fascicolazione.Classificazione)nodoTitolario.childs[i]).codice.Equals(tmp)) { nextVal++; i = 0; } } } } else { #region Codice Commentato /*string queryStr = * "SELECT COUNT(*) FROM PROJECT WHERE CHA_TIPO_PROJ = 'T' " + * "AND (NUM_LIVELLO = 0 OR NUM_LIVELLO IS NULL) AND ID_AMM = " + infoUtente.idAmministrazione; * logger.Debug(queryStr); * nextVal = Int32.Parse(db.executeScalar(queryStr).ToString()) + 1;*/ #endregion DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); nextVal = Int32.Parse(fascicoli.GetCodiceFiglioTitolario(idAmministrazione)) + 1; fascicoli.Dispose(); } string ret = checkCodice(idAmministrazione, codiceParent, nextVal); while (ret == null) { ret = checkCodice(idAmministrazione, codiceParent, nextVal++); } return(ret); }
/// <summary> /// </summary> /// <param name="infoUtente"></param> /// <param name="nodoTitolario"></param> /// <returns></returns> public static ArrayList getAutorizzazioniNodoTitolario(DocsPaVO.fascicolazione.Classificazione nodoTitolario) { ArrayList listaDiritti = null; try { listaDiritti = ProjectsManager.getVisibilita(nodoTitolario.systemID, false, "0"); } catch (Exception e) { logger.Debug("Errore nella gestione dei fascicoli. (getAutorizzazioniNodoTitolario)", e); throw new Exception(e.Message); } return(listaDiritti); }
/// <summary> /// Reperimento fascicoli /// </summary> /// <param name="infoUtente"></param> /// <param name="codiceClassificazione"></param> /// <param name="ricercaInClassificazioniFiglie"></param> /// <param name="filtriRicerca"></param> /// <param name="filtriRicercaDocumenti"></param> /// <param name="pagingContext"></param> /// <returns></returns> public static DocsPaVO.fascicolazione.Fascicolo[] GetFascicoli(DocsPaVO.utente.InfoUtente infoUtente, string codiceClassificazione, bool ricercaInClassificazioniFiglie, DocsPaVO.filtri.FiltroRicerca[] filtriRicerca, DocsPaVO.filtri.FiltroRicerca[] filtriRicercaDocumenti, DocsPaVO.ricerche.SearchPagingContext pagingContext) { // Lista dei system id restituiti dalla ricerca. Non utitlizzata List <SearchResultInfo> idProject = null; // Reperimento oggetto classificazione DocsPaVO.fascicolazione.Classificazione classificazione = GetClassificazione(infoUtente, codiceClassificazione); int numTotPage, nRec; ArrayList fascicoli = BusinessLogic.Fascicoli.FascicoloManager.getListaFascicoliPaging(infoUtente, classificazione, null, filtriRicerca, filtriRicercaDocumenti, false, true, ricercaInClassificazioniFiglie, out numTotPage, out nRec, pagingContext.Page, pagingContext.PageSize, false, out idProject, null, string.Empty); pagingContext.SetRecordCount(nRec); return((DocsPaVO.fascicolazione.Fascicolo[])fascicoli.ToArray(typeof(DocsPaVO.fascicolazione.Fascicolo))); }
/// <summary> /// /// </summary> /// <param name="classificazione"></param> /// <param name="infoUtente"></param> /// <param name="pos"></param> /// <param name="report"></param> /// <param name="path"></param> private static void addFascProc(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.fascicolazione.Classificazione classificazione, int pos, ref System.Collections.ArrayList report, string path) { logger.Debug("addFascProc"); DocsPaVO.filtri.FiltroRicerca filtro = new DocsPaVO.filtri.FiltroRicerca(); filtro.argomento = DocsPaVO.filtri.fascicolazione.listaArgomenti.TIPO_FASCICOLO.ToString(); filtro.valore = "P"; DocsPaVO.filtri.FiltroRicerca[] filtri = { filtro }; System.Collections.ArrayList fascicoliProc = BusinessLogic.Fascicoli.FascicoloManager.getListaFascicoli(infoUtente, classificazione, filtri, false, false, false, null, ""); logger.Debug("Fascicoli procedimentali trovati: " + fascicoliProc.Count); for (int k = 0; k < fascicoliProc.Count; k++) { DocsPaVO.fascicolazione.Fascicolo fasc = (DocsPaVO.fascicolazione.Fascicolo)fascicoliProc[k]; string voceFasc = ReportUtils.stringFile(path + "report\\titolario\\voceProc.txt"); int firstPos = 100 * fasc.codice.Length; int secondPos = pos + 100 * fasc.codice.Length; voceFasc = voceFasc.Replace("XFIRSTPOS", "" + firstPos); voceFasc = voceFasc.Replace("XPOS", "" + secondPos); string testoFasc = fasc.codice + " " + fasc.descrizione; voceFasc = voceFasc.Replace("XTESTO_VOCE", testoFasc); ReportUtils.addStringToReport(voceFasc, ref report); } }
/// <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.InstanceOCS.FascicoloCreatoEventHandler(classificazione, fascicolo, 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) { }
/// <summary> /// </summary> /// <param name="classificazione"></param> /// <param name="infoUtente"></param> /// <param name="pos"></param> /// <param name="report"></param> /// <param name="path"></param> private static void buildClassificazione(string idAmministrazione, string idGruppo, string idPeople, DocsPaVO.fascicolazione.Classificazione classificazione, int pos, ref System.Collections.ArrayList report, string path) { string voceTitolario = ReportUtils.stringFile(path + "report\\titolario\\voceTitolario.txt"); int firstPos = 100 * classificazione.codice.Length; int secondPos = pos + 100 * classificazione.codice.Length; voceTitolario = voceTitolario.Replace("XFIRSTPOS", "" + firstPos); voceTitolario = voceTitolario.Replace("XPOS", "" + secondPos); string testo = classificazione.codice + " " + classificazione.descrizione; voceTitolario = voceTitolario.Replace("XTESTO_VOCE", testo); ReportUtils.addStringToReport(voceTitolario, ref report); for (int i = 0; i < classificazione.childs.Count; i++) { buildClassificazione(idAmministrazione, idGruppo, idPeople, (DocsPaVO.fascicolazione.Classificazione)classificazione.childs[i], secondPos, ref report, path); } //parte relativa ai fascicoli proc. //addFascProc(idAmministrazione, idGruppo, idPeople, classificazione,firstPos,ref report,path); }
/// <summary></summary> /// <param name="classificazioni"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static DocsPaVO.documento.FileDocumento getTitolarioReport(string idAmministrazione, string idGruppo, string idPeople, System.Collections.ArrayList classificazioni) { DocsPaVO.documento.FileDocumento result = new DocsPaVO.documento.FileDocumento(); //string path = ReportUtils.getPathName(); //string path = DocsPaUtils.Functions.Functions.GetReportsPath(); string path = AppDomain.CurrentDomain.BaseDirectory; try { string headerString = ReportUtils.stringFile(path + "report\\titolario\\headerTitolario.txt"); logger.Debug("Generazione report"); System.DateTime data = System.DateTime.Now; System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("it-IT"); string[] formats = data.GetDateTimeFormats(ci); string dataString = formats[5]; headerString = headerString.Replace("XDATA", dataString); //string titolo=ConfigurationManager.AppSettings["intestazioneTitolario"]; string titolo = "Titolario"; // prima lo prendeva dal web.config, ma non esiste più if (titolo != null) { headerString = headerString.Replace("XTITOLO", titolo); } else { headerString = headerString.Replace("XTITOLO", ""); } System.Collections.ArrayList report = new System.Collections.ArrayList(); ReportUtils.addStringToReport(headerString, ref report); logger.Debug("Inserimento voci di titolario"); for (int i = 0; i < classificazioni.Count; i++) { DocsPaVO.fascicolazione.Classificazione classificazione = (DocsPaVO.fascicolazione.Classificazione)classificazioni[i]; string headerTableString = ReportUtils.stringFile(path + "report\\titolario\\headerTableTitolario.txt"); headerTableString = headerTableString.Replace("XPRIMO_CODICE", classificazione.codice); headerTableString = headerTableString.Replace("XPRIMA_DESCR", classificazione.descrizione); ReportUtils.addStringToReport(headerTableString, ref report); for (int j = 0; j < classificazione.childs.Count; j++) { buildClassificazione(idAmministrazione, idGruppo, idPeople, (DocsPaVO.fascicolazione.Classificazione)classificazione.childs[j], 0, ref report, path); } //inserimento fascicoli proc //addFascProc(idAmministrazione, idGruppo, idPeople, classificazione,0,ref report,path); string bottomTableString = ReportUtils.stringFile(path + "report\\titolario\\bottomTableTitolario.txt"); ReportUtils.addStringToReport(bottomTableString, ref report); } logger.Debug("Inserimento bottom"); string bottomString = ReportUtils.stringFile(path + "report\\titolario\\bottomTitolario.txt"); ReportUtils.addStringToReport(bottomString, ref report); logger.Debug("Generazione fileDocumento"); result.content = (byte[])report.ToArray(typeof(byte)); result.length = result.content.Length; result.contentType = "application/rtf"; result.name = "report.rtf"; logger.Debug("fileDocumento generato"); } catch (Exception e) { logger.Debug("Errore nella gestione di Report (getTitolarioReport)", e); throw e; } return(result); }
/// <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> /// 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)); }