public ActionResult Cadastrar(CadastrarInfracaoViewModel viewModel) { if (!ModelState.IsValid) { return(this.ModelErrors()); } using (DbApplication db = new DbApplication()) { Infracao infracaoBanco = db .Infracoes .ComDescricao(viewModel.Descricao) .SingleOrDefault(); if (infracaoBanco != null) { return(this.ErrorMessage("Já existe uma infração cadastrada com esse id.")); } Infracao infracao = new Infracao(); infracao.Descricao = viewModel.Descricao; infracao.Velocidade = viewModel.Velocidade; infracao.IdVeiculo = viewModel.IdVeiculo; infracao.IdLogradouro = viewModel.IdLogradouro; infracao.IdAgente = viewModel.IdAgente; db.RegistrarNovo(infracao); db.Salvar(); return(this.Message("Infração registrada com sucesso.")); } }
public bool Salvar(Infracao entidade) { try { if (_validar.Salvar(entidade)) { if (entidade.Id < 1) { entidade.Id = _da.ObterID(entidade.FiscalizacaoId); } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(entidade, bancoDeDados); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public async Task <Infracao> Adiciona(Infracao infracao, System.IO.Stream photoStream) { if (photoStream != null) { // Envia a foto para o servidor var task = new FirebaseStorage( "prismauth.appspot.com", new FirebaseStorageOptions() { AuthTokenAsyncFactory = () => Task.FromResult(_autenticacaoService.Token) } ) .Child("fotografias") .Child(Guid.NewGuid().ToString("N") + ".png") .PutAsync(photoStream); infracao.Foto = await task; } // Define o usuário da infração para ser o user id // do usuário logado infracao.Usuario = _autenticacaoService.UserId; // Grava a infração no Banco de Dados return((await Client.Child(CHILD_NAME).PostAsync(infracao)).Object); }
public async Task Remove(CommandContext ctx, [Description("Membro (ID/Menção)")] DiscordMember membro) { var infras = new Infracao().FindAll(x => x.IdInfrator == membro.Id); if (infras.Count == 0) { await ctx.RespondAsync(embed : EmbedBase.OutputEmbed($"O Membro {membro.Mention} possui uma ficha limpa!")); } else { var briefing = await ctx.RespondAsync(embed : await EmbedExtended.MemberBriefing(infras)); var message = await ctx.RespondAsync(embed : EmbedBase.InputEmbed("# da infração que será apagada")); var input = await ctx.Message.GetNextMessageAsync(); var num = int.Parse(input.Result.Content.Split(" ")[0]); if (infras.Any(x => x.Id == num)) { var infra = infras.Find(x => x.Id == num); new Infracao().Delete(infra); await briefing.ModifyAsync(embed : EmbedBase.OutputEmbed($"Infração Apagada com sucesso.\n Dados :")); await message.ModifyAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); } else { await briefing.DeleteAsync(); await message.ModifyAsync(embed : EmbedBase.OutputEmbed($"Numero inválido, Comando cancelado.")); } } }
public async Task soltar(CommandContext ctx, [Description("O membro que será solto")] DiscordMember member) { var infras = new Infracao().FindAll(x => x.IdInfrator == member.Id); if (infras.Count != 0) { var prisoes = new List <PrisaoModel>(); infras.ForEach(x => prisoes.Add(new Prisao().Find(y => y.InfraId == x.Id))); var active = prisoes.Find(x => x.Elapsed == false); if (active == null) { await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Esse membro não está preso.")); } else { await Soltar(active); active.Elapsed = true; new Prisao().Update(x => x.Id == active.Id, active); await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Membro solto da prisão com sucesso!")); } } else { await ctx.RespondAsync(embed : EmbedBase.OutputEmbed("Esse membro possui uma ficha limpa.")); } }
public bool Salvar(Infracao entidade) { try { if (_validar.Salvar(entidade)) { if (entidade.Id < 1) { entidade.Id = _da.ObterID(entidade.FiscalizacaoId); } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivo if (entidade.Arquivo != null) { if (!string.IsNullOrWhiteSpace(entidade.Arquivo.Nome)) { if (entidade.Arquivo.Id != null && entidade.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); entidade.Arquivo = _busArquivo.Copiar(entidade.Arquivo); } if (entidade.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(entidade.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } } else { entidade.Arquivo.Id = null; } } #endregion _da.Salvar(entidade, bancoDeDados); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
private async Task MembroEntra(GuildMemberAddEventArgs e) { var infra = new Infracao().FindAll(x => x.IdInfrator == e.Member.Id).Where(x => x.Preso).ToList(); if (infra.Any(x => new Logic.Prisao().Find(y => y.InfraId == x.Id && y.Elapsed == false) != null)) { DiscordRole r = e.Guild.GetRole(Roles.PresoID); await e.Member.GrantRoleAsync(r, "Tentou Evadir Prisão"); await e.Guild.GetChannel(Channels.StaffID).SendMessageAsync("@here", false, EmbedBase.OutputEmbed($"Atenção > O Membro {e.Member.Mention} tentou evadir uma prisão ativa!")); } }
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); }
private bool PenalidadeSelecionada(Infracao infracao) { bool penalidadeSelecionada = true; if (infracao.PossuiAdvertencia != true && infracao.PossuiApreensao != true && infracao.PossuiInterdicaoEmbargo != true && infracao.PossuiMulta != true && infracao.IdsOutrasPenalidades.Count == 0) { penalidadeSelecionada = false; } return(penalidadeSelecionada); }
public async Task List(CommandContext ctx, [Description("Membro (Menção/ID)")] DiscordMember membro) { var infracoes = new Infracao().FindAll(x => x.IdInfrator == membro.Id); if (infracoes.Count == 0) { await ctx.RespondAsync(embed : EmbedBase.OutputEmbed($"{membro.Mention} possui ficha limpa!")); } else { foreach (InfracaoModel infra in infracoes) { await ctx.RespondAsync(embed : EmbedExtended.AsyncInfracaoEmbed(infra)); } } }
public Infracao Salvar(Infracao infracao, BancoDeDados banco = null) { if (infracao == null) { throw new Exception("Infração do autuado é nulo."); } if (infracao.Id <= 0) { infracao = Criar(infracao, banco); } else { infracao = Editar(infracao, banco); } return(infracao); }
private void frm_historico_Load(object sender, EventArgs e) { Agendamento agenda = new Agendamento(); Infracao infracao = new Infracao(); //Infração var dri = infracao.Infracoes(); DataTable dti = new DataTable(); dti.Load(infracao.Infracoes()); dgv_infracao.DataSource = dti; infracao.Patient = new Paciente(); infracao.Nurse = new Enfermeiro(); int linhaI = dgv_infracao.Rows.Count; foreach (var item in infracao.Infracoes()) { dgv_infracao.Rows.Add(); dgv_infracao.Rows[linhaI].Cells[0].Value = infracao.Infringement; dgv_infracao.Rows[linhaI].Cells[1].Value = infracao.Patient.Cod; dgv_infracao.Rows[linhaI].Cells[2].Value = infracao.Nurse.Cod; dgv_infracao.Rows[linhaI].Cells[3].Value = infracao.Data; dgv_infracao.Rows[linhaI].Cells[4].Value = infracao.Nova; } //Agenda var dra = agenda.Agendas(); DataTable dta = new DataTable(); dta.Load(agenda.Agendas()); dgv_infracao.DataSource = dta; infracao.Patient = new Paciente(); agenda.Responsible = new Responsavel(); int linhaA = dgv_infracao.Rows.Count; foreach (var item in agenda.Agendas()) { dgv_infracao.Rows.Add(); dgv_infracao.Rows[linhaA].Cells[0].Value = agenda.Responsible.Cod; dgv_infracao.Rows[linhaA].Cells[1].Value = agenda.Dia; dgv_infracao.Rows[linhaA].Cells[2].Value = agenda.Novo; } }
public ActionResult Remover(IdInfracaoViewModel viewModel) { if (!ModelState.IsValid) { return(this.ModelErrors()); } using (DbApplication db = new DbApplication()) { Infracao infracao = db .Infracoes .ComId(viewModel.idInfracao) .SingleOrDefault(); if (infracao == null) { return(this.ErrorMessage("Infração não encontrada.")); } db.RegistrarRemovido(infracao); db.Salvar(); return(this.Message("Infração removida com sucesso.")); } }
public Infracao Obter(int fiscalizacaoId, bool isVerificarConfig = false, BancoDeDados banco = null) { Infracao entidadeAtual = new Infracao(); Infracao entidadeNovoConfig = new Infracao(); try { entidadeAtual = _da.Obter(fiscalizacaoId, banco); entidadeAtual.ConfigAlterou = _da.ConfigAlterada(entidadeAtual.ConfiguracaoId, entidadeAtual.ConfiguracaoTid, banco); entidadeAtual.ConfigAlterou = _da.PerguntaRespostaAlterada(entidadeAtual.Id) || entidadeAtual.ConfigAlterou; if (isVerificarConfig) { if (entidadeAtual.ConfigAlterou) { entidadeNovoConfig = _da.ObterConfig(entidadeAtual.ConfiguracaoId, banco); Mergear(entidadeAtual, entidadeNovoConfig); } } else { if (entidadeAtual.ConfigAlterou) { entidadeAtual = _da.ObterHistorico(entidadeAtual.Id, banco); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(entidadeAtual); }
public Infracao ObterConfig(int configuracaoId, BancoDeDados banco = null) { Infracao infracao = new Infracao(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Infração Comando comando = bancoDeDados.CriarComando(@" select t.id ConfiguracaoId, t.classificacao ClassificacaoId, l.texto ClassificacaoTexto, t.tipo TipoId, cit.texto TipoTexto, t.item ItemId, cii.texto ItemTexto, t.tid ConfiguracaoTid from {0}cnf_fisc_infracao t, {0}cnf_fisc_infracao_tipo cit, {0}cnf_fisc_infracao_item cii, {0}lov_cnf_fisc_infracao_classif l where t.tipo = cit.id(+) and t.item = cii.id(+) and t.classificacao = l.id(+) and t.id = :configuracaoId" , EsquemaBanco); comando.AdicionarParametroEntrada("configuracaoId", configuracaoId, DbType.Int32); infracao = bancoDeDados.ObterEntity <Infracao>(comando); #endregion #region Campos comando = bancoDeDados.CriarComando(@" select tfic.campo CampoId, cfic.texto Identificacao, lt.texto TipoTexto, lt.id Tipo, lu.id Unidade, lu.texto UnidadeTexto, '' Texto from {0}cnf_fisc_infr_cnf_campo tfic, {0}lov_cnf_fisc_infracao_camp_tip lt, {0}lov_cnf_fisc_infracao_camp_uni lu, {0}cnf_fisc_infracao_campo cfic where tfic.campo = cfic.id and cfic.tipo = lt.id(+) and cfic.unidade = lu.id(+) and tfic.configuracao = :configuracaoId" , EsquemaBanco); comando.AdicionarParametroEntrada("configuracaoId", configuracaoId, DbType.Int32); infracao.Campos = bancoDeDados.ObterEntityList <InfracaoCampo>(comando); #endregion #region Questionário comando = bancoDeDados.CriarComando(@" select tfiq.pergunta PerguntaId, cfip.tid PerguntaTid, cfip.texto Identificacao, 0 RespostaId, '' Especificacao from {0}cnf_fisc_infr_cnf_pergunta tfiq, {0}cnf_fisc_infracao_pergunta cfip where tfiq.pergunta = cfip.id and tfiq.configuracao = :configuracaoId order by tfiq.pergunta" , EsquemaBanco); comando.AdicionarParametroEntrada("configuracaoId", configuracaoId, DbType.Int32); infracao.Perguntas = bancoDeDados.ObterEntityList <InfracaoPergunta>(comando, (IDataReader reader, InfracaoPergunta item) => { item.Respostas = _configuracaoDa.ObterRespostas(item.PerguntaId); }); #endregion } return(infracao); }
public void Mergear(Infracao entidadeAtual, Infracao entidadeNovoConfig) { if (entidadeAtual.ClassificacaoId != entidadeNovoConfig.ClassificacaoId) { entidadeAtual.Campos = new List <InfracaoCampo>(); entidadeAtual.Perguntas = new List <InfracaoPergunta>(); entidadeAtual.ClassificacaoId = 0; entidadeAtual.TipoId = 0; entidadeAtual.ItemId = 0; return; } else if (entidadeAtual.TipoId != entidadeNovoConfig.TipoId) { entidadeAtual.Campos = new List <InfracaoCampo>(); entidadeAtual.Perguntas = new List <InfracaoPergunta>(); entidadeAtual.TipoId = 0; entidadeAtual.ItemId = 0; return; } else if (entidadeAtual.ItemId != entidadeNovoConfig.ItemId) { entidadeAtual.Campos = new List <InfracaoCampo>(); entidadeAtual.Perguntas = new List <InfracaoPergunta>(); entidadeAtual.ItemId = 0; return; } entidadeNovoConfig.Campos.ForEach(x => { var itemCampo = entidadeAtual.Campos.Find(z => z.CampoId == x.CampoId); if (itemCampo != null) { x.Id = itemCampo.Id; x.Identificacao = itemCampo.Identificacao; x.Texto = itemCampo.Texto; x.Tipo = itemCampo.Tipo; x.TipoTexto = itemCampo.TipoTexto; x.Unidade = itemCampo.Unidade; x.UnidadeTexto = itemCampo.UnidadeTexto; } }); entidadeNovoConfig.Perguntas.ForEach(x => { var itemPergunta = entidadeAtual.Perguntas.Find(z => z.PerguntaId == x.PerguntaId); if (itemPergunta != null) { x.Id = itemPergunta.Id; x.Especificacao = itemPergunta.Especificacao; x.Identificacao = itemPergunta.Identificacao; x.IsEspecificar = itemPergunta.IsEspecificar; x.RespostaId = itemPergunta.RespostaId; x.Respostas = itemPergunta.Respostas; } }); entidadeAtual.Campos = entidadeNovoConfig.Campos; entidadeAtual.Perguntas = entidadeNovoConfig.Perguntas; entidadeAtual.ConfiguracaoTid = entidadeNovoConfig.ConfiguracaoTid; }
public bool Salvar(Infracao infracao) { #region Classificação da infração if (infracao.ClassificacaoId == 0) { Validacao.Add(Mensagem.InfracaoMsg.ClassificacaoObrigatorio); } if (infracao.TipoId == 0) { Validacao.Add(Mensagem.InfracaoMsg.TipoInfracaoObrigatorio); } if (infracao.ItemId == 0) { Validacao.Add(Mensagem.InfracaoMsg.ItemObrigatorio); } if (infracao.Campos.Count > 0 && infracao.Campos.Count(x => string.IsNullOrWhiteSpace(x.Texto)) > 0) { Validacao.Add(Mensagem.InfracaoMsg.CamposObrigatorioo); } if (infracao.Perguntas.Count > 0 && infracao.Perguntas.Count(x => x.RespostaId == 0 || (x.IsEspecificar && string.IsNullOrWhiteSpace(x.Especificacao))) > 0) { Validacao.Add(Mensagem.InfracaoMsg.QuestionariosObrigatorio); } #endregion #region Dados do auto de infração if (infracao.IsAutuada == null) { Validacao.Add(Mensagem.InfracaoMsg.InfracaoAutuadaObrigatorio); } else if (infracao.IsAutuada.Value) { if (infracao.IsGeradaSistema == null) { Validacao.Add(Mensagem.InfracaoMsg.AutoGeradoSistemaObrigatorio); } else if (!infracao.IsGeradaSistema.GetValueOrDefault()) { if (string.IsNullOrWhiteSpace(infracao.NumeroAutoInfracaoBloco)) { if (infracao.SerieId == (int)eSerie.C) { Validacao.Add(Mensagem.InfracaoMsg.NumeroAutoInfracaoObrigatorio); } else { Validacao.Add(Mensagem.InfracaoMsg.NumeroAutoInfracaoBlocoObrigatorio); } } ValidacoesGenericasBus.DataMensagem(infracao.DataLavraturaAuto, "Infracao_DataLavraturaAuto", "lavratura do auto"); } if (infracao.SerieId == 0) { Validacao.Add(Mensagem.InfracaoMsg.SerieObrigatorio); } if (string.IsNullOrWhiteSpace(infracao.DescricaoInfracao)) { Validacao.Add(Mensagem.InfracaoMsg.DescricaoInfracaoObrigatorio); } if (infracao.CodigoReceitaId == 0) { Validacao.Add(Mensagem.InfracaoMsg.CodigoReceitaObrigatorio); } if (string.IsNullOrWhiteSpace(infracao.ValorMulta)) { Validacao.Add(Mensagem.InfracaoMsg.ValorMultaObrigatorio); } else { Decimal aux = 0; if (!Decimal.TryParse(infracao.ValorMulta, out aux)) { Validacao.Add(Mensagem.InfracaoMsg.ValorMultaInvalido); } } } #endregion if (_da.ConfigAlterada(infracao.ConfiguracaoId, infracao.ConfiguracaoTid)) { Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaSemAtualizar); } if (_da.PerguntaRespostaAlterada(infracao)) { Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaSemAtualizar); } return(Validacao.EhValido); }
public bool Salvar(Infracao infracao) { if (infracao.ComInfracao == null) { Validacao.Add(Mensagem.InfracaoMsg.TipoInfracaoFiscalizacaoObrigatorio); } else { #region Caracterização da infração if (infracao.ClassificacaoId == 0) { Validacao.Add(Mensagem.InfracaoMsg.ClassificacaoObrigatorio); } if (infracao.TipoId == 0) { Validacao.Add(Mensagem.InfracaoMsg.TipoInfracaoObrigatorio); } if (infracao.ItemId == 0) { Validacao.Add(Mensagem.InfracaoMsg.ItemObrigatorio); } if (infracao.Campos.Count > 0 && infracao.Campos.Count(x => string.IsNullOrWhiteSpace(x.Texto)) > 0) { Validacao.Add(Mensagem.InfracaoMsg.CamposObrigatorioo); } if (infracao.Perguntas.Count > 0 && infracao.Perguntas.Count(x => x.RespostaId == 0 || (x.IsEspecificar && string.IsNullOrWhiteSpace(x.Especificacao))) > 0) { Validacao.Add(Mensagem.InfracaoMsg.QuestionariosObrigatorio); } #endregion if (_da.ConfigAlterada(infracao.ConfiguracaoId, infracao.ConfiguracaoTid)) { Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaSemAtualizar); } if (_da.PerguntaRespostaAlterada(infracao)) { Validacao.Add(Mensagem.InfracaoMsg.ConfigAlteradaSemAtualizar); } if (infracao.ComInfracao == true) { if (infracao.EnquadramentoInfracao.Artigos.Count == 0) { Validacao.Add(Mensagem.InfracaoMsg.EnquadramentoInfracaoObrigatorio); } if (string.IsNullOrWhiteSpace(infracao.DescricaoInfracao)) { Validacao.Add(Mensagem.InfracaoMsg.DescricaoInfracaoObrigatorio); } } ValidacoesGenericasBus.DataMensagem(infracao.DataConstatacao, "Infracao_DataConstatacao", "constatação/vistoria", true); DateTime hora = new DateTime(); if (!DateTime.TryParse(infracao.HoraConstatacao, out hora)) { Validacao.Add(Mensagem.InfracaoMsg.HoraConstatacaoObrigatorio); } //OBS: foi colocado esse if duas vezes para poder exibir as mensagens de acordo com a ordem dos campos na tela if (infracao.ComInfracao == true) { if (infracao.ClassificacaoInfracao == null) { Validacao.Add(Mensagem.InfracaoMsg.ClassificacaoInfracaoObrigatorio); } if (!PenalidadeSelecionada(infracao)) { Validacao.Add(Mensagem.InfracaoMsg.PenalidadeObrigatorio); } } } return(Validacao.EhValido); }
public Infracao Editar(Infracao infracao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@" update {0}tab_fisc_infracao t set t.fiscalizacao = :fiscalizacao, t.classificacao = :classificacao, t.tipo = :tipo, t.item = :item, t.subitem = :subitem, t.infracao_autuada = :infracao_autuada, t.gerado_sistema = :gerado_sistema, t.numero_auto_infracao_bloco = :numero_auto_infracao_bloco, t.data_lavratura_auto = :data_lavratura_auto, t.descricao_infracao = :descricao_infracao, t.codigo_receita = :codigo_receita, t.valor_multa = :valor_multa, t.serie = :serie, t.configuracao = :configuracao, t.arquivo = :arquivo, t.tid = :tid, t.configuracao_tid = :configuracao_tid where t.id = :id " , EsquemaBanco); comando.AdicionarParametroEntrada("id", infracao.Id, DbType.Int32); comando.AdicionarParametroEntrada("fiscalizacao", infracao.FiscalizacaoId, DbType.Int32); comando.AdicionarParametroEntrada("classificacao", infracao.ClassificacaoId, DbType.Int32); comando.AdicionarParametroEntrada("tipo", infracao.TipoId, DbType.Int32); comando.AdicionarParametroEntrada("item", infracao.ItemId, DbType.Int32); comando.AdicionarParametroEntrada("subitem", infracao.SubitemId, DbType.Int32); comando.AdicionarParametroEntrada("serie", infracao.SerieId, DbType.Int32); comando.AdicionarParametroEntrada("codigo_receita", infracao.CodigoReceitaId, DbType.Int32); comando.AdicionarParametroEntrada("configuracao", infracao.ConfiguracaoId, DbType.Int32); comando.AdicionarParametroEntrada("numero_auto_infracao_bloco", infracao.NumeroAutoInfracaoBloco, DbType.String); comando.AdicionarParametroEntrada("descricao_infracao", infracao.DescricaoInfracao, DbType.String); comando.AdicionarParametroEntrada("valor_multa", infracao.ValorMulta, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("configuracao_tid", DbType.String, 36, infracao.ConfiguracaoTid); comando.AdicionarParametroEntrada("infracao_autuada", (infracao.IsAutuada.Value ? 1 : 0), DbType.Int32); if (infracao.Arquivo == null) { comando.AdicionarParametroEntrada("arquivo", DBNull.Value, DbType.Int32); } else { comando.AdicionarParametroEntrada("arquivo", infracao.Arquivo.Id, DbType.Int32); } if (infracao.DataLavraturaAuto.IsEmpty) { comando.AdicionarParametroEntrada("data_lavratura_auto", DBNull.Value, DbType.Date); } else { comando.AdicionarParametroEntrada("data_lavratura_auto", infracao.DataLavraturaAuto.Data.Value, DbType.Date); } if (infracao.IsAutuada.HasValue && infracao.IsGeradaSistema.HasValue) { comando.AdicionarParametroEntrada("gerado_sistema", (infracao.IsGeradaSistema.Value ? 1 : 0), DbType.Int32); } else { comando.AdicionarParametroEntrada("gerado_sistema", DBNull.Value, DbType.Int32); } bancoDeDados.ExecutarNonQuery(comando); #region Campos comando = bancoDeDados.CriarComando(@"delete from {0}tab_fisc_infracao_campo c where c.infracao = :infracao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, infracao.Campos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); foreach (InfracaoCampo campo in infracao.Campos) { if (campo.Id == 0) { comando = bancoDeDados.CriarComando(@" insert into {0}tab_fisc_infracao_campo (id, infracao, campo, texto, tid) values ({0}seq_fisc_inf_campo.nextval, :infracao, :campo, :texto, :tid) returning id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" update {0}tab_fisc_infracao_campo set infracao = :infracao, campo = :campo, texto = :texto, tid = :tid where id = :id ", EsquemaBanco); comando.AdicionarParametroEntrada("id", campo.Id, DbType.Int32); } comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("campo", campo.CampoId, DbType.Int32); comando.AdicionarParametroEntrada("texto", campo.Texto, DbType.String); bancoDeDados.ExecutarNonQuery(comando); if (campo.Id == 0) { campo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion #region Questionário comando = bancoDeDados.CriarComando(@"delete from {0}tab_fisc_infracao_pergunta c where c.infracao = :infracao", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, infracao.Perguntas.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); foreach (InfracaoPergunta questionario in infracao.Perguntas) { if (questionario.Id == 0) { comando = bancoDeDados.CriarComando(@"insert into {0}tab_fisc_infracao_pergunta (id, infracao, pergunta, pergunta_tid, resposta, resposta_tid, especificacao, tid) values ({0}seq_fisc_inf_pergunta.nextval, :infracao, :pergunta, :pergunta_tid, :resposta, :resposta_tid, :especificacao, :tid) returning id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"update {0}tab_fisc_infracao_pergunta set infracao = :infracao, pergunta = :pergunta, pergunta_tid = :pergunta_tid, resposta = :resposta, resposta_tid = :resposta_tid, especificacao = :especificacao, tid = :tid where id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", questionario.Id, DbType.Int32); } comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("pergunta", questionario.PerguntaId, DbType.Int32); comando.AdicionarParametroEntrada("pergunta_tid", DbType.String, 36, questionario.PerguntaTid); comando.AdicionarParametroEntrada("resposta", questionario.RespostaId, DbType.Int32); comando.AdicionarParametroEntrada("resposta_tid", DbType.String, 36, questionario.RespostaTid); comando.AdicionarParametroEntrada("especificacao", questionario.Especificacao, DbType.String); bancoDeDados.ExecutarNonQuery(comando); if (questionario.Id == 0) { questionario.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion Historico.Gerar(infracao.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados); Consulta.Gerar(infracao.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, bancoDeDados); bancoDeDados.Commit(); } return(infracao); }
internal bool PerguntaRespostaAlterada(Infracao infracao, BancoDeDados banco = null) { Boolean alterou = false; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = null; if (infracao.Perguntas == null || infracao.Perguntas.Count == 0) { return(alterou); } foreach (var pergunta in infracao.Perguntas) { #region Pergunta comando = bancoDeDados.CriarComando(@"select p.tid pergunta_tid from cnf_fisc_infracao_pergunta p where p.id = :pergunta" , EsquemaBanco); comando.AdicionarParametroEntrada("pergunta", pergunta.PerguntaId, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { while (readerAux.Read()) { String perguntaNovaTid = readerAux.GetValue <String>("pergunta_tid"); alterou = perguntaNovaTid != pergunta.PerguntaTid; if (alterou) { return(true); } } readerAux.Close(); } #endregion #region Resposta comando = bancoDeDados.CriarComando(@"select p.tid resposta_tid from cnf_fisc_infracao_resposta p where p.id = :resposta" , EsquemaBanco); comando.AdicionarParametroEntrada("resposta", pergunta.RespostaId, DbType.Int32); using (IDataReader readerAux2 = bancoDeDados.ExecutarReader(comando)) { if (readerAux2.Read()) { String respostaNovaTid = readerAux2.GetValue <String>("resposta_tid"); alterou = respostaNovaTid != pergunta.RespostaTid; if (alterou) { return(true); } } readerAux2.Close(); } #endregion } return(alterou); } }
public Infracao Criar(Infracao infracao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Infração Comando comando = bancoDeDados.CriarComando(@" insert into {0}tab_fisc_infracao (id, fiscalizacao, classificacao, tipo, item, subitem, infracao_autuada, gerado_sistema, numero_auto_infracao_bloco, data_lavratura_auto, descricao_infracao, codigo_receita, valor_multa, serie, configuracao, arquivo, tid, configuracao_tid) values ({0}seq_fisc_infracao.nextval, :fiscalizacao, :classificacao, :tipo, :item, :subitem, :infracao_autuada, :gerado_sistema, :numero_auto_infracao_bloco, :data_lavratura_auto, :descricao_infracao, :codigo_receita, :valor_multa, :serie, :configuracao, :arquivo, :tid, :configuracao_tid) returning id into :id " , EsquemaBanco); comando.AdicionarParametroEntrada("fiscalizacao", infracao.FiscalizacaoId, DbType.Int32); comando.AdicionarParametroEntrada("classificacao", infracao.ClassificacaoId, DbType.Int32); comando.AdicionarParametroEntrada("tipo", infracao.TipoId, DbType.Int32); comando.AdicionarParametroEntrada("item", infracao.ItemId, DbType.Int32); comando.AdicionarParametroEntrada("subitem", infracao.SubitemId, DbType.Int32); comando.AdicionarParametroEntrada("serie", infracao.SerieId, DbType.Int32); comando.AdicionarParametroEntrada("codigo_receita", infracao.CodigoReceitaId, DbType.Int32); comando.AdicionarParametroEntrada("configuracao", infracao.ConfiguracaoId, DbType.Int32); comando.AdicionarParametroEntrada("numero_auto_infracao_bloco", infracao.NumeroAutoInfracaoBloco, DbType.String); comando.AdicionarParametroEntrada("descricao_infracao", infracao.DescricaoInfracao, DbType.String); comando.AdicionarParametroEntrada("valor_multa", infracao.ValorMulta, DbType.Decimal); comando.AdicionarParametroEntrada("infracao_autuada", (infracao.IsAutuada.Value ? 1 : 0), DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("configuracao_tid", DbType.String, 36, infracao.ConfiguracaoTid); comando.AdicionarParametroSaida("id", DbType.Int32); if (infracao.Arquivo == null) { comando.AdicionarParametroEntrada("arquivo", DBNull.Value, DbType.Int32); } else { comando.AdicionarParametroEntrada("arquivo", infracao.Arquivo.Id, DbType.Int32); } if (infracao.DataLavraturaAuto.IsEmpty) { comando.AdicionarParametroEntrada("data_lavratura_auto", DBNull.Value, DbType.Date); } else { comando.AdicionarParametroEntrada("data_lavratura_auto", infracao.DataLavraturaAuto.Data.Value, DbType.Date); } if (infracao.IsAutuada.Value && infracao.IsGeradaSistema.HasValue) { comando.AdicionarParametroEntrada("gerado_sistema", (infracao.IsGeradaSistema.Value ? 1 : 0), DbType.Int32); } else { comando.AdicionarParametroEntrada("gerado_sistema", DBNull.Value, DbType.Int32); } bancoDeDados.ExecutarNonQuery(comando); #endregion infracao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Campos comando = bancoDeDados.CriarComando(@" insert into {0}tab_fisc_infracao_campo (id, infracao, campo, texto, tid) values ({0}seq_fisc_inf_campo.nextval, :infracao, :campo, :texto, :tid) ", EsquemaBanco); comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("campo", DbType.Int32); comando.AdicionarParametroEntrada("texto", DbType.String); foreach (InfracaoCampo campo in infracao.Campos) { comando.SetarValorParametro("campo", campo.CampoId); comando.SetarValorParametro("texto", campo.Texto); bancoDeDados.ExecutarNonQuery(comando); } #endregion #region Questionário comando = bancoDeDados.CriarComando(@" insert into {0}tab_fisc_infracao_pergunta (id, infracao, pergunta, pergunta_tid, resposta, resposta_tid, especificacao, tid) values ({0}seq_fisc_inf_pergunta.nextval, :infracao, :pergunta, :pergunta_tid, :resposta, :resposta_tid, :especificacao, :tid) " , EsquemaBanco); comando.AdicionarParametroEntrada("infracao", infracao.Id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("pergunta", DbType.Int32); comando.AdicionarParametroEntrada("pergunta_tid", DbType.String, 36); comando.AdicionarParametroEntrada("resposta", DbType.Int32); comando.AdicionarParametroEntrada("resposta_tid", DbType.String, 36); comando.AdicionarParametroEntrada("especificacao", DbType.String); foreach (InfracaoPergunta questionario in infracao.Perguntas) { comando.SetarValorParametro("pergunta", questionario.PerguntaId); comando.SetarValorParametro("pergunta_tid", questionario.PerguntaTid); comando.SetarValorParametro("resposta", questionario.RespostaId); comando.SetarValorParametro("resposta_tid", questionario.RespostaTid); comando.SetarValorParametro("especificacao", questionario.Especificacao); bancoDeDados.ExecutarNonQuery(comando); } #endregion Historico.Gerar(infracao.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados); Consulta.Gerar(infracao.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, bancoDeDados); bancoDeDados.Commit(); } return(infracao); }
public Infracao ObterHistorico(int id, BancoDeDados banco = null) { Infracao infracao = new Infracao(); InfracaoPergunta questionario = new InfracaoPergunta(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Infração Comando comando = bancoDeDados.CriarComando(@"select tfi.infracao_id id, f.situacao_id, tfi.classificacao_id classificacao, tfi.classificacao_texto, tfi.tipo_id tipo, lt.texto tipo_texto, tfi.item_id item, cfi.texto item_texto, tfi.subitem_id subitem, cfs.texto subitem_texto, tfi.infracao_autuada, tfi.gerado_sistema, tfi.valor_multa, tfi.codigo_receita_id codigo_receita, tfi.numero_auto_infracao_bloco, tfi.descricao_infracao, tfi.data_lavratura_auto, tfi.serie_id serie, tfi.configuracao_id configuracao, tfi.arquivo_id arquivo, a.nome arquivo_nome, tfi.configuracao_tid from hst_fisc_infracao tfi, hst_fiscalizacao f, tab_arquivo a, lov_cnf_fisc_infracao_classif lc, cnf_fisc_infracao_tipo lt, cnf_fisc_infracao_item cfi, cnf_fisc_infracao_subitem cfs where tfi.arquivo_id = a.id(+) and tfi.classificacao_id = lc.id(+) and tfi.tipo_id = lt.id(+) and tfi.item_id = cfi.id(+) and tfi.subitem_id = cfs.id(+) and tfi.fiscalizacao_id_hst = f.id and tfi.id = (select max(t.id) id from hst_fisc_infracao t where t.infracao_id = :id)" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { infracao = new Infracao { Id = reader.GetValue <int>("id"), ClassificacaoId = reader.GetValue <int>("classificacao"), ClassificacaoTexto = reader.GetValue <string>("classificacao_texto"), TipoId = reader.GetValue <int>("tipo"), TipoTexto = reader.GetValue <string>("tipo_texto"), ItemId = reader.GetValue <int>("item"), ItemTexto = reader.GetValue <string>("item_texto"), SubitemId = reader.GetValue <int>("subitem"), SubitemTexto = reader.GetValue <string>("subitem_texto"), SerieId = reader.GetValue <int>("serie"), ConfiguracaoId = reader.GetValue <int>("configuracao"), IsAutuada = reader.GetValue <bool>("infracao_autuada"), IsGeradaSistema = reader.GetValue <bool?>("gerado_sistema"), ValorMulta = reader.GetValue <string>("valor_multa"), CodigoReceitaId = reader.GetValue <int>("codigo_receita"), NumeroAutoInfracaoBloco = reader.GetValue <string>("numero_auto_infracao_bloco"), DescricaoInfracao = reader.GetValue <string>("descricao_infracao"), ConfiguracaoTid = reader.GetValue <string>("configuracao_tid"), FiscalizacaoSituacaoId = reader.GetValue <int>("situacao_id") }; infracao.Arquivo = new Arquivo { Id = reader.GetValue <int>("arquivo"), Nome = reader.GetValue <string>("arquivo_nome") }; if (!string.IsNullOrWhiteSpace(reader.GetValue <string>("data_lavratura_auto"))) { infracao.DataLavraturaAuto.DataTexto = reader.GetValue <string>("data_lavratura_auto"); } } reader.Close(); } #endregion #region Campos comando = bancoDeDados.CriarComando(@" select tfic.infracao_campo_id Id, tfic.campo_id CampoId, tfic.texto Texto, cfic.texto CampoIdentificacao, cfic.unidade CampoUnidade, lu.texto CampoUnidadeTexto, cfic.Tipo CampoTipo, lt.texto CampoTipoTexto from {0}hst_fisc_infracao_campo tfic, {0}lov_cnf_fisc_infracao_camp_tip lt, {0}lov_cnf_fisc_infracao_camp_uni lu, {0}cnf_fisc_infracao_campo cfic where tfic.campo_id = cfic.id and cfic.tipo = lt.id(+) and cfic.unidade = lu.id(+) and tfic.infracao_id_hst = (select max(t.id) id from {0}hst_fisc_infracao t where t.infracao_id = :id)" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { infracao.Campos = new List <InfracaoCampo>(); while (reader.Read()) { infracao.Campos.Add(new InfracaoCampo { Id = reader.GetValue <int>("Id"), CampoId = reader.GetValue <int>("CampoId"), Tipo = reader.GetValue <int>("CampoTipo"), Identificacao = reader.GetValue <string>("CampoIdentificacao"), TipoTexto = reader.GetValue <string>("CampoTipoTexto"), Unidade = reader.GetValue <int>("CampoUnidade"), UnidadeTexto = reader.GetValue <string>("CampoUnidadeTexto"), Texto = reader.GetValue <string>("Texto") }); } reader.Close(); } #endregion #region Questionário comando = bancoDeDados.CriarComando(@" select tfiq.id Id, tfiq.pergunta_id PerguntaId, tfiq.pergunta_tid PerguntaTid, hp.texto PerguntaIdentificacao, tfiq.resposta_id RespostaId, tfiq.especificacao from {0}hst_fisc_infracao_pergunta tfiq, {0}cnf_fisc_infracao_pergunta cfip, {0}hst_cnf_fisc_infracao_pergunta hp where tfiq.pergunta_id = cfip.id and hp.tid = tfiq.pergunta_tid and hp.pergunta_id = cfip.id and tfiq.infracao_id_hst = (select max(t.id) id from {0}hst_fisc_infracao t where t.infracao_id = :id) order by tfiq.pergunta_id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { infracao.Perguntas = new List <InfracaoPergunta>(); while (reader.Read()) { int perguntaId = reader.GetValue <int>("PerguntaId"); string perguntaTid = reader.GetValue <string>("PerguntaTid"); infracao.Perguntas.Add(new InfracaoPergunta { Id = reader.GetValue <int>("Id"), PerguntaId = reader.GetValue <int>("PerguntaId"), PerguntaTid = perguntaTid, RespostaId = reader.GetValue <int>("RespostaId"), Identificacao = reader.GetValue <string>("PerguntaIdentificacao"), Especificacao = reader.GetValue <string>("Especificacao"), Respostas = _configuracaoDa.ObterRespostasHistorico(perguntaId, perguntaTid) }); } reader.Close(); } #endregion } return(infracao); }