/// <summary> /// Funzione per l'aggiunta dei dettagli su una nuova trasmissione singola /// </summary> /// <param name="singleTransmission">La trasmissione singola da aggiungere</param> public void AddTransmissionDetails(TrasmissioneSingola singleTransmission) { // L'oggetto da aggiungere alla collezione MassiveOperationTransmissionDetailsElement element; // Creazione dell'elemento element = new MassiveOperationTransmissionDetailsElement(); // Impostazione delle varie proprietà del nuovo elemento element.SingleTrasmission = singleTransmission; element.ExpirationDate = singleTransmission.dataScadenza; element.Reason = singleTransmission.ragione.descrizione; element.RecivierDescription = singleTransmission.corrispondenteInterno.descrizione; element.Type = singleTransmission.tipoTrasm; element.UserTransmission = singleTransmission.trasmissioneUtente; element.Id = Guid.NewGuid().ToString().ToUpper(); element.Note = singleTransmission.noteSingole; element.HidePreviousVersions = singleTransmission.hideDocumentPreviousVersions; // Se singleTransmission contiene un'unica trasmissione utente, allora daNotificare // è true indipendentemente dalle impostazioni if (singleTransmission.trasmissioneUtente.Length == 1) { singleTransmission.trasmissioneUtente[0].daNotificare = true; } // Aggiunta del nuovo elemento this.transmissionCollection.Add(element.Id.ToUpper(), element); }
public static bool CanInsertInLibroFirma(TrasmissioneSingola trasmSing, string docnumber) { bool value = false; if (trasmSing.ragione.azioneRichiesta != null && trasmSing.ragione.azioneRichiesta.ToString() != string.Empty) { string azioneRichiesta = trasmSing.ragione.azioneRichiesta.ToString(); String sign = string.Empty; if (azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.SIGN_CADES) || azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.SIGN_PADES)) { sign = "DO_DOC_FIRMA"; } if (azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.VERIFIED)) { sign = "DO_DOC_FIRMA_ELETTRONICA"; } value = UIManager.UserManager.IsAuthorizedFunctions("DO_LIBRO_FIRMA") && UIManager.UserManager.IsAuthorizedFunctions(sign) && !UIManager.LibroFirmaManager.IsDocInLibroFirma(docnumber); } else { value = false; } return(value); }
private void CreateAndTrasmDoc(SchedaDocumento scheda, InfoUtente userInfo, Ruolo ruolo) { //creo la trasmissione Trasmissione trasm = new Trasmissione(); TrasmissioneSingola trasmS = new TrasmissioneSingola(); TrasmissioneUtente trasmU = new TrasmissioneUtente(); //trasm.dataInvio = DateTime.Now.ToShortDateString(); trasm.DataDocFasc = scheda.dataCreazione; trasm.infoDocumento = DocsPAWA.DocumentManager.getInfoDocumento(scheda); trasm.ruolo = ruolo; trasm.tipoOggetto = TrasmissioneTipoOggetto.DOCUMENTO; trasm.utente = DocsPAWA.UserManager.getUtente(); trasmS.ragione = TrasmManager.GetRagioneNotifica(userInfo.idAmministrazione); trasmS.tipoDest = TrasmissioneTipoDestinatario.RUOLO; trasmS.tipoTrasm = "S"; trasmS.corrispondenteInterno = UserManager.getCorrispondenteBySystemID(this.Page, ruolo.systemId); trasmU.daNotificare = true; trasmU.utente = UserManager.getUtente(); trasmS.trasmissioneUtente = new TrasmissioneUtente[1]; trasmS.trasmissioneUtente[0] = trasmU; trasm.trasmissioniSingole = new TrasmissioneSingola[1]; trasm.trasmissioniSingole[0] = trasmS; Trasmissione trasmRes = TrasmManager.saveExecuteTrasm(this.Page, trasm, userInfo); }
public static bool InserimentoInLibroFirma(System.Web.UI.Page page, Trasmissione trasm, string idTrasmSingola) { try { SchedaDocumento sch = DocumentManager.getDocumentDetailsNoSecurity(page, trasm.infoDocumento.docNumber, trasm.infoDocumento.docNumber); TrasmissioneSingola trasmSingola = (from n in trasm.trasmissioniSingole where n.systemId.Equals(idTrasmSingola) select n).FirstOrDefault(); string noteNoteSing = trasmSingola.noteSingole; string note = !string.IsNullOrEmpty(trasm.noteGenerali) ? (string.IsNullOrEmpty(noteNoteSing) ? trasm.noteGenerali : trasm.noteGenerali + " - " + noteNoteSing) : noteNoteSing; ElementoInLibroFirma elemento = new ElementoInLibroFirma() { InfoDocumento = new InfoDocLibroFirma() { Docnumber = sch.docNumber, VersionId = sch.documenti[0].versionId, NumVersione = Convert.ToInt32(sch.documenti[0].version) }, DataAccettazione = DateTime.Now.ToString(), Modalita = LibroFirmaManager.Modalita.MANUALE, TipoFirma = trasmSingola.ragione.azioneRichiesta.ToString(), StatoFirma = TipoStatoElemento.DA_FIRMARE, RuoloProponente = trasm.ruolo, UtenteProponente = trasm.utente, IdRuoloTitolare = RoleManager.GetRoleInSession().idGruppo, IdUtenteTitolare = UserManager.GetUserInSession().idPeople, IdUtenteLocker = UserManager.GetUserInSession().idPeople, IdTrasmSingola = idTrasmSingola, Note = note }; return(docsPaWS.InserimentoInLibroFirma(elemento, UserManager.GetInfoUser())); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return(false); } }
private void addTrasmissioneUtente(Utente utente, TrasmissioneSingola trasmSingola) { TrasmissioneUtente trasmissioneUtente = new TrasmissioneUtente(); trasmissioneUtente.utente = utente; trasmissioneUtente.daNotificare = daNotificareSuModello(utente.idPeople, trasmSingola.corrispondenteInterno.systemId, _modello); trasmSingola.trasmissioneUtente.Add(trasmissioneUtente); }
protected void AddTrasmissioneUtente(Utente utente, TrasmissioneSingola trasm) { TrasmissioneUtente trasmissioneUtente = new TrasmissioneUtente(); trasmissioneUtente.utente = utente; trasmissioneUtente.daNotificare = true; trasm.trasmissioneUtente.Add(trasmissioneUtente); }
/// <summary> /// Creazione tabella trasmissioni singole /// </summary> /// <param name="trasmissioneSingola"></param> /// <param name="viewNoteSingole"></param> private void FetchTableTrasmissioneSingola(TrasmissioneSingola trasmissioneSingola, bool viewNoteSingole) { Table table = new Table(); table.ID = "tableTrasmissioneSingola_" + trasmissioneSingola.systemId; table.Attributes.Add("summary", "Dettagli trasmissione singola"); table.Style.Add("WIDTH", "95%"); TableRow row = new TableRow(); this.AppendHeaderTableCell(row, "Destinatario"); this.AppendHeaderTableCell(row, "Ragione"); this.AppendHeaderTableCell(row, "Tipo"); this.AppendHeaderTableCell(row, "Note individuali"); this.AppendHeaderTableCell(row, "Scade il"); table.Rows.Add(row); row = new TableRow(); this.AppendStandardTableCell(row, trasmissioneSingola.corrispondenteInterno.descrizione); this.AppendStandardTableCell(row, trasmissioneSingola.ragione.descrizione); string tipoTrasmissione = string.Empty; if (trasmissioneSingola.tipoTrasm.Equals("T")) { tipoTrasmissione = "TUTTI"; } else if (trasmissioneSingola.tipoTrasm.Equals("S")) { tipoTrasmissione = "UNO"; } this.AppendStandardTableCell(row, tipoTrasmissione); // visualizzazione del testo relativo alla nota singola // solamente se l'utente che ha effettuato la trasmissione // sia lo stesso di quello correntemente connesso if (viewNoteSingole) { this.AppendStandardTableCell(row, trasmissioneSingola.noteSingole); } else { this.AppendStandardTableCell(row, new string('-', 15)); } this.AppendStandardTableCell(row, trasmissioneSingola.dataScadenza); table.Rows.Add(row); this.detailsContainer.Controls.Add(table); this.FetchTableTrasmissioniUtente(trasmissioneSingola); }
public TrasmissioneSingola GetSingleTransmissionForUser(string corrSystemId) { TrasmissioneSingola toReturn = null; foreach (MassiveOperationTransmissionDetailsElement element in this.transmissionCollection.Values) { if (element.SingleTrasmission.corrispondenteInterno.systemId == corrSystemId) { toReturn = element.SingleTrasmission; } } return(toReturn); }
private static void buildBasicInfo(TrasmissioneSingola trasmissioneSingola, Corrispondente corr, RagioneTrasmissione ragione, string note, string tipoTrasm, int scadenza) { trasmissioneSingola.tipoTrasm = tipoTrasm; trasmissioneSingola.corrispondenteInterno = corr; trasmissioneSingola.ragione = ragione; trasmissioneSingola.noteSingole = note; if (scadenza > 0) { string dataScadenza = ""; System.DateTime data = System.DateTime.Now.AddDays(scadenza); dataScadenza = data.Day + "/" + data.Month + "/" + data.Year; trasmissioneSingola.dataScadenza = dataScadenza; } trasmissioneSingola.trasmissioneUtente = new ArrayList(); }
/// <summary> /// Reperimento trasmissione utente visualizzata /// </summary> /// <returns></returns> private TrasmissioneUtente GetTrasmissioneUtente() { TrasmissioneUtente trasmUtente = null; Trasmissione trasmissione = this.GetTrasmissione(); if (trasmissione.trasmissioniSingole.Length > 0) { TrasmissioneSingola trasmSingola = trasmissione.trasmissioniSingole[0]; if (trasmSingola.trasmissioneUtente.Length > 0) { trasmUtente = trasmSingola.trasmissioneUtente[0]; } } return(trasmUtente); }
public void addTrasmSingole(Corrispondente corr, RagioneTrasmissione ragione, string note, string tipoTrasm, int scadenza) { if (_trasmissioniSingole.ContainsKey(corr.systemId)) { if (_trasmissioniSingole[corr.systemId].daEliminare) { _trasmissioniSingole[corr.systemId].daEliminare = false; } return; } TrasmissioneSingola _trasmissioneSingola = new TrasmissioneSingola(); buildBasicInfo(_trasmissioneSingola, corr, ragione, note, tipoTrasm, scadenza); if (corr is Ruolo) { _trasmissioneSingola.tipoDest = TipoDestinatario.RUOLO; ArrayList listaUtenti = queryUtenti(corr); if (listaUtenti.Count == 0) { return; } foreach (Utente temp in listaUtenti) { addTrasmissioneUtente(temp, _trasmissioneSingola); } _trasmissioniSingole.Add(corr.systemId, _trasmissioneSingola); } if (corr is Utente) { _trasmissioneSingola.tipoDest = TipoDestinatario.UTENTE; addTrasmissioneUtente((Utente)corr, _trasmissioneSingola); _trasmissioniSingole.Add(corr.systemId, _trasmissioneSingola); } if (corr is UnitaOrganizzativa) { UnitaOrganizzativa theUo = (UnitaOrganizzativa)corr; QueryCorrispondenteAutorizzato qca = new QueryCorrispondenteAutorizzato(); qca.ragione = _trasmissioneSingola.ragione; qca.ruolo = _ruolo; ArrayList ruoli = BusinessLogic.Utenti.addressBookManager.getRuoliRiferimentoAutorizzati(qca, theUo); foreach (Ruolo r in ruoli) { addTrasmSingole(r, ragione, note, tipoTrasm, scadenza); } } }
/// <summary> /// Creazione tabella trasmissioni utente /// </summary> /// <param name="trasmissioneUtente"></param> /// <returns></returns> private void FetchTableTrasmissioniUtente(TrasmissioneSingola trasmissioneSingola) { Table table = new Table(); table.ID = "tableTrasmissioniUtente_" + trasmissioneSingola.systemId; table.Style.Add("WIDTH", "90%"); table.Attributes.Add("summary", "Dettagli trasmissione utente"); TableRow row = new TableRow(); this.AppendHeaderTableCell(row, "Utente"); this.AppendHeaderTableCell(row, "Vista il"); this.AppendHeaderTableCell(row, "Accettata il"); this.AppendHeaderTableCell(row, "Data rifiuto"); this.AppendHeaderTableCell(row, "Info accettazione / Info rifiuto"); this.AppendHeaderTableCell(row, "Riposta il"); table.Rows.Add(row); foreach (TrasmissioneUtente trasmissioneUtente in trasmissioneSingola.trasmissioneUtente) { row = new TableRow(); this.AppendStandardTableCell(row, trasmissioneUtente.utente.descrizione); this.AppendStandardTableCell(row, trasmissioneUtente.dataVista); if (trasmissioneUtente.valida != null && trasmissioneUtente.valida.Equals("1")) { this.AppendStandardTableCell(row, trasmissioneUtente.dataAccettata); } else { this.AppendStandardTableCell(row, new string('-', 15)); } this.AppendStandardTableCell(row, trasmissioneUtente.dataRifiutata); this.AppendStandardTableCell(row, trasmissioneUtente.noteAccettazione + Environment.NewLine + trasmissioneUtente.noteRifiuto); this.AppendStandardTableCell(row, trasmissioneUtente.dataRisposta); table.Rows.Add(row); } this.detailsContainer.Controls.Add(table); }
/// <summary> /// Verifica se, per la trasmissione, è richiesta la /// gestione dell'accettazione/rifiuto da parte dell'utente /// </summary> /// <param name="trasmissione"></param> /// <returns></returns> public bool IsRequiredAccettazioneRifiuto(Trasmissione trasmissione) { bool retValue = false; if (trasmissione.trasmissioniSingole.Length > 0) { TrasmissioneSingola trasmSingola = trasmissione.trasmissioniSingole[0]; if (trasmSingola.trasmissioneUtente.Length > 0) { TrasmissioneUtente trasmUtente = trasmSingola.trasmissioneUtente[0]; retValue = (trasmSingola.ragione.tipo.Equals("W") && trasmUtente.dataRifiutata.Equals(string.Empty) && trasmUtente.dataAccettata.Equals(string.Empty)); } } return(retValue); }
public TrasmissioneSingola GetSingleTransmissionForUser(string corrSystemId) { try { TrasmissioneSingola toReturn = null; foreach (MassiveOperationTransmissionDetailsElement element in this.transmissionCollection.Values) { if (element.SingleTrasmission.corrispondenteInterno.systemId == corrSystemId) { toReturn = element.SingleTrasmission; } } return(toReturn); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return(null); } }
/// <summary> /// Creazione tabella trasmissioni singole /// </summary> /// <param name="viewNoteSingole"></param> private void FetchTableTrasmissioneSingola(TrasmissioneSingola trasmissioneSingola) { Table table = new Table(); table.ID = "tableTrasmissioneSingola_" + trasmissioneSingola.systemId; table.Attributes.Add("summary", "Dettagli trasmissione singola"); TableRow row = new TableRow(); this.AppendHeaderTableCell(row, "Note individuali"); table.Rows.Add(row); row = new TableRow(); this.AppendStandardTableCell(row, trasmissioneSingola.noteSingole); table.Rows.Add(row); this.detailsContainer.Controls.Add(table); if (trasmissioneSingola.trasmissioneUtente.Length > 0) { this.FetchTableTrasmissioniUtente(trasmissioneSingola.trasmissioneUtente[0]); } }
/// <summary> /// Creazione dataset contenente i dati delle trasm ricevute /// </summary> /// <param name="trasmissioni"></param> /// <returns></returns> protected override DataSet TrasmissioniToDataset(DocsPAWA.DocsPaWR.Trasmissione[] trasmissioni) { DataSet ds = new DataSet("DatasetTrasmissioniRicevute"); DataTable dt = new DataTable("TableTrasmissioniRicevute"); dt.Columns.Add("ID", typeof(string)); dt.Columns.Add("DataInvio", typeof(string)); dt.Columns.Add("Mittente", typeof(string)); dt.Columns.Add("Ruolo", typeof(string)); dt.Columns.Add("Ragione", typeof(string)); dt.Columns.Add("DataScadenza", typeof(string)); if (trasmissioni != null) { foreach (DocsPAWA.DocsPaWR.Trasmissione trasm in trasmissioni) { DataRow row = dt.NewRow(); row["ID"] = trasm.systemId; row["DataInvio"] = trasm.dataInvio; row["Mittente"] = trasm.utente.descrizione; row["Ruolo"] = trasm.ruolo.descrizione; if (trasm.trasmissioniSingole.Length > 0) { TrasmissioneSingola trasmSingola = trasm.trasmissioniSingole[0]; row["Ragione"] = trasmSingola.ragione.descrizione; row["DataScadenza"] = trasmSingola.dataScadenza; } dt.Rows.Add(row); } } ds.Tables.Add(dt); return(ds); }
/// <summary> /// Metodo per la trasmissione del documento ai destinatari interni (utenti che si trovano in ruoli cui sono associate /// le microfunzioni relative all'IS) /// </summary> /// <param name="settings">Impostazioni relative all'interoperabilità semplificata per il registro su cui è stato creato il documento</param> /// <param name="document">Documento da trasmettere</param> /// <param name="userRole">Ruolo utilizzato per la trasmissione</param> /// <param name="user">Utente mittente della trasmissione</param> /// <param name="privateDocument">Flag utilizzato per indicare se il documento è stato ricevuto marcato come privato dal mittente della spedizione</param> /// <param name="receiversInfo">Informaizoni sui destinari da contattare</param> /// <returns>Lista dei destinatari per cui si è verificato un problema</returns> private static List <ReceiverInfo> TransmitDocument(InteroperabilitySettings settings, SchedaDocumento document, Ruolo userRole, Utente user, bool privateDocument, List <ReceiverInfo> receiversInfo) { logger.Debug("RAFFREDDORE - Start"); logger.Debug("RAFFREDDORE - " + (document == null ? "Documento nullo" : document.systemId)); // Recupero delle informazioni sui corrispondenti interni all'amministrazione che devono ricevere // la trasmissione del documento List <Corrispondente> corrs = null; // Lista dei destinatari della spedizione per cui non sono stati individuati destinatari List <ReceiverInfo> uneachableReceivers = new List <ReceiverInfo>(); try { logger.Debug("RAFFREDDORE - prima del caricamento destinatari"); corrs = InteroperabilitaSemplificataManager.LoadTransmissionReceivers(settings, privateDocument, receiversInfo, out uneachableReceivers); if (corrs == null || corrs.Count == 0) { logger.Error("Nessun destinatario trovato per la trasmissione del documento"); throw new RetrivingTransmissionReceiverException("Nessun destinatario trovato per la trasmissione del documento"); } } catch (Exception e) { SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, true, e.Message); throw new RetrivingTransmissionReceiverException(e.Message); } // Creazione dell'oggetto trasmissione Trasmissione transmission = new Trasmissione(); transmission.ruolo = userRole; transmission.utente = user; transmission.noteGenerali = receiversInfo.Select(r => r.Code).Aggregate((r1, r2) => String.Format("{0} {1}", r1, r2)); transmission.infoDocumento = new InfoDocumento(document); // Creazione della ragione di trasmissione per interoperabilità semplificata RagioneTrasmissione reason = InteroperabilitaSegnatura.getRagioneTrasm(user.idAmministrazione, "S"); if (reason != null && privateDocument) { reason.eredita = "0"; } if (reason != null) { logger.DebugFormat("IS - Effettuato caricamento della ragione di trasmissione per interoperabilità. Id ragione: {0}; Eredita: {1}", reason.systemId, reason.eredita); } // Creazione delle trasmissioni singole transmission.trasmissioniSingole = new System.Collections.ArrayList(); foreach (var corr in corrs) { // Creazione della trasmissione singola TrasmissioneSingola singleTransmission = new TrasmissioneSingola() { ragione = reason, corrispondenteInterno = corr, tipoTrasm = "S", tipoDest = TipoDestinatario.RUOLO }; // Caricamento degli utenti del ruolo singleTransmission.trasmissioneUtente = new System.Collections.ArrayList(); // Caricamento utenti del ruolo QueryCorrispondente qc = new QueryCorrispondente(); qc.codiceRubrica = ((DocsPaVO.utente.Ruolo)corr).codiceRubrica; qc.idRegistri = new System.Collections.ArrayList(); qc.idRegistri.Add(settings.RegistryId); qc.idAmministrazione = user.idAmministrazione; qc.getChildren = true; qc.fineValidita = true; ArrayList users = addressBookManager.listaCorrispondentiIntMethod(qc); // Costruzione delle trasmissioni utente foreach (Utente u in users) { u.dst = user.dst; singleTransmission.trasmissioneUtente.Add(new TrasmissioneUtente() { utente = u }); } transmission.trasmissioniSingole.Add(singleTransmission); } // Esecuzione della trasmissione try { // INCIDENT 104707 // modifica PALUMBO per consentire invio mail di notifica in caso di trasmissione ricevuta per IS // necessaria chiave "URL_PATH_IS" webconfig ws . string path = String.Empty; if (System.Configuration.ConfigurationManager.AppSettings["URL_PATH_IS"] != null) { path = System.Configuration.ConfigurationManager.AppSettings["URL_PATH_IS"].ToString(); } logger.Debug("RAFFREDDORE - url path is " + path); //ExecTrasmManager.saveExecuteTrasmMethod(String.Empty, transmission); Trasmissione resultTrasm = ExecTrasmManager.saveExecuteTrasmMethod(path, transmission); logger.Debug("RAFFREDDORE - Trasmissione nulla? " + (resultTrasm == null?"Nulla":"NON nulla")); //traccio l'evento di trasmssione string method = string.Empty, desc = string.Empty; if (resultTrasm != null && resultTrasm.infoDocumento != null && !string.IsNullOrEmpty(resultTrasm.infoDocumento.docNumber)) { List <string> includedList = new List <string>(); string idCorr = string.Empty; foreach (DocsPaVO.trasmissione.TrasmissioneSingola single in resultTrasm.trasmissioniSingole) { logger.Warn("DEBUG: WriteLog-IS- " + resultTrasm.utente.userId + " " + resultTrasm.infoDocumento.docNumber + " " + resultTrasm.utente.idPeople + " " + resultTrasm.ruolo.idGruppo + " " + resultTrasm.utente.idAmministrazione + " " + resultTrasm.utente.idPeople + " " + method + " " + desc + " " + single.systemId); method = "TRASM_DOC_" + single.ragione.descrizione.ToUpper().Replace(" ", "_"); desc = "Trasmesso Documento predisposto in arrivo : " + resultTrasm.infoDocumento.docNumber.ToString(); idCorr = single.corrispondenteInterno.systemId; if (!includedList.Contains(idCorr)) { BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, null, "1", single.systemId); includedList.Add(idCorr); } else { BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople, resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method, resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, null, "0", single.systemId); } logger.Warn("DEBUG: WriteLog-IS- OK"); } } } catch (Exception e) { logger.Error("RAFFREDDORE - Errore durante la trasmissione del documento ai destinatari"); SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, true, "Errore nella trasmissione del documento ai ruoli designati"); throw new ExecuteTransmissionException("Errore durante la trasmissione del documento ai destinatari"); } // Se si è arrivati fin qui la trasmissione è stata effettuata correttamente, quindi viene aggiunta // una voce al log SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, false, String.Format("Documento con id {0} trasmesso correttamente ai destinatari", document.systemId)); // Restituzione dei corrispondenti non troviati return(uneachableReceivers); }