Ejemplo n.º 1
0
        // guardar correspondências
        private void tsbGravar_Click(object sender, EventArgs e)
        {
            var itemsEditedNotChecked = this.nodesDct.Values.Where(tn => tn.Tag != null && ((CorrespondenciaDocs)tn.Tag).Edited && !tn.Checked).ToList();

            if (itemsEditedNotChecked.Count > 0)
            {
                var str = "Existem documentos editados não assinalados para gravar." + System.Environment.NewLine +
                          "Pretende continuar?";
                var result = MessageBox.Show(str, "Documentos editados não assinalados", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.No)
                {
                    return;
                }
            }

            this.Cursor = Cursors.WaitCursor;
            var checkedCorrespondencias             = this.nodesDct.Values.Where(tn => tn.Tag != null && tn.Checked).Select(tn => ((Model.CorrespondenciaDocs)tn.Tag)).ToList();
            CorrespondenciaDocs lastCorrespondencia = null;
            var report = Database.Database.SaveCorrespondencias(checkedCorrespondencias, ref lastCorrespondencia);

            this.Cursor = Cursors.Default;

            if (report.Length > 0)
            {
                var frm = new FormIntergationReport();
                frm.Interrogacao =
                    lastCorrespondencia == null ? "Integração terminada com sucesso." : "Integração terminada com erros.";
                frm.Detalhes = report;
                frm.ShowDialog();
            }

            UpdateLastTimeStamp();
            SaveLastTimeStamp();
            DeactivateControls();

            // em caso de erro, selecionar o documento onde esse erro ocorreu
            if (lastCorrespondencia != null)
            {
                var nodeToSelect = nodesDct[lastCorrespondencia.EntidadeExterna.IDExterno];
                nodeToSelect.Checked = false;
                // retirar da lista os items já integrados
                var toDelete = this.nodesDct.Where(pair => pair.Value.Checked && pair.Value.Index < nodeToSelect.Index).ToList();
                toDelete.ForEach(pair => { this.lvRelations.Nodes.Remove(pair.Value); nodesDct.Remove(pair.Key); });
                this.lvRelations.SelectedNode = nodeToSelect;
                nodeToSelect.Checked          = true;
            }
            else
            {
                // recalcular sugestões
                this.Cursor = Cursors.WaitCursor;
                documentos  = this.nodesDct.Where(pair => !pair.Value.Checked).Select(pair => (DocumentoExterno)((CorrespondenciaDocs)pair.Value.Tag).EntidadeExterna).ToList();
                BuildSuggestions();
                UpdateToolbarButtons();
                this.Cursor = Cursors.Default;
            }

            UpdateToolbarButtons();
        }
Ejemplo n.º 2
0
        public void CopyProperties(CorrespondenciaDocs cDoc)
        {
            var fromDocument = cDoc.TipoOpcao != TipoOpcao.Ignorar ? cDoc.EntidadeInterna as DocumentoGisa : cDoc.GetEntidadeInterna(TipoOpcao.Sugerida) as DocumentoGisa;

            this.Processo          = fromDocument.Processo;
            this.NumeroEspecifico  = fromDocument.NumeroEspecifico;
            this.Codigo            = fromDocument.Codigo;
            this.DataCriacao       = fromDocument.DataCriacao;
            this.Notas             = fromDocument.Notas;
            this.Confidencialidade = fromDocument.Confidencialidade;
            this.Requerentes       = fromDocument.Requerentes;
            this.Averbamentos      = fromDocument.Averbamentos;
            this.NumLocalRefPred   = fromDocument.NumLocalRefPred;
            this.CodPostalLoc      = fromDocument.CodPostalLoc;
            this.Assunto           = fromDocument.Assunto;
            this.Agrupador         = fromDocument.Agrupador;

            this.ObjDigitais = fromDocument.ObjDigitais;
        }
Ejemplo n.º 3
0
        private void ShowDocument(CorrespondenciaDocs c)
        {
            switch (c.EntidadeExterna.Tipo)
            {
            case TipoEntidadeExterna.Documento:
                this.controlDocumentoExterno1.Documento = (DocumentoSimples)c.EntidadeExterna;
                this.controlDocumentoExterno1.BringToFront();
                this.controlDocumentoExterno1.Visible = true;
                this.controlDocumentoGisa1.CorrespondenciaDocumento = c;
                this.controlDocumentoGisa1.BringToFront();
                this.controlDocumentoGisa1.Visible = true;
                this.controlDocumentoGisa1.AddRefreshEvents();
                this.gbDocInPorto.Text = "Documento DocInPorto";
                break;

            case TipoEntidadeExterna.DocumentoAnexo:
                this.controlDocumentoExternoAnexo1.Documento = (DocumentoAnexo)c.EntidadeExterna;
                this.controlDocumentoExternoAnexo1.BringToFront();
                this.controlDocumentoExternoAnexo1.Visible = true;
                this.controlDocumentoGisaAnexo1.CorrespondenciaDocumento = c;
                this.controlDocumentoGisaAnexo1.BringToFront();
                this.controlDocumentoGisaAnexo1.Visible = true;
                this.controlDocumentoGisaAnexo1.AddRefreshEvents();
                this.gbDocInPorto.Text = "Anexo DocInPorto";
                break;

            case TipoEntidadeExterna.DocumentoComposto:
                this.controlDocumentoExternoProcesso1.Documento = (DocumentoComposto)c.EntidadeExterna;
                this.controlDocumentoExternoProcesso1.BringToFront();
                this.controlDocumentoExternoProcesso1.Visible = true;
                this.controlDocumentoGisaProcesso1.CorrespondenciaDocumento = c;
                this.controlDocumentoGisaProcesso1.BringToFront();
                this.controlDocumentoGisaProcesso1.Visible = true;
                this.controlDocumentoGisaProcesso1.AddRefreshEvents();
                this.gbDocInPorto.Text = "Processo DocInPorto";
                break;
            }
        }
Ejemplo n.º 4
0
        public DocumentoGisa()
        {
            this.Produtores   = new List <string>();
            this.Ideograficos = new List <string>();
            this.Onomasticos  = new List <string>();
            this.Toponimias   = new List <string>();

            this.Processo          = null;
            this.Serie             = new PropriedadeDocumentoGisaTemplate <DocumentoGisa>();
            this.NumeroEspecifico  = new PropriedadeDocumentoGisaTemplate <string>();
            this.TituloDoc         = new PropriedadeDocumentoGisaTemplate <string>();
            this.DataCriacao       = new PropriedadeDocumentoGisaTemplate <DataIncompleta>();
            this.Notas             = new PropriedadeDocumentoGisaTemplate <string>();
            this.Confidencialidade = new PropriedadeDocumentoGisaTemplate <string>();
            this.Requerentes       = new List <PropriedadeDocumentoGisaTemplate <string> >();
            this.Averbamentos      = new List <PropriedadeDocumentoGisaTemplate <string> >();
            this.NumLocalRefPred   = new PropriedadeDocumentoGisaTemplate <string>();
            this.CodPostalLoc      = new PropriedadeDocumentoGisaTemplate <string>();
            this.Assunto           = new PropriedadeDocumentoGisaTemplate <string>();
            this.Agrupador         = new PropriedadeDocumentoGisaTemplate <string>();

            this.ObjDigitais = new List <ObjectosDigitais>();
        }
Ejemplo n.º 5
0
        public DocumentoGisa()
        {
            this.Produtores = new List<string>();
            this.Ideograficos = new List<string>();
            this.Onomasticos = new List<string>();
            this.Toponimias = new List<string>();

            this.Processo = null;
            this.Serie = new PropriedadeDocumentoGisaTemplate<DocumentoGisa>();
            this.NumeroEspecifico = new PropriedadeDocumentoGisaTemplate<string>();
            this.TituloDoc = new PropriedadeDocumentoGisaTemplate<string>();
            this.DataCriacao = new PropriedadeDocumentoGisaTemplate<DataIncompleta>();
            this.Notas = new PropriedadeDocumentoGisaTemplate<string>();
            this.Confidencialidade = new PropriedadeDocumentoGisaTemplate<string>();
            this.Requerentes = new List<PropriedadeDocumentoGisaTemplate<string>>();
            this.Averbamentos = new List<PropriedadeDocumentoGisaTemplate<string>>();
            this.NumLocalRefPred = new PropriedadeDocumentoGisaTemplate<string>();
            this.CodPostalLoc = new PropriedadeDocumentoGisaTemplate<string>();
            this.Assunto = new PropriedadeDocumentoGisaTemplate<string>();
            this.Agrupador = new PropriedadeDocumentoGisaTemplate<string>();

            this.ObjDigitais = new List<ObjectosDigitais>();
        }
Ejemplo n.º 6
0
        public static List <CorrespondenciaDocs> GetSuggestions(List <DocumentoExterno> deList)
        {
            var ticks = DateTime.Now.Ticks;

            var raes = new HashSet <RegistoAutoridadeExterno>();
            var decs = new HashSet <DocumentoComposto>();
            var deas = new HashSet <DocumentoAnexo>();
            var des  = new HashSet <DocumentoSimples>();

            foreach (var de in deList.OfType <DocumentoSimples>())
            {
                des.Add(de);

                if (de.Tipologia != null)
                {
                    raes.Add(de.Tipologia);
                }
                if (de.Onomastico != null)
                {
                    raes.Add(de.Onomastico);
                }
                if (de.Toponimia != null)
                {
                    raes.Add(de.Toponimia);
                }
                if (de.Ideografico != null)
                {
                    raes.Add(de.Ideografico);
                }
                if (de.TecnicoDeObra != null)
                {
                    raes.Add(de.TecnicoDeObra);
                }
            }

            foreach (var de in deList.OfType <DocumentoAnexo>())
            {
                deas.Add(de);
            }

            foreach (var de in deList.OfType <DocumentoComposto>())
            {
                decs.Add(de);
                if (de.Produtor != null)
                {
                    raes.Add(de.Produtor);
                }
                if (de.Tipologia != null)
                {
                    raes.Add(de.Tipologia);
                }
                de.LocalizacoesObraDesignacaoActual.ToList().ForEach(g => raes.Add(g.LocalizacaoObraDesignacaoActual));
                de.TecnicosDeObra.ToList().ForEach(o => raes.Add(o));
            }

            Dictionary <DocumentoSimples, DocumentoGisa>  docsComCorrespAnteriores;
            Dictionary <DocumentoAnexo, DocumentoGisa>    docsAnexosComCorrespAnteriores;
            Dictionary <DocumentoComposto, DocumentoGisa> docsCompostosComCorrespAnteriores;
            Dictionary <RegistoAutoridadeExterno, RegistoAutoridadeInterno> rasComCorrespAnteriores;
            Dictionary <DocumentoSimples, DocumentoGisa>  docsComNovasCorrespEncontradas;
            Dictionary <DocumentoAnexo, DocumentoGisa>    docsAnexosComNovasCorrespEncontradas;
            Dictionary <DocumentoComposto, DocumentoGisa> docsCompostosComNovasCorrespEncontradas;
            Dictionary <RegistoAutoridadeExterno, RegistoAutoridadeInterno> rasComNovasCorrespEncontradas;
            Dictionary <DocumentoSimples, DocumentoGisa>  docsSimplesNovos;
            Dictionary <DocumentoAnexo, DocumentoGisa>    docsAnexosNovos;
            Dictionary <DocumentoComposto, DocumentoGisa> docsCompostosNovos;
            Dictionary <RegistoAutoridadeExterno, RegistoAutoridadeInterno> rasNovos;

            var ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());

            try
            {
                GisaDataSetHelper.ManageDatasetConstraints(false);

                //obter dados gisa, com base nos dados externos
                docsComCorrespAnteriores =
                    Database.Database.GetDocsCorrespondenciasAnteriores(des.Distinct().ToList(), ho.Connection);
                docsAnexosComCorrespAnteriores =
                    Database.Database.GetDocsCorrespondenciasAnteriores(deas.Distinct().ToList(), ho.Connection);
                docsCompostosComCorrespAnteriores =
                    Database.Database.GetDocsCorrespondenciasAnteriores(decs.Distinct().ToList(), ho.Connection);
                rasComCorrespAnteriores =
                    Database.Database.GetRAsCorrespondenciasAnteriores(raes.Distinct().ToList(), ho.Connection);

                //recolher lista dos que nao têm match
                List <DocumentoSimples> docsSemCorrespAnteriores =
                    des.Where(doc => !docsComCorrespAnteriores.ContainsKey(doc)).ToList();
                List <DocumentoAnexo> docsAnexosSemCorrespAnteriores =
                    deas.Where(doc => !docsAnexosComCorrespAnteriores.ContainsKey(doc)).ToList();
                List <DocumentoComposto> docsCompostosSemCorrespAnteriores =
                    decs.Where(doc => !docsCompostosComCorrespAnteriores.ContainsKey(doc)).ToList();
                List <RegistoAutoridadeExterno> rasSemCorrespAnteriores =
                    raes.Where(rae => !rasComCorrespAnteriores.ContainsKey(rae)).ToList();

                //criar correspondencias com documentos já existentes
                docsComNovasCorrespEncontradas =
                    Database.Database.GetDocsCorrespondenciasNovas(docsSemCorrespAnteriores, ho.Connection);
                docsAnexosComNovasCorrespEncontradas =
                    Database.Database.GetDocsCorrespondenciasNovas(docsAnexosSemCorrespAnteriores, ho.Connection);
                docsCompostosComNovasCorrespEncontradas =
                    Database.Database.GetDocsCorrespondenciasNovas(docsCompostosSemCorrespAnteriores, ho.Connection);
                rasComNovasCorrespEncontradas =
                    Database.Database.GetRAsCorrespondenciasNovas(rasSemCorrespAnteriores, ho.Connection);

                //recolher lista dos que nao têm match
                List <DocumentoSimples> docsSemCorrespNovasEncontradas =
                    des.Where(doc => !docsComCorrespAnteriores.ContainsKey(doc) && !docsComNovasCorrespEncontradas.ContainsKey(doc)).ToList();
                List <DocumentoAnexo> docsAnexosSemCorrespNovasEncontradas =
                    deas.Where(doc => !docsAnexosComCorrespAnteriores.ContainsKey(doc) && !docsAnexosComNovasCorrespEncontradas.ContainsKey(doc)).ToList();
                List <DocumentoComposto> docsCompostosSemCorrespNovasEncontradas =
                    decs.Where(doc => !docsCompostosComCorrespAnteriores.ContainsKey(doc) && !docsCompostosComNovasCorrespEncontradas.ContainsKey(doc)).ToList();
                List <RegistoAutoridadeExterno> rasSemCorrespNovasEncontradas =
                    raes.Where(ra => !rasComCorrespAnteriores.ContainsKey(ra) && !rasComNovasCorrespEncontradas.ContainsKey(ra)).ToList();

                //criar documentos novos para os que não tinham match
                var docsNovos = InternalEntitiesFactory.CreateInternalEntities(docsSemCorrespNovasEncontradas.Cast <DocumentoExterno>().ToList());
                docsSimplesNovos   = docsNovos.ToDictionary(doc => (DocumentoSimples)doc.Key, doc => (DocumentoGisa)doc.Value);
                docsNovos          = InternalEntitiesFactory.CreateInternalEntities(docsAnexosSemCorrespNovasEncontradas.Cast <DocumentoExterno>().ToList());
                docsAnexosNovos    = docsNovos.ToDictionary(doc => (DocumentoAnexo)doc.Key, doc => (DocumentoGisa)doc.Value);
                docsNovos          = InternalEntitiesFactory.CreateInternalEntities(docsCompostosSemCorrespNovasEncontradas.Cast <DocumentoExterno>().ToList());
                docsCompostosNovos = docsNovos.ToDictionary(doc => (DocumentoComposto)doc.Key, doc => (DocumentoGisa)doc.Value);
                rasNovos           = InternalEntitiesFactory.CreateInternalEntities(rasSemCorrespNovasEncontradas);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                throw;
            }
            finally
            {
                GisaDataSetHelper.ManageDatasetConstraints(true);
                ho.Dispose();
            }

            var dis = new List <DocumentoGisa>();

            dis.AddRange(docsComCorrespAnteriores.Values.ToArray());
            dis.AddRange(docsComNovasCorrespEncontradas.Values.ToArray());
            dis.AddRange(docsSimplesNovos.Values.ToArray());

            var rais = new List <RegistoAutoridadeInterno>();

            rais.AddRange(rasComCorrespAnteriores.Values.ToArray());
            rais.AddRange(rasComNovasCorrespEncontradas.Values.ToArray());
            rais.AddRange(rasNovos.Values.ToArray());

            // Dependências existentes entre objectos correspondencia:
            //  - o objecto correspondencia referente à tipologia do processo é a mesma no objectos correspondencia desse processo referenciados nos documentos simples
            //  - em cada documento simples, o objecto correspondencia referente ao produtor é o mesmo referenciado no seu processo
            //  - cada documento simples ou composto tem na sua propriedade 'Processo' a referência para o 'CorrespondenciaDocs' do seu processo
            var correspondenciasDocs = new List <CorrespondenciaDocs>();
            var tipologias           = new Dictionary <DocumentoComposto, CorrespondenciaRAs>();
            var processos            = new Dictionary <DocumentoComposto, CorrespondenciaDocs>();

            foreach (var de in decs)
            {
                CorrespondenciaDocs correspondenciaDocComposto =
                    (CorrespondenciaDocs)AssembleCorrespondencia(de, docsCompostosComCorrespAnteriores, docsCompostosComNovasCorrespEncontradas, docsCompostosNovos, CreateCorrespondenciaDocsCompostos);
                correspondenciasDocs.Add(correspondenciaDocComposto);
                processos.Add(de, correspondenciaDocComposto);

                foreach (var rae in de.RegistosAutoridade)
                {
                    CorrespondenciaRAs correspondenciaRAs =
                        (CorrespondenciaRAs)AssembleCorrespondencia(rae, rasComCorrespAnteriores, rasComNovasCorrespEncontradas, rasNovos, CreateCorrespondenciaRAs);
                    correspondenciaDocComposto.AddCorrespondenciaRA(correspondenciaRAs);

                    DefineStatesCorrespondenciaRAs(correspondenciaDocComposto, correspondenciaRAs);
                }

                var correspTipologia = correspondenciaDocComposto.CorrespondenciasRAs.SingleOrDefault(c => ((RegistoAutoridadeInterno)c.EntidadeInterna).TipoNoticiaAut == TipoNoticiaAut.TipologiaInformacional);
                if (correspTipologia != null)
                {
                    tipologias.Add(de, correspTipologia);
                }

                // definir entidades internas para a tipologia que já esteja associada ao documento (se existir alguma associada)
                if (correspondenciaDocComposto.EntidadeInterna.Id > 0 && docsCompostosComNovasCorrespEncontradas.ContainsKey((DocumentoComposto)correspondenciaDocComposto.EntidadeExterna))
                {
                    Database.Database.AddTipologiaOriginal(correspondenciaDocComposto);
                }
            }

            //documentos simples
            foreach (var de in des)
            {
                CorrespondenciaDocs correspondenciaDocs =
                    (CorrespondenciaDocs)AssembleCorrespondencia(de, docsComCorrespAnteriores, docsComNovasCorrespEncontradas, docsSimplesNovos, CreateCorrespondenciaDocs);
                correspondenciasDocs.Add(correspondenciaDocs);

                ((DocumentoGisa)correspondenciaDocs.EntidadeInterna).Processo = processos[de.Processo];

                foreach (var rae in de.RegistosAutoridade)
                {
                    CorrespondenciaRAs correspondenciaRAs =
                        (CorrespondenciaRAs)AssembleCorrespondencia(rae, rasComCorrespAnteriores, rasComNovasCorrespEncontradas, rasNovos, CreateCorrespondenciaRAs);
                    correspondenciaDocs.AddCorrespondenciaRA(correspondenciaRAs);

                    DefineStatesCorrespondenciaRAs(correspondenciaDocs, correspondenciaRAs);
                }

                if (correspondenciaDocs.TipoSugestao != TipoSugestao.Historico)
                {
                    // definir entidades internas para a tipologia que já esteja associada ao documento (se existir alguma associada)
                    if (correspondenciaDocs.EntidadeInterna.Id > 0 && docsComNovasCorrespEncontradas.ContainsKey((DocumentoSimples)correspondenciaDocs.EntidadeExterna))
                    {
                        Database.Database.AddTipologiaOriginal(correspondenciaDocs);
                    }
                }
            }

            //anexos
            foreach (var de in deas)
            {
                CorrespondenciaDocs correspondenciaDocsAnexos =
                    (CorrespondenciaDocs)AssembleCorrespondencia(de, docsAnexosComCorrespAnteriores, docsAnexosComNovasCorrespEncontradas, docsAnexosNovos, CreateCorrespondenciaDocsAnexos);
                correspondenciasDocs.Add(correspondenciaDocsAnexos);

                ((DocumentoGisa)correspondenciaDocsAnexos.EntidadeInterna).Processo = processos[de.Processo];
            }

            System.Diagnostics.Debug.WriteLine(">> " + new TimeSpan(DateTime.Now.Ticks - ticks).ToString());

            return(correspondenciasDocs);
        }
Ejemplo n.º 7
0
        private static void DefineStatesCorrespondenciaRAs(CorrespondenciaDocs cDoc, CorrespondenciaRAs cRa)
        {
            bool RelatedToDocument;
            bool DeletePreviousRelation;

            if (cRa.EntidadeInterna.GetType() == typeof(Model.EntidadesInternas.Tipologia))
            {
                cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.Novo;
                if (cDoc.EntidadeInterna.Estado == TipoEstado.SemAlteracoes)
                {
                    // verificar se o documento já tem uma tipologia
                    var caRow = GisaDataSetHelper.GetInstance().FRDBase
                                .Cast <GISADataset.FRDBaseRow>()
                                .Where(r => r.IDNivel == cDoc.EntidadeInterna.Id)
                                .SingleOrDefault().GetIndexFRDCARows()
                                .Cast <GISADataset.IndexFRDCARow>().ToList()
                                .SingleOrDefault(index => index.ControloAutRow.IDTipoNoticiaAut == (long)TipoNoticiaAut.TipologiaInformacional);

                    DeletePreviousRelation = caRow != null;

                    var caRow2 = GisaDataSetHelper.GetInstance().FRDBase
                                 .Cast <GISADataset.FRDBaseRow>()
                                 .Where(r => r.IDNivel == cDoc.EntidadeInterna.Id)
                                 .SingleOrDefault().GetIndexFRDCARows()
                                 .Cast <GISADataset.IndexFRDCARow>().ToList()
                                 .SingleOrDefault(index => index.ControloAutRow.ID == cRa.EntidadeInterna.Id);

                    RelatedToDocument = caRow2 != null;

                    if (RelatedToDocument)
                    {
                        cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.SemAlteracoes;
                    }
                    else if (!RelatedToDocument && DeletePreviousRelation)
                    {
                        cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.Editar;
                    }
                    else
                    {
                        cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.Novo;
                    }
                }
            }
            else if (cRa.EntidadeInterna.GetType() == typeof(Model.EntidadesInternas.Produtor))
            {
                var entidadeInterna = cDoc.EntidadeInterna;
                cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.Novo;

                if (cRa.EntidadeInterna.Estado == TipoEstado.SemAlteracoes && entidadeInterna.Estado == TipoEstado.SemAlteracoes)
                {
                    var caRow = GisaDataSetHelper.GetInstance().ControloAut.Cast <GISADataset.ControloAutRow>()
                                .SingleOrDefault(r => r.ID == cRa.EntidadeInterna.Id);
                    var nRowCA = caRow.GetNivelControloAutRows().Single().NivelRow;

                    cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = Database.Database.IsProdutor(entidadeInterna.Id, nRowCA.ID) ? TipoEstado.SemAlteracoes : TipoEstado.Novo;
                }
            }
            else
            {
                cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = TipoEstado.Novo;
                if (cDoc.EntidadeInterna.Estado == TipoEstado.SemAlteracoes)
                {
                    var caRow = GisaDataSetHelper.GetInstance().FRDBase
                                .Cast <GISADataset.FRDBaseRow>()
                                .Where(r => r.IDNivel == cDoc.EntidadeInterna.Id)
                                .SingleOrDefault().GetIndexFRDCARows()
                                .Cast <GISADataset.IndexFRDCARow>().ToList()
                                .Select(index => index.ControloAutRow)
                                .SingleOrDefault(ca => ca.ID == cRa.EntidadeInterna.Id);

                    cRa.EstadoRelacaoPorOpcao[cRa.TipoOpcao] = caRow != null ? TipoEstado.SemAlteracoes : TipoEstado.Novo;
                }
            }
        }
Ejemplo n.º 8
0
        public void CopyProperties(CorrespondenciaDocs cDoc)
        {
            var fromDocument = cDoc.TipoOpcao != TipoOpcao.Ignorar ? cDoc.EntidadeInterna as DocumentoGisa : cDoc.GetEntidadeInterna(TipoOpcao.Sugerida) as DocumentoGisa;
            this.Processo = fromDocument.Processo;
            this.NumeroEspecifico = fromDocument.NumeroEspecifico;
            this.Codigo = fromDocument.Codigo;
            this.DataCriacao = fromDocument.DataCriacao;
            this.Notas = fromDocument.Notas;
            this.Confidencialidade = fromDocument.Confidencialidade;
            this.Requerentes = fromDocument.Requerentes;
            this.Averbamentos = fromDocument.Averbamentos;
            this.NumLocalRefPred = fromDocument.NumLocalRefPred;
            this.CodPostalLoc = fromDocument.CodPostalLoc;
            this.Assunto = fromDocument.Assunto;
            this.Agrupador = fromDocument.Agrupador;

            this.ObjDigitais = fromDocument.ObjDigitais;
        }