Ejemplo n.º 1
0
        public ActionResult Editar(int id)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer()));
            }

            if (!_validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            BarragemDispensaLicenca caracterizacao = _bus.ObterPorEmpreendimento(id);
            AtividadeBus            atividadeBus   = new AtividadeBus();

            BarragemDispensaLicencaVM vm = new BarragemDispensaLicencaVM(
                caracterizacao,
                atividadeBus.ObterAtividadePorCodigo((int)eAtividadeCodigo.BarragemDeAte1HaLâminaDaguaAte10000M3DeVolumeArmazenado),
                _listaBus.BarragemDispensaLicencaFinalidadeAtividade,
                _listaBus.BarragemDispensaLicencaFormacaoRT,
                _listaBus.BarragemDispensaLicencaBarragemTipo,
                _listaBus.BarragemDispensaLicencaFase,
                _listaBus.BarragemDispensaLicencaMongeTipo,
                _listaBus.BarragemDispensaLicencaVertedouroTipo
                );

            return(View(vm));
        }
Ejemplo n.º 2
0
        public ActionResult Visualizar(int id)
        {
            if (!_validar.Acessar(id))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() }));
            }

            BarragemDispensaLicenca caracterizacao = _bus.ObterPorEmpreendimento(id);
            AtividadeBus            atividadeBus   = new AtividadeBus();

            BarragemDispensaLicencaVM vm = new BarragemDispensaLicencaVM(
                caracterizacao,
                atividadeBus.ObterAtividadePorCodigo((int)eAtividadeCodigo.BarragemDeAte1HaLâminaDaguaAte10000M3DeVolumeArmazenado),
                _listaBus.BarragemDispensaLicencaFinalidadeAtividade,
                _listaBus.BarragemDispensaLicencaFormacaoRT,
                _listaBus.BarragemDispensaLicencaBarragemTipo,
                _listaBus.BarragemDispensaLicencaFase,
                _listaBus.BarragemDispensaLicencaMongeTipo,
                _listaBus.BarragemDispensaLicencaVertedouroTipo
                );

            vm.IsVisualizar = true;
            vm.UrlRetorno   = Url.Action("", "Caracterizacao", new { id = caracterizacao.EmpreendimentoID });

            return(View(vm));
        }
Ejemplo n.º 3
0
        public ActionResult VisualizarCredenciado(int projetoDigitalId, int protocoloId = 0)
        {
            ProjetoDigitalCredenciadoBus _busProjetoDigitalCredenciado = new ProjetoDigitalCredenciadoBus();
            ProjetoDigital projeto = _busProjetoDigitalCredenciado.Obter(projetoDigitalId);

            BarragemDispensaLicenca caracterizacao = _busCredenciado.ObterPorEmpreendimento(projeto.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId);
            AtividadeBus            atividadeBus   = new AtividadeBus();

            BarragemDispensaLicencaVM vm = new BarragemDispensaLicencaVM(
                caracterizacao,
                atividadeBus.ObterAtividadePorCodigo((int)eAtividadeCodigo.BarragemDeAte1HaLâminaDaguaAte10000M3DeVolumeArmazenado),
                _listaBus.BarragemDispensaLicencaFinalidadeAtividade,
                _listaBus.BarragemDispensaLicencaFormacaoRT,
                _listaBus.BarragemDispensaLicencaBarragemTipo,
                _listaBus.BarragemDispensaLicencaFase,
                _listaBus.BarragemDispensaLicencaMongeTipo,
                _listaBus.BarragemDispensaLicencaVertedouroTipo
                );

            vm.ProtocoloId      = protocoloId;
            vm.ProjetoDigitalId = projeto.Id;
            vm.RequerimentoId   = projeto.RequerimentoId;
            vm.UrlRetorno       = Url.Action("Analisar", "../AnaliseItens", new { protocoloId = protocoloId, requerimentoId = projeto.RequerimentoId });

            return(View("Visualizar", vm));
        }
        public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoId, int projetoDigitalId = 0, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca barragem = null;

            try
            {
                List <Caracterizacao> caracterizacoesAssociadas = _busCaracterizacao.ObterCaracterizacoesAssociadasProjetoDigital(projetoDigitalId).Where(x => x.Tipo == eCaracterizacao.BarragemDispensaLicenca).ToList();

                if (caracterizacoesAssociadas != null && caracterizacoesAssociadas.Count > 0)
                {
                    barragem = ObterHistorico(caracterizacoesAssociadas.FirstOrDefault().Id, caracterizacoesAssociadas.FirstOrDefault().Tid);
                }
                else
                {
                    barragem = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);

                    if (barragem.Autorizacao.Id > 0)
                    {
                        barragem.Autorizacao = _busArquivo.Obter(barragem.Autorizacao.Id.GetValueOrDefault());
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(barragem);
        }
Ejemplo n.º 5
0
        public void ImportarCaracterizacaoCDLA(Requerimento requerimento, BancoDeDados bancoCredenciado, BancoDeDados bancoInterno)
        {
            BarragemDispensaLicenca caracterizacao = _da.ImportarCaracterizacaoCdla(requerimento.Id, bancoCredenciado);

            Dictionary <Int32, String> _diretorioCred     = _da.ObterCredenciadoDiretorioArquivo(bancoCredenciado);
            Dictionary <Int32, String> _diretorioTempCred = _da.ObterCredenciadoDiretorioArquivoTemp(bancoCredenciado);

            ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado, _diretorioCred, _diretorioTempCred, UsuarioCredenciado);
            ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno, usuarioCredenciado: UsuarioCredenciado);

            Arquivo aux = _busArquivoCredenciado.Obter(caracterizacao.Autorizacao.Id.Value); //Obtém o arquivo completo do diretorio do Institucional(nome, buffer, etc)

            aux.Id = 0;                                                                      //Zera o ID
            aux    = _busArquivoInterno.SalvarTemp(aux);                                     //salva no diretório temporário
            aux    = _busArquivoInterno.Copiar(aux);                                         //Copia para o diretório oficial

            Executor executor = Executor.Current;

            ArquivoDa arquivoDa = new ArquivoDa();

            arquivoDa.Salvar(aux, executor.Id, executor.Nome, executor.Login, (int)eExecutorTipo.Interno, executor.Tid, bancoInterno);

            caracterizacao.Autorizacao.Id = aux.Id;

            _da.CopiarDadosCredenciado(caracterizacao, bancoInterno);
        }
        public ActionResult Editar(int id, int projetoDigitalId)
        {
            if (!_caracterizacaoValidar.Basicas(id))
            {
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = projetoDigitalId, area = "" })));
            }

            if (!_validar.Acessar(id, projetoDigitalId))
            {
                return(RedirectToAction("", "Caracterizacao", new { id = id, projetoDigitalId = projetoDigitalId, Msg = Validacao.QueryParam() }));
            }

            BarragemDispensaLicenca caracterizacao = _bus.ObterPorEmpreendimento(id);
            AtividadeInternoBus     atividadeBus   = new AtividadeInternoBus();

            BarragemDispensaLicencaVM vm = new BarragemDispensaLicencaVM(
                caracterizacao,
                atividadeBus.ObterAtividadePorCodigo((int)eAtividadeCodigo.BarragemDeAte1HaLâminaDaguaAte10000M3DeVolumeArmazenado),
                ListaCredenciadoBus.BarragemDispensaLicencaFinalidadeAtividade,
                ListaCredenciadoBus.BarragemDispensaLicencaFormacaoRT,
                ListaCredenciadoBus.BarragemDispensaLicencaBarragemTipo,
                ListaCredenciadoBus.BarragemDispensaLicencaFase,
                ListaCredenciadoBus.BarragemDispensaLicencaMongeTipo,
                ListaCredenciadoBus.BarragemDispensaLicencaVertedouroTipo
                );

            return(View(vm));
        }
        public bool ValidarAssociar(int id, int projetoDigitalID = 0)
        {
            BarragemDispensaLicenca caracterizacao = _da.Obter(id);

            _validar.Salvar(caracterizacao, projetoDigitalID);

            return(Validacao.EhValido);
        }
        internal bool CopiarDadosInstitucional(BarragemDispensaLicenca caracterizacao)
        {
            if (caracterizacao.InternoID <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.CopiarCaractizacaoCadastrada);
            }

            return(Validacao.EhValido);
        }
        internal void Editar(BarragemDispensaLicenca caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update crt_barragem_dispensa_lic c set c.tid = :tid, c.empreendimento = :empreendimento, c.atividade = :atividade, c.tipo_barragem = :tipo_barragem, 
				c.finalidade_atividade = :finalidade_atividade, c.curso_hidrico = :curso_hidrico, c.vazao_enchente = :vazao_enchente, c.area_bacia_contribuicao = :area_bacia_contribuicao, c.precipitacao = :precipitacao, 
				c.periodo_retorno = :periodo_retorno, c.coeficiente_escoamento = :coeficiente_escoamento, c.tempo_concentracao = :tempo_concentracao, c.equacao_calculo = :equacao_calculo, c.area_alagada = :area_alagada, 
				c.volume_armazenado = :volume_armazenado, c.fase = :fase, c.possui_monge = :possui_monge, c.tipo_monge = :tipo_monge, c.especificacao_monge = :especificacao_monge, c.possui_vertedouro = :possui_vertedouro, 
				c.tipo_vertedouro = :tipo_vertedouro, c.especificacao_vertedouro = :especificacao_vertedouro, c.possui_estrutura_hidrau = :possui_estrutura_hidrau, c.adequacoes_realizada = :adequacoes_realizada, 
				c.data_inicio_obra = :data_inicio_obra, c.data_previsao_obra = :data_previsao_obra, c.easting = :easting, c.northing = :northing, c.formacao_resp_tec = :formacao_resp_tec, c.especificacao_rt = :especificacao_rt, 
				c.autorizacao = :autorizacao, c.numero_art_elaboracao = :numero_art_elaboracao, c.numero_art_execucao = :numero_art_execucao where c.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoID, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", caracterizacao.AtividadeID, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_barragem", caracterizacao.BarragemTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("finalidade_atividade", caracterizacao.FinalidadeAtividade, DbType.Int32);
                comando.AdicionarParametroEntrada("curso_hidrico", caracterizacao.CursoHidrico, DbType.String);
                comando.AdicionarParametroEntrada("vazao_enchente", caracterizacao.VazaoEnchente, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_bacia_contribuicao", caracterizacao.AreaBaciaContribuicao, DbType.Decimal);
                comando.AdicionarParametroEntrada("precipitacao", caracterizacao.Precipitacao, DbType.Decimal);
                comando.AdicionarParametroEntrada("periodo_retorno", caracterizacao.PeriodoRetorno, DbType.Int32);
                comando.AdicionarParametroEntrada("coeficiente_escoamento", caracterizacao.CoeficienteEscoamento, DbType.String);
                comando.AdicionarParametroEntrada("tempo_concentracao", caracterizacao.TempoConcentracao, DbType.String);
                comando.AdicionarParametroEntrada("equacao_calculo", caracterizacao.EquacaoCalculo, DbType.String);
                comando.AdicionarParametroEntrada("area_alagada", caracterizacao.AreaAlagada, DbType.Decimal);
                comando.AdicionarParametroEntrada("volume_armazenado", caracterizacao.VolumeArmazanado, DbType.Decimal);
                comando.AdicionarParametroEntrada("fase", caracterizacao.Fase, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_monge", caracterizacao.PossuiMonge, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("tipo_monge", caracterizacao.MongeTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_monge", caracterizacao.EspecificacaoMonge, DbType.String);
                comando.AdicionarParametroEntrada("possui_vertedouro", caracterizacao.PossuiVertedouro, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("tipo_vertedouro", caracterizacao.VertedouroTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_vertedouro", caracterizacao.EspecificacaoVertedouro, DbType.String);
                comando.AdicionarParametroEntrada("possui_estrutura_hidrau", caracterizacao.PossuiEstruturaHidraulica, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("adequacoes_realizada", caracterizacao.AdequacoesRealizada, DbType.String);
                comando.AdicionarParametroEntrada("data_inicio_obra", caracterizacao.DataInicioObra, DbType.String);
                comando.AdicionarParametroEntrada("data_previsao_obra", caracterizacao.DataPrevisaoTerminoObra, DbType.String);
                comando.AdicionarParametroEntrada("easting", caracterizacao.Coordenada.EastingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("northing", caracterizacao.Coordenada.NorthingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("formacao_resp_tec", caracterizacao.FormacaoRT, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_rt", caracterizacao.EspecificacaoRT, DbType.String);
                comando.AdicionarParametroEntrada("autorizacao", caracterizacao.Autorizacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_art_elaboracao", caracterizacao.NumeroARTElaboracao, DbType.String);
                comando.AdicionarParametroEntrada("numero_art_execucao", caracterizacao.NumeroARTExecucao, DbType.String);

                bancoDeDados.ExecutarNonQuery(comando);

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.barragemdispensalicenca, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        internal bool CopiarDadosCredenciado(BarragemDispensaLicenca caracterizacao)
        {
            if (caracterizacao.CredenciadoID <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.CopiarCaractizacaoCadastrada);
                return(false);
            }

            return(Validacao.EhValido);
        }
Ejemplo n.º 11
0
        public ActionResult Criar(BarragemDispensaLicenca caracterizacao)
        {
            _bus.Salvar(caracterizacao);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.EmpreendimentoID, Msg = Validacao.QueryParam() })
            }, JsonRequestBehavior.AllowGet));
        }
 public BarragemDispensaLicencaPDF(BarragemDispensaLicenca caracterizacao)
 {
     Id = caracterizacao.Id;
     NorthingLatitude    = caracterizacao.Coordenada.NorthingUtmTexto;
     EastingLongitude    = caracterizacao.Coordenada.EastingUtmTexto;
     BarragemTipo        = caracterizacao.BarragemTipoTexto;
     NumeroARTElaboracao = caracterizacao.NumeroARTElaboracao;
     NumeroARTExecucao   = caracterizacao.NumeroARTExecucao;
     AreaAlagada         = caracterizacao.AreaAlagada;
     VolumeArmazanado    = caracterizacao.VolumeArmazanado;
     FinalidadeAtividade = caracterizacao.FinalidadeAtividade;
 }
        internal int Salvar(BarragemDispensaLicenca caracterizacao, BancoDeDados banco)
        {
            if (caracterizacao == null)
            {
                throw new Exception("A Caracterização é nula.");
            }

            if (caracterizacao.Id <= 0)
            {
                return(Criar(caracterizacao, banco));
            }
            else
            {
                Editar(caracterizacao, banco);
                return(caracterizacao.Id);
            }
        }
        public bool CopiarDadosCredenciado(Dependencia dependencia, int empreendimentoInternoId, BancoDeDados banco, BancoDeDados bancoCredenciado)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new BarragemDispensaLicencaValidar();
            }

            #region Configurar Caracterização

            BarragemDispensaLicencaCredBus.BarragemDispensaLicencaBus credenciadoBus = new BarragemDispensaLicencaCredBus.BarragemDispensaLicencaBus();
            BarragemDispensaLicenca caracterizacao = credenciadoBus.ObterHistorico(dependencia.DependenciaId, dependencia.DependenciaTid);

            caracterizacao.EmpreendimentoID = empreendimentoInternoId;
            caracterizacao.CredenciadoID    = caracterizacao.Id;
            caracterizacao.Id  = 0;
            caracterizacao.Tid = string.Empty;

            #endregion

            if (_validar.CopiarDadosCredenciado(caracterizacao))
            {
                GerenciadorTransacao.ObterIDAtual();

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

                    //Setar ID
                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoInternoId, simplificado: true, banco: bancoDeDados).Id;

                    _da.CopiarDadosCredenciado(caracterizacao, bancoDeDados);

                    credenciadoBus.AtualizarInternoIdTid(caracterizacao.CredenciadoID, caracterizacao.Id, GerenciadorTransacao.ObterIDAtual(), bancoCredenciado);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
        internal BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca caracterizacao = new BarragemDispensaLicenca();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select t.id from {0}crt_barragem_dispensa_lic t where t.empreendimento = :empreendimento", EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32);

                object valor = bancoDeDados.ExecutarScalar(comando);

                if (valor != null && !Convert.IsDBNull(valor))
                {
                    caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado);
                }
            }

            return(caracterizacao);
        }
        public BarragemDispensaLicencaVM(BarragemDispensaLicenca entidade, Atividade atividade, List <Lista> finalidades, List <Lista> formacoesRT, List <Lista> barragemTipos, List <Lista> fases, List <Lista> mongeTipos, List <Lista> vertedouroTipos)
        {
            Caracterizacao = entidade ?? new BarragemDispensaLicenca();

            List <Lista> atividades = new List <Lista>();

            atividades.Add(new Lista()
            {
                Id = atividade.Id.ToString(), Texto = atividade.NomeAtividade
            });
            Atividades = ViewModelHelper.CriarSelectList(atividades, isFiltrarAtivo: false, itemTextoPadrao: false);

            FinalidadesAtividade = finalidades;
            FormacoesRTLst       = formacoesRT;
            BarragemTiposLst     = barragemTipos;
            FasesLst             = fases;
            MongeTiposLst        = ViewModelHelper.CriarSelectList(mongeTipos, isFiltrarAtivo: true, itemTextoPadrao: true, selecionado: Caracterizacao.MongeTipo.ToString());
            VertedouroTiposLst   = ViewModelHelper.CriarSelectList(vertedouroTipos, isFiltrarAtivo: true, itemTextoPadrao: true, selecionado: Caracterizacao.VertedouroTipo.ToString());
        }
        public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoInternoId, bool simplificado = false)
        {
            BarragemDispensaLicenca caracterizacao = null;

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(empreendimentoInternoId, simplificado: simplificado);

                if (caracterizacao.Autorizacao.Id > 0)
                {
                    caracterizacao.Autorizacao = _busArquivo.Obter(caracterizacao.Autorizacao.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
        public BarragemDispensaLicenca ObterHistorico(int barragemID, string BarragemTID, bool simplificado = false)
        {
            BarragemDispensaLicenca barragem = null;

            try
            {
                barragem = _da.ObterHistorico(barragemID, BarragemTID);

                if (barragem.Autorizacao.Id > 0)
                {
                    barragem.Autorizacao = _busArquivo.Obter(barragem.Autorizacao.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(barragem);
        }
        public BarragemDispensaLicenca ObterPorEmpreendimento(int empreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca barragem = null;

            try
            {
                barragem = _da.ObterPorEmpreendimento(empreendimentoId, simplificado: simplificado);

                if (barragem.Autorizacao.Id > 0)
                {
                    barragem.Autorizacao = _busArquivo.Obter(barragem.Autorizacao.Id.GetValueOrDefault());
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(barragem);
        }
        public void Salvar(BarragemDispensaLicenca caracterizacao, int projetoDigitalId)
        {
            try
            {
                #region Configurar

                if (caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge))
                {
                    caracterizacao.MongeTipo          = null;
                    caracterizacao.EspecificacaoMonge = string.Empty;
                }

                if (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro))
                {
                    caracterizacao.VertedouroTipo          = null;
                    caracterizacao.EspecificacaoVertedouro = string.Empty;
                }

                #endregion

                if (_validar.Salvar(caracterizacao, projetoDigitalId))
                {
                    GerenciadorTransacao.ObterIDAtual();

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

                        #region Arquivo

                        if (caracterizacao.Autorizacao != null)
                        {
                            if (!string.IsNullOrWhiteSpace(caracterizacao.Autorizacao.Nome))
                            {
                                if (caracterizacao.Autorizacao.Id != null && caracterizacao.Autorizacao.Id == 0)
                                {
                                    ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado);
                                    caracterizacao.Autorizacao = _busArquivo.Copiar(caracterizacao.Autorizacao);
                                }

                                if (caracterizacao.Autorizacao.Id == 0)
                                {
                                    ArquivoDa _arquivoDa = new ArquivoDa();
                                    _arquivoDa.Salvar(caracterizacao.Autorizacao, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);
                                }
                            }
                            else
                            {
                                caracterizacao.Autorizacao.Id = null;
                            }
                        }
                        else
                        {
                            caracterizacao.Autorizacao = new Blocos.Arquivo.Arquivo();
                        }

                        #endregion

                        _da.Salvar(caracterizacao, bancoDeDados);

                        Validacao.Add(Mensagem.BarragemDispensaLicenca.Salvar);

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception e)
            {
                Validacao.AddErro(e);
            }
        }
Ejemplo n.º 21
0
        internal BarragemDispensaLicenca ImportarCaracterizacaoCdla(int requerimentoId, BancoDeDados bancoCredenciado)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(bancoCredenciado, UsuarioCredenciado))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"select crtb.*, te.codigo empreendimento_codigo 
                from crt_barragem_dispensa_lic crtb, tab_requerimento tr, tab_empreendimento te 
                where crtb.empreendimento = tr.empreendimento and te.id(+) = tr.empreendimento and tr.id = :requerimento");

                comando.AdicionarParametroEntrada("requerimento", requerimentoId, DbType.Int32);

                BarragemDispensaLicenca caract = new BarragemDispensaLicenca();

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        caract.Id  = reader.GetValue <Int32>("id");
                        caract.Tid = reader.GetValue <String>("tid");
                        caract.EmpreendimentoID      = reader.GetValue <Int32>("empreendimento");
                        caract.EmpreendimentoCodigo  = reader.GetValue <Int32>("empreendimento_codigo");
                        caract.AtividadeID           = reader.GetValue <Int32>("atividade");
                        caract.BarragemTipo          = reader.GetValue <Int32>("tipo_barragem");
                        caract.FinalidadeAtividade   = reader.GetValue <Int32>("finalidade_atividade");
                        caract.CursoHidrico          = reader.GetValue <String>("curso_hidrico");
                        caract.VazaoEnchente         = reader.GetValue <Decimal>("vazao_enchente");
                        caract.AreaBaciaContribuicao = reader.GetValue <Decimal>("area_bacia_contribuicao");
                        caract.Precipitacao          = reader.GetValue <Decimal>("precipitacao");
                        caract.PeriodoRetorno        = reader.GetValue <Int32>("periodo_retorno");
                        caract.CoeficienteEscoamento = reader.GetValue <String>("coeficiente_escoamento");
                        caract.TempoConcentracao     = reader.GetValue <String>("tempo_concentracao");
                        caract.EquacaoCalculo        = reader.GetValue <String>("equacao_calculo");
                        caract.AreaAlagada           = reader.GetValue <Decimal>("area_alagada");
                        caract.VolumeArmazanado      = reader.GetValue <Decimal>("volume_armazenado");
                        caract.Fase                       = reader.GetValue <Int32>("fase");
                        caract.PossuiMonge                = reader.GetValue <Int32>("possui_monge");
                        caract.MongeTipo                  = reader.GetValue <Int32>("tipo_monge");
                        caract.EspecificacaoMonge         = reader.GetValue <String>("especificacao_monge");
                        caract.PossuiVertedouro           = reader.GetValue <Int32>("possui_vertedouro");
                        caract.VertedouroTipo             = reader.GetValue <Int32>("tipo_vertedouro");
                        caract.EspecificacaoVertedouro    = reader.GetValue <String>("especificacao_vertedouro");
                        caract.PossuiEstruturaHidraulica  = reader.GetValue <Int32>("possui_estrutura_hidrau");
                        caract.AdequacoesRealizada        = reader.GetValue <String>("adequacoes_realizada");
                        caract.DataInicioObra             = reader.GetValue <String>("data_inicio_obra");
                        caract.DataPrevisaoTerminoObra    = reader.GetValue <String>("data_previsao_obra");
                        caract.Coordenada.EastingUtmTexto = reader.GetValue <String>("easting");

                        caract.Autorizacao.Id = reader.GetValue <Int32>("autorizacao");
                        caract.Coordenada.NorthingUtmTexto = reader.GetValue <String>("northing");
                        caract.FormacaoRT          = reader.GetValue <Int32>("formacao_resp_tec");
                        caract.EspecificacaoRT     = reader.GetValue <String>("especificacao_rt");
                        caract.NumeroARTElaboracao = reader.GetValue <String>("numero_art_elaboracao");
                        caract.NumeroARTExecucao   = reader.GetValue <String>("numero_art_execucao");
                        caract.InternoID           = reader.GetValue <Int32>("interno_id");
                        caract.InternoTID          = reader.GetValue <String>("interno_tid");
                    }
                    reader.Close();
                }
                return(caract);
            }
        }
Ejemplo n.º 22
0
        internal void CopiarDadosCredenciado(BarragemDispensaLicenca caracterizacao, BancoDeDados bancoInterno)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(bancoInterno, EsquemaBanco))
            {
                bancoDeDados.IniciarTransacao();
                Comando comando;

                caracterizacao.InternoID = ObterCaracterizacaoId(caracterizacao.EmpreendimentoCodigo, bancoInterno);

                if (caracterizacao.InternoID <= 0)
                {
                    comando = bancoDeDados.CriarComando(@"
				    insert into crt_barragem_dispensa_lic (id, tid, empreendimento, atividade, tipo_barragem, finalidade_atividade, curso_hidrico, vazao_enchente, area_bacia_contribuicao, 
				    precipitacao, periodo_retorno, coeficiente_escoamento, tempo_concentracao, equacao_calculo, area_alagada, volume_armazenado, fase, possui_monge, tipo_monge, especificacao_monge, 
				    possui_vertedouro, tipo_vertedouro, especificacao_vertedouro, possui_estrutura_hidrau, adequacoes_realizada, data_inicio_obra, data_previsao_obra, easting, northing, formacao_resp_tec, 
				    especificacao_rt, numero_art_elaboracao, numero_art_execucao, autorizacao)
				    values (seq_crt_barragem_dispensa_lic.nextval, :tid, (select te.id from tab_empreendimento te where te.codigo = :emp_codigo), :atividade, :tipo_barragem, :finalidade_atividade, :curso_hidrico, :vazao_enchente, :area_bacia_contribuicao, 
				    :precipitacao, :periodo_retorno, :coeficiente_escoamento, :tempo_concentracao, :equacao_calculo, :area_alagada, :volume_armazenado, :fase, :possui_monge, :tipo_monge, :especificacao_monge, 
				    :possui_vertedouro, :tipo_vertedouro, :especificacao_vertedouro, :possui_estrutura_hidrau, :adequacoes_realizada, :data_inicio_obra, :data_previsao_obra, :easting, :northing, :formacao_resp_tec, 
				    :especificacao_rt, :numero_art_elaboracao, :numero_art_execucao, :autorizacao) returning id into :id"                , EsquemaBanco);

                    comando.AdicionarParametroSaida("id", DbType.Int32);
                    comando.AdicionarParametroEntrada("emp_codigo", caracterizacao.EmpreendimentoCodigo, DbType.Int32);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"update crt_barragem_dispensa_lic c set c.tid = :tid, c.atividade = :atividade, c.tipo_barragem = :tipo_barragem, c.autorizacao = :autorizacao,
				    c.finalidade_atividade = :finalidade_atividade, c.curso_hidrico = :curso_hidrico, c.vazao_enchente = :vazao_enchente, c.area_bacia_contribuicao = :area_bacia_contribuicao, c.precipitacao = :precipitacao, 
				    c.periodo_retorno = :periodo_retorno, c.coeficiente_escoamento = :coeficiente_escoamento, c.tempo_concentracao = :tempo_concentracao, c.equacao_calculo = :equacao_calculo, c.area_alagada = :area_alagada, 
				    c.volume_armazenado = :volume_armazenado, c.fase = :fase, c.possui_monge = :possui_monge, c.tipo_monge = :tipo_monge, c.especificacao_monge = :especificacao_monge, c.possui_vertedouro = :possui_vertedouro, 
				    c.tipo_vertedouro = :tipo_vertedouro, c.especificacao_vertedouro = :especificacao_vertedouro, c.possui_estrutura_hidrau = :possui_estrutura_hidrau, c.adequacoes_realizada = :adequacoes_realizada, 
				    c.data_inicio_obra = :data_inicio_obra, c.data_previsao_obra = :data_previsao_obra, c.easting = :easting, c.northing = :northing, c.formacao_resp_tec = :formacao_resp_tec, c.especificacao_rt = :especificacao_rt, 
				    c.numero_art_elaboracao = :numero_art_elaboracao, c.numero_art_execucao = :numero_art_execucao
                    where c.id = :id", EsquemaBanco);

                    comando.AdicionarParametroEntrada("id", caracterizacao.InternoID, DbType.Int32);
                }

                comando.AdicionarParametroEntrada("atividade", caracterizacao.AtividadeID, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_barragem", caracterizacao.BarragemTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("finalidade_atividade", caracterizacao.FinalidadeAtividade, DbType.Int32);
                comando.AdicionarParametroEntrada("curso_hidrico", caracterizacao.CursoHidrico, DbType.String);
                comando.AdicionarParametroEntrada("vazao_enchente", caracterizacao.VazaoEnchente, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_bacia_contribuicao", caracterizacao.AreaBaciaContribuicao, DbType.Decimal);
                comando.AdicionarParametroEntrada("precipitacao", caracterizacao.Precipitacao, DbType.Decimal);
                comando.AdicionarParametroEntrada("periodo_retorno", caracterizacao.PeriodoRetorno, DbType.Int32);
                comando.AdicionarParametroEntrada("coeficiente_escoamento", caracterizacao.CoeficienteEscoamento, DbType.String);
                comando.AdicionarParametroEntrada("tempo_concentracao", caracterizacao.TempoConcentracao, DbType.String);
                comando.AdicionarParametroEntrada("equacao_calculo", caracterizacao.EquacaoCalculo, DbType.String);
                comando.AdicionarParametroEntrada("area_alagada", caracterizacao.AreaAlagada, DbType.Decimal);
                comando.AdicionarParametroEntrada("volume_armazenado", caracterizacao.VolumeArmazanado, DbType.Decimal);
                comando.AdicionarParametroEntrada("fase", caracterizacao.Fase, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_monge", caracterizacao.PossuiMonge, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_monge", caracterizacao.MongeTipo > 0 ? caracterizacao.MongeTipo : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_monge", caracterizacao.EspecificacaoMonge, DbType.String);
                comando.AdicionarParametroEntrada("possui_vertedouro", caracterizacao.PossuiVertedouro, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_vertedouro", caracterizacao.VertedouroTipo > 0 ? caracterizacao.VertedouroTipo : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_vertedouro", caracterizacao.EspecificacaoVertedouro, DbType.String);
                comando.AdicionarParametroEntrada("possui_estrutura_hidrau", caracterizacao.PossuiEstruturaHidraulica, DbType.Int32);
                comando.AdicionarParametroEntrada("adequacoes_realizada", caracterizacao.AdequacoesRealizada, DbType.String);
                comando.AdicionarParametroEntrada("data_inicio_obra", caracterizacao.DataInicioObra, DbType.String);
                comando.AdicionarParametroEntrada("data_previsao_obra", caracterizacao.DataPrevisaoTerminoObra, DbType.String);
                comando.AdicionarParametroEntrada("easting", caracterizacao.Coordenada.EastingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("northing", caracterizacao.Coordenada.NorthingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("formacao_resp_tec", caracterizacao.FormacaoRT, DbType.Int32);
                comando.AdicionarParametroEntrada("autorizacao", caracterizacao.Autorizacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_rt", caracterizacao.EspecificacaoRT, DbType.String);
                comando.AdicionarParametroEntrada("numero_art_elaboracao", caracterizacao.NumeroARTElaboracao, DbType.String);
                comando.AdicionarParametroEntrada("numero_art_execucao", caracterizacao.NumeroARTExecucao, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                if (caracterizacao.InternoID <= 0)
                {
                    caracterizacao.InternoID = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                HistoricoCaracterizacao.Gerar(caracterizacao.InternoID, eHistoricoArtefatoCaracterizacao.barragemdispensalicenca, eHistoricoAcao.importar, null);

                bancoDeDados.Commit();
            }
        }
        public bool CopiarDadosInstitucional(int empreendimentoID, int empreendimentoInternoID, BancoDeDados banco)
        {
            if (banco == null)
            {
                return(false);
            }

            if (_validar == null)
            {
                _validar = new BarragemDispensaLicencaValidar();
            }

            BarragemDispensaLicencaInternoBus barragemDispLicencaInternoBus = new BarragemDispensaLicencaInternoBus();
            BarragemDispensaLicenca           caracterizacao = barragemDispLicencaInternoBus.ObterPorEmpreendimento(empreendimentoInternoID);

            caracterizacao.EmpreendimentoID = empreendimentoID;
            caracterizacao.InternoID        = caracterizacao.Id;
            caracterizacao.InternoTID       = caracterizacao.Tid;

            if (_validar.CopiarDadosInstitucional(caracterizacao))
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
                {
                    bancoDeDados.IniciarTransacao();

                    #region Configurar

                    caracterizacao.Id = ObterPorEmpreendimento(empreendimentoID, simplificado: true, banco: bancoDeDados).Id;

                    if (caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge))
                    {
                        caracterizacao.MongeTipo          = null;
                        caracterizacao.EspecificacaoMonge = string.Empty;
                    }

                    if (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro))
                    {
                        caracterizacao.VertedouroTipo          = null;
                        caracterizacao.EspecificacaoVertedouro = string.Empty;
                    }

                    #endregion

                    #region Arquivo

                    if (caracterizacao.Autorizacao != null && caracterizacao.Autorizacao.Id > 0)
                    {
                        ArquivoBus _busArquivoInterno     = new ArquivoBus(eExecutorTipo.Interno);
                        ArquivoBus _busArquivoCredenciado = new ArquivoBus(eExecutorTipo.Credenciado);

                        Arquivo aux = _busArquivoInterno.Obter(caracterizacao.Autorizacao.Id.Value); //Obtém o arquivo completo do diretorio do Institucional(nome, buffer, etc)

                        aux.Id = 0;                                                                  //Zera o ID
                        aux    = _busArquivoCredenciado.SalvarTemp(aux);                             //salva no diretório temporário
                        aux    = _busArquivoCredenciado.Copiar(aux);                                 //Copia para o diretório oficial

                        //Salvar na Oficial
                        ArquivoDa arquivoDa = new ArquivoDa();
                        arquivoDa.Salvar(aux, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Credenciado, User.FuncionarioTid, bancoDeDados);

                        caracterizacao.Autorizacao.Id = aux.Id;
                    }

                    #endregion

                    _da.CopiarDadosInstitucional(caracterizacao, bancoDeDados);

                    bancoDeDados.Commit();
                }
            }

            return(Validacao.EhValido);
        }
        public BarragemDispensaLicenca Obter(int id, bool simplificado = false, BancoDeDados banco = null)
        {
            BarragemDispensaLicenca caracterizacao = new BarragemDispensaLicenca();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.id, c.tid, c.empreendimento, c.atividade, c.tipo_barragem, lt.texto tipo_barragem_texto, c.finalidade_atividade, c.curso_hidrico, 
				c.vazao_enchente, c.area_bacia_contribuicao, c.precipitacao, c.periodo_retorno, c.coeficiente_escoamento, c.tempo_concentracao, c.equacao_calculo, c.area_alagada, c.volume_armazenado, 
				c.fase, c.possui_monge, c.tipo_monge, c.especificacao_monge, c.possui_vertedouro, c.tipo_vertedouro, c.especificacao_vertedouro, c.possui_estrutura_hidrau, c.adequacoes_realizada, 
				c.data_inicio_obra, c.data_previsao_obra, c.easting, c.northing, c.formacao_resp_tec, c.especificacao_rt, c.autorizacao, c.numero_art_elaboracao, c.numero_art_execucao 
                from crt_barragem_dispensa_lic c, lov_crt_bdla_barragem_tipo lt where lt.id = c.tipo_barragem and c.id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caracterizacao.Id  = reader.GetValue <int>("id");
                        caracterizacao.Tid = reader.GetValue <string>("tid");
                        caracterizacao.EmpreendimentoID      = reader.GetValue <int>("empreendimento");
                        caracterizacao.AtividadeID           = reader.GetValue <int>("atividade");
                        caracterizacao.BarragemTipo          = reader.GetValue <int>("tipo_barragem");
                        caracterizacao.BarragemTipoTexto     = reader.GetValue <string>("tipo_barragem_texto");
                        caracterizacao.FinalidadeAtividade   = reader.GetValue <int>("finalidade_atividade");
                        caracterizacao.CursoHidrico          = reader.GetValue <string>("curso_hidrico");
                        caracterizacao.VazaoEnchente         = reader.GetValue <decimal?>("vazao_enchente");
                        caracterizacao.AreaBaciaContribuicao = reader.GetValue <decimal?>("area_bacia_contribuicao");
                        caracterizacao.Precipitacao          = reader.GetValue <decimal?>("precipitacao");
                        caracterizacao.PeriodoRetorno        = reader.GetValue <int?>("periodo_retorno");
                        caracterizacao.CoeficienteEscoamento = reader.GetValue <string>("coeficiente_escoamento");
                        caracterizacao.TempoConcentracao     = reader.GetValue <string>("tempo_concentracao");
                        caracterizacao.EquacaoCalculo        = reader.GetValue <string>("equacao_calculo");
                        caracterizacao.AreaAlagada           = reader.GetValue <decimal?>("area_alagada");
                        caracterizacao.VolumeArmazanado      = reader.GetValue <decimal?>("volume_armazenado");
                        caracterizacao.Fase                        = reader.GetValue <int?>("fase");
                        caracterizacao.PossuiMonge                 = reader.GetValue <int?>("possui_monge");
                        caracterizacao.MongeTipo                   = reader.GetValue <int>("tipo_monge");
                        caracterizacao.EspecificacaoMonge          = reader.GetValue <string>("especificacao_monge");
                        caracterizacao.PossuiVertedouro            = reader.GetValue <int?>("possui_vertedouro");
                        caracterizacao.VertedouroTipo              = reader.GetValue <int>("tipo_vertedouro");
                        caracterizacao.EspecificacaoVertedouro     = reader.GetValue <string>("especificacao_vertedouro");
                        caracterizacao.PossuiEstruturaHidraulica   = reader.GetValue <int?>("possui_estrutura_hidrau");
                        caracterizacao.AdequacoesRealizada         = reader.GetValue <string>("adequacoes_realizada");
                        caracterizacao.DataInicioObra              = reader.GetValue <string>("data_inicio_obra");
                        caracterizacao.DataPrevisaoTerminoObra     = reader.GetValue <string>("data_previsao_obra");
                        caracterizacao.Coordenada.EastingUtmTexto  = reader.GetValue <string>("easting");
                        caracterizacao.Coordenada.NorthingUtmTexto = reader.GetValue <string>("northing");
                        caracterizacao.FormacaoRT                  = reader.GetValue <int>("formacao_resp_tec");
                        caracterizacao.EspecificacaoRT             = reader.GetValue <string>("especificacao_rt");
                        caracterizacao.Autorizacao.Id              = reader.GetValue <int>("autorizacao");
                        caracterizacao.NumeroARTElaboracao         = reader.GetValue <string>("numero_art_elaboracao");
                        caracterizacao.NumeroARTExecucao           = reader.GetValue <string>("numero_art_execucao");
                    }

                    reader.Close();
                }
            }

            return(caracterizacao);
        }
        internal bool Salvar(BarragemDispensaLicenca caracterizacao, int projetoDigitalId)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoID))
            {
                return(false);
            }

            BarragemDispensaLicenca auxiliar = _da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoID, true) ?? new BarragemDispensaLicenca();

            if (caracterizacao.Id <= 0 && auxiliar.Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (!Acessar(caracterizacao.EmpreendimentoID, projetoDigitalId))
            {
                return(false);
            }

            if (caracterizacao.AtividadeID <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.SelecioneAtividade);
            }

            if (!caracterizacao.BarragemTipo.HasValue)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.SelecioneTipoBarragem);
            }

            if (caracterizacao.FinalidadeAtividade <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.SelecioneFinalidade);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.CursoHidrico))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeCursoHidrico);
            }

            if (caracterizacao.VazaoEnchente.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeVazaoInchenteZero);
            }

            if (caracterizacao.AreaBaciaContribuicao.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeAreaBaciaContribuicaoZero);
            }

            if (caracterizacao.Precipitacao.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformePrecipitacaoZero);
            }

            if (caracterizacao.PeriodoRetorno.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformePeriodoRetornoZero);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.CoeficienteEscoamento))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeCoeficienteEscoamentoZero);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.TempoConcentracao))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeTempoConcentracao);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.EquacaoCalculo))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEquacaoCalculo);
            }

            if (caracterizacao.AreaAlagada.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeAreaAlagadaZero);
            }

            if (caracterizacao.VolumeArmazanado.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeVolumeArmazenadoZero);
            }

            if (caracterizacao.Fase.GetValueOrDefault() <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeFase);
            }
            if (caracterizacao.Fase.HasValue)
            {
                switch (caracterizacao.Fase.GetValueOrDefault())
                {
                case (int)eFase.Construida:
                    #region FASE: Construida
                    if (!caracterizacao.PossuiMonge.HasValue)
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformePossuiMonge);
                    }
                    else if (Convert.ToBoolean(caracterizacao.PossuiMonge))
                    {
                        if (!caracterizacao.MongeTipo.HasValue || caracterizacao.MongeTipo.GetValueOrDefault() <= 0)
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeTipoMonge);
                        }
                        else if (caracterizacao.MongeTipo.GetValueOrDefault() == (int)eMongeTipo.Outros && string.IsNullOrWhiteSpace(caracterizacao.EspecificacaoMonge))
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEspecificacaoMonge);
                        }
                    }

                    if (!caracterizacao.PossuiVertedouro.HasValue)
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformePossuiVertedouro);
                    }
                    else if (Convert.ToBoolean(caracterizacao.PossuiVertedouro))
                    {
                        if (!caracterizacao.VertedouroTipo.HasValue || caracterizacao.VertedouroTipo <= 0)
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeTipoVertedouro);
                        }
                        else if (caracterizacao.VertedouroTipo == (int)eVertedouroTipo.Outros && string.IsNullOrWhiteSpace(caracterizacao.EspecificacaoVertedouro))
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEspecificacaoVertedouro);
                        }
                    }

                    if ((caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge)) ||
                        (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro)))
                    {
                        if (!caracterizacao.PossuiEstruturaHidraulica.HasValue)
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformePossuiEstruturaHidraulica);
                        }
                    }

                    if ((caracterizacao.PossuiMonge.HasValue && !Convert.ToBoolean(caracterizacao.PossuiMonge)) ||
                        (caracterizacao.PossuiVertedouro.HasValue && !Convert.ToBoolean(caracterizacao.PossuiVertedouro)) ||
                        (caracterizacao.PossuiEstruturaHidraulica.HasValue && !Convert.ToBoolean(caracterizacao.PossuiEstruturaHidraulica)))
                    {
                        if (string.IsNullOrWhiteSpace(caracterizacao.AdequacoesRealizada))
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeAdequacoesRealizada);
                        }
                    }
                    #endregion
                    break;

                case (int)eFase.AConstruir:
                    #region FASE: A construir
                    if (!caracterizacao.MongeTipo.HasValue || caracterizacao.MongeTipo.GetValueOrDefault() <= 0)
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeTipoMonge);
                    }
                    else if (caracterizacao.MongeTipo == (int)eMongeTipo.Outros && string.IsNullOrWhiteSpace(caracterizacao.EspecificacaoMonge))
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEspecificacaoMonge);
                    }

                    if (!caracterizacao.VertedouroTipo.HasValue || caracterizacao.VertedouroTipo <= 0)
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeTipoVertedouro);
                    }
                    else if (caracterizacao.VertedouroTipo == (int)eVertedouroTipo.Outros && string.IsNullOrWhiteSpace(caracterizacao.EspecificacaoVertedouro))
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEspecificacaoVertedouro);
                    }

                    #region datas da obra
                    DateTime testeDataInicio;
                    if (string.IsNullOrWhiteSpace(caracterizacao.DataInicioObra))
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeDataInicioObra);
                    }
                    else
                    {
                        if (!DateTime.TryParse(caracterizacao.DataInicioObra, out testeDataInicio))
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeDataInicioObraFormatoValido);
                        }
                    }

                    DateTime testeDataTermino;
                    if (string.IsNullOrWhiteSpace(caracterizacao.DataPrevisaoTerminoObra))
                    {
                        Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeDataPrevisaoTerminoObra);
                    }
                    else
                    {
                        if (!DateTime.TryParse(caracterizacao.DataPrevisaoTerminoObra, out testeDataTermino))
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeDataPrevisaoTerminoObraFormatoValido);
                        }
                    }

                    if (DateTime.TryParse(caracterizacao.DataInicioObra, out testeDataInicio) && DateTime.TryParse(caracterizacao.DataPrevisaoTerminoObra, out testeDataTermino))
                    {
                        if (testeDataInicio > testeDataTermino)
                        {
                            Validacao.Add(Mensagem.BarragemDispensaLicenca.PeriodoObraValido);
                        }
                    }
                    #endregion

                    #endregion
                    break;
                }
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.Coordenada.EastingUtmTexto))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeCoordEasting);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.Coordenada.NorthingUtmTexto))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeCoordNorthing);
            }

            if (caracterizacao.FormacaoRT <= 0)
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeFormacaoRT);
            }

            if (((Convert.ToInt32(eFormacaoRTCodigo.Outros) & caracterizacao.FormacaoRT) != 0) && string.IsNullOrWhiteSpace(caracterizacao.EspecificacaoRT))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeEspecificacaoRT);
            }

            if (caracterizacao.Autorizacao == null || string.IsNullOrWhiteSpace(caracterizacao.Autorizacao.Nome))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeArquivo);
            }

            if (string.IsNullOrWhiteSpace(caracterizacao.NumeroARTElaboracao))
            {
                Validacao.Add(Mensagem.BarragemDispensaLicenca.InformeNumeroARTElaboracao);
            }

            return(Validacao.EhValido);
        }
        internal int Criar(BarragemDispensaLicenca caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				insert into crt_barragem_dispensa_lic (id, tid, empreendimento, atividade, tipo_barragem, finalidade_atividade, curso_hidrico, vazao_enchente, area_bacia_contribuicao, 
				precipitacao, periodo_retorno, coeficiente_escoamento, tempo_concentracao, equacao_calculo, area_alagada, volume_armazenado, fase, possui_monge, tipo_monge, especificacao_monge, 
				possui_vertedouro, tipo_vertedouro, especificacao_vertedouro, possui_estrutura_hidrau, adequacoes_realizada, data_inicio_obra, data_previsao_obra, easting, northing, formacao_resp_tec, 
				especificacao_rt, autorizacao, numero_art_elaboracao, numero_art_execucao)
				values (seq_crt_barragem_dispensa_lic.nextval, :tid, :empreendimento, :atividade, :tipo_barragem, :finalidade_atividade, :curso_hidrico, :vazao_enchente, :area_bacia_contribuicao, 
				:precipitacao, :periodo_retorno, :coeficiente_escoamento, :tempo_concentracao, :equacao_calculo, :area_alagada, :volume_armazenado, :fase, :possui_monge, :tipo_monge, :especificacao_monge, 
				:possui_vertedouro, :tipo_vertedouro, :especificacao_vertedouro, :possui_estrutura_hidrau, :adequacoes_realizada, :data_inicio_obra, :data_previsao_obra, :easting, :northing, :formacao_resp_tec, 
				:especificacao_rt, :autorizacao, :numero_art_elaboracao, :numero_art_execucao) returning id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoID, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", caracterizacao.AtividadeID, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_barragem", caracterizacao.BarragemTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("finalidade_atividade", caracterizacao.FinalidadeAtividade, DbType.Int32);
                comando.AdicionarParametroEntrada("curso_hidrico", caracterizacao.CursoHidrico, DbType.String);
                comando.AdicionarParametroEntrada("vazao_enchente", caracterizacao.VazaoEnchente, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_bacia_contribuicao", caracterizacao.AreaBaciaContribuicao, DbType.Decimal);
                comando.AdicionarParametroEntrada("precipitacao", caracterizacao.Precipitacao, DbType.Decimal);
                comando.AdicionarParametroEntrada("periodo_retorno", caracterizacao.PeriodoRetorno, DbType.Int32);
                comando.AdicionarParametroEntrada("coeficiente_escoamento", caracterizacao.CoeficienteEscoamento, DbType.String);
                comando.AdicionarParametroEntrada("tempo_concentracao", caracterizacao.TempoConcentracao, DbType.String);
                comando.AdicionarParametroEntrada("equacao_calculo", caracterizacao.EquacaoCalculo, DbType.String);
                comando.AdicionarParametroEntrada("area_alagada", caracterizacao.AreaAlagada, DbType.Decimal);
                comando.AdicionarParametroEntrada("volume_armazenado", caracterizacao.VolumeArmazanado, DbType.Decimal);
                comando.AdicionarParametroEntrada("fase", caracterizacao.Fase, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_monge", caracterizacao.PossuiMonge, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("tipo_monge", caracterizacao.MongeTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_monge", caracterizacao.EspecificacaoMonge, DbType.String);
                comando.AdicionarParametroEntrada("possui_vertedouro", caracterizacao.PossuiVertedouro, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("tipo_vertedouro", caracterizacao.VertedouroTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_vertedouro", caracterizacao.EspecificacaoVertedouro, DbType.String);
                comando.AdicionarParametroEntrada("possui_estrutura_hidrau", caracterizacao.PossuiEstruturaHidraulica, DbType.Int32);                //TODO
                comando.AdicionarParametroEntrada("adequacoes_realizada", caracterizacao.AdequacoesRealizada, DbType.String);
                comando.AdicionarParametroEntrada("data_inicio_obra", caracterizacao.DataInicioObra, DbType.String);
                comando.AdicionarParametroEntrada("data_previsao_obra", caracterizacao.DataPrevisaoTerminoObra, DbType.String);
                comando.AdicionarParametroEntrada("easting", caracterizacao.Coordenada.EastingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("northing", caracterizacao.Coordenada.NorthingUtmTexto, DbType.Int64);
                comando.AdicionarParametroEntrada("formacao_resp_tec", caracterizacao.FormacaoRT, DbType.Int32);
                comando.AdicionarParametroEntrada("especificacao_rt", caracterizacao.EspecificacaoRT, DbType.String);
                comando.AdicionarParametroEntrada("autorizacao", caracterizacao.Autorizacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_art_elaboracao", caracterizacao.NumeroARTElaboracao, DbType.String);
                comando.AdicionarParametroEntrada("numero_art_execucao", caracterizacao.NumeroARTExecucao, DbType.String);

                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.barragemdispensalicenca, eHistoricoAcao.criar, bancoDeDados);

                bancoDeDados.Commit();

                return(caracterizacao.Id);
            }
        }