public IProtocolo Obter(int id)
        {
            IProtocolo protocolo = null;

            try
            {
                protocolo = _da.Obter(id);

                if ((protocolo.Id ?? 0) <= 0)
                {
                    Validacao.Add(Mensagem.Processo.Inexistente);
                }
                else
                {
                    if (protocolo.Arquivo != null && protocolo.Arquivo.Id > 0)
                    {
                        ArquivoDa _arquivoDa = new ArquivoDa();
                        protocolo.Arquivo = _arquivoDa.Obter(protocolo.Arquivo.Id.Value);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(protocolo);
        }
        public Documento Obter(int id)
        {
            Documento documento = null;

            try
            {
                documento = _da.Obter(id) as Documento;

                if (documento != null && documento.Arquivo != null && documento.Arquivo.Id > 0)
                {
                    ArquivoDa _arquivoDa = new ArquivoDa();
                    documento.Arquivo = _arquivoDa.Obter(documento.Arquivo.Id.Value);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(documento);
        }
Beispiel #3
0
        public MemoryStream GerarPdfProtocoloAssociado(int protocoloId)
        {
            ProtocoloRelatorio protocolo = _da.Obter(protocoloId);

            Document     doc = new Document(PageSize.A4, 45, 45, 85, 50);
            MemoryStream str = new MemoryStream();

            PdfWriter wrt = PdfWriter.GetInstance(doc, str);

            wrt.SetEncryption(PdfWriter.STRENGTH128BITS, null, null, PdfWriter.AllowPrinting);

            wrt.PageEvent = CabecalhoRodapeFactory.Criar(protocolo.SetorCriacaoId);

            doc.Open();

            PdfPTable tabelaDocumento = PdfMetodosAuxiliares.CriarTabela();

            tabelaDocumento.DefaultCell.Padding = 0;
            PdfMetodosAuxiliares.AddTituloData(doc, "Documentos Juntados/Processos Apensados");
            tabelaDocumento.DefaultCell.BorderWidth = 0;

            #region Processo/Documento

            tabelaDocumento.AddCell(PdfMetodosAuxiliares.AddTexto("Processo", PdfMetodosAuxiliares.arial10Negrito));
            PdfMetodosAuxiliares.PularLinha(tabelaDocumento);

            PdfPTable tabelaInterior = PdfMetodosAuxiliares.CriarTabela(2, new float[] { 20, 80 });

            tabelaInterior.AddCell(PdfMetodosAuxiliares.AddTexto("Tipo:", PdfMetodosAuxiliares.arial10));
            tabelaInterior.AddCell(PdfMetodosAuxiliares.AddTexto(protocolo.TipoTexto, PdfMetodosAuxiliares.arial10));
            tabelaInterior.AddCell(PdfMetodosAuxiliares.AddTexto("Número:", PdfMetodosAuxiliares.arial10));
            tabelaInterior.AddCell(PdfMetodosAuxiliares.AddTexto(protocolo.Numero, PdfMetodosAuxiliares.arial10));

            tabelaDocumento.AddCell(tabelaInterior);

            #endregion

            List <ProtocoloRelatorio> protocolosAux = new List <ProtocoloRelatorio>();

            #region Documentos Juntados

            protocolosAux = protocolo.ProtocolosAssociados.Where(x => x.ProtocoloTipo == 2).ToList();
            if (protocolosAux != null && protocolosAux.Count > 0)
            {
                GerarTabelas(protocolosAux, "Documentos Juntados", tabelaDocumento);
            }

            #endregion

            #region Processos Apensados

            protocolosAux = protocolo.ProtocolosAssociados.Where(x => x.ProtocoloTipo == 1).ToList();
            if (protocolosAux != null && protocolosAux.Count > 0)
            {
                GerarTabelas(protocolosAux, "Processos Apensados", tabelaDocumento);
            }

            #endregion

            doc.Add(tabelaDocumento);

            doc.Close();
            doc.Dispose();

            return(str);
        }
Beispiel #4
0
        public void ValidarProcessoTodosCampos(Processo processo, bool isConversao = false)
        {
            ListaBus      listaBus = new ListaBus();
            ProtocoloTipo configuracaoProtocoloTipo = listaBus.TiposProcesso.FirstOrDefault(x => x.Id == processo.Tipo.Id);

            if (processo.ChecagemRoteiro.Id <= 0 && processo.Requerimento.Id <= 0)
            {
                if (processo.Interessado.Id <= 0)
                {
                    Validacao.Add(Mensagem.Processo.InteressadoObrigatorio);
                }
            }
            else
            {
                if ((configuracaoProtocoloTipo.ChecagemRoteiroObrigatorio && processo.ChecagemRoteiro.Id <= 0) ||
                    processo.Requerimento.Id > 0 && processo.ChecagemRoteiro.Id <= 0)
                {
                    Validacao.Add(Mensagem.Processo.ChecagemObrigatoria);
                    return;
                }

                if (configuracaoProtocoloTipo.FiscalizacaoObrigatorio && processo.Fiscalizacao.Id <= 0)
                {
                    Validacao.Add(Mensagem.Processo.FiscalizacaoObrigatoria);
                }

                if ((configuracaoProtocoloTipo.RequerimentoObrigatorio && processo.Requerimento.Id <= 0) ||
                    processo.ChecagemRoteiro.Id > 0 && processo.Requerimento.Id <= 0)
                {
                    Validacao.Add(Mensagem.Processo.RequerimentoObrigatorio);
                }
                else
                {
                    if (!isConversao)
                    {
                        RequerimentoFinalizado(processo.Requerimento.Id, processo.Id.GetValueOrDefault());
                    }

                    if (processo.Atividades.Count <= 0)
                    {
                        Validacao.Add(Mensagem.Processo.AtividadeObrigatoria);
                    }
                    else
                    {
                        Processo processoBanco = processo.Id.GetValueOrDefault() > 0 ? _da.Obter(processo.Id.Value) as Processo : new Processo();
                        ValidarAtividades(processo.Atividades, (processoBanco.Requerimento.Id != processo.Requerimento.Id));

                        if (processoBanco.Requerimento.Id == processo.Requerimento.Id)
                        {
                            foreach (Atividade atividade in processoBanco.Atividades)
                            {
                                Atividade atividadeAux = processo.Atividades.SingleOrDefault(x => x.Id == atividade.Id);
                                foreach (var finalidade in atividade.Finalidades)
                                {
                                    if (!atividadeAux.Finalidades.Exists(x => x.Id == finalidade.Id) && _atividadeDa.VerificarAtividadeAssociadaTitulo(processoBanco.Id.Value, true, atividade.Id, finalidade.TituloModelo))
                                    {
                                        Validacao.Add(Mensagem.Atividade.FinalidadeAssociadaTitulo(finalidade.TituloModeloTexto));
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        public bool Salvar(Documento documento)
        {
            #region Validações Genéricas

            if (documento.SetorId <= 0 && documento.Id.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.Documento.SetorObrigatorio);
            }

            if (!documento.DataCadastro.Data.HasValue)
            {
                Validacao.Add(Mensagem.Documento.DataCriacaoObrigatoria);
            }
            else
            {
                if (documento.DataCadastro.Data > DateTime.Today)
                {
                    Validacao.Add(Mensagem.Documento.DataCriacaoMaiorAtual);
                }
            }

            if (documento.Tipo.Id <= 0)
            {
                Validacao.Add(Mensagem.Documento.DocumentoTipoObrigatorio);
            }

            if (documento.Volume.GetValueOrDefault() <= 0 && documento.Tipo.QuantidadeDocumentoObrigatorio)             //Documento Avulso
            {
                Validacao.Add(Mensagem.Documento.QuantidadeDocumentoObrigatoria);
            }

            if (string.IsNullOrEmpty(documento.Nome) && documento.Tipo.NomeObrigatorio)
            {
                Validacao.Add(Mensagem.Documento.NomeObrigatorio);
            }

            if (string.IsNullOrEmpty(documento.Assunto) && documento.Tipo.AssuntoObrigatorio)
            {
                Validacao.Add(Mensagem.Documento.AssuntoObrigatorio);
            }

            if (string.IsNullOrEmpty(documento.Descricao) && documento.Tipo.DescricaoObrigatoria)
            {
                Validacao.Add(Mensagem.Documento.DescricaoObrigatoria);
            }

            if (documento.Tipo.DestinatarioLivreObrigatorio)
            {
                if (string.IsNullOrWhiteSpace(documento.Descricao))
                {
                    Validacao.Add(Mensagem.Documento.ConteudoOficioObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(documento.OrgaoDestino))
                {
                    Validacao.Add(Mensagem.Documento.OrgaoDestinoObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(documento.CargoFuncaoDestinatario))
                {
                    Validacao.Add(Mensagem.Documento.CargoFuncaoDestinatarioObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(documento.NomeDestinatario))
                {
                    Validacao.Add(Mensagem.Documento.NomeDestinatarioObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(documento.EnderecoDestinatario))
                {
                    Validacao.Add(Mensagem.Documento.EnderecoDestinatarioObrigatorio);
                }
            }

            if (documento.Tipo.Id == (int)eProtocoloTipo.FiscalizacaoSemAI_TEI_TAD)
            {
                if (documento.Fiscalizacao.Id == 0)
                {
                    Validacao.Add(Mensagem.Documento.FiscalizacaoObrigatoria);
                }
                else
                {
                    FiscalizacaoValidar fiscValidar = new FiscalizacaoValidar();

                    if (fiscValidar.PossuiAI_TED_TAD(documento.Fiscalizacao.Id))
                    {
                        Validacao.Add(Mensagem.Documento.PossuiAI_TEI_TAD);
                    }

                    String numeroProtocoloAssociado = ValidarFiscalizacaoAssociadaOutroProtocolo(documento.Id.GetValueOrDefault(0), documento.Fiscalizacao.Id);
                    if (!String.IsNullOrWhiteSpace(numeroProtocoloAssociado))
                    {
                        Validacao.Add(Mensagem.Fiscalizacao.FiscalizacaoJaAssociada(numeroProtocoloAssociado));
                    }
                }
            }

            if (documento.Tipo.Id <= 0)
            {
                return(false);
            }

            ListaBus      listaBus = new ListaBus();
            ProtocoloTipo configuracaoDocumentoTipo = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id);
            Documento     documentoOriginal         = documento.Id.GetValueOrDefault() > 0 ? _da.Obter(documento.Id.Value) as Documento : new Documento();

            if (configuracaoDocumentoTipo.ProcessoObrigatorio && documento.ProtocoloAssociado.Id.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.Documento.ProcessoObrigatorio);
            }

            if (configuracaoDocumentoTipo.ChecagemPendenciaObrigatorio)
            {
                if (documento.ChecagemPendencia.Id <= 0)
                {
                    Validacao.Add(Mensagem.Documento.ChecagemPendenciaObrigatoria);
                }
                else
                {
                    ChecagemPendenciaJaAssociada(documento.ChecagemPendencia.Id, documento.Id.GetValueOrDefault());
                }
            }

            if (configuracaoDocumentoTipo.InteressadoObrigatorio && documento.Interessado.Id == 0)
            {
                Validacao.Add(Mensagem.Documento.InteressadoObrigatorio);
            }

            if (configuracaoDocumentoTipo.RequerimentoObrigatorio)
            {
                if (documento.ChecagemRoteiro.Id <= 0)
                {
                    Validacao.Add(Mensagem.Documento.ChecagemObrigatoria);
                }

                if (documento.Requerimento.Id <= 0)
                {
                    Validacao.Add(Mensagem.Documento.RequerimentoObrigatorio);
                }
                else
                {
                    if (_requerimentoValidar.RequerimentoDeclaratorio(documento.Requerimento.Id))
                    {
                        Validacao.Add(Mensagem.Documento.AssociarDeclaratorio);
                    }

                    RequerimentoFinalizado(documento.Requerimento.Id, documento.Id.GetValueOrDefault());

                    ResponsavelTecnico(documento.Responsaveis);

                    if (documento.Atividades.Count <= 0)
                    {
                        Validacao.Add(Mensagem.Documento.AtividadeObrigatoria);
                    }
                    else
                    {
                        Atividades(documento.Atividades, (documentoOriginal.Requerimento.Id != documento.Requerimento.Id));

                        if (documentoOriginal.Requerimento.Id == documento.Requerimento.Id)
                        {
                            foreach (Atividade atividade in documentoOriginal.Atividades)
                            {
                                Atividade atividadeAux = documento.Atividades.SingleOrDefault(x => x.Id == atividade.Id);
                                foreach (var finalidade in atividade.Finalidades)
                                {
                                    if (!atividadeAux.Finalidades.Exists(x => x.Id == finalidade.Id) && _atividadeDa.VerificarAtividadeAssociadaTitulo(documentoOriginal.Id.Value, false, atividade.Id, finalidade.TituloModelo))
                                    {
                                        Validacao.Add(Mensagem.Atividade.FinalidadeAssociadaTitulo(finalidade.TituloModeloTexto));
                                    }
                                }
                            }
                        }
                    }
                }
            }

            #endregion

            if (documento.Id > 0)
            {
                #region Editar

                if (!_da.EmPosse(documento.Id.Value))
                {
                    Validacao.Add(Mensagem.Documento.PosseDocumentoNecessariaEditar);
                    return(Validacao.EhValido);
                }

                if ((documento.ChecagemRoteiro.Id > 0 && documento.Requerimento.Id > 0) &&
                    (documentoOriginal.ChecagemRoteiro.Id != documento.ChecagemRoteiro.Id || documentoOriginal.Requerimento.Id != documento.Requerimento.Id))
                {
                    _requerimentoValidar.RoteirosChecagemRequerimento(documento.ChecagemRoteiro.Id, documento.Requerimento.Id, documento.Requerimento.SituacaoId);
                }

                if (documentoOriginal.ChecagemRoteiro.Id != documento.ChecagemRoteiro.Id)
                {
                    if (_da.VerificarChecagemTemTituloPendencia(ModeloCodigosPendencia, documento.Id.Value).Count > 0)
                    {
                        Validacao.Add(Mensagem.Documento.ChecagemAssociadaTitulo);
                    }
                    else
                    {
                        _busCheckListRoteiro.ValidarAssociarCheckList(documento.ChecagemRoteiro.Id, documento.Id.Value, false);
                    }
                }

                if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id)
                {
                    List <String> titulos = _da.VerificarAtividadeAssociadaTitulo(documento.Id.GetValueOrDefault());

                    if (titulos.Count < 0)
                    {
                        Validacao.Add(Mensagem.Documento.RequerimentoAssociadoTitulo());
                    }
                }

                if (documento.ChecagemPendencia.Id != documentoOriginal.ChecagemPendencia.Id)
                {
                    Validacao.Add(Mensagem.Documento.ChecagemPendenciaAlterada);
                }

                #endregion
            }
            else
            {
                #region Criar

                if (documento.ChecagemRoteiro != null && documento.ChecagemRoteiro.Id > 0)
                {
                    _busCheckListRoteiro.ValidarAssociarCheckList(documento.ChecagemRoteiro.Id, documento.Id.GetValueOrDefault(), false);
                }

                if ((documento.ChecagemRoteiro != null && documento.ChecagemRoteiro.Id > 0) && (documento.Requerimento != null && documento.Requerimento.Id > 0))
                {
                    _requerimentoValidar.RoteirosChecagemRequerimento(documento.ChecagemRoteiro.Id, documento.Requerimento.Id, documento.Requerimento.SituacaoId);
                }

                #endregion
            }

            return(Validacao.EhValido);
        }