/// <summary> /// Caricamento dati protocollo uscita /// </summary> private void FetchProtocolloUscita() { ProtocolloUscita protocollo = this.GetSchedaDocumento().protocollo as ProtocolloUscita; if (protocollo != null) { if (protocollo.mittente != null) { this.txtCodMitt.Text = protocollo.mittente.codiceRubrica; this.txtDescMitt.Text = protocollo.mittente.descrizione; } this.FetchItemsDestinatari(this.lstDestinatari.Items, protocollo.destinatari); this.FetchItemsDestinatari(this.lstDestinatariCC.Items, protocollo.destinatariConoscenza); } }
/// <summary> /// Funzione per la creazione dell'oggetto protocollo in uscita /// </summary> /// <param name="rowData">L'oggetto con le informazioni sul documento creato</param> /// <param name="registrySyd">L'id del registro in cui protocollare</param> /// <param name="rfSyd">L'id dell'rf in cui protocollare</param> /// <param name="administrationSyd">L'id dell'amministrazione</param> /// <param name="isSmistamentoEnabled">True se è abilitato lo smistamento</param> /// <param name="userInfo">Le informazioni sull'utente che ha lanciato la procedura</param> /// <param name="role">Il ruolo con cui è stata lanciata la procedura</param> /// <returns>L'oggetto ProtocolloUscita compilato</returns> protected override Protocollo CreateProtocolObject(DocumentRowData rowData, string registrySyd, string rfSyd, string administrationSyd, bool isSmistamentoEnabled, InfoUtente userInfo, Ruolo role) { // Creazione dell'oggetto ProtocolloUscita ProtocolloUscita outProto = new ProtocolloUscita(); // Il corrispondente da inserire Corrispondente corr; // Il codice corrispondente da analizzare // Questo array dovrà contenere due elementi: Il codice corrispondente // e la tipologia (M, D, CC) string[] corrToAdd; // Creazione lista destinatari e destinatari conoscenza outProto.destinatari = new ArrayList(); outProto.destinatariConoscenza = new ArrayList(); // Calcolo del mittente del protocollo // Se è valorizzata la proprietà CorrDesc della rowData, significa che // i corrispondenti sono di tipo occasionale if (rowData.CorrDesc != null) { // Per ogni corrispondente in CorrDesc... foreach (string corrDesc in rowData.CorrDesc) { // Spezzettamento dei dati sul corrispondente corrToAdd = corrDesc.Split('#'); // Se non ci sono tre elementi, eccezione // Tre elementi poiché il formato con cui è scritto il codice è // <Codice>#D|CC# if (corrToAdd.Length != 3) { throw new Exception(String.Format( "Specifica corrispondente non valida: {0}", corrDesc)); } // Creazione del corrispondente corr = new Corrispondente(); // Impostazione della descrizione del corrispondente corr.descrizione = corrToAdd[0]; // Impostazione dell'id amministrazione corr.idAmministrazione = administrationSyd; // Impostazione del tipo corrispondente ad O corr.tipoCorrispondente = "O"; // A seconda del tipo di corrispondente bisogna intraprendere // azioni differenti switch (corrToAdd[1].ToUpper().Trim()) { case "D": // Destinatario principale // Bisogna aggiungere il corrispondente alla // lista dei destinatari outProto.destinatari.Add(corr); break; case "CC": // Destinatario in copia // Bisogna aggiungere il corrispondente alla // lista dei destinatari in conoscenza outProto.destinatariConoscenza.Add(corr); break; } } } if (rowData.CorrCode != null) { // Per ogni codice corrispondente in CorrCode... foreach (string corrDesc in rowData.CorrCode) { // Spezzettamento dei dati sul corrispondente corrToAdd = corrDesc.Split('#'); // Se non ci sono più tre elementi, eccezione // Tre elementi poiché il formato con cui è scritto il codice è // <Codice>#D|CC# if (corrToAdd.Length != 3) { throw new Exception(String.Format( "Specifica corrispondente non valida: {0}", corrDesc)); } // A seconda del tipo di corrispondente bisogna intraprendere // azioni differenti switch (corrToAdd[1].ToUpper().Trim()) { case "M": // Mittente del protocollo // Reperimento del corrispondente corr = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_OUT_MITT, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Impostazione del mittente, se individuato if (corr != null) { outProto.mittente = corr; } break; case "D": // Destinatario principale // Reperimento del corrispondente corr = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_OUT, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Aggiunta del corrispondente alla lista dei destinatari, se individuato if (corr != null) { outProto.destinatari.Add(corr); } break; case "CC": // Destinatario in copia // Reperimento del corrispondente corr = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_OUT, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Aggiunta del corrispondente alla lista dei destinatari, se individuato if (corr != null) { outProto.destinatariConoscenza.Add(corr); } break; } } } // Se non è stato impostato il mittente, si considera come tale // l'uo di appartenenza dell'utente che ha lanciato la procedura if (outProto.mittente == null) { outProto.mittente = role.uo; } // Aggiornamento di destinatari, mittenti e destinatari in conoscenza outProto.daAggiornareDestinatari = true; outProto.daAggiornareMittente = true; outProto.daAggiornareDestinatariConoscenza = true; // Restituzione dell'oggetto con le informazioni sul protocollo return(outProto); }
public static DocInfo buildInstance(SchedaDocumento input, String OriginalFileName, IEnumerable <Fascicolo> fascicoli, bool isAcquisito, bool hasPreview) { DocInfo res = new DocInfo(); res.IdDoc = input.systemId; res.OriginalFileName = OriginalFileName; if (input.noteDocumento != null && input.noteDocumento.Count > 0) { Array.Sort(input.noteDocumento.ToArray(), new InfoNoteComparer()); res.Note = input.noteDocumento[input.noteDocumento.Count - 1].Testo; } if (input.oggetto != null) { res.Oggetto = input.oggetto.descrizione; } res.DataDoc = toDate(input.dataCreazione); res.HasPreview = hasPreview; res.IsAcquisito = isAcquisito; res.TipoProto = input.tipoProto; res.AccessRights = input.accessRights; int AccInt = 0; Int32.TryParse(res.AccessRights, out AccInt); if (AccInt > 45) { res.CanTransmit = true; } if (input.documentoPrincipale != null) { res.IdDocPrincipale = input.documentoPrincipale.docNumber; } if (input.protocollo != null) { res.IsProtocollato = false; res.Segnatura = input.protocollo.segnatura; if (input.protocollo.daProtocollare == "0") { res.IsProtocollato = true; res.DataProto = toDate(input.protocollo.dataProtocollazione); } if (res.TipoProto.Equals("P")) { ProtocolloUscita pu = (ProtocolloUscita)input.protocollo; res.Mittente = formatCorrispondente(pu.mittente); foreach (object temp in pu.destinatari) { res.Destinatari.Add(formatCorrispondente((Corrispondente)temp)); } } if (res.TipoProto.Equals("A")) { ProtocolloEntrata pe = (ProtocolloEntrata)input.protocollo; res.Mittente = formatCorrispondente(pe.mittente); } } if (fascicoli != null) { foreach (Fascicolo fasc in fascicoli) { res.Fascicoli.Add(new List <string> { fasc.codice, fasc.descrizione }); } } return(res); }