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

            Aquicultura caracterizacao = _bus.ObterPorEmpreendimento(id);

            string textoMerge = _caracterizacaoValidar.DependenciasAlteradas(
                caracterizacao.EmpreendimentoId,
                (int)eCaracterizacao.Aquicultura,
                eCaracterizacaoDependenciaTipo.Caracterizacao,
                caracterizacao.Dependencias, true);

            if (!string.IsNullOrEmpty(textoMerge))
            {
                caracterizacao = _bus.MergiarGeo(caracterizacao);
            }

            AquiculturaVM vm = new AquiculturaVM(caracterizacao, true);

            foreach (AquiculturaAquicult aquicultura in caracterizacao.AquiculturasAquicult)
            {
                aquicultura.Identificador = Guid.NewGuid().ToString();
                AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, isVisualizar: true);
                vm.AquiculturaAquicultVM.Add(viewModelAux);
            }

            vm.TextoMerge = textoMerge;
            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;

            return(View(vm));
        }
Exemplo n.º 2
0
        public Aquicultura MergiarGeo(Aquicultura caracterizacaoAtual)
        {
            foreach (AquiculturaAquicult item in caracterizacaoAtual.AquiculturasAquicult)
            {
                item.CoordenadaAtividade.Tipo = 0;               //limpando dados selecionados
                item.CoordenadaAtividade.Id   = 0;               //limpando dados selecionados
            }

            caracterizacaoAtual.Dependencias = _busCaracterizacao.ObterDependenciasAtual(caracterizacaoAtual.EmpreendimentoId, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao);
            return(caracterizacaoAtual);
        }
Exemplo n.º 3
0
        internal void Salvar(Aquicultura caracterizacao, BancoDeDados banco)
        {
            if (caracterizacao == null)
            {
                throw new Exception("A Caracterização é nula.");
            }

            if (caracterizacao.Id <= 0)
            {
                Criar(caracterizacao, banco);
            }
            else
            {
                Editar(caracterizacao, banco);
            }
        }
Exemplo n.º 4
0
        public Aquicultura ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            Aquicultura caracterizacao = null;

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado);
                caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
Exemplo n.º 5
0
        internal Aquicultura ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null)
        {
            Aquicultura caracterizacao = new Aquicultura();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_aquicultura 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 ActionResult GeoMergiar(Aquicultura caracterizacao)
        {
            Aquicultura   caracterizacaoMerge = _bus.MergiarGeo(caracterizacao);
            AquiculturaVM vm = new AquiculturaVM(caracterizacaoMerge);

            foreach (AquiculturaAquicult aquicultura in caracterizacaoMerge.AquiculturasAquicult)
            {
                aquicultura.Identificador = Guid.NewGuid().ToString();
                AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo);
                vm.AquiculturaAquicultVM.Add(viewModelAux);
            }

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "Aquicultura", vm),
                @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias)
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Criar(Aquicultura caracterizacao)
        {
            string textoMerge = _caracterizacaoValidar.DependenciasAlteradas(
                caracterizacao.EmpreendimentoId,
                (int)eCaracterizacao.Aquicultura,
                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));
        }
Exemplo n.º 8
0
        internal Aquicultura Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            Aquicultura caracterizacao = new Aquicultura();

            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_aquicultura 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()));
            }

            Aquicultura caracterizacao = new Aquicultura();

            caracterizacao.EmpreendimentoId = id;

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

            caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao);

            AquiculturaVM vm = new AquiculturaVM(caracterizacao);

            vm.AquiculturaAquicultTemplateVM = new AquiculturaAquicultVM(new AquiculturaAquicult()
            {
                Identificador = Guid.NewGuid().ToString()
            }, _listaBus.AtividadesSolicitada, _listaBus.CaracterizacaoGeometriaTipo);

            foreach (AquiculturaAquicult aquicultura in caracterizacao.AquiculturasAquicult)
            {
                aquicultura.Identificador = Guid.NewGuid().ToString();
                AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo);
                vm.AquiculturaAquicultVM.Add(viewModelAux);
            }


            vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto;

            return(View(vm));
        }
Exemplo n.º 10
0
        public bool Salvar(Aquicultura 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.Aquicultura,
                            DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao,
                            Dependencias   = caracterizacao.Dependencias
                        }, bancoDeDados);

                        Validacao.Add(Mensagem.Aquicultura.Salvar);

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

            return(Validacao.EhValido);
        }
Exemplo n.º 11
0
 public AquiculturaVM(Aquicultura caracterizacao, bool isVisualizar = false, bool isEditar = false)
 {
     Caracterizacao = caracterizacao;
     IsVisualizar   = isVisualizar;
     IsEditar       = isEditar;
 }
Exemplo n.º 12
0
        internal int?Criar(Aquicultura caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Aquicultura

                Comando comando = bancoDeDados.CriarComando(@"
				insert into {0}crt_aquicultura c(id, empreendimento, tid) values 
				(seq_crt_aquicultura.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"));

                #region Aquiculturas

                foreach (AquiculturaAquicult item in caracterizacao.AquiculturasAquicult)
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into {0}crt_aquicultura_aquic c
					(id, atividade, caracterizacao, area_inundada, num_viveiros_escavados, area_cultivo, num_unid_cultivo, 
					geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid)
					values(seq_crt_aquicultura_aquic.nextval, :atividade, :caracterizacao, :area_inundada, :num_viveiros_escavados, :area_cultivo, :num_unid_cultivo, 
					:geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32);
                    comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("area_inundada", (String.IsNullOrWhiteSpace(item.AreaInundadaTotal)) ? (object)DBNull.Value : item.AreaInundadaTotal, DbType.Decimal);
                    comando.AdicionarParametroEntrada("num_viveiros_escavados", (String.IsNullOrWhiteSpace(item.NumViveiros)) ? (object)DBNull.Value : item.NumViveiros, DbType.Decimal);
                    comando.AdicionarParametroEntrada("area_cultivo", (String.IsNullOrWhiteSpace(item.AreaCultivo)) ? (object)DBNull.Value : item.AreaCultivo, DbType.Decimal);
                    comando.AdicionarParametroEntrada("num_unid_cultivo", (String.IsNullOrWhiteSpace(item.NumUnidadeCultivos)) ? (object)DBNull.Value : item.NumUnidadeCultivos, DbType.Decimal);
                    comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal);
                    comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, DbType.Decimal);
                    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

                    foreach (Cultivo cultivo in item.Cultivos)
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}crt_aquicultura_cultivos c 
						(id, caracterizacao, aquicultura, identificador, volume, tid) values 
						(seq_crt_aquicultura_cultivos.nextval, :caracterizacao, :aquicultura, :identificador, :volume, :tid) returning c.id into :id"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("aquicultura", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("identificador", cultivo.Identificador, DbType.Int32);
                        comando.AdicionarParametroEntrada("volume", cultivo.Volume, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                        comando.AdicionarParametroSaida("id", DbType.Int32);
                        bancoDeDados.ExecutarNonQuery(comando);

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

                    #endregion
                }

                #endregion

                #endregion

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

                bancoDeDados.Commit();

                return(caracterizacao.Id);
            }
        }
Exemplo n.º 13
0
        private Aquicultura ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            Aquicultura caracterizacao = new Aquicultura();

            int hst = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento, c.tid  from {0}hst_crt_aquicultura c where c.caracterizacao = :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"]);
                        caracterizacao.Tid = reader["tid"].ToString();
                    }

                    reader.Close();
                }

                if (caracterizacao.Id <= 0 || simplificado)
                {
                    return(caracterizacao);
                }

                #region Aquiculturas

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    comando = bancoDeDados.CriarComando(@"select c.aquicultura_id id, c.atividade_id, c.area_inundada, c.num_viveiros_escavados, c.num_unid_cultivo, c.area_cultivo, c.geometria_coord_atv_x, c.geometria_coord_atv_y,
														c.geometria_id, c.geometria_tipo, c.tid  from {0}hst_crt_aquicultura_aquic c where c.id_hst = :id_hst"                                                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32);

                    AquiculturaAquicult aquicultura = null;

                    while (reader.Read())
                    {
                        aquicultura           = new AquiculturaAquicult();
                        aquicultura.Id        = Convert.ToInt32(reader["id"]);
                        aquicultura.Atividade = Convert.ToInt32(reader["atividade_id"]);

                        aquicultura.AreaInundadaTotal  = reader["area_inundada"].ToString();
                        aquicultura.NumViveiros        = reader["num_viveiros_escavados"].ToString();
                        aquicultura.NumUnidadeCultivos = reader["num_unid_cultivo"].ToString();
                        aquicultura.AreaCultivo        = reader["area_cultivo"].ToString();

                        aquicultura.CoordenadaAtividade.Id   = Convert.ToInt32(reader["geometria_id"]);
                        aquicultura.CoordenadaAtividade.Tipo = Convert.ToInt32(reader["geometria_tipo"]);

                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            aquicultura.CoordenadaAtividade.CoordX = Convert.ToDecimal(reader["geometria_coord_atv_x"]);
                        }

                        if (reader["geometria_coord_atv_y"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_y"]))
                        {
                            aquicultura.CoordenadaAtividade.CoordY = Convert.ToDecimal(reader["geometria_coord_atv_y"]);
                        }

                        #region Cultivos

                        comando = bancoDeDados.CriarComando(@"select c.cultivo id, c.identificador, c.volume, c.unidade, c.quantidade, m.tid 
															from {0}hst_crt_aquicultura_cultivos c where c.id_hst = :id order by c.identificador"                                                            , EsquemaBanco);

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

                        Cultivo cultivo = null;
                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            while (readerAux.Read())
                            {
                                cultivo               = new Cultivo();
                                cultivo.Id            = Convert.ToInt32(readerAux["id"]);
                                cultivo.Identificador = readerAux["identificador"].ToString();
                                cultivo.Volume        = readerAux["volume"].ToString();

                                aquicultura.Cultivos.Add(cultivo);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        caracterizacao.AquiculturasAquicult.Add(aquicultura);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
Exemplo n.º 14
0
        internal void Editar(Aquicultura caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Aquicultura

                Comando comando = bancoDeDados.CriarComando(@"
				update crt_aquicultura c set c.empreendimento = :empreendimento, c.tid = :tid where c.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                //Cultivos
                comando = bancoDeDados.CriarComando(@"delete from {0}crt_aquicultura_cultivos c where c.caracterizacao = :caracterizacao", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.AquiculturasAquicult.SelectMany(x => x.Cultivos).Select(y => y.Id).ToList());
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                //Aquiculturas
                comando = bancoDeDados.CriarComando("delete from {0}crt_aquicultura_aquic c where c.caracterizacao = :caracterizacao", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.AquiculturasAquicult.Select(x => x.Id).ToList());
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Aquiculturas

                foreach (AquiculturaAquicult item in caracterizacao.AquiculturasAquicult)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update {0}crt_aquicultura_aquic c set c.atividade = :atividade, c.caracterizacao = :caracterizacao, c.area_inundada = :area_inundada, 
						c.num_viveiros_escavados = :num_viveiros_escavados, c.area_cultivo = :area_cultivo, c.num_unid_cultivo = :num_unid_cultivo, 
						c.geometria_coord_atv_x = :geometria_coord_atv_x, c.geometria_coord_atv_y = :geometria_coord_atv_y,  c.geometria_id = :geometria_id, 
						c.geometria_tipo = :geometria_tipo, c.tid = :tid where c.id = :id"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}crt_aquicultura_aquic c 
						(id, atividade, caracterizacao, area_inundada, num_viveiros_escavados, area_cultivo, num_unid_cultivo, 
						geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid)
						values (seq_crt_aquicultura_aquic.nextval, :atividade, :caracterizacao, :area_inundada, :num_viveiros_escavados, :area_cultivo, :num_unid_cultivo, 
						:geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id"                        , EsquemaBanco);

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

                    comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32);
                    comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("area_inundada", (String.IsNullOrWhiteSpace(item.AreaInundadaTotal)) ? (object)DBNull.Value : item.AreaInundadaTotal, DbType.Decimal);
                    comando.AdicionarParametroEntrada("num_viveiros_escavados", (String.IsNullOrWhiteSpace(item.NumViveiros)) ? (object)DBNull.Value : item.NumViveiros, DbType.Decimal);
                    comando.AdicionarParametroEntrada("area_cultivo", (String.IsNullOrWhiteSpace(item.AreaCultivo)) ? (object)DBNull.Value : item.AreaCultivo, DbType.Decimal);
                    comando.AdicionarParametroEntrada("num_unid_cultivo", (String.IsNullOrWhiteSpace(item.NumUnidadeCultivos)) ? (object)DBNull.Value : item.NumUnidadeCultivos, DbType.Decimal);
                    comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal);
                    comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, 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

                    foreach (Cultivo cultivo in item.Cultivos)
                    {
                        if (cultivo.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"
							update {0}crt_aquicultura_cultivos c set c.caracterizacao = :caracterizacao, c.aquicultura = :aquicultura,
							c.identificador = :identificador, c.volume = :volume, c.tid = :tid where c.id = :id"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", cultivo.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"
							insert into {0}crt_aquicultura_cultivos c 
							(id, caracterizacao, aquicultura, identificador, volume, tid) values 
							(seq_crt_aquicultura_cultivos.nextval, :caracterizacao, :aquicultura, :identificador, :volume, :tid ) 
							returning c.id into :id"                            , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("aquicultura", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("identificador", cultivo.Identificador, DbType.Int32);
                        comando.AdicionarParametroEntrada("volume", cultivo.Volume, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

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

                    #endregion
                }

                #endregion

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

                bancoDeDados.Commit();
            }
        }
Exemplo n.º 15
0
        internal bool Salvar(Aquicultura caracterizacao)
        {
            if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new Aquicultura()).Id > 0)
            {
                Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada);
                return(false);
            }

            if (!Acessar(caracterizacao.EmpreendimentoId))
            {
                return(false);
            }

            List <String> atividadesDuplicadas = new List <String>();

            List <int> atividadesIdGrupo1 = ConfiguracaoAtividade.ObterId(
                new[] { (int)eAtividadeCodigo.PisciculturaCarciniculturaEspeciesAguaDoceViveirosEscavadosInclusivePolicultivo01,
                        (int)eAtividadeCodigo.PisciculturaEspeciesAguaDoceViveirosEscavadosUnidadePescaEsportivatipo02,
                        (int)eAtividadeCodigo.CarciniculturaEspeciesAguaDoceViveirosEscavados03 }).ToList();
            int atividadeIdGrupo3 = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CriacaoAnimaisConfinadosPequenoPorteAmbienteAquatico10);

            foreach (var item in caracterizacao.AquiculturasAquicult)
            {
                #region Atividade

                if (item.Atividade <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.AtividadeObrigatoria(item.Identificador));
                }
                else
                {
                    if (caracterizacao.AquiculturasAquicult.Where(x => x.Atividade == item.Atividade).ToList().Count >= 2)
                    {
                        atividadesDuplicadas.Add(item.Identificador);
                    }

                    Boolean atividadeGrupo01 = atividadesIdGrupo1.Any(x => x == item.Atividade);
                    Boolean atividadeGrupo03 = atividadeIdGrupo3 == item.Atividade;
                    Boolean atividadeGrupo02 = (!atividadeGrupo01 && !atividadeGrupo03);

                    #region Grupo de Atividade 01

                    if (atividadeGrupo01)
                    {
                        #region Area Total Inundada

                        if (!String.IsNullOrWhiteSpace(item.AreaInundadaTotal))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.AreaInundadaTotal, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalObrigatorio(item.Identificador));
                        }

                        #endregion

                        #region Nº de viveiros escavados

                        if (!String.IsNullOrWhiteSpace(item.NumViveiros))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.NumViveiros, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.NumViveiroMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.NumViveiroInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumViveiroObrigatorio(item.Identificador));
                        }

                        #endregion

                        item.NumUnidadeCultivos = string.Empty;
                        item.Cultivos.Clear();
                        item.AreaCultivo = string.Empty;
                    }

                    #endregion

                    #region Grupo de Atividade 02

                    if (atividadeGrupo02)
                    {
                        #region Cultivos

                        if (item.Cultivos.Count <= 0)
                        {
                            Validacao.Add(Mensagem.Aquicultura.CultivosObrigatorio);
                        }

                        if (!String.IsNullOrWhiteSpace(item.NumUnidadeCultivos))
                        {
                            int aux = 0;
                            Int32.TryParse(item.NumUnidadeCultivos, out aux);

                            if (aux <= 0)
                            {
                                Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMaiorZero(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosObrigatorio(item.Identificador));
                        }

                        int numeroUnidadeCultivos = 0;
                        Int32.TryParse(item.NumUnidadeCultivos, out numeroUnidadeCultivos);

                        if (numeroUnidadeCultivos < item.Cultivos.Count)
                        {
                            Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMenorQueCultivosAdicionados(item.Identificador));
                        }

                        #endregion

                        item.AreaInundadaTotal = string.Empty;
                        item.NumViveiros       = string.Empty;
                        item.AreaCultivo       = string.Empty;
                    }

                    #endregion

                    #region Grupo de Atividade 03

                    if (atividadeGrupo03)
                    {
                        #region Área do Cultivo

                        if (!String.IsNullOrWhiteSpace(item.AreaCultivo))
                        {
                            decimal aux = 0;

                            if (Decimal.TryParse(item.AreaCultivo, out aux))
                            {
                                if (aux <= 0)
                                {
                                    Validacao.Add(Mensagem.Aquicultura.AreaCultivoMaiorZero(item.Identificador));
                                }
                            }
                            else
                            {
                                Validacao.Add(Mensagem.Aquicultura.AreaCultivoInvalido(item.Identificador));
                            }
                        }
                        else
                        {
                            Validacao.Add(Mensagem.Aquicultura.AreaCultivoObrigatorio(item.Identificador));
                        }

                        #endregion

                        item.AreaInundadaTotal  = string.Empty;
                        item.NumViveiros        = string.Empty;
                        item.NumUnidadeCultivos = string.Empty;
                        item.Cultivos.Clear();
                    }

                    #endregion
                }

                #endregion

                #region Coordenadas

                if (item.CoordenadaAtividade.Id <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.CoordenadaAtividadeObrigatoria(item.Identificador));
                }

                if (item.CoordenadaAtividade.Tipo <= 0)
                {
                    Validacao.Add(Mensagem.Aquicultura.GeometriaTipoObrigatorio(item.Identificador));
                }

                #endregion
            }

            if (atividadesDuplicadas.Count > 0)
            {
                Validacao.Add(Mensagem.Aquicultura.AtividadeDuplicada(atividadesDuplicadas));
            }

            return(Validacao.EhValido);
        }