コード例 #1
0
        //Validacoes de Cadastro/Edição
        public bool Salvar(Titulo titulo)
        {
            JuntarApensarBus _juntarApensarBus = new JuntarApensarBus();

            Titulo(titulo);

            if (titulo.Id <= 0 && titulo.Protocolo.Id > 0)
            {
                ProtocoloSetorModelo(titulo, titulo.Setor.Id);
            }

            if (titulo.Id > 0 && titulo.Situacao.Id != 1)
            {
                if (String.IsNullOrEmpty(titulo.Situacao.Texto) && titulo.Situacao.Id > 0)
                {
                    titulo.Situacao = _configTitulo.Obter <List <Situacao> >(ConfiguracaoTitulo.KeySituacoes).Single(x => x.Id == titulo.Situacao.Id);
                }
                Validacao.Add(Mensagem.Titulo.SituacaoEditar(titulo.Situacao.Texto));
            }

            //Esta validação deve ser feita para cadastrar/Editar pois na edição do titulo deve existir a
            //possibilidade de alterar o protocolo para o processo pai
            //Esta validação não pode ser feita no botao editar do listar
            #region Validacao de Juntado/Apensado

            if (titulo.Protocolo != null && titulo.Protocolo.Id > 0)
            {
                string numero = _protocoloValidar.ObterNumeroProcessoPai(titulo.Protocolo.Id.Value);
                if (!String.IsNullOrEmpty(numero))
                {
                    Validacao.Add(titulo.Protocolo.IsProcesso ? Mensagem.Titulo.ProcessoJuntado(numero) : Mensagem.Titulo.DocumentoApensado(numero));
                }
            }

            #endregion


            #region [ Cadastro Ambiental Rural ]
            if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo))
            {
                var busCARSolicitacao = new CARSolicitacaoBus();
                if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault()))
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao);
                }
            }
            #endregion

            return(Validacao.EhValido);
        }
コード例 #2
0
        public bool Excluir(ProjetoDigital projeto)
        {
            if (projeto == null)
            {
                Validacao.Add(Mensagem.ProjetoDigital.ProjetoDigitalNaoEncontrado);
            }

            if (projeto.Situacao != (int)eProjetoDigitalSituacao.EmElaboracao)
            {
                Validacao.Add(Mensagem.ProjetoDigital.ExcluirSituacaoInvalida);
            }

            CARSolicitacaoBus carSolicitacaoBus = new CARSolicitacaoBus();
            CARSolicitacao    carSolicitacao    = carSolicitacaoBus.ObterPorRequerimento(projeto.RequerimentoId);

            if (carSolicitacao.Id > 0)
            {
                Validacao.Add(Mensagem.ProjetoDigital.ExcluirPossuiCARSolicitacao(carSolicitacao.SituacaoTexto));
            }

            return(Validacao.EhValido);
        }
コード例 #3
0
        public bool AlterarSituacao(Titulo titulo, int acao, bool gerouPdf = true)
        {
            Titulo tituloAux = _da.ObterSimplificado(titulo.Id);

            if (tituloAux == null)
            {
                return(false);
            }

            #region ValidarPermissao

            List <ePermissao> acaoPermissao = new List <ePermissao>();
            switch (titulo.Situacao.Id)
            {
                #region Cadastrado

            case 1:
                acaoPermissao.Add(ePermissao.TituloCriar);
                acaoPermissao.Add(ePermissao.TituloCancelarEmissao);
                break;

                #endregion

                #region Emitido para assinatura

            case 2:
                acaoPermissao.Add(ePermissao.TituloEmitir);
                break;

                #endregion

                #region Concluído

            case 3:
                acaoPermissao.Add(ePermissao.TituloEmitir);
                acaoPermissao.Add(ePermissao.TituloAssinar);
                break;

                #endregion

                #region Assinado

            case 4:
                acaoPermissao.Add(ePermissao.TituloAssinar);
                break;

                #endregion

                #region Cancelado

            case 5:
                acaoPermissao.Add(ePermissao.TituloEncerrar);
                acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia);
                break;

                #endregion

                #region Suspenso

            case 11:
                acaoPermissao.Add(ePermissao.TituloEncerrar);
                acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia);
                break;

                #endregion

                #region Prorrogado

            case 6:
                acaoPermissao.Add(ePermissao.TituloProrrogar);
                break;

                #endregion
            }

            if (!_permissaoValdiar.ValidarAny(acaoPermissao.ToArray()))
            {
                return(false);
            }

            #endregion

            //Validar Titulo
            if ((eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.EmitirParaAssinatura)
            {
                _validarTitulo.Titulo(titulo);

                if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.Value))
                {
                    IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value);
                    titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade;
                    titulo.Especificidade = titulo.ToEspecificidade();
                    busEsp.Validar.Emitir(titulo.Especificidade);
                }
            }
            else if (
                (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Assinar ||
                (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Entregar ||
                (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Prorrogar ||
                (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Concluir)
            {
                if (titulo.Atividades != null)
                {
                    foreach (var item in titulo.Atividades)
                    {
                        if (!item.Ativada)
                        {
                            Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade));
                        }
                    }
                }
            }

            if (!Validacao.EhValido)
            {
                return(false);
            }

            switch (titulo.Situacao.Id)
            {
                #region Cadastrado

            case 1:
                if (tituloAux.Situacao.Id != 2)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Cadastrado", "Emitido para assinatura"));
                }
                break;

                #endregion

                #region Emitido para assinatura

            case 2:
                if (!gerouPdf)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio);
                }

                if (tituloAux.Situacao.Id != 1)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Emitido para assinatura", "Cadastrado"));
                }

                if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão"))
                {
                    if (!titulo.Modelo.Regra(eRegra.NumeracaoAutomatica))
                    {
                        if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year)
                        {
                            Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno);
                        }
                    }
                }

                if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio);
                }

                if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido);
                }

                break;

                #endregion

                #region Concluído

            case 3:
                if (tituloAux.Situacao.Id == 1 && !gerouPdf)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio);
                }

                if (tituloAux.Situacao.Id != 1 && tituloAux.Situacao.Id != 2 && tituloAux.Situacao.Id != 4 && tituloAux.Situacao.Id != 11)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Concluído", "Cadastrado, Suspenso, Emitido para assinatura ou Assinado"));
                }

                if (tituloAux.Situacao.Id == 1 || tituloAux.Situacao.Id == 11)
                {
                    if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão"))
                    {
                        if (Validacao.EhValido && !titulo.Modelo.Regra(eRegra.NumeracaoAutomatica))
                        {
                            if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno);
                            }
                        }
                    }
                }

                if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio);
                }

                if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido);
                }

                if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal)
                {
                    var associados = _da.ObterAssociados(titulo.Id);
                    if (associados.Exists(x => x.DataVencimento.Data < titulo.DataEmissao.Data.Value.AddDays(titulo.Prazo.Value)))
                    {
                        Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoSuperiorAoLaudo);
                    }
                }

                #region [ Cadastro Ambiental Rural ]
                if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo))
                {
                    var busCARSolicitacao = new CARSolicitacaoBus();
                    if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault()))
                    {
                        Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao);
                    }
                }
                #endregion

                break;

                #endregion

                #region Assinado

            case 4:
                if (tituloAux.Situacao.Id != 2)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Assinado", "Emitido para assinatura"));
                }

                if (ValidarDatas(titulo.DataAssinatura, "DataAssinatura", "assinatura"))
                {
                    if (titulo.DataAssinatura.Data < tituloAux.DataEmissao.Data)
                    {
                        Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataAssinatura", "assinatura", "emissão"));
                    }
                }
                break;

                #endregion

                #region Encerrado

            case 5:
                if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Encerrado", "Concluído ou Prorrogado"));
                }

                if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "encerramento"))
                {
                    if (titulo.Modelo.Regra(eRegra.Prazo))
                    {
                        switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor))
                        {
                        case 1:
                            if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "emissão"));
                            }
                            break;

                        case 2:
                            if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "assinatura"));
                            }
                            break;

                        case 3:
                            if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "entrega"));
                            }
                            break;
                        }
                    }
                }

                if (titulo.MotivoEncerramentoId.GetValueOrDefault() <= 0)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.MotivoEncerramentoObrigatorio);
                }

                if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal)
                {
                    if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id))
                    {
                        Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("encerrado"));
                    }
                }

                break;

                #endregion

                #region Suspenso

            case 11:
                if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Suspenso", "Concluído ou Prorrogado"));
                }

                if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "suspensão"))
                {
                    if (titulo.Modelo.Regra(eRegra.Prazo))
                    {
                        switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor))
                        {
                        case 1:
                            if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "emissão"));
                            }
                            break;

                        case 2:
                            if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "assinatura"));
                            }
                            break;

                        case 3:
                            if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data)
                            {
                                Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "entrega"));
                            }
                            break;
                        }
                    }
                }

                if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal)
                {
                    if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id))
                    {
                        Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("suspenso"));
                    }
                }

                break;

                #endregion

                #region Prorrogado

            case 6:
                if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Prorrogado", "Concluído ou Prorrogado"));
                }

                if (titulo.DiasProrrogados.GetValueOrDefault() <= 0)
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.DiasProrrogadosObrigatorio);
                }
                break;

                #endregion
            }

            AtivarCondicionantes(titulo);

            return(Validacao.EhValido);
        }
コード例 #4
0
        public bool Salvar(Documento documento)
        {
            try
            {
                documento.Emposse.Id = User.FuncionarioId;

                if (documento.Arquivo == null)
                {
                    documento.Arquivo = new Arquivo();
                }

                bool isEdicao = (documento.Id > 0);

                if (_validar.Salvar(documento))
                {
                    #region Arquivos/Diretorio

                    if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0)
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                        documento.Arquivo = _busArquivo.Copiar(documento.Arquivo);
                    }

                    #endregion

                    #region Setar Valores

                    ListaBus      listaBus     = new ListaBus();
                    ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id);

                    documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo();
                    documento.ChecagemPendencia  = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia();
                    documento.ChecagemRoteiro    = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro();
                    documento.Requerimento       = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento();

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        if (documento.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus();

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            #region Alterar Situacao Requerimento

                            if (documento.Id.HasValue)
                            {
                                Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento;
                                docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id);

                                if (docOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados);

                                    if (docOriginal.Requerimento.IsRequerimentoDigital)
                                    {
                                        CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                        carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                                        {
                                            Requerimento = docOriginal.Requerimento
                                        }, bancoDeDadosCredenciado);

                                        if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado))
                                        {
                                            bancoDeDados.Rollback();
                                            return(false);
                                        }
                                    }
                                }
                            }

                            #endregion

                            Documento documentoOriginal = new Documento();
                            if (documento.Id != null && documento.Id.GetValueOrDefault() > 0)
                            {
                                documentoOriginal = ObterSimplificado(documento.Id.Value);
                            }

                            #region Titulo

                            if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0)
                            {
                                documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id);

                                TituloBus tituloBus = new TituloBus();
                                Titulo    titulo    = tituloBus.Obter(documento.ChecagemPendencia.TituloId);

                                if (titulo.Situacao.Id != 5)                                //5 - Encerrado
                                {
                                    titulo.DataEncerramento.Data = DateTime.Now;
                                    titulo.MotivoEncerramentoId  = 7;                                   //Encerrado
                                    TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus();
                                    tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados);

                                    if (Validacao.EhValido)
                                    {
                                        Validacao.Erros.Clear();
                                    }
                                }

                                #region Itens da Analise

                                AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar());

                                AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId);
                                analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados);
                                //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id);

                                foreach (Item item in analiseItem.Itens)
                                {
                                    if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id))
                                    {
                                        item.Analista = User.Name;
                                        item.Situacao = (int)eAnaliseItemSituacao.Recebido;
                                        item.Motivo   = String.Empty;
                                        item.Recebido = true;
                                        item.Editado  = true;
                                        //item.SetorId = setorId;
                                        item.DataAnalise = DateTime.Now.ToString();
                                    }
                                }

                                AnaliseItensDa _daAnalise = new AnaliseItensDa();
                                _daAnalise.Salvar(analiseItem, bancoDeDados);

                                #endregion
                            }

                            #endregion

                            #region Atividade

                            List <Atividade> lstAtividadesAtual = null;
                            if ((documento.Id ?? 0) > 0)
                            {
                                lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades;
                            }

                            if (documento.Atividades != null && documento.Atividades.Count > 0)
                            {
                                documento.Atividades.ForEach(x =>
                                {
                                    x.Protocolo.Id         = documento.Id.GetValueOrDefault();
                                    x.Protocolo.IsProcesso = false;
                                });

                                AtividadeBus atividadeBus = new AtividadeBus();
                                atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                                atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                            }

                            #endregion

                            _da.Salvar(documento, bancoDeDados);

                            #region Checagens

                            // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada
                            if (documentoOriginal.Id.GetValueOrDefault() <= 0)
                            {
                                _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada

                                documento.ChecagemPendencia.SituacaoId = 2;                                   //protocolada
                                _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados);
                            }
                            else                             // editando documento
                            {                                // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada
                                if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id)
                                {
                                    _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados);                            //finalizada
                                    _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados);                                    //protocolada
                                }
                            }

                            #endregion

                            documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id);

                            if (documento.Requerimento.IsRequerimentoDigital)
                            {
                                CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao()
                                {
                                    Requerimento = documento.Requerimento
                                }, bancoDeDadosCredenciado);

                                if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado))
                                    {
                                        bancoDeDados.Rollback();
                                        return(false);
                                    }
                                }
                            }

                            AlterarRequerimentoSituacao(documento, 3, bancoDeDados);                            // Protocolado

                            #region Fiscalizacao

                            if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0)
                            {
                                documentoOriginal.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                                documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documentoOriginal.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados);
                            }

                            if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id)
                            {
                                documento.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.Protocolado;
                                documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documento.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados);
                            }

                            #endregion

                            //sempre no final esse if
                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                    }

                    Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero);
                    if (isEdicao)
                    {
                        msgSucesso = Mensagem.Documento.Editar;
                    }

                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #5
0
        public bool Salvar(Empreendimento empreendimento)
        {
            try
            {
                if (_validar.Salvar(empreendimento))
                {
                    Mensagem erros = VerificarLocalizacaoEmpreendimento(empreendimento.Coordenada.EastingUtmTexto, empreendimento.Coordenada.NorthingUtmTexto, empreendimento.Enderecos[0].EstadoId, empreendimento.Enderecos[0].MunicipioId);
                    if (erros.Texto != null)
                    {
                        Validacao.Add(erros);
                        return(Validacao.EhValido);
                    }

                    empreendimento.CredenciadoId = User.FuncionarioId;

                    if (empreendimento.InternoId.GetValueOrDefault() > 0)
                    {
                        empreendimento.InternoTid = new EmpreendimentoInternoBus().ObterSimplificado(empreendimento.InternoId.Value).Tid;
                    }

                    if (empreendimento.Coordenada.Tipo.Id > 0)
                    {
                        empreendimento.Coordenada.Datum.Sigla = ListaCredenciadoBus.Datuns.SingleOrDefault(x => Equals(x.Id, empreendimento.Coordenada.Datum.Id)).Sigla;
                    }

                    #region Utilizar o mesmo endereço de localização

                    if (empreendimento.Enderecos.Count == 1)
                    {
                        Endereco enderecoLocalizacao = empreendimento.Enderecos.First();

                        Endereco endereco = new Endereco();
                        endereco.Correspondencia     = 1;
                        endereco.Cep                 = enderecoLocalizacao.Cep;
                        endereco.Logradouro          = enderecoLocalizacao.Logradouro;
                        endereco.Bairro              = enderecoLocalizacao.Bairro;
                        endereco.EstadoId            = enderecoLocalizacao.EstadoId;
                        endereco.MunicipioId         = enderecoLocalizacao.MunicipioId;
                        endereco.Numero              = enderecoLocalizacao.Numero;
                        endereco.DistritoLocalizacao = enderecoLocalizacao.DistritoLocalizacao;
                        endereco.Complemento         = enderecoLocalizacao.Complemento;

                        empreendimento.Enderecos.Add(endereco);
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();
                        PessoaCredenciadoBus pessoaCredenciadoBus = new PessoaCredenciadoBus();
                        Pessoa          aux;
                        List <Mensagem> mensagens = new List <Mensagem>();

                        foreach (Responsavel responsavel in empreendimento.Responsaveis)
                        {
                            if (responsavel.Id <= 0)
                            {
                                aux = pessoaCredenciadoBus.ObterPessoa(interno: responsavel.InternoId);
                                Pessoa pessoaCredenciado = pessoaCredenciadoBus.Obter(aux.CPFCNPJ, bancoDeDados, simplificado: true, credenciadoId: User.FuncionarioId);

                                aux.Id = pessoaCredenciado.Id;
                                pessoaCredenciadoBus.Salvar(aux, bancoDeDados);

                                responsavel.Id = aux.Id;

                                if (!Validacao.EhValido)
                                {
                                    mensagens.Add(Mensagem.Pessoa.DadosRepresentanteIncompleto(aux.NomeRazaoSocial));
                                }
                            }
                        }

                        if (!Validacao.EhValido)
                        {
                            mensagens.ForEach(msg =>
                            {
                                msg.Texto = msg.Texto.Replace("representante", "responsável");
                            });

                            Validacao.Erros = mensagens;
                            bancoDeDados.Rollback();
                            return(false);
                        }

                        _da.Salvar(empreendimento, bancoDeDados);

                        #region Solicitação de CAR

                        CARSolicitacaoBus carSolicitacaoBus = new CARSolicitacaoBus();
                        CARSolicitacao    carSolicitacao    = new CARSolicitacao();
                        carSolicitacao.Empreendimento.Id = empreendimento.Id;
                        //carSolicitacaoBus.AlterarSituacao(carSolicitacao, new CARSolicitacao() { SituacaoId = (int)eCARSolicitacaoSituacao.Invalido }, bancoDeDados);

                        #endregion

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #6
0
        public bool Salvar(Processo processo)
        {
            try
            {
                processo.Emposse.Id   = User.FuncionarioId;
                processo.Requerimento = _busRequerimento.ObterSimplificado(processo.Requerimento.Id);

                if (processo.Arquivo == null)
                {
                    processo.Arquivo = new Arquivo();
                }

                bool isEdicao = (processo.Id > 0);

                if (processo.Fiscalizacao.Id > 0)
                {
                    processo.Requerimento    = new Requerimento();
                    processo.Atividades      = new List <Atividade>();
                    processo.ChecagemRoteiro = new ChecagemRoteiro();
                }

                if (_validar.Salvar(processo))
                {
                    #region Arquivos/Diretorio

                    if (processo.Arquivo.Id != null && processo.Arquivo.Id == 0)
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                        processo.Arquivo = _busArquivo.Copiar(processo.Arquivo);
                    }

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        bancoDeDados.IniciarTransacao();

                        #region Arquivos/Banco

                        if (processo.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(processo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        #region Atividade

                        List <Atividade> lstAtividadesAtual = null;
                        if (processo.Id.GetValueOrDefault() > 0)
                        {
                            lstAtividadesAtual = _da.ObterAtividadesSolicitadas(processo.Id.Value, bancoDeDados);
                        }

                        if (processo.Atividades != null && processo.Atividades.Count > 0)
                        {
                            processo.Atividades.ForEach(x =>
                            {
                                x.Protocolo.Id         = processo.Id.GetValueOrDefault();
                                x.Protocolo.IsProcesso = true;
                            });

                            AtividadeBus atividadeBus = new AtividadeBus();
                            atividadeBus.AlterarSituacaoProcDoc(processo.Atividades, lstAtividadesAtual, bancoDeDados);
                            atividadeBus.TituloAnteriores(processo.Atividades, lstAtividadesAtual, bancoDeDados);
                        }

                        #endregion

                        Processo processoOriginal = new Processo();
                        if (processo.Id != null && processo.Id.HasValue && processo.Id.Value > 0)
                        {
                            processoOriginal = ObterSimplificado(processo.Id.Value);
                        }

                        //Salvar
                        _da.Salvar(processo, bancoDeDados);

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            // editando processo
                            if (processoOriginal.Id > 0)
                            {
                                // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada
                                if (processo.ChecagemRoteiro.Id != processoOriginal.ChecagemRoteiro.Id)
                                {
                                    _busCheckList.AlterarSituacao(processoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados);
                                }

                                if (processoOriginal.Requerimento.Id != processo.Requerimento.Id)
                                {
                                    processoOriginal.Requerimento = _busRequerimento.ObterSimplificado(processoOriginal.Requerimento.Id);

                                    if (processoOriginal.Requerimento.IsRequerimentoDigital)
                                    {
                                        CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                        carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                                        {
                                            Requerimento = processoOriginal.Requerimento
                                        }, bancoDeDadosCredenciado);

                                        if (!_busProjetoDigital.AlterarSituacao(processoOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado))
                                        {
                                            bancoDeDados.Rollback();
                                            return(false);
                                        }
                                    }

                                    AlterarRequerimentoSituacao(processoOriginal, banco: bancoDeDados);
                                }

                                if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id && processoOriginal.Fiscalizacao.Id > 0)
                                {
                                    processoOriginal.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                                    processoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                    processoOriginal.Fiscalizacao.SituacaoAtualTipo     = processo.Fiscalizacao.SituacaoId;

                                    _busFiscalizacao.AlterarSituacaoProcDoc(processoOriginal.Fiscalizacao, bancoDeDados);
                                }
                            }

                            if (processo.ChecagemRoteiro.Id > 0)
                            {
                                _busCheckList.AlterarSituacao(processo.ChecagemRoteiro.Id, 2, bancoDeDados);           //Checagem Protocolada
                                AlterarRequerimentoSituacao(processo, 3, bancoDeDados);                                // Requerimento Protocolado
                            }

                            if (processo.Requerimento.IsRequerimentoDigital)
                            {
                                CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao()
                                {
                                    Requerimento = processo.Requerimento
                                }, bancoDeDadosCredenciado);

                                if (processoOriginal.Requerimento.Id != processo.Requerimento.Id)
                                {
                                    if (!_busProjetoDigital.AlterarSituacao(processo.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado))
                                    {
                                        bancoDeDados.Rollback();
                                        return(false);
                                    }
                                }
                            }

                            #region Fiscalizacao

                            if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id)
                            {
                                processo.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.Protocolado;
                                processo.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                processo.Fiscalizacao.SituacaoAtualTipo     = processo.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(processo.Fiscalizacao, bancoDeDados);
                            }

                            #endregion Fiscalizacao

                            //sempre no final esse if
                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                    }

                    Mensagem msgSucesso = Mensagem.Processo.Salvar(processo.Numero);
                    if (isEdicao)
                    {
                        msgSucesso = Mensagem.Processo.Editar;
                    }
                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
コード例 #7
0
        public bool Excluir(int id)
        {
            try
            {
                if (_validar.Excluir(id))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        Processo proc = _da.ObterAtividades(id) as Processo;

                        #region Atividades

                        AtividadeBus atividadeBus = new AtividadeBus();
                        atividadeBus.TituloAnteriores(new List <Atividade>(), proc.Atividades, bancoDeDados);

                        #endregion

                        _da.Excluir(id, bancoDeDados);

                        AlterarRequerimentoSituacao(proc, banco: bancoDeDados);
                        if (proc.ChecagemRoteiro.Id > 0)
                        {
                            _busCheckList.AlterarSituacao(proc.ChecagemRoteiro.Id, 1, bancoDeDados);
                        }

                        if (proc.Fiscalizacao.Id > 0)
                        {
                            proc.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                            proc.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;

                            _busFiscalizacao.AlterarSituacaoProcDoc(proc.Fiscalizacao, bancoDeDados);
                        }

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                            carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                            {
                                Requerimento = proc.Requerimento
                            }, bancoDeDadosCredenciado);

                            _busProjetoDigital.AlterarSituacao(proc.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        Validacao.Add(Mensagem.Processo.Excluir);
                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(Validacao.EhValido);
        }