public ExploracaoFlorestalAutorizacaoPDF(ExploracaoFlorestal exploracaoFlorestal) { TipoExploracao = exploracaoFlorestal.TipoExploracaoTexto; if (exploracaoFlorestal.Exploracoes.FirstOrDefault().GeometriaTipoId == (int)eExploracaoFlorestalGeometria.Ponto) { TotalPoligono = exploracaoFlorestal.Exploracoes.Sum(x => Convert.ToDecimal(string.IsNullOrWhiteSpace(x.QuantidadeArvores) ? "0" : x.QuantidadeArvores)).ToString("N2"); Detalhe = exploracaoFlorestal.Exploracoes.GroupBy(x => new { x.ClassificacaoVegetacaoTexto, x.GeometriaTipoId }, x => Convert.ToDecimal(x.QuantidadeArvores), (key, g) => new ExploracaoFlorestalAutorizacaoDetalhePDF() { VegetacaoTipo = key.ClassificacaoVegetacaoTexto, GeometriaTipoId = key.GeometriaTipoId, AreaCroquiDecimal = g.Sum(x => x) }).ToList(); } else { TotalPoligono = exploracaoFlorestal.Exploracoes.Sum(x => x.AreaCroqui).ToString("N2"); Detalhe = exploracaoFlorestal.Exploracoes.GroupBy(x => new { x.ClassificacaoVegetacaoTexto, x.GeometriaTipoId }, x => x.AreaCroqui, (key, g) => new ExploracaoFlorestalAutorizacaoDetalhePDF() { VegetacaoTipo = key.ClassificacaoVegetacaoTexto, GeometriaTipoId = key.GeometriaTipoId, AreaCroquiDecimal = g.Sum(x => x) }).ToList(); } UnidadeMedida = Detalhe?.FirstOrDefault().UnidadeMedida; }
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() })); } ExploracaoFlorestal caracterizacao = _bus.ObterPorEmpreendimento(id); string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias); if (!string.IsNullOrEmpty(textoMerge)) { caracterizacao = _bus.MergiarGeo(caracterizacao); } ExploracaoFlorestalVM vm = new ExploracaoFlorestalVM(caracterizacao, _listaBus.ExploracaoFlorestalFinalidadesExploracoes, _listaBus.ExploracaoFlorestalClassificacoesVegetais, _listaBus.ExploracaoFlorestalExploracoesTipos, _listaBus.CaracterizacaoProdutosExploracao); vm.TextoMerge = textoMerge; vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; vm.TextoAbrirModal = _validar.AbrirModalAcessar(caracterizacao); return(View(vm)); }
public ExploracaoFlorestalPDF(ExploracaoFlorestal exploracaoFlorestal) { _exploracoes = exploracaoFlorestal.Exploracoes.Select(x => new ExploracaoFlorestalExploracaoPDF(x)).ToList(); int auxFinalidades = (exploracaoFlorestal.FinalidadeExploracao.HasValue) ? exploracaoFlorestal.FinalidadeExploracao.Value : 0; Finalidades = EntitiesBus.ObterFinalidades(auxFinalidades); }
public ExploracaoFlorestalPDF(ExploracaoFlorestal exploracaoFlorestal) { _exploracoes = exploracaoFlorestal.Exploracoes.Select(x => new ExploracaoFlorestalExploracaoPDF(x)).ToList(); var exploracoesFirst = exploracaoFlorestal.Exploracoes.FirstOrDefault() ?? new ExploracaoFlorestalExploracao(); int auxFinalidades = (exploracoesFirst.FinalidadeExploracao.HasValue) ? exploracoesFirst.FinalidadeExploracao.Value : 0; Finalidades = EntitiesBus.ObterFinalidades(auxFinalidades); CodigoExploracao = exploracaoFlorestal.CodigoExploracaoTexto; TipoExploracao = exploracaoFlorestal.TipoExploracaoTexto; DataCadastro = exploracaoFlorestal.DataCadastro.DataTexto; }
public ActionResult GeoMergiar(ExploracaoFlorestal exploracao) { ExploracaoFlorestalVM vm = new ExploracaoFlorestalVM(_bus.MergiarGeo(exploracao), _listaBus.ExploracaoFlorestalFinalidadesExploracoes, _listaBus.ExploracaoFlorestalClassificacoesVegetais, _listaBus.ExploracaoFlorestalExploracoesTipos, _listaBus.CaracterizacaoProdutosExploracao); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "ExploracaoFlorestal", vm), @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias) }, JsonRequestBehavior.AllowGet)); }
internal void Salvar(ExploracaoFlorestal caracterizacao, BancoDeDados banco) { if (caracterizacao == null) { throw new Exception("A Caracterização é nula."); } if (caracterizacao.Id <= 0) { Criar(caracterizacao, banco); } else { Editar(caracterizacao, banco); } }
public ExploracaoFlorestal ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { ExploracaoFlorestal caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(empreendimento, simplificado: simplificado); caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
public ExploracaoFlorestal MergiarGeo(ExploracaoFlorestal caracterizacaoAtual) { var dadosGeo = ObterDadosGeo(caracterizacaoAtual.EmpreendimentoId); foreach (var dado in dadosGeo) { foreach (ExploracaoFlorestalExploracao exploracao in dado.Exploracoes) { if (!caracterizacaoAtual.Exploracoes.Exists(x => x.Identificacao == exploracao.Identificacao)) { caracterizacaoAtual.Exploracoes.Add(exploracao); } } } List <ExploracaoFlorestalExploracao> exploracoesRemover = new List <ExploracaoFlorestalExploracao>(); foreach (ExploracaoFlorestalExploracao exploracao in caracterizacaoAtual.Exploracoes) { foreach (var dado in dadosGeo) { if (!dado.Exploracoes.Exists(x => x.Identificacao == exploracao.Identificacao)) { exploracoesRemover.Add(exploracao); continue; } else { ExploracaoFlorestalExploracao exploracaoAux = dado.Exploracoes.SingleOrDefault(x => x.Identificacao == exploracao.Identificacao) ?? new ExploracaoFlorestalExploracao(); exploracao.Identificacao = exploracaoAux.Identificacao; exploracao.GeometriaTipoId = exploracaoAux.GeometriaTipoId; exploracao.GeometriaTipoTexto = exploracaoAux.GeometriaTipoTexto; exploracao.AreaCroqui = exploracaoAux.AreaCroqui; } } } foreach (ExploracaoFlorestalExploracao exploracaoFlorestal in exploracoesRemover) { caracterizacaoAtual.Exploracoes.Remove(exploracaoFlorestal); } return(caracterizacaoAtual); }
internal ExploracaoFlorestal ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { ExploracaoFlorestal caracterizacao = new ExploracaoFlorestal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_exploracao_florestal s where s.empreendimento = :empreendimento", EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); object valor = bancoDeDados.ExecutarScalar(comando); if (valor != null && !Convert.IsDBNull(valor)) { caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado); } } return(caracterizacao); }
public string AbrirModalAcessar(ExploracaoFlorestal caracterizacao) { EmpreendimentoCaracterizacao empreendimento = _caracterizacaoBus.ObterEmpreendimentoSimplificado(caracterizacao.EmpreendimentoId); if (empreendimento.ZonaLocalizacao == eZonaLocalizacao.Rural) { DominialidadeDa dominialidadeDa = new DominialidadeDa(); Dominialidade dominialidade = dominialidadeDa.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId); foreach (Dominio dominio in dominialidade.Dominios) { if (dominio.ReservasLegais.Exists(x => x.SituacaoId == (int)eReservaLegalSituacao.NaoInformada)) { return(Mensagem.ExploracaoFlorestal.EmpreendimentoRuralReservaIndefinida.Texto); } } } return(string.Empty); }
public ExploracaoFlorestalVM(ExploracaoFlorestal caracterizacao, List <FinalidadeExploracao> finalidades, List <Lista> classificacoesVegetais, List <Lista> exploracaoTipos, List <Lista> produtos, bool isVisualizar = false) { // passa o item "Outros" para a ultiam posição FinalidadeExploracao finalidade = finalidades.SingleOrDefault(x => x.Texto == "Outros"); if (finalidade != null) { finalidades.Remove(finalidade); finalidades.Add(finalidade); } Finalidades = finalidades; Caracterizacao = caracterizacao; IsVisualizar = isVisualizar; foreach (ExploracaoFlorestalExploracao exploracao in caracterizacao.Exploracoes) { ExploracaoFlorestalExploracaoVM exploracaoVM = new ExploracaoFlorestalExploracaoVM(exploracaoTipos, classificacoesVegetais, produtos, exploracao, isVisualizar); ExploracaoFlorestalExploracaoVM.Add(exploracaoVM); } }
public ActionResult Criar(ExploracaoFlorestal caracterizacao) { string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias); if (!string.IsNullOrEmpty(textoMerge)) { return(Json(new { @TextoMerge = textoMerge }, JsonRequestBehavior.AllowGet)); } _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 ExploracaoFlorestalVM(ExploracaoFlorestal caracterizacao, List <FinalidadeExploracao> finalidades, List <Lista> classificacoesVegetais, List <Lista> exploracaoTipos, List <Lista> produtos, List <Lista> destinacao, List <Lista> tipoExploracao, bool isVisualizar = false) { Caracterizacao = caracterizacao; IsVisualizar = isVisualizar; TipoExploracao = ViewModelHelper.CriarSelectList(tipoExploracao, selecionado: caracterizacao.TipoExploracao.ToString()); var codigoExploracao = new List <Lista>(); if (caracterizacao.CodigoExploracao > 0) { codigoExploracao = new List <Lista>() { new Lista() { Id = caracterizacao.CodigoExploracao.ToString(), Texto = tipoExploracao.FirstOrDefault(x => x.Id == caracterizacao.TipoExploracao.ToString()).Texto.Substring(0, 3) + caracterizacao.CodigoExploracao.ToString().PadLeft(3, '0') } }; } CodigoExploracao = ViewModelHelper.CriarSelectList(codigoExploracao, selecionado: caracterizacao.CodigoExploracao.ToString()); var finalidadesFiltradas = new List <FinalidadeExploracao>(); if (caracterizacao.TipoExploracao == (int)eTipoExploracao.UAS) { finalidadesFiltradas = finalidades.Where(x => x.Codigo != (int)eExploracaoFlorestalFinalidade.AproveitamentoMadeira).ToList(); } else { finalidadesFiltradas = finalidades; } foreach (ExploracaoFlorestalExploracao exploracao in caracterizacao.Exploracoes) { ExploracaoFlorestalExploracaoVM exploracaoVM = new ExploracaoFlorestalExploracaoVM(finalidadesFiltradas, exploracaoTipos, classificacoesVegetais, produtos, destinacao, exploracao, isVisualizar); ExploracaoFlorestalExploracaoVM.Add(exploracaoVM); } }
internal ExploracaoFlorestal Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { ExploracaoFlorestal caracterizacao = new ExploracaoFlorestal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { if (tid == null) { caracterizacao = Obter(id, bancoDeDados, simplificado); } else { Comando comando = bancoDeDados.CriarComando(@"select count(s.id) existe from {0}crt_exploracao_florestal s where s.id = :id and s.tid = :tid", EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); caracterizacao = (Convert.ToBoolean(bancoDeDados.ExecutarScalar(comando))) ? Obter(id, bancoDeDados, simplificado) : ObterHistorico(id, bancoDeDados, tid, simplificado); } } return(caracterizacao); }
public bool Salvar(ExploracaoFlorestal caracterizacao) { try { if (_validar.Salvar(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); //Gerencia as dependências da caracterização _busCaracterizacao.Dependencias(new Caracterizacao() { Id = caracterizacao.Id, Tipo = eCaracterizacao.ExploracaoFlorestal, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); Validacao.Add(Mensagem.ExploracaoFlorestal.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } ExploracaoFlorestal caracterizacao = _bus.ObterDadosGeo(id); caracterizacao.EmpreendimentoId = id; if (!_validar.Acessar(caracterizacao.EmpreendimentoId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.ExploracaoFlorestal, eCaracterizacaoDependenciaTipo.Caracterizacao); ExploracaoFlorestalVM vm = new ExploracaoFlorestalVM(caracterizacao, _listaBus.ExploracaoFlorestalFinalidadesExploracoes, _listaBus.ExploracaoFlorestalClassificacoesVegetais, _listaBus.ExploracaoFlorestalExploracoesTipos, _listaBus.CaracterizacaoProdutosExploracao); vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; vm.TextoAbrirModal = _validar.AbrirModalAcessar(caracterizacao); return(View(vm)); }
internal void Editar(ExploracaoFlorestal caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Exploração Florestal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update {0}crt_exploracao_florestal c set c.finalidade = :finalidade, c.finalidade_outros = :finalidade_outros, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("finalidade", caracterizacao.FinalidadeExploracao, DbType.Decimal); comando.AdicionarParametroEntrada("finalidade_outros", DbType.String, 80, caracterizacao.FinalidadeEspecificar); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco comando = bancoDeDados.CriarComando(@"delete from {0}crt_exp_florestal_produto c where c.exp_florestal_exploracao in (select a.id from {0}crt_exp_florestal_exploracao a where a.exploracao_florestal = :exploracao_florestal " , EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "a.id", DbType.Int32, caracterizacao.Exploracoes.Select(x => x.Id).ToList()); comando.DbCommand.CommandText += ")"; comando.AdicionarParametroEntrada("exploracao_florestal", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); foreach (ExploracaoFlorestalExploracao item in caracterizacao.Exploracoes) { comando = bancoDeDados.CriarComando(@"delete from {0}crt_exp_florestal_produto c where c.exp_florestal_exploracao in (select a.id from {0}crt_exp_florestal_exploracao a where a.exploracao_florestal = :exploracao_florestal and a.id = :exp_florestal_exploracao)" , EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, item.Produtos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("exp_florestal_exploracao", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("exploracao_florestal", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); } //Explorações comando = bancoDeDados.CriarComando("delete from {0}crt_exp_florestal_exploracao c ", EsquemaBanco); comando.DbCommand.CommandText += String.Format("where c.exploracao_florestal = :exploracao_florestal{0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Exploracoes.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("exploracao_florestal", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Explorações if (caracterizacao.Exploracoes != null && caracterizacao.Exploracoes.Count > 0) { foreach (ExploracaoFlorestalExploracao item in caracterizacao.Exploracoes) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_exp_florestal_exploracao c set c.identificacao = :identificacao, c.geometria = :geometria, c.area_croqui = :area_croqui, c.classificacao_vegetacao = :classificacao_vegetacao, c.area_requerida = :area_requerida, c.arvores_requeridas = :arvores_requeridas, c.exploracao_tipo = :exploracao_tipo, c.quantidade_arvores = :quantidade_arvores, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_exp_florestal_exploracao c (id, exploracao_florestal, identificacao, geometria, area_croqui, classificacao_vegetacao, area_requerida, arvores_requeridas, exploracao_tipo, quantidade_arvores, tid) values ({0}seq_crt_exp_flores_exploracao.nextval, :exploracao_florestal, :identificacao, :geometria, :area_croqui, :classificacao_vegetacao, :area_requerida, :arvores_requeridas, :exploracao_tipo, :quantidade_arvores, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("exploracao_florestal", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("identificacao", DbType.String, 100, item.Identificacao); comando.AdicionarParametroEntrada("geometria", item.GeometriaTipoId, DbType.Int32); comando.AdicionarParametroEntrada("area_croqui", item.AreaCroqui, DbType.Decimal); comando.AdicionarParametroEntrada("classificacao_vegetacao", item.ClassificacaoVegetacaoId, DbType.Int32); comando.AdicionarParametroEntrada("area_requerida", item.AreaRequerida, DbType.Decimal); comando.AdicionarParametroEntrada("arvores_requeridas", item.ArvoresRequeridas, DbType.Decimal); comando.AdicionarParametroEntrada("quantidade_arvores", item.QuantidadeArvores, DbType.Int32); comando.AdicionarParametroEntrada("exploracao_tipo", item.ExploracaoTipoId, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #region Produtos if (item.Produtos != null && item.Produtos.Count > 0) { foreach (ExploracaoFlorestalProduto itemAux in item.Produtos) { if (itemAux.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_exp_florestal_produto c set c.produto = :produto, c.quantidade = :quantidade, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", itemAux.ProdutoId, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_exp_florestal_produto c (id, exp_florestal_exploracao, produto, quantidade, tid) values ({0}seq_crt_exp_florestal_produto.nextval, :exp_florestal_exploracao, :produto, :quantidade, :tid)" , EsquemaBanco); comando.AdicionarParametroEntrada("exp_florestal_exploracao", item.Id, DbType.Int32); } comando.AdicionarParametroEntrada("produto", itemAux.ProdutoId, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", itemAux.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.exploracaoflorestal, eHistoricoAcao.atualizar, bancoDeDados, null); #endregion bancoDeDados.Commit(); } }
internal int?Criar(ExploracaoFlorestal caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Exploração Florestal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}crt_exploracao_florestal c (id, empreendimento, finalidade, finalidade_outros, tid) values ({0}seq_crt_exploracao_florestal.nextval, :empreendimento, :finalidade, :finalidade_outros, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("finalidade", caracterizacao.FinalidadeExploracao, DbType.Decimal); comando.AdicionarParametroEntrada("finalidade_outros", DbType.String, 80, caracterizacao.FinalidadeEspecificar); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #endregion #region Explorações if (caracterizacao.Exploracoes != null && caracterizacao.Exploracoes.Count > 0) { foreach (ExploracaoFlorestalExploracao item in caracterizacao.Exploracoes) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_exp_florestal_exploracao c (id, exploracao_florestal, identificacao, geometria, area_croqui, classificacao_vegetacao, area_requerida, arvores_requeridas, exploracao_tipo, quantidade_arvores, tid) values ({0}seq_crt_exp_flores_exploracao.nextval, :exploracao_florestal, :identificacao, :geometria, :area_croqui, :classificacao_vegetacao, :area_requerida, :arvores_requeridas, :exploracao_tipo, :quantidade_arvores, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("exploracao_florestal", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificacao", DbType.String, 100, item.Identificacao); comando.AdicionarParametroEntrada("geometria", item.GeometriaTipoId, DbType.Int32); comando.AdicionarParametroEntrada("area_croqui", item.AreaCroqui, DbType.Decimal); comando.AdicionarParametroEntrada("classificacao_vegetacao", item.ClassificacaoVegetacaoId, DbType.Int32); comando.AdicionarParametroEntrada("area_requerida", item.AreaRequerida, DbType.Decimal); comando.AdicionarParametroEntrada("arvores_requeridas", item.ArvoresRequeridas, DbType.Decimal); comando.AdicionarParametroEntrada("quantidade_arvores", item.QuantidadeArvores, DbType.Int32); comando.AdicionarParametroEntrada("exploracao_tipo", item.ExploracaoTipoId, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Produtos if (item.Produtos != null && item.Produtos.Count > 0) { foreach (ExploracaoFlorestalProduto itemAux in item.Produtos) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_exp_florestal_produto c (id, exp_florestal_exploracao, produto, quantidade, tid) values ({0}seq_crt_exp_florestal_produto.nextval, :exp_florestal_exploracao, :produto, :quantidade, :tid)" , EsquemaBanco); comando.AdicionarParametroEntrada("exp_florestal_exploracao", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("produto", itemAux.ProdutoId, DbType.Int32); comando.AdicionarParametroEntrada("quantidade", itemAux.Quantidade, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.exploracaoflorestal, eHistoricoAcao.criar, bancoDeDados, null); #endregion bancoDeDados.Commit(); return(caracterizacao.Id); } }
internal ExploracaoFlorestal ObterDadosGeo(int empreendimento, BancoDeDados banco = null) { ExploracaoFlorestal caracterizacao = new ExploracaoFlorestal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Dados Geo /*Verificar classificação com analista*/ Comando comando = bancoDeDados.CriarComando(@" select tab.*, (case when substr(tab.avn,1,1) = 'I' then 2/*Floresta Nativa - Estágio inicial*/ when substr(tab.avn,1,1) = 'M' then 3/*Floresta Nativa - Estágio médio*/ when substr(tab.avn,1,1) = 'A' then 4/*Floresta Nativa - Estágio avançado*/ when substr(tab.avn,1,1) = 'N' and Instr(tab.aa, 'FLORESTA-PLANTADA') > 0 then 1/*aa - Floresta Plantada*/ when substr(tab.avn,1,1) = 'N' and Instr(tab.aa, 'CULTURAS-PERENES') > 0 then 6/*aa - CULTURAS-PERENES*/ when substr(tab.avn,1,1) = 'N' and Instr(tab.aa, 'CULTURAS-ANUAIS') > 0 then 9/*aa - CULTURAS-ANUAIS*/ when substr(tab.avn,1,1) = 'N' and Instr(tab.aa, 'PASTAGEM') > 0 then 7/*aa - PASTAGEM*/ when substr(tab.avn,1,1) = 'N' and Instr(tab.aa, 'OUTRO') > 0 then 8/*aa - OUTRO*/ when tab.avn = '[x]' then 5 /*Arvores isoladas->Ponto e Linha*/ end) class_vegetal from (select a.atividade, a.codigo identificacao, 3 geometria_tipo, a.area_m2 area_croqui, a.avn, a.aa from {1}geo_aativ a, {0}crt_projeto_geo g, {0}lov_caracterizacao_tipo lc where a.atividade = lc.texto and a.projeto = g.id and lc.id = :caracterizacao and g.empreendimento = :empreendimento and g.caracterizacao = :caracterizacao union all select a.atividade, a.codigo identificacao, 2 geometria_tipo, null area_croqui, '[x]' avn, a.aa from {1}geo_lativ a, {0}crt_projeto_geo g, {0}lov_caracterizacao_tipo lc where a.atividade = lc.texto and a.projeto = g.id and lc.id = :caracterizacao and g.empreendimento = :empreendimento and g.caracterizacao = :caracterizacao union all select a.atividade, a.codigo identificacao, 1 geometria_tipo, null area_croqui, '[x]' avn, a.aa from {1}geo_pativ a, {0}crt_projeto_geo g, {0}lov_caracterizacao_tipo lc where a.atividade = lc.texto and a.projeto = g.id and lc.id = :caracterizacao and g.empreendimento = :empreendimento and g.caracterizacao = :caracterizacao union all select a.atividade, a.codigo identificacao, 3 geometria_tipo, a.area_m2 area_croqui, a.avn, a.aa from {1}geo_aiativ a, {0}crt_projeto_geo g, {0}lov_caracterizacao_tipo lc where a.atividade = lc.texto and a.projeto = g.id and lc.id = :caracterizacao and g.empreendimento = :empreendimento and g.caracterizacao = :caracterizacao) tab" , EsquemaBanco, EsquemaBancoGeo); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", (int)eCaracterizacao.ExploracaoFlorestal, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { ExploracaoFlorestalExploracao exploracao = null; while (reader.Read()) { exploracao = new ExploracaoFlorestalExploracao(); exploracao.Identificacao = reader["identificacao"].ToString(); exploracao.GeometriaTipoId = Convert.ToInt32(reader["geometria_tipo"]); exploracao.ClassificacaoVegetacaoId = reader.GetValue <int>("class_vegetal"); exploracao.AreaCroqui = reader.GetValue <decimal>("area_croqui"); exploracao.GeometriaTipoTexto = _caracterizacaoConfig.Obter <List <Lista> >(ConfiguracaoCaracterizacao.KeyCaracterizacaoGeometriaTipo). SingleOrDefault(x => x.Id == (exploracao.GeometriaTipoId).ToString()).Texto; caracterizacao.Exploracoes.Add(exploracao); } reader.Close(); } #endregion } return(caracterizacao); }
private ExploracaoFlorestal ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { ExploracaoFlorestal caracterizacao = new ExploracaoFlorestal(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Exploração Florestal Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.finalidade, c.finalidade_outros, c.tid from {0}hst_crt_exploracao_florestal c where c.exploracao_florestal_id = :id and c.tid = :tid" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { hst = Convert.ToInt32(reader["id"]); caracterizacao.Id = id; caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento_id"]); caracterizacao.FinalidadeExploracao = Convert.ToInt32(reader["finalidade"]); caracterizacao.FinalidadeEspecificar = reader["finalidade_outros"].ToString(); caracterizacao.Tid = reader["tid"].ToString(); } reader.Close(); } #endregion if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Explorações comando = bancoDeDados.CriarComando(@"select c.id, c.exp_florestal_exploracao_id, c.identificacao, c.geometria_id, c.geometria_texto, c.area_croqui, c.area_requerida, c.arvores_requeridas, c.classificacao_vegetacao_id, c.classificacao_vegetacao_texto, c.exploracao_tipo_id, c.exploracao_tipo_texto, c.quantidade_arvores, c.tid from {0}hst_crt_exp_florest_exploracao c where c.id_hst = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { ExploracaoFlorestalExploracao exploracao = null; while (reader.Read()) { hst = Convert.ToInt32(reader["id"]); exploracao = new ExploracaoFlorestalExploracao(); exploracao.Id = Convert.ToInt32(reader["exp_florestal_exploracao_id"]); exploracao.Tid = reader["tid"].ToString(); exploracao.Identificacao = reader["identificacao"].ToString(); exploracao.AreaCroqui = reader.GetValue <decimal>("area_croqui"); exploracao.AreaRequerida = reader.GetValue <decimal>("area_requerida"); exploracao.QuantidadeArvores = reader["quantidade_arvores"].ToString(); exploracao.ArvoresRequeridas = reader["arvores_requeridas"].ToString(); if (reader["geometria_id"] != null && !Convert.IsDBNull(reader["geometria_id"])) { exploracao.GeometriaTipoId = Convert.ToInt32(reader["geometria_id"]); exploracao.GeometriaTipoTexto = reader["geometria_texto"].ToString(); } if (reader["classificacao_vegetacao_id"] != null && !Convert.IsDBNull(reader["classificacao_vegetacao_id"])) { exploracao.ClassificacaoVegetacaoId = Convert.ToInt32(reader["classificacao_vegetacao_id"]); exploracao.ClassificacaoVegetacaoTexto = reader["classificacao_vegetacao_texto"].ToString(); } if (reader["exploracao_tipo_id"] != null && !Convert.IsDBNull(reader["exploracao_tipo_id"])) { exploracao.ExploracaoTipoId = Convert.ToInt32(reader["exploracao_tipo_id"]); exploracao.ExploracaoTipoTexto = reader["exploracao_tipo_texto"].ToString(); } #region Produtos comando = bancoDeDados.CriarComando(@"select c.exp_florestal_produto_id, c.produto_id, c.produto_texto, c.quantidade, c.tid from {0}hst_crt_exp_florestal_produto c where c.id_hst = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { ExploracaoFlorestalProduto produto = null; while (readerAux.Read()) { produto = new ExploracaoFlorestalProduto(); produto.Id = Convert.ToInt32(readerAux["exp_florestal_produto_id"]); produto.Tid = readerAux["tid"].ToString(); produto.Quantidade = readerAux["quantidade"].ToString(); if (reader["produto_id"] != null && !Convert.IsDBNull(readerAux["produto_id"])) { produto.ProdutoId = Convert.ToInt32(readerAux["produto_id"]); produto.ProdutoTexto = readerAux["produto_texto"].ToString(); } exploracao.Produtos.Add(produto); } readerAux.Close(); } #endregion caracterizacao.Exploracoes.Add(exploracao); } reader.Close(); } #endregion } return(caracterizacao); }
internal bool Salvar(ExploracaoFlorestal caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new ExploracaoFlorestal()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.FinalidadeExploracao <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.FinalidadeExploracaoObrigatorio); } else { if (caracterizacao.FinalidadeExploracao == (int)eExploracaoFlorestalFinalidade.Outros && String.IsNullOrWhiteSpace(caracterizacao.FinalidadeEspecificar)) { Validacao.Add(Mensagem.ExploracaoFlorestal.FinalidadeExploracaoEspecificarObrigatorio); } } foreach (ExploracaoFlorestalExploracao item in caracterizacao.Exploracoes) { if (item.GeometriaTipoId == (int)eExploracaoFlorestalGeometria.Poligono) { if (!String.IsNullOrWhiteSpace(item.AreaRequeridaTexto)) { if (!ValidacoesGenericasBus.ValidarDecimal(DecimalEtx.ClearMask(item.AreaRequeridaTexto), 7, 2)) { Validacao.Add(Mensagem.ExploracaoFlorestal.AreaRequiridaInvalida(item.Identificacao)); } else if (item.AreaRequerida <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.AreaRequiridaMaiorZero(item.Identificacao)); } } else { Validacao.Add(Mensagem.ExploracaoFlorestal.AreaRequiridaObrigatoria(item.Identificacao)); } } else { if (item.GeometriaTipoId == (int)eExploracaoFlorestalGeometria.Ponto || item.GeometriaTipoId == (int)eExploracaoFlorestalGeometria.Linha) { #region Arvores Requeridas if (!String.IsNullOrWhiteSpace(item.ArvoresRequeridas)) { if (Convert.ToDecimal(item.ArvoresRequeridas) <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.ArvoresRequeridasMaiorZero(item.Identificacao)); } } else { Validacao.Add(Mensagem.ExploracaoFlorestal.ArvoresRequeridasObrigatoria(item.Identificacao)); } #endregion #region Numero de Arvores if (!String.IsNullOrWhiteSpace(item.QuantidadeArvores)) { bool existeProdutoSemRendimento = item.Produtos.Where(x => x.ProdutoId == (int)eProduto.SemRendimento).ToList().Count() > 0; if (!existeProdutoSemRendimento) { if (Convert.ToInt32(item.QuantidadeArvores) <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.QdeArvoresRequeridasMaiorZero(item.Identificacao)); } } } else { Validacao.Add(Mensagem.ExploracaoFlorestal.QdeArvoresRequeridasObrigatoria(item.Identificacao)); } #endregion } } if (item.ExploracaoTipoId <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.ExploracaoTipoObrigatorio(item.Identificacao)); } if (item.ClassificacaoVegetacaoId <= 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.ClassificacaoVegetacaoObrigatoria(item.Identificacao)); } if (item.Produtos.Count == 0) { Validacao.Add(Mensagem.ExploracaoFlorestal.ProdutoObrigatorio(item.Identificacao)); } else { foreach (ExploracaoFlorestalProduto produto in item.Produtos) { if (produto.ProdutoId == (int)eProduto.SemRendimento) { continue; } if (!String.IsNullOrWhiteSpace(produto.Quantidade)) { if (!ValidacoesGenericasBus.ValidarDecimal(DecimalEtx.ClearMask(produto.Quantidade), 7, 2)) { Validacao.Add(Mensagem.Dominialidade.AreaInvalida("exploracao" + item.Identificacao, "Quantidade")); } else if (DecimalEtx.ToDecimalMask(produto.Quantidade).GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.Dominialidade.AreaMaiorZero("exploracao" + item.Identificacao, "Quantidade")); } } else { Validacao.Add(Mensagem.Dominialidade.AreaObrigatoria("exploracao" + item.Identificacao, "Quantidade")); } } } } return(Validacao.EhValido); }