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() })); } QueimaControlada caracterizacao = _bus.ObterPorEmpreendimento(id); string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.QueimaControlada, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias); if (!string.IsNullOrEmpty(textoMerge)) { caracterizacao = _bus.MergiarGeo(caracterizacao); } QueimaControladaVM vm = new QueimaControladaVM(caracterizacao, _listaBus.QueimaControladaCultivoTipo); vm.TextoMerge = textoMerge; vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; vm.TextoAbrirModal = _validar.AbrirModalAcessar(caracterizacao); return(View(vm)); }
public QueimaControladaVM(QueimaControlada caracterizacao, List <Lista> tipoCultivo, bool isVisualizar = false) { IsVisualizar = isVisualizar; Caracterizacao = caracterizacao; foreach (QueimaControladaQueima queima in caracterizacao.QueimasControladas) { QueimaControladaQueimaVM queimaVM = new QueimaControladaQueimaVM(queima, tipoCultivo, isVisualizar); QueimaControladaQueimaVM.Add(queimaVM); } }
public ActionResult GeoMergiar(QueimaControlada queima) { QueimaControladaVM vm = new QueimaControladaVM(_bus.MergiarGeo(queima), _listaBus.QueimaControladaCultivoTipo); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "QueimaControlada", vm), @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias) }, JsonRequestBehavior.AllowGet)); }
public QueimaControladaPDF(QueimaControlada queimaControlada) { #region Total de Area de Queima TotalAreaQueima = 0; if (queimaControlada.QueimasControladas != null && queimaControlada.QueimasControladas.Count > 0) { foreach (QueimaControladaQueima queima in queimaControlada.QueimasControladas) { if (queima.Cultivos != null && queima.Cultivos.Count > 0) { Decimal aux = 0; foreach (Cultivo cultivo in queima.Cultivos) { if (Decimal.TryParse(cultivo.AreaQueima, out aux)) { TotalAreaQueima += aux; } } } } } #endregion #region Queimas Controladas List <Cultivo> cultivosSelecionados = new List <Cultivo>(); List <Cultivo> lstTodosCultivos = queimaControlada.QueimasControladas.SelectMany(x => x.Cultivos).ToList(); lstTodosCultivos.ForEach(cultivo => { if (!cultivosSelecionados.Exists(y => y.CultivoTipoTexto.ToLower() == cultivo.CultivoTipoTexto.ToLower())) { cultivo.AreaQueima = lstTodosCultivos .Where(x => x.CultivoTipoTexto.ToLower() == cultivo.CultivoTipoTexto.ToLower()) .Sum(x => Convert.ToDecimal(x.AreaQueima)).ToString(); cultivosSelecionados.Add(cultivo); } }); QueimasControladas = new List <QueimaControladaQueimaPDF>() { new QueimaControladaQueimaPDF() { Cultivos = cultivosSelecionados } }; #endregion }
internal bool Salvar(QueimaControlada caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new QueimaControlada()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.EmpreendimentoId)) { return(false); } #region Queimas Controladas foreach (var queima in caracterizacao.QueimasControladas) { if (!String.IsNullOrWhiteSpace(queima.AreaRequerida)) { if (!ValidacoesGenericasBus.ValidarDecimal(queima.AreaRequerida, 7, 4)) { Validacao.Add(Mensagem.QueimaControlada.AreaRequeridaInvalida(queima.Identificacao)); } else if (Convert.ToDecimal(queima.AreaRequerida) <= 0) { Validacao.Add(Mensagem.QueimaControlada.AreaRequiridaMaiorZero(queima.Identificacao)); } } else { Validacao.Add(Mensagem.QueimaControlada.AreaRequeridaObrigatoria(queima.Identificacao)); } if (queima.Cultivos.Count <= 0) { Validacao.Add(Mensagem.QueimaControlada.QueimaControladaCultivoObrigatoria(queima.Identificacao)); } } #endregion return(Validacao.EhValido); }
public QueimaControlada ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null) { QueimaControlada caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado); caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.QueimaControlada, eCaracterizacaoDependenciaTipo.Caracterizacao); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
internal void Salvar(QueimaControlada caracterizacao, BancoDeDados banco) { if (caracterizacao == null) { throw new Exception("A Caracterização é nula."); } if (caracterizacao.Id <= 0) { Criar(caracterizacao, banco); } else { Editar(caracterizacao, banco); } }
internal QueimaControlada ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { QueimaControlada caracterizacao = new QueimaControlada(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_queima_contr 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(QueimaControlada 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.QueimaControlada.EmpreendimentoRuralReservaIndefinida.Texto); } } } return(string.Empty); }
public ActionResult Criar(QueimaControlada caracterizacao) { string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.QueimaControlada, 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 QueimaControlada MergiarGeo(QueimaControlada caracterizacaoAtual) { QueimaControlada dadosGeo = ObterDadosGeo(caracterizacaoAtual.EmpreendimentoId); caracterizacaoAtual.Dependencias = _busCaracterizacao.ObterDependenciasAtual(caracterizacaoAtual.EmpreendimentoId, eCaracterizacao.QueimaControlada, eCaracterizacaoDependenciaTipo.Caracterizacao); foreach (QueimaControladaQueima queima in dadosGeo.QueimasControladas) { if (!caracterizacaoAtual.QueimasControladas.Exists(x => x.Identificacao == queima.Identificacao)) { caracterizacaoAtual.QueimasControladas.Add(queima); } } List <QueimaControladaQueima> queimasRemover = new List <QueimaControladaQueima>(); foreach (QueimaControladaQueima queima in caracterizacaoAtual.QueimasControladas) { if (!dadosGeo.QueimasControladas.Exists(x => x.Identificacao == queima.Identificacao)) { queimasRemover.Add(queima); continue; } else { QueimaControladaQueima queimaAux = dadosGeo.QueimasControladas.SingleOrDefault(x => x.Identificacao == queima.Identificacao) ?? new QueimaControladaQueima(); queima.Identificacao = queimaAux.Identificacao; queima.AreaCroqui = queimaAux.AreaCroqui; } } foreach (QueimaControladaQueima queimaControlada in queimasRemover) { caracterizacaoAtual.QueimasControladas.Remove(queimaControlada); } return(caracterizacaoAtual); }
internal QueimaControlada Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { QueimaControlada caracterizacao = new QueimaControlada(); 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_queima_contr 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 ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } QueimaControlada 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.QueimaControlada, eCaracterizacaoDependenciaTipo.Caracterizacao); QueimaControladaVM vm = new QueimaControladaVM(caracterizacao, _listaBus.QueimaControladaCultivoTipo); vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; vm.TextoAbrirModal = _validar.AbrirModalAcessar(caracterizacao); return(View(vm)); }
public bool Salvar(QueimaControlada 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.QueimaControlada, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); Validacao.Add(Mensagem.QueimaControlada.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
internal int?Criar(QueimaControlada caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Queima Controlada bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}crt_queima_contr c (id, empreendimento, tid) values ({0}seq_crt_queima_contr.nextval, :empreendimento, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); 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 Queimas Controladas if (caracterizacao.QueimasControladas != null && caracterizacao.QueimasControladas.Count > 0) { foreach (QueimaControladaQueima item in caracterizacao.QueimasControladas) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_queima_contr_queima c (id, queima_controlada, identificacao, area_croqui,area_requerida, tid) values ({0}seq_crt_queima_contr_queima.nextval, :queima_controlada, :identificacao, :area_croqui, :area_requerida, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificacao", DbType.String, 100, item.Identificacao); comando.AdicionarParametroEntrada("area_croqui", DbType.Decimal, 100, item.AreaCroqui); comando.AdicionarParametroEntrada("area_requerida", DbType.String, 100, item.AreaRequerida); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Cultivos if (item.Cultivos != null && item.Cultivos.Count > 0) { foreach (Cultivo itemAux in item.Cultivos) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_queima_contr_tipo_cult c (id, queima_contr_queima, tipo_cultivo, nome_finalidade, area_queima, tid) values ({0}seq_crt_queima_contr_tipo_cult.nextval, :queima_contr_queima, :tipo_cultivo, :nome_finalidade, :area_queima, :tid)" , EsquemaBanco); comando.AdicionarParametroEntrada("queima_contr_queima", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo_cultivo", itemAux.CultivoTipo, DbType.Int32); comando.AdicionarParametroEntrada("nome_finalidade", itemAux.FinalidadeNome, DbType.String); comando.AdicionarParametroEntrada("tipo_cultivo", itemAux.CultivoTipo, DbType.Int32); comando.AdicionarParametroEntrada("area_queima", itemAux.AreaQueima, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.queimacontrolada, eHistoricoAcao.criar, bancoDeDados, null); #endregion bancoDeDados.Commit(); return(caracterizacao.Id); } }
internal QueimaControlada ObterDadosGeo(int empreendimento, BancoDeDados banco = null) { QueimaControlada caracterizacao = new QueimaControlada(); caracterizacao.EmpreendimentoId = empreendimento; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Dados Geo /*Verificar classificação com analista*/ Comando comando = bancoDeDados.CriarComando(@" select a.atividade, a.codigo identificacao, a.geometry.sdo_gtype geometria_tipo, a.area_m2 area_croqui 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, a.geometry.sdo_gtype geometria_tipo, null area_croqui 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, a.geometry.sdo_gtype geometria_tipo, null area_croqui 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, a.geometry.sdo_gtype geometria_tipo, a.area_m2 area_croqui 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" , EsquemaBanco, EsquemaBancoGeo); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", (int)eCaracterizacao.QueimaControlada, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { QueimaControladaQueima queima = null; while (reader.Read()) { queima = new QueimaControladaQueima(); queima.Identificacao = reader["identificacao"].ToString(); queima.AreaCroqui = reader.GetValue <decimal>("area_croqui"); caracterizacao.QueimasControladas.Add(queima); } reader.Close(); } #endregion } return(caracterizacao); }
private QueimaControlada ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { QueimaControlada caracterizacao = new QueimaControlada(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Queima Controlada Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.tid from {0}hst_crt_queima_contr c where c.queima_controlada_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.Tid = reader["tid"].ToString(); } reader.Close(); } #endregion if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Queimas Controladas comando = bancoDeDados.CriarComando(@"select c.id, c.queima_contr_queima_id, c.identificacao, c.area_croqui, c.area_requerida, c.tid from {0}hst_crt_queima_contr_queima c where c.id_hst = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { QueimaControladaQueima queima = null; while (reader.Read()) { hst = Convert.ToInt32(reader["id"]); queima = new QueimaControladaQueima(); queima.Id = Convert.ToInt32(reader["queima_contr_queima_id"]); queima.Tid = reader["tid"].ToString(); queima.Identificacao = reader["identificacao"].ToString(); queima.AreaCroqui = reader.GetValue <decimal>("area_croqui"); queima.AreaRequerida = reader["area_requerida"].ToString(); #region Cultivos comando = bancoDeDados.CriarComando(@"select c.queima_tipo_cultivo_id, c.tipo_cultivo_id, c.tipo_cultivo_texto, c.nome_finalidade, c.tid from {0}hst_crt_queima_contr_tipo_cult c where c.id_hst = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { Cultivo cultivo = null; while (readerAux.Read()) { cultivo = new Cultivo(); cultivo.Id = Convert.ToInt32(readerAux["queima_tipo_cultivo_id"]); cultivo.CultivoTipo = Convert.ToInt32(readerAux["tipo_cultivo_id"]); cultivo.CultivoTipoTexto = readerAux["tipo_cultivo_texto"].ToString(); cultivo.Tid = readerAux["tid"].ToString(); if (readerAux["nome_finalidade"] != null && !Convert.IsDBNull(readerAux["nome_finalidade"])) { cultivo.FinalidadeNome = readerAux["nome_finalidade"].ToString(); } queima.Cultivos.Add(cultivo); } readerAux.Close(); } #endregion caracterizacao.QueimasControladas.Add(queima); } reader.Close(); } #endregion } return(caracterizacao); }
internal void Editar(QueimaControlada caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Queima Controlada bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update {0}crt_queima_contr c set c.tid = :tid where c.id = :id", EsquemaBanco); 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_queima_contr_tipo_cult c where c.queima_contr_queima in (select a.id from {0}crt_queima_contr_queima a where a.queima_controlada = :queima_controlada" , EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "a.id", DbType.Int32, caracterizacao.QueimasControladas.Select(x => x.Id).ToList()); comando.DbCommand.CommandText += ")"; comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); foreach (QueimaControladaQueima item in caracterizacao.QueimasControladas) { comando = bancoDeDados.CriarComando(@"delete from {0}crt_queima_contr_tipo_cult c where c.queima_contr_queima in (select a.id from {0}crt_queima_contr_queima a where a.queima_controlada = :queima_controlada and a.id = :queima_contr_queima)" , EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, item.Cultivos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("queima_contr_queima", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); } //Cultivos comando = bancoDeDados.CriarComando("delete from {0}crt_queima_contr_queima c ", EsquemaBanco); comando.DbCommand.CommandText += String.Format("where c.queima_controlada = :queima_controlada{0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.QueimasControladas.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Queimas Controladas if (caracterizacao.QueimasControladas != null && caracterizacao.QueimasControladas.Count > 0) { foreach (QueimaControladaQueima item in caracterizacao.QueimasControladas) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_queima_contr_queima c set c.identificacao = :identificacao, c.queima_controlada = :queima_controlada, c.area_croqui = :area_croqui, c.area_requerida = :area_requerida, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_queima_contr_queima c (id, queima_controlada, identificacao, area_croqui,area_requerida, tid) values ({0}seq_crt_queima_contr_queima.nextval, :queima_controlada, :identificacao, :area_croqui, :area_requerida, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("queima_controlada", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("identificacao", DbType.String, 100, item.Identificacao); comando.AdicionarParametroEntrada("area_croqui", item.AreaCroqui, DbType.Decimal); comando.AdicionarParametroEntrada("area_requerida", item.AreaRequerida, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #region Cultivos if (item.Cultivos != null && item.Cultivos.Count > 0) { foreach (Cultivo itemAux in item.Cultivos) { if (itemAux.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_queima_contr_tipo_cult c set c.queima_contr_queima = :queima_contr_queima, c.tipo_cultivo = :tipo_cultivo, c.nome_finalidade = :nome_finalidade, c.area_queima = :area_queima, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", itemAux.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_queima_contr_tipo_cult c (id, queima_contr_queima, tipo_cultivo, nome_finalidade, area_queima, tid) values ({0}seq_crt_queima_contr_tipo_cult.nextval, :queima_contr_queima, :tipo_cultivo, :nome_finalidade, :area_queima, :tid)" , EsquemaBanco); } comando.AdicionarParametroEntrada("queima_contr_queima", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo_cultivo", itemAux.CultivoTipo, DbType.Int32); comando.AdicionarParametroEntrada("nome_finalidade", itemAux.FinalidadeNome, DbType.String); comando.AdicionarParametroEntrada("area_queima", itemAux.AreaQueima, DbType.String); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.queimacontrolada, eHistoricoAcao.atualizar, bancoDeDados, null); #endregion bancoDeDados.Commit(); } }