/// <summary> /// Formatta il codice della fascicolatura a seconda del formato /// specificato per la corrente amministrazione /// </summary> /// <param name="idAmm">Id Amministrazione</param> /// <param name="codTitolo">codice classifica</param> /// <param name="data">data corrente</param> /// <param name="codFascicolo">codice del fascicolo</param> /// <param name="onlyFormatCode">True se deve essere solamente formattato il codice, false se deve essere /// anche calcolato il nuovo codice fascicolo</param> /// <returns>Codice formattato</returns> //private string CalcolaCodiceFascicolo(string idAmm, string codTitolo, string data, string systemIdTitolario, ref string codFascicolo, bool onlyFormatCode, DocsPaDB.DBProvider dbProvider) private string CalcolaCodiceFascicolo(string idAmm, Classificazione classificazione, string data, ref string codFascicolo, bool onlyFormatCode, DocsPaDB.DBProvider dbProvider) { logger.Info("BEGIN"); string format = ""; if (!onlyFormatCode) { // caso in cui devo calcolare il codice fascicolo e poi formattarlo string sqlCommand = "SELECT MAX (NUM_FASCICOLO) + 1 " + "FROM PROJECT A " + //"WHERE CHA_TIPO_PROJ = 'F' AND CHA_TIPO_FASCICOLO = 'P' AND ID_PARENT ='" + systemIdTitolario + "'"; "WHERE CHA_TIPO_PROJ = 'F' AND CHA_TIPO_FASCICOLO = 'P' AND ID_PARENT ='" + classificazione.systemID + "'"; dbProvider.ExecuteScalar(out codFascicolo, sqlCommand); } logger.Debug("getCodiceFascicolo"); //logger.Debug("codTitolo " + codTitolo); logger.Debug("codTitolo " + classificazione.codice); logger.Debug("data " + data); logger.Debug("codFascicolo " + codFascicolo); format = DocsPaDB.Utils.Personalization.getInstance(idAmm).FormatoFascicolatura; logger.Debug("format = " + format); //format = format.Replace("COD_TITOLO", codTitolo); format = format.Replace("COD_TITOLO", classificazione.codice); format = format.Replace("DATA_COMP", data.Substring(0, 10)); format = format.Replace("DATA_ANNO", data.Substring(6, 4)); format = format.Replace("NUM_PROG", codFascicolo); //Gestione protocollo titolario int indexOfContTit = format.IndexOf("CONT_TIT"); if (indexOfContTit != -1) { Classifica[] classifica = this.GetGerarchia(classificazione.systemID, classificazione.registro, idAmm); if (classifica.Length > 0) { Classifica ultimoNodoSelezionato = classifica[classifica.Length - 1]; if (!string.IsNullOrEmpty(ultimoNodoSelezionato.numProtoTit)) { format = format.Replace("CONT_TIT", ultimoNodoSelezionato.numProtoTit); } else { format = format.Replace("CONT_TIT", ""); if (indexOfContTit > 0) { format = format.Remove(indexOfContTit - 1, 1); } else { format = format.Remove(indexOfContTit, 1); } } } } logger.Info("END"); return(format); }
/// <summary> /// Creazione di un nuovo fascicolo in DocsPa /// </summary> /// <remarks> /// /// PreCondizioni: /// Il fascicolo è stato inserito correttamente in DocsPa /// ed è stato generato un'identificativo univoco /// /// PostCondizioni: /// Creato un oggetto in Documentum corrispondente all'oggetto /// fascicolo di DocsPa. L'oggetto avrà i metadati del fascicolo /// per la sola consultazione in documentum. /// /// </remarks> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result) { bool retValue = true; //... non fa nulla result = ResultCreazioneFascicolo.OK; return(retValue); }
/// <summary> /// Creazione nuovo fascicolo /// </summary> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result) { logger.Info("BEGIN"); bool retValue = this.ProjectManagerETDOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result); logger.Info("END"); return(retValue); }
/// <summary> /// Creazione nuovo fascicolo /// </summary> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"> /// Ruoli superiori cui è stata impostata la visibilità del fascicolo /// </param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = this.ProjectManagerETDOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result, out ruoliSuperiori); if (retValue) { retValue = this.ProjectManagerOCS.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result); } return(retValue); }
public Classificazione FascicolazioneGetClassificazione(string idAmministrazione, string idGruppo, string idPeople, Registro registro, string codiceClassifica, string idTitolario) { Classificazione nodo = null; try { Classificazione[] result = (Classificazione[])BusinessLogic.Fascicoli.TitolarioManager.getTitolario2(idAmministrazione, idGruppo, idPeople, registro, codiceClassifica, false, idTitolario).ToArray(typeof(Classificazione)); if (result.Length > 0) { nodo = result[0]; } } catch (Exception e) { logger.Debug("Hermes - metodo: FascicolazioneGetClassificazione", e); } return(nodo); }
public Fascicolo FascicolazioneNewFascicolo(Classificazione classificazione, Fascicolo fascicolo, bool enableUffRef, InfoUtente infoUtente, Ruolo ruolo) { DocsPaVO.fascicolazione.Fascicolo objFascicolo = null; DocsPaVO.fascicolazione.ResultCreazioneFascicolo resultCreazione = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK; try { objFascicolo = BusinessLogic.Fascicoli.FascicoloManager.newFascicolo(classificazione, fascicolo, infoUtente, ruolo, enableUffRef, out resultCreazione); if (objFascicolo != null) { BusinessLogic.UserLog.UserLog.WriteLog(infoUtente, "FASCICOLAZIONENEWFASCICOLO", objFascicolo.systemID, string.Format("{0} {1}", "Cod. Fascicolo:", objFascicolo.codice), DocsPaVO.Logger.CodAzione.Esito.OK); } } catch (Exception e) { resultCreazione = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.GENERIC_ERROR; logger.Debug("Hermes - metodo: FascicolazioneNewFascicolo", e); objFascicolo = null; } return(objFascicolo); }
/// <summary> /// /// </summary> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"></param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { logger.Info("BEGIN"); bool retValue = false; ruoliSuperiori = null; using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) { using (System.Data.IDataReader reader = dbProvider.ExecuteReader("select a.CHA_STATO from project a where a.SYSTEM_ID in (select b.ID_TITOLARIO from project b where b.SYSTEM_ID =" + classifica.systemID + ")")) { if (reader.FieldCount > 0) { while (reader.Read()) { string valorechiave = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_FASC_TUTTI_TIT"); if (string.IsNullOrEmpty(valorechiave) || !valorechiave.Equals("1")) { if (reader.GetString(reader.GetOrdinal("CHA_STATO")).ToUpper().Equals("C")) { logger.Debug("sottofascilo chiuso"); throw new Exception("sottofascilo chiuso"); } } } } } logger.Debug(" *** INIZIO TRANSAZIONE CREAZIONE FASCICOLO ***"); dbProvider.BeginTransaction(); fascicolo.idClassificazione = classifica.systemID; result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK; DocsPaVO.fascicolazione.Folder folder = new DocsPaVO.fascicolazione.Folder(); DocsPaDB.Query_DocsPAWS.AmministrazioneXml objAX = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); try { fascicolo.stato = "A"; fascicolo.tipo = "P"; // 6 - Si aggiorna il codUltimo relativo al fascicolo (solo per ora perchè andrà tolta questa gestione) if (!fascicoli.aggiornaDpaRegFasc(ref fascicolo.codUltimo, fascicolo.idClassificazione, fascicolo.idRegistro, dbProvider)) { throw new Exception("Errore nell'aggiornamento della tabella dpa_reg_fasc"); } //prova per verifica codice univoco string format = DocsPaDB.Utils.Personalization.getInstance(this.UserInfo.idAmministrazione).FormatoFascicolatura; if (format == null || format.Equals("")) { //in alcuni casi, l'oggetto Personalization non è not null, ma il formato segnatura è null!! //per evitare il blocco della protocollazione a meno di un iisreset inserisco questo codice. logger.Debug("Ricalcolo Personalization"); DocsPaDB.Utils.Personalization.Reset(); format = DocsPaDB.Utils.Personalization.getInstance(this.UserInfo.idAmministrazione).FormatoFascicolatura; if (format == null || format.Equals("")) { throw new FormatoFascicolaturaException(); } } //string codiceFasc = this.CalcolaCodiceFascicolo(this.UserInfo.idAmministrazione, classifica.codice, fascicolo.apertura, classifica.systemID, ref fascicolo.codUltimo, true, dbProvider); string codiceFasc = this.CalcolaCodiceFascicolo(this.UserInfo.idAmministrazione, classifica, fascicolo.apertura, ref fascicolo.codUltimo, true, dbProvider); string idReg = fascicolo.idRegistro; if (idReg != null && idReg == "") { idReg = classifica.registro.systemId; } // 4 - Si verifica che il codice sia univoco if (!objAX.CheckUniqueCode("PROJECT", "VAR_CODICE", codiceFasc, "AND ((ID_REGISTRO IS NULL OR ID_REGISTRO=" + idReg + " ) ) AND ID_AMM =" + this.UserInfo.idAmministrazione + " AND ID_PARENT = " + classifica.systemID + "", dbProvider)) { // 4 - Si verifica se il codice è già presente vienelanciata una eccezione //codiceFascNew = calcolaCodiceFascicolo(infoUtente.idAmministrazione,classificazione.codice, fascicolo.apertura, classificazione.systemID, ref fascicolo.codUltimo, false, dbProvider); throw new FascicoloPresenteException(); } // Creazione fascicolo string idPeopleDelegato = string.Empty; if (fascicolo.creatoreFascicolo != null && fascicolo.creatoreFascicolo.idPeopleDelegato != null) { idPeopleDelegato = fascicolo.creatoreFascicolo.idPeopleDelegato; } string systemIdFasc = this.CreateProject(fascicolo.descrizione, idPeopleDelegato); if (systemIdFasc != null && systemIdFasc != "") { fascicolo.systemID = systemIdFasc; /* 2 - VIENE INVOCATO IL METODO PER LA CREAZIONE DEL FASCICOLO * e della ROOT FOLDER */ bool resultNewFasc = this.CreazioneFascicoloConTransazione(classifica, fascicolo, this.UserInfo, ruolo, enableUfficioReferente, folder, codiceFasc, dbProvider, out ruoliSuperiori); //3 - SE LA CREAZIONE DEL FASCICOLO è ANDATA A BUON FINE SI EFFETTUA IL COMMIT //DELLA TRANSAZIONE if (resultNewFasc) { result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.OK; } else { throw new Exception("Errore nella gestione dei fascicoli (newFascicolo)"); } } else { throw new Exception("Errore nella gestione dei fascicoli (newFascicolo)"); } //Profilazione dinamica fascicoli if (fascicolo.template != null) { DocsPaDB.Query_DocsPAWS.ModelFasc modelFasc = new DocsPaDB.Query_DocsPAWS.ModelFasc(); modelFasc.salvaInserimentoUtenteProfDimFasc(fascicolo.template, fascicolo.systemID); } //Fine profilazione dinamica fascicoli logger.Debug("Fascicolo creato: idFascicolo = " + fascicolo.systemID); logger.Debug("Folder creata: = " + folder.systemID); if (result == ResultCreazioneFascicolo.OK) { retValue = true; } } catch (FascicoloPresenteException e) { retValue = false; fascicolo = null; result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.FASCICOLO_GIA_PRESENTE; logger.Debug(e.Message); } catch (FormatoFascicolaturaException e) { retValue = false; fascicolo = null; result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.FORMATO_FASCICOLATURA_NON_PRESENTE; logger.Debug(e.Message); } catch (Exception e) { //SE LA CREAZIONE DEL FASCICOLO GENERA ERRORE, //SI RILASCIANO RISORSE ALLOCATE E SI EFFETTUA IL ROLLBACK DELLA TRANSAZIONE retValue = false; fascicolo = null; result = DocsPaVO.fascicolazione.ResultCreazioneFascicolo.GENERIC_ERROR; logger.Debug(e.Message); } if (retValue) { dbProvider.CommitTransaction(); } else { dbProvider.RollbackTransaction(); } } logger.Info("END"); return(retValue); }
/// <summary> /// Creazione di un nuovo fascicolo /// </summary> /// <param name="classifica">Nodo di classificazione in cui creare il fascicolo</param> /// <param name="fascicolo">Metadati del fascicolo</param> /// <param name="ruolo">Ruolo dell'utente che inserisce il fascicolo</param> /// <param name="enableUfficioReferente"></param> /// <param name="result">Esito dettagliato dell'inserimento del fascicolo</param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result) { Ruolo[] ruoliSuperiori; return(this.CreateProject(classifica, fascicolo, ruolo, enableUfficioReferente, out result, out ruoliSuperiori)); }
public virtual BandoSyncResponse InsertBando(BandoSyncRequest _bandoSyncRequest) { string user = string.Empty; string password = "******"; string codiceNodoTitolario = string.Empty; string NomeTemplate = string.Empty; if (ConfigurationManager.AppSettings["UtenteIntegrazione"] != null) { user = ConfigurationManager.AppSettings["UtenteIntegrazione"]; } if (ConfigurationManager.AppSettings["CodiceNodoTitolario"] != null) { codiceNodoTitolario = ConfigurationManager.AppSettings["CodiceNodoTitolario"]; } if (ConfigurationManager.AppSettings["NomeTemplate"] != null) { NomeTemplate = ConfigurationManager.AppSettings["NomeTemplate"]; } BandoSyncResponse _BandoSyncResponse = new BandoSyncResponse(); Utility _utility = new Utility(); UserLogin login = new UserLogin(); login.UserName = user; login.Password = password; Utente utente = _utility.Login(login); if (utente.ruoli.Count > 0) { Ruolo ruolo = utente.ruoli[0] as Ruolo; Registro[] registri = _utility.RegistroGetRegistriRuolo(ruolo.systemId); if (registri.Length > 0) { OrgTitolario _classificazione = _utility.GetTitolarioAttivo(utente.idAmministrazione); if (_classificazione != null) { Classificazione nodo = _utility.FascicolazioneGetClassificazione(ruolo.idAmministrazione, ruolo.idGruppo, utente.idPeople, registri[0], codiceNodoTitolario, _classificazione.ID); if (nodo != null) { Templates template = BusinessLogic.ProfilazioneDinamica.ProfilazioneFascicoli.getTemplateByDescrizione(NomeTemplate); if (template.ELENCO_OGGETTI.Count > 0) { template.ELENCO_OGGETTI[0] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[0] as OggettoCustom, _bandoSyncRequest.Mandante); template.ELENCO_OGGETTI[1] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[1] as OggettoCustom, _bandoSyncRequest.NumeroGaraAppalto.ToString()); template.ELENCO_OGGETTI[2] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[2] as OggettoCustom, _bandoSyncRequest.OrganizzazioneAcquisti); template.ELENCO_OGGETTI[3] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[3] as OggettoCustom, _bandoSyncRequest.GruppoAcquisti); template.ELENCO_OGGETTI[4] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[4] as OggettoCustom, _bandoSyncRequest.DescrizioneGara); template.ELENCO_OGGETTI[5] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[5] as OggettoCustom, _bandoSyncRequest.DataScadenzaGara.ToString()); template.ELENCO_OGGETTI[6] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[6] as OggettoCustom, _bandoSyncRequest.DataEmissioneGara.ToString()); template.ELENCO_OGGETTI[7] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[7] as OggettoCustom, _bandoSyncRequest.DataAperturaBusteTecniche.ToString()); template.ELENCO_OGGETTI[8] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[8] as OggettoCustom, _bandoSyncRequest.DataRicezioneRelazioneTecnica.ToString()); template.ELENCO_OGGETTI[9] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[9] as OggettoCustom, _bandoSyncRequest.DataAperturaBusteEconomiche.ToString()); template.ELENCO_OGGETTI[10] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[10] as OggettoCustom, _bandoSyncRequest.DataPropostaAggiudicazioneTrattativa.ToString()); template.ELENCO_OGGETTI[11] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[11] as OggettoCustom, _bandoSyncRequest.DataAggiudicazione.ToString()); template.ELENCO_OGGETTI[12] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[12] as OggettoCustom, _bandoSyncRequest.DataAnnulamentoGara.ToString()); template.ELENCO_OGGETTI[13] = _utility.salvaValoreOggetto(template.ELENCO_OGGETTI[13] as OggettoCustom, _bandoSyncRequest.ValoreGara.ToString()); InfoUtente infoutente = BusinessLogic.Utenti.UserManager.GetInfoUtente(utente, ruolo); FiltroRicerca[][] listaFiltri = new FiltroRicerca[1][]; listaFiltri[0] = new FiltroRicerca[1]; List <FiltroRicerca> fVList = new List <FiltroRicerca>(); FiltroRicerca fV1 = new FiltroRicerca(); fV1.argomento = listaArgomenti.TIPO_FASCICOLO.ToString(); fV1.valore = "P"; fVList.Add(fV1); fV1.argomento = listaArgomenti.PROFILAZIONE_DINAMICA.ToString(); fV1.template = template; fV1.argomento = string.Empty; fVList.Add(fV1); listaFiltri[0] = fVList.ToArray(); //La classificazione è null perchè non specifico nessun nodo di titolario //Ricerco i fascicoli Fascicolo[] fascicoli = _utility.FascicolazioneGetListaFascicoli(null, listaFiltri[0], false, false, false, infoutente); Fascicolo _fascicoloNew = null; if (fascicoli.Length > 0) { fascicoli[0].template = template; _fascicoloNew = BusinessLogic.Fascicoli.FascicoloManager.updateFascicolo(fascicoli[0]); if (_fascicoloNew != null) { _BandoSyncResponse.CodiceEsito = 0; _BandoSyncResponse.DescrEsito = "Modifica effettuata correttamente"; } } else { Fascicolo _fascicolo = new Fascicolo(); _fascicolo.descrizione = _bandoSyncRequest.DescrizioneGara; _fascicolo.idRegistro = registri[0].systemId; _fascicolo.apertura = System.DateTime.Now.ToShortDateString(); _fascicolo.privato = "0"; _fascicolo.codUltimo = _utility.FascicolazioneGetFascNumRif(nodo.systemID, registri[0].systemId); _fascicolo.template = template; //creazione di un nuovo fascicolo _fascicoloNew = _utility.FascicolazioneNewFascicolo(nodo, _fascicolo, false, infoutente, ruolo); if (_fascicoloNew != null) { _BandoSyncResponse.CodiceEsito = 0; _BandoSyncResponse.DescrEsito = "Inserimento effettuato correttamente"; } } } else { _BandoSyncResponse.CodiceEsito = 200; _BandoSyncResponse.DescrEsito = "Il template " + NomeTemplate + " non è corretto o inesiste"; } } else { _BandoSyncResponse.CodiceEsito = 310; _BandoSyncResponse.DescrEsito = "Il nodo" + codiceNodoTitolario + " non è corretto o inesiste"; } } else { _BandoSyncResponse.CodiceEsito = 300; _BandoSyncResponse.DescrEsito = "Non è presente nessun titolario attivo"; } } else { _BandoSyncResponse.CodiceEsito = 100; _BandoSyncResponse.DescrEsito = "L'utente non ha associato nessun Registro"; } } else { _BandoSyncResponse.CodiceEsito = 600; _BandoSyncResponse.DescrEsito = "Autenticazione utente fallita"; } return(_BandoSyncResponse); }
private ContestoArchivistico getContestoArchivistico(InfoConservazione infoCons, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.InfoUtente infoUtente) { ContestoArchivistico retval = new ContestoArchivistico(); List <Fascicolazione> fasList = new List <Fascicolazione>(); List <Classificazione> titList = new List <Classificazione>(); object[] fasAList = BusinessLogic.Fascicoli.FascicoloManager.getFascicoliDaDocNoSecurity(infoUtente, schDoc.systemId).ToArray(); foreach (object fo in fasAList) { DocsPaVO.fascicolazione.Fascicolo fas = fo as DocsPaVO.fascicolazione.Fascicolo; if (fas != null) { if (fas.tipo == "P") { Fascicolazione fascicolazione = new Fascicolazione(); fascicolazione.DescrizioneFascicolo = fas.descrizione; fascicolazione.CodiceFascicolo = fas.codice; fascicolazione.CodiceSottofascicolo = null; fascicolazione.DescrizioneSottofascicolo = null; fasList.Add(fascicolazione); if (fas.idTitolario != null) { OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario); fascicolazione.TitolarioDiRierimento = nodo.Descrizione; } foreach (DocsPaVO.fascicolazione.Folder f in BusinessLogic.Fascicoli.FolderManager.GetFoldersDocument(schDoc.systemId, fas.systemID)) { Fascicolazione fasFolder = new Fascicolazione(); fasFolder.CodiceFascicolo = fas.descrizione; fasFolder.DescrizioneFascicolo = fas.codice; fasFolder.CodiceSottofascicolo = f.systemID; fasFolder.DescrizioneSottofascicolo = f.descrizione; fasFolder.TitolarioDiRierimento = fascicolazione.TitolarioDiRierimento; fasList.Add(fasFolder); } } else { OrgNodoTitolario nodo = BusinessLogic.Amministrazione.TitolarioManager.getNodoTitolario(fas.idTitolario); Classificazione cl = new Classificazione(); cl.TitolarioDiRiferimento = nodo.Descrizione; cl.CodiceClassificazione = nodo.Codice; titList.Add(cl); } } } List <DocumentoCollegato> lstDocColl = new List <DocumentoCollegato>(); if (schDoc.rispostaDocumento != null) { if ((schDoc.rispostaDocumento.docNumber != null) && (schDoc.rispostaDocumento.idProfile != null)) { SchedaDocumento sc = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, schDoc.rispostaDocumento.idProfile, schDoc.rispostaDocumento.docNumber); DocumentoCollegato docColl = new DocumentoCollegato { IDdocumento = schDoc.rispostaDocumento.idProfile, DataCreazione = Utils.formattaData(Utils.convertiData(sc.dataCreazione)), Oggetto = sc.oggetto.descrizione, }; if (sc.protocollo != null) { docColl.DataProtocollo = Utils.formattaData(Utils.convertiData(sc.protocollo.dataProtocollazione)); docColl.NumeroProtocollo = sc.protocollo.numero; docColl.SegnaturaProtocollo = sc.protocollo.segnatura; } lstDocColl.Add(docColl); } } retval.Fascicolazione = fasList.ToArray(); retval.Classificazione = titList.ToArray(); retval.DocumentoCollegato = lstDocColl.ToArray(); return(retval); }
/// <summary> /// Aggiornamento Acl per il documento /// </summary> /// <param name="idProfile"></param> /// <summary> /// Creazione nuovo fascicolo /// </summary> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"> /// Ruoli superiori cui è stata impostata la visibilità del fascicolo /// </param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { result = ResultCreazioneFascicolo.OK; ruoliSuperiori = null; return(true); }
/// <summary> /// Creazione di un nuovo fascicolo in DCTM /// </summary> /// <remarks> /// /// PreCondizioni: /// Il fascicolo è stato inserito correttamente in DocsPa /// ed è stato generato un'identificativo univoco /// /// PostCondizioni: /// Creato un oggetto in Documentum corrispondente all'oggetto /// fascicolo di DocsPa. L'oggetto avrà i metadati del fascicolo /// per la sola consultazione in documentum. /// /// </remarks> /// <param name="classifica"></param> /// <param name="fascicolo"></param> /// <param name="ruolo"></param> /// <param name="enableUfficioReferente"></param> /// <returns></returns> public bool CreateProject(Classificazione classifica, Fascicolo fascicolo, Ruolo ruolo, bool enableUfficioReferente, out ResultCreazioneFascicolo result) { logger.Info("BEGIN"); bool retValue = false; result = ResultCreazioneFascicolo.GENERIC_ERROR; CustomServices.AclDefinition aclFascicolo = null; try { //fascicolo.systemID viene SEMPRE valorizzato da ETDOCS; se così non è --> ERRORE if (string.IsNullOrEmpty(fascicolo.systemID)) { logger.Debug("Errore passaggio dati da ETDOCS."); } else { // Reperimento dell'objectidentity relativo al nodo titolario in cui andrà inserito il fascicolo ObjectIdentity nodoTitolarioIdentity = Dfs4DocsPa.getNodoTitolarioIdentity(fascicolo.idClassificazione); // Reperimento properties del fascicolo procedimentale PropertySet props = new PropertySet(); props.Properties.AddRange(Dfs4DocsPa.getFascicoloProcedimentaleProperties(fascicolo)); // Creazione delle ACL per il fascicolo aclFascicolo = this.CreateAclFascicolo(fascicolo, ruolo); // Associazione delle ACL al fascicolo da creare AclHelper.setAclObjectProperties(props, aclFascicolo); ObjectIdentity identity = new ObjectIdentity(DctmConfigurations.GetRepositoryName()); DataObject dataObject = new DataObject(identity, ObjectTypes.FASCICOLO_PROCEDIMENTALE); dataObject.Properties = props; dataObject.Relationships.Add(DfsHelper.createParentFolderRelationship(nodoTitolarioIdentity)); DataPackage dataPackage = new DataPackage(dataObject); IObjectService objectService = this.GetServiceInstance <IObjectService>(false); dataPackage = objectService.Create(dataPackage, null); retValue = (dataPackage.DataObjects.Count == 1); if (retValue) { result = ResultCreazioneFascicolo.OK; logger.Debug(string.Format("Documentum.CreateProject: creato fascicolo con id {0}", fascicolo.systemID)); } } } catch (Exception ex) { retValue = false; result = ResultCreazioneFascicolo.GENERIC_ERROR; logger.Debug(string.Format("Errore in Documentum.CreateProject:\n{0}", ex.ToString())); if (aclFascicolo != null) { // Rimozione ACL fascicolo in caso di errore this.DeleteAcl(aclFascicolo); } } logger.Info("END"); return(retValue); }