コード例 #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() }));
            }

            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));
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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));
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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);
            }
        }
コード例 #16
0
        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);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        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();
            }
        }