示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);
        }