Exemplo n.º 1
0
        public Pessoa ObterAutuado(int fiscalizacaoId, BancoDeDados banco = null)
        {
            Pessoa    pessoa    = null;
            PessoaBus pessoaBus = new PessoaBus();

            try
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    LocalInfracao localInfracao = _daLocalInfracao.Obter(fiscalizacaoId, bancoDeDados);

                    if (localInfracao.EmpreendimentoId.GetValueOrDefault(0) > 0)
                    {
                        pessoa = pessoaBus.Obter(localInfracao.ResponsavelId.GetValueOrDefault(0), banco, true);
                    }
                    else
                    {
                        pessoa = pessoaBus.Obter(localInfracao.PessoaId.GetValueOrDefault(0), banco, true);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(pessoa);
        }
Exemplo n.º 2
0
        private void AtualizarGeoLocalizacao(LocalInfracao localInfracao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(
                    @"declare " +
                    "v_existe number:=0; " +
                    "v_geo mdsys.sdo_geometry; " +
                    "begin " +
                    "select count(*) into v_existe from {0}geo_fisc_localizacao f where f.fiscalizacao = :fiscalizacao; " +
                    "v_geo := mdsys.sdo_geometry(2001,31984, sdo_point_type(:lon_easting, :lat_northing, null), null, null); " +
                    "if v_existe > 0 then  " +
                    "update {0}geo_fisc_localizacao f set f.geometry = v_geo, f.tid = :tid where f.fiscalizacao = :fiscalizacao; " +
                    "else " +
                    "insert into {0}geo_fisc_localizacao (id, fiscalizacao, geometry, tid) values ({0}seq_geo_fisc_localizacao.nextval, :fiscalizacao, v_geo, :tid); " +
                    "end if; " +
                    "end;", EsquemaBancoGeo);

                comando.AdicionarParametroEntrada("fiscalizacao", localInfracao.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("lat_northing", localInfracao.LatNorthingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("lon_easting", localInfracao.LonEastingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                bancoDeDados.Commit();
            }
        }
Exemplo n.º 3
0
 public LocalInfracaoVM()
 {
     EstadoDefault    = ViewModelHelper.EstadoDefaultId();
     MunicipioDefault = ViewModelHelper.MunicipioDefaultId();
     LocalInfracao    = new LocalInfracao();
     Pessoa           = new Pessoa();
 }
Exemplo n.º 4
0
        public LocalInfracaoVM(LocalInfracao localInfracao, List <Estado> lstEstados, List <Municipio> lstMunicipios, List <Segmento> lstSegmentos, List <CoordenadaTipo> lstTiposCoordenada, List <Datum> lstDatuns, List <Fuso> lstFusos, List <CoordenadaHemisferio> lstHemisferios, List <Setor> lstSetores, Pessoa pessoa, List <PessoaLst> lstResponsaveis)
        {
            LocalInfracao = localInfracao;

            EstadoDefault      = ViewModelHelper.EstadoDefaultId();
            EstadoDefaultSigla = ViewModelHelper.EstadoDefaultSigla();
            MunicipioDefault   = ViewModelHelper.MunicipioDefaultId();

            Estados    = ViewModelHelper.CriarSelectList(lstEstados, true, selecionado: EstadoDefault.ToString());
            Municipios = ViewModelHelper.CriarSelectList(lstMunicipios, true, selecionado: MunicipioDefault.ToString());

            CoordenadasSistema = ViewModelHelper.CriarSelectList(lstTiposCoordenada.Where(x => x.Id == 3).ToList(), true, false);
            Datuns             = ViewModelHelper.CriarSelectList(lstDatuns.Where(x => x.Id == 1).ToList(), true, false);
            Fusos       = ViewModelHelper.CriarSelectList(lstFusos.Where(x => x.Id == 24).ToList(), true, false);
            Hemisferios = ViewModelHelper.CriarSelectList(lstHemisferios.Where(x => x.Id == 1).ToList(), true, false);

            if (lstSetores.Count == 1)
            {
                Setores = ViewModelHelper.CriarSelectList(lstSetores, true, false, lstSetores[0].Id.ToString());
            }
            else if (lstSetores.Count > 0)
            {
                Setores = ViewModelHelper.CriarSelectList(lstSetores);
            }

            Pessoa = pessoa;
            if (this.LocalInfracao.EmpreendimentoId.GetValueOrDefault() > 0)
            {
                Responsavel = lstResponsaveis.Count == 1 ? ViewModelHelper.CriarSelectList(lstResponsaveis, true, false) : ViewModelHelper.CriarSelectList(lstResponsaveis);
            }
        }
Exemplo n.º 5
0
        public void Editar(LocalInfracao localInfracao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
					update {0}tab_fisc_local_infracao t
					   set t.setor             = :setor,
						   t.sis_coord         = :sis_coord,
						   t.datum             = :datum,
						   t.area_abrang       = :area_abrang,
						   t.lat_northing      = :lat_northing,
						   t.lon_easting       = :lon_easting,
						   t.hemisferio        = :hemisferio,
						   t.municipio         = :municipio,
						   t.pessoa            = :pessoa,
						   t.empreendimento    = :empreendimento,
						   t.tid               = :tid,
						   t.local             = :local,
						   t.responsavel       = :responsavel,
						   t.resp_propriedade  = :resp_propriedade,
                           t.area_fiscalizacao = :area_fiscalizacao,
						   t.assinante         = :assinante
					 where t.id = :id"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("setor", localInfracao.SetorId, DbType.Int32);
                comando.AdicionarParametroEntrada("sis_coord", localInfracao.SistemaCoordId, DbType.Int32);
                comando.AdicionarParametroEntrada("datum", localInfracao.Datum, DbType.Int32);
                comando.AdicionarParametroEntrada("area_abrang", localInfracao.AreaAbrangencia, DbType.Int32);
                comando.AdicionarParametroEntrada("lat_northing", localInfracao.LatNorthingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("lon_easting", localInfracao.LonEastingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("hemisferio", localInfracao.Hemisferio, DbType.Int32);
                comando.AdicionarParametroEntrada("municipio", (localInfracao.MunicipioId == 0 ? null : (int?)localInfracao.MunicipioId), DbType.Int32);
                comando.AdicionarParametroEntrada("pessoa", localInfracao.PessoaId, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento", localInfracao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                //comando.AdicionarParametroEntrada("data", localInfracao.Data.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("local", DbType.String, 150, localInfracao.Local);
                comando.AdicionarParametroEntrada("responsavel", localInfracao.ResponsavelId, DbType.Int32);
                comando.AdicionarParametroEntrada("resp_propriedade", localInfracao.ResponsavelPropriedadeId, DbType.Int32);
                comando.AdicionarParametroEntrada("area_fiscalizacao", localInfracao.AreaFiscalizacao, DbType.Int32);
                comando.AdicionarParametroEntrada("assinante", localInfracao.AssinantePropriedadeId == 0 ? null : localInfracao.AssinantePropriedadeId, DbType.Int32);

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

                bancoDeDados.ExecutarNonQuery(comando);

                if (localInfracao.MunicipioId != 0 && localInfracao.MunicipioId != null)
                {
                    AtualizarGeoLocalizacao(localInfracao, bancoDeDados);
                }

                bancoDeDados.Commit();
            }
        }
        public bool Finalizar(int id)
        {
            List <string>     lstCadastroVazio = _da.TemCadastroVazio(id);
            ProjetoGeografico projetoGeo       = new ProjetoGeografico();
            Infracao          infracao         = new Infracao();
            LocalInfracao     localInfracao    = new LocalInfracao();

            localInfracao = _localInfracaoDa.Obter(id);

            FuncionarioBus funcBus     = new FuncionarioBus();
            List <Setor>   setoresFunc = funcBus.ObterSetoresFuncionario();

            if (!setoresFunc.Any(x => x.Id == localInfracao.SetorId))
            {
                Validacao.Add(Mensagem.Fiscalizacao.SetorNaoPertenceFuncionario);
            }

            if (lstCadastroVazio.Count > 0)
            {
                Validacao.Add(Mensagem.Fiscalizacao.CadastroObrigatorio(Mensagem.Concatenar(lstCadastroVazio)));
                return(Validacao.EhValido);
            }

            projetoGeo = _projetoGeoDa.ObterProjetoGeograficoPorFiscalizacao(id);
            projetoGeo.FiscalizacaoEasting  = localInfracao.LonEastingToDecimal;
            projetoGeo.FiscalizacaoNorthing = localInfracao.LatNorthingToDecimal;

            if (!_projetoGeoDa.VerificarProjetoGeograficoProcessado(projetoGeo.Id))
            {
                Validacao.Add(Mensagem.Fiscalizacao.ProjetoGeoProcessado);
            }
            else
            {
                if (!projetoGeo.FiscalizacaoEstaDentroAreaAbrangencia)
                {
                    Validacao.Add(Mensagem.ProjetoGeografico.EmpreendimentoForaAbrangencia);
                }
            }

            infracao = _infracaoDa.Obter(id);

            if (_infracaoDa.ConfigAlterada(infracao.ConfiguracaoId, infracao.ConfiguracaoTid))
            {
                Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaConcluir);
            }

            if (_infracaoDa.PerguntaRespostaAlterada(infracao))
            {
                Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaConcluir);
            }

            return(Validacao.EhValido);
        }
Exemplo n.º 7
0
        public LocalInfracao ObterHistorico(int fiscalizacaoId, BancoDeDados banco = null)
        {
            LocalInfracao entidade = null;

            try
            {
                entidade = _da.ObterHistorico(fiscalizacaoId);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(entidade);
        }
Exemplo n.º 8
0
        public int Criar(LocalInfracao localInfracao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				insert into {0}tab_fisc_local_infracao (id, fiscalizacao, setor, sis_coord, datum, area_abrang, lat_northing, lon_easting, hemisferio, 
				municipio, pessoa, empreendimento, tid, local, responsavel, resp_propriedade, area_fiscalizacao, assinante)
				values
				({0}seq_tab_fisc_local_infracao.nextval, :fiscalizacao, :setor, :sis_coord, :datum, :area_abrang, :lat_northing, :lon_easting, :hemisferio, 
				:municipio, :pessoa, :empreendimento, :tid, :local, :responsavel, :resp_propriedade, :area_fiscalizacao, :assinante) returning id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", localInfracao.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("setor", localInfracao.SetorId, DbType.Int32);
                comando.AdicionarParametroEntrada("sis_coord", localInfracao.SistemaCoordId, DbType.Int32);
                comando.AdicionarParametroEntrada("datum", localInfracao.Datum, DbType.Int32);
                comando.AdicionarParametroEntrada("area_abrang", localInfracao.AreaAbrangencia, DbType.Int32);
                comando.AdicionarParametroEntrada("lat_northing", localInfracao.LatNorthingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("lon_easting", localInfracao.LonEastingToDecimal, DbType.Decimal);
                comando.AdicionarParametroEntrada("hemisferio", localInfracao.Hemisferio, DbType.Int32);
                comando.AdicionarParametroEntrada("municipio", (localInfracao.MunicipioId == 0 ? null : (int?)localInfracao.MunicipioId), DbType.Int32);
                comando.AdicionarParametroEntrada("pessoa", localInfracao.PessoaId, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento", localInfracao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                //comando.AdicionarParametroEntrada("data", localInfracao.Data.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("local", DbType.String, 150, localInfracao.Local);
                comando.AdicionarParametroEntrada("responsavel", localInfracao.ResponsavelId, DbType.Int32);
                comando.AdicionarParametroEntrada("resp_propriedade", localInfracao.ResponsavelPropriedadeId, DbType.Int32);
                comando.AdicionarParametroEntrada("area_fiscalizacao", localInfracao.AreaFiscalizacao, DbType.Int32);
                comando.AdicionarParametroEntrada("assinante", (localInfracao.AssinantePropriedadeId == 0 ? null : localInfracao.AssinantePropriedadeId), DbType.Int32);

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

                bancoDeDados.ExecutarNonQuery(comando);

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

                if (localInfracao.MunicipioId != 0 && localInfracao.MunicipioId != null)
                {
                    AtualizarGeoLocalizacao(localInfracao, bancoDeDados);
                }

                bancoDeDados.Commit();
            }

            return(localInfracao.Id);
        }
Exemplo n.º 9
0
        public int Salvar(LocalInfracao localInfracao, BancoDeDados banco = null)
        {
            if (localInfracao == null)
            {
                throw new Exception("Local Infração é nulo.");
            }

            if (localInfracao.Id <= 0)
            {
                Criar(localInfracao, banco);
            }
            else
            {
                Editar(localInfracao, banco);
            }

            return(localInfracao.Id);
        }
Exemplo n.º 10
0
        public LocalInfracao ObterHistorico(int fiscalizacaoId, BancoDeDados banco = null)
        {
            LocalInfracao localInfracao = new LocalInfracao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select t.id         Id,
															t.fiscalizacao_id     FiscalizacaoId,
															t.setor_id            SetorId,
															t.sis_coord_id        SistemaCoordId,
															t.datum_id            Datum,
															t.area_abrang         AreaAbrangencia,
															t.lat_northing        LatNorthing,
															t.lon_easting         LonEasting,
															t.hemisferio_id       Hemisferio,
															t.municipio_id        MunicipioId,
															t.municipio_texto     MunicipioTexto,
															t.pessoa_id           PessoaId,
															t.pessoa_tid          PessoaTid,
															t.empreendimento_id   EmpreendimentoId,
															t.empreendimento_tid  EmpreendimentoTid,
															t.tid                 Tid,
															t.data                dataFisc,
															t.local               Local,
															t.responsavel_id      ResponsavelId,
															t.resp_propriedade_id ResponsavelPropriedadeId
														from {0}hst_fisc_local_infracao t
														where t.fiscalizacao_id = :fiscalizacao
														and t.id_hst = (select max(id)
																		 from {0}hst_fiscalizacao
																		where fiscalizacao_id = :fiscalizacao
																		  and situacao_id = 2 /*Cadastro Concluido*/
																	   )"                                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", fiscalizacaoId, DbType.Int32);

                localInfracao = bancoDeDados.ObterEntity <LocalInfracao>(comando, (IDataReader reader, LocalInfracao item) => { item.Data.DataTexto = reader.GetValue <DateTime>("dataFisc").ToString("dd/MM/yyyy"); });
            }
            return(localInfracao);
        }
Exemplo n.º 11
0
        public LocalInfracao Obter(int fiscalizacaoId, BancoDeDados banco = null)
        {
            LocalInfracao localInfracao = new LocalInfracao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
					select t.id					Id,
						   t.fiscalizacao		FiscalizacaoId,
						   t.setor				SetorId,
						   t.sis_coord			SistemaCoordId,
						   t.datum				Datum,
						   t.area_abrang		AreaAbrangencia,
						   t.lat_northing		LatNorthing,
						   t.lon_easting		LonEasting,
						   t.hemisferio			Hemisferio,
						   t.municipio			MunicipioId,
						   l.texto				MunicipioTexto,
						   t.pessoa				PessoaId,
						   t.empreendimento		EmpreendimentoId,
						   t.tid				Tid,
						   t.local				Local,
						   t.responsavel		ResponsavelId,
						   t.resp_propriedade	ResponsavelPropriedadeId,
						   t.assinante			AssinantePropriedadeId,
                           t.area_fiscalizacao  AreaFiscalizacao,
						   case when t.empreendimento is null then 0
						   else 1 end DentroEmpreendimento
					  from {0}tab_fisc_local_infracao t, 
						   {0}lov_municipio l
					 where t.municipio = l.id(+)
					   and t.fiscalizacao = :fiscalizacao"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", fiscalizacaoId, DbType.Int32);

                localInfracao = bancoDeDados.ObterEntity <LocalInfracao>(comando /*, (IDataReader reader, LocalInfracao item) => { item.Data.DataTexto = reader.GetValue<DateTime>("dataFisc").ToString("dd/MM/yyyy"); }*/);
            }
            return(localInfracao);
        }
        public bool Salvar(LocalInfracao localInfracao)
        {
            if (localInfracao.SetorId == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.SelecioneSetor);
            }

            if (localInfracao.Data.IsEmpty || !localInfracao.Data.IsValido)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.DataFiscalizacaoObrigatoria);
            }
            else if (localInfracao.Data.Data.GetValueOrDefault() > DateTime.Now)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.DataFiscalizacaoMenorAtual);
            }

            if (!localInfracao.LonEastingToDecimal.HasValue)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.EastingUtmObrigatorio);
            }

            if (!localInfracao.LatNorthingToDecimal.HasValue)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.NorthingUtmObrigatorio);
            }

            if (localInfracao.MunicipioId == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.MunicipioObrigatorio);
            }

            if (string.IsNullOrWhiteSpace(localInfracao.AreaAbrangencia))
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.AreaAbrangenciaObrigatoria);
            }
            else
            {
                int areaAbran = 0;
                if (!int.TryParse(localInfracao.AreaAbrangencia, out areaAbran))
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.AreaAbrangenciaInvalida);
                }
                else if (areaAbran == 0)
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.AreaAbrangenciaMaiorZero);
                }
            }

            if (string.IsNullOrWhiteSpace(localInfracao.Local))
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.LocalObrigatorio);
            }

            if (localInfracao.PessoaId.GetValueOrDefault() == 0 && localInfracao.EmpreendimentoId.GetValueOrDefault() == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.PessoaEmpreendimentoObrigatorio);
            }

            if (localInfracao.EmpreendimentoId.GetValueOrDefault() > 0 && localInfracao.ResponsavelId.GetValueOrDefault() == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.ResponsavelObrigatorio);
            }

            if (localInfracao.EmpreendimentoId.GetValueOrDefault() > 0 && localInfracao.ResponsavelPropriedadeId.GetValueOrDefault() == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.ResponsavelPropriedadeObrigatorio);
            }

            return(Validacao.EhValido);
        }
Exemplo n.º 13
0
        public LocalInfracao ObterHistorico(int fiscalizacaoId, BancoDeDados banco = null)
        {
            LocalInfracao localInfracao = new LocalInfracao();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select t.id         Id,
															t.fiscalizacao_id     FiscalizacaoId,
															t.setor_id            SetorId,
                                                            t.area_fiscalizacao   AreaFiscalizacao,
															t.sis_coord_id        SistemaCoordId,
															t.datum_id            Datum,
															t.area_abrang         AreaAbrangencia,
															t.lat_northing        LatNorthing,
															t.lon_easting         LonEasting,
															t.hemisferio_id       Hemisferio,
															t.municipio_id        MunicipioId,
															t.municipio_texto     MunicipioTexto,
															t.pessoa_id           PessoaId,
															t.pessoa_tid          PessoaTid,
															t.empreendimento_id   EmpreendimentoId,
															t.empreendimento_tid  EmpreendimentoTid,
															t.tid                 Tid,
															--t.data                dataFisc,
															t.local               Local,
															t.responsavel_id      ResponsavelId,
                                                            t.responsavel_tid     ResponsavelTid,
															t.resp_propriedade_id ResponsavelPropriedadeId,
															t.assinante_id		  AssinantePropriedadeId
														from {0}hst_fisc_local_infracao t
														where t.fiscalizacao_id = :fiscalizacao
														and t.id_hst = (select max(id)
																		 from {0}hst_fiscalizacao
																		where fiscalizacao_id = :fiscalizacao
																		  and situacao_id = 2 /*Cadastro Concluido*/
																	   )"                                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", fiscalizacaoId, DbType.Int32);

                //localInfracao = bancoDeDados.ObterEntity<LocalInfracao>(comando/*, (IDataReader reader, LocalInfracao item) => { item.Data.DataTexto = reader.GetValue<DateTime>("dataFisc").ToString("dd/MM/yyyy"); }*/);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        localInfracao.Id                       = reader.GetValue <int>("Id");
                        localInfracao.FiscalizacaoId           = reader.GetValue <int>("FiscalizacaoId");
                        localInfracao.SetorId                  = reader.GetValue <int>("SetorId");
                        localInfracao.AreaFiscalizacao         = reader.GetValue <int?>("AreaFiscalizacao");
                        localInfracao.SistemaCoordId           = reader.GetValue <int>("SistemaCoordId");
                        localInfracao.Datum                    = reader.GetValue <int>("Datum");
                        localInfracao.AreaAbrangencia          = reader.GetValue <string>("AreaAbrangencia");
                        localInfracao.LatNorthing              = reader.GetValue <string>("LatNorthing");
                        localInfracao.LonEasting               = reader.GetValue <string>("LonEasting");
                        localInfracao.Hemisferio               = reader.GetValue <int>("Hemisferio");
                        localInfracao.MunicipioId              = reader.GetValue <int>("MunicipioId");
                        localInfracao.MunicipioTexto           = reader.GetValue <string>("MunicipioTexto");
                        localInfracao.PessoaId                 = reader.GetValue <int>("PessoaId");
                        localInfracao.PessoaTid                = reader.GetValue <string>("PessoaTid");
                        localInfracao.EmpreendimentoId         = reader.GetValue <int>("EmpreendimentoId");
                        localInfracao.EmpreendimentoTid        = reader.GetValue <string>("EmpreendimentoTid");
                        localInfracao.Tid                      = reader.GetValue <string>("Tid");
                        localInfracao.Local                    = reader.GetValue <string>("Local");
                        localInfracao.ResponsavelId            = reader.GetValue <int>("ResponsavelId");
                        localInfracao.ResponsavelPropriedadeId = reader.GetValue <int>("ResponsavelPropriedadeId");
                        localInfracao.AssinantePropriedadeId   = reader.GetValue <int>("AssinantePropriedadeId");

                        if (string.IsNullOrWhiteSpace(localInfracao.PessoaTid))
                        {
                            localInfracao.PessoaTid = reader.GetValue <string>("ResponsavelTid");
                        }
                    }

                    reader.Close();
                }
            }
            return(localInfracao);
        }
        public bool Salvar(LocalInfracao localInfracao)
        {
            if (localInfracao.SetorId == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.SelecioneSetor);
            }

            if (localInfracao.AreaFiscalizacao == null)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.AreaFiscalizacaoObrigatoria);
            }

            if (localInfracao.DentroEmpreendimento == 1 && (localInfracao.EmpreendimentoId == null || localInfracao.EmpreendimentoId == 0))
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.EmpreendimentoObrigatorio);
            }
            else if (localInfracao.DentroEmpreendimento == 0 && (localInfracao.PessoaId == 0 || localInfracao.PessoaId == null))
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.PessoaObrigatorio);
            }
            else if (localInfracao.PessoaId.GetValueOrDefault() == 0 && localInfracao.EmpreendimentoId.GetValueOrDefault() == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.PessoaEmpreendimentoObrigatorio);
            }

            if (localInfracao.EmpreendimentoId.GetValueOrDefault() > 0 && localInfracao.ResponsavelPropriedadeId.GetValueOrDefault() == 0)
            {
                Validacao.Add(Mensagem.LocalInfracaoMsg.ResponsavelPropriedadeObrigatorio);
            }

            if (localInfracao.DentroEmpreendimento == 0)
            {
                if (string.IsNullOrWhiteSpace(localInfracao.LonEasting))
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.EastingUtmObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(localInfracao.LatNorthing))
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.NorthingUtmObrigatorio);
                }

                if (localInfracao.MunicipioId == null || localInfracao.MunicipioId < 1)
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.MunicipioObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(localInfracao.Local))
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.LocalObrigatorio);
                }
            }
            else
            {
                if (localInfracao.PessoaId != localInfracao.ResponsavelId)
                {
                    Validacao.Add(Mensagem.LocalInfracaoMsg.AutuadoDiferenteEmpreendimento);
                }
            }

            return(Validacao.EhValido);
        }