Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }