/// <summary> /// Funzione per la creazione dell'oggetto protocollo in entrata /// </summary> /// <param name="rowData">L'oggetto con le informazioni sul documento da creare</param> /// <param name="registrySyd">Il system id del registo in cui protocollare</param> /// <param name="rfSyd">Il system id dell'rf in cui protocollare</param> /// <param name="administrationSyd">Il system id dell'amministrazione incui creare il documento</param> /// <param name="isSmistamentoEnabled">True se, da configurazione, è abilitato lo smistamento</param> /// <param name="userInfo">Le informazioni sull'utente che ha lanciato la procedura</param> /// <param name="role">Il ruolo dell'utente che ha lanciato la procedura</param> /// <returns>L'oggetto Protocollo con le informazioni sul protocollo in ingresso da creare</returns> protected override Protocollo CreateProtocolObject(DocumentRowData rowData, string registrySyd, string rfSyd, string administrationSyd, bool isSmistamentoEnabled, InfoUtente userInfo, Ruolo role) { // Creazione dell'oggetto ProtocolloEntrata ProtocolloEntrata inProto = new ProtocolloEntrata(); // Calcolo del mittente del protocollo // Se è valorizzata la proprietà CorrDesc della rowData, significa che // il corrispondente è di tipo occasionale if (rowData.CorrDesc != null && rowData.CorrDesc.Count > 0) { // Creazione del corrispondente inProto.mittente = new Corrispondente(); // Impostazione della descrizione del corrispondente inProto.mittente.descrizione = rowData.CorrDesc[0]; // Impostazione dell'id amministrazione inProto.mittente.idAmministrazione = administrationSyd; // Impostazione del tipo corrispondente ad O inProto.mittente.tipoCorrispondente = "O"; } if (rowData.CorrCode != null && rowData.CorrCode.Count > 0) { // Altrimenti si procede con il caricamento delle informazioni sul // corrispondente inProto.mittente = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_IN, rowData.CorrCode[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, TipoUtente.GLOBALE); } // Se non è stato ptrovato il corrispondente, eccezione if (inProto.mittente == null) { throw new Exception("Impossibile recuperare le informazioni sul mittente del protocollo."); } // Restituzione dell'oggetto con le informazioni sul protocollo return(inProto); }
/// <summary> /// Funzione per la creazione dell'oggetto protocollo in Ingresso /// </summary> /// <param name="rowData">L'oggetto con le informazioni sul documenti interno da creare</param> /// <param name="registrySyd">Il system id del registro</param> /// <param name="rfSyd">Il system id dell'RF</param> /// <param name="administrationSyd">Il system 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 con le informazioni sul protocollo da creare</returns> protected override Protocollo CreateProtocolObject(DocumentRowData rowData, string registrySyd, string rfSyd, string administrationSyd, bool isSmistamentoEnabled, InfoUtente userInfo, Ruolo role) { // Creazione dell'oggetto ProtocolloInterno ProtocolloInterno ownProto = new ProtocolloInterno(); // 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 ownProto.destinatari = new ArrayList(); ownProto.destinatariConoscenza = new ArrayList(); // 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_INT_MITT, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Impostazione del mittente, se individuato if (corr != null) { ownProto.mittente = corr; } break; case "D": // Destinatario principale // Reperimento del corrispondente corr = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_INT_DEST, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Aggiunta del corrispondente alla lista dei destinatari, se individuato if (corr != null) { ownProto.destinatari.Add(corr); } break; case "CC": // Destinatario in copia // Reperimento del corrispondente corr = ImportUtils.GetCorrispondenteByCode( ParametriRicercaRubrica.CallType.CALLTYPE_PROTO_INT_DEST, corrToAdd[0].Trim(), role, userInfo, registrySyd, rfSyd, isSmistamentoEnabled, DocsPaVO.addressbook.TipoUtente.GLOBALE); // Aggiunta del corrispondente alla lista dei destinatari, se individuato if (corr != null) { ownProto.destinatariConoscenza.Add(corr); } break; } } // Aggiornamento di destinatari, mittenti e destinatari in conoscenza ownProto.daAggiornareDestinatari = true; ownProto.daAggiornareMittente = true; ownProto.daAggiornareDestinatariConoscenza = true; // Restituzione dell'oggetto con le informazioni sul protocollo return(ownProto); }