internal RegistroAtividadeFlorestal ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null, bool historico = false) { RegistroAtividadeFlorestal caracterizacao = new RegistroAtividadeFlorestal(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id, s.tid from {0}crt_reg_atividade_florestal s where s.empreendimento = :empreendimento", EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { caracterizacao.Id = reader.GetValue <int>("id"); caracterizacao.Tid = reader.GetValue <string>("tid"); } } if (caracterizacao.Id > 0) { caracterizacao = historico ? ObterHistorico(caracterizacao.Id, bancoDeDados, caracterizacao.Tid) : Obter(caracterizacao.Id, bancoDeDados, simplificado); } } return(caracterizacao); }
public ActionResult Editar(RegistroAtividadeFlorestal caracterizacao) { _bus.Salvar(caracterizacao); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.EmpreendimentoId, Msg = Validacao.QueryParam() }) }, JsonRequestBehavior.AllowGet)); }
public ActionResult Visualizar(int id) { RegistroAtividadeFlorestal caracterizacao = _bus.ObterPorEmpreendimento(id, false, null, true); RegistroAtividadeFlorestalVM vm = new RegistroAtividadeFlorestalVM( caracterizacao, _listaBus.AtividadesCategoria, _listaBus.RegistroAtividadeFlorestalFonte, _listaBus.RegistroAtividadeFlorestalUnidade, _modeloBus.ObterModelos(), isVisualizar: true); return(View(vm)); }
public RegistroAtividadeFlorestal ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null, bool historico = false) { RegistroAtividadeFlorestal caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado, historico: historico); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
internal void Salvar(RegistroAtividadeFlorestal caracterizacao, BancoDeDados banco) { if (caracterizacao == null) { throw new Exception("A Caracterização é nula."); } if (caracterizacao.Id <= 0) { Criar(caracterizacao, banco); } else { Editar(caracterizacao, banco); } }
public ActionResult Editar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } RegistroAtividadeFlorestal caracterizacao = _bus.ObterPorEmpreendimento(id); RegistroAtividadeFlorestalVM vm = new RegistroAtividadeFlorestalVM( caracterizacao, _listaBus.AtividadesCategoria, _listaBus.RegistroAtividadeFlorestalFonte, _listaBus.RegistroAtividadeFlorestalUnidade, _bus.ObterModelosLista()); return(View(vm)); }
public bool Salvar(RegistroAtividadeFlorestal caracterizacao) { try { #region Configurar caracterizacao.Consumos.ForEach(consumo => { if (consumo.PossuiLicencaAmbiental.GetValueOrDefault() == ConfiguracaoSistema.NAO) { consumo.Licenca = null; } }); #endregion if (_validar.Salvar(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); Validacao.Add(Mensagem.RegistroAtividadeFlorestal.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public RegistroAtividadeFlorestalVM(RegistroAtividadeFlorestal caracterizacao, List <ListaValor> atividades, List <ListaValor> fonteTipos, List <ListaValor> unidades, List <TituloModeloLst> modelosLicenca, bool isVisualizar = false) { ConsumosVM = new List <ConsumoVM>(); IsVisualizar = isVisualizar; Caracterizacao = caracterizacao; if (caracterizacao.Id > 0) { int count = 0; caracterizacao.Consumos.ForEach(x => { ConsumosVM.Add(new ConsumoVM(x, atividades, fonteTipos, unidades, modelosLicenca, count.ToString(), isVisualizar)); count++; }); } else { ConsumosVM.Add(new ConsumoVM(new Consumo(), atividades, fonteTipos, unidades, modelosLicenca, "0", isVisualizar)); } ConsumoTemplateVM = new ConsumoVM(new Consumo { Id = -1 }, atividades, fonteTipos, unidades, modelosLicenca, null, isVisualizar); }
internal bool Salvar(RegistroAtividadeFlorestal caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new RegistroAtividadeFlorestal()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } #region Numero if (!caracterizacao.PossuiNumero.HasValue) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.PossuiNumeroObrigatorio); } if (string.IsNullOrWhiteSpace(caracterizacao.NumeroRegistro) && caracterizacao.PossuiNumero.GetValueOrDefault()) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroObrigatorio); } else if (!ValidacoesGenericasBus.ValidarNumero(caracterizacao.NumeroRegistro, 9) && caracterizacao.PossuiNumero.GetValueOrDefault()) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroInvalido); } else if (_da.IsNumeroUtilizado(caracterizacao.NumeroRegistro, caracterizacao.EmpreendimentoId)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroUtilizado); } else if (caracterizacao.PossuiNumero.GetValueOrDefault()) { int numeroMaximo = _config.RegAtvFlorestalNumeroMaximo; if (Convert.ToInt32(caracterizacao.NumeroRegistro) > numeroMaximo) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroRegistroSuperiorMax(numeroMaximo.ToString())); } } #endregion if (caracterizacao.Consumos.Count <= 0) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ConsumoObrigatorio); } #region Consumos var count = 0; caracterizacao.Consumos.ForEach(r => { if (caracterizacao.Consumos.Any(x => caracterizacao.Consumos.Count(y => y.Atividade == x.Atividade) > 1)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.CategoriaDuplicada); return; } AtividadeSolicitada atividadeSolicitada = _da.ObterAtividadeSolicitada(r.Atividade); if (atividadeSolicitada != null && !atividadeSolicitada.Situacao) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.AtividadeDesabilitada(atividadeSolicitada.Texto, count)); } else { if (r.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.FabricanteMotosserra) || r.Atividade == ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ComercianteMotosserra)) { r.FontesEnergia.Clear(); } else { if (r.Atividade == 0) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.CategoriaObrigatoria(count)); return; } if (r.FontesEnergia.Count == 0) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.FonteEnergiaObrigatoria(count)); return; } } if (!r.PossuiLicencaAmbiental.HasValue) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.PossuiLicencaAmbiental(count)); } else { switch (r.PossuiLicencaAmbiental.GetValueOrDefault()) { case ConfiguracaoSistema.NAO: if (_caracterizacaoValidar.AtividadeLicencaObrigatoria(r.Atividade)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.LicencaAmbientalObrigatoria(count, atividadeSolicitada.Categoria + " - " + atividadeSolicitada.Texto)); } break; case ConfiguracaoSistema.SIM: if (!r.Licenca.EmitidoPorInterno.HasValue) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.EmitidoIDAFOuExterno(count)); } else { if (r.Licenca.TituloModelo == 0) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ModeloLicencaObrigatorio(count)); } if (string.IsNullOrWhiteSpace(r.Licenca.TituloModeloTexto)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.ModeloLicencaObrigatorio(count)); } if (string.IsNullOrWhiteSpace(r.Licenca.TituloNumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroLicencaObrigatorio(count)); } else { if (r.Licenca.EmitidoPorInterno.Value && !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(r.Licenca.TituloNumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroLicencaInvalido(count)); } } ValidacoesGenericasBus.DataMensagem(r.Licenca.TituloValidadeData, "TituloValidadeData_DataTexto" + count, "validade", false); if (string.IsNullOrWhiteSpace(r.Licenca.ProtocoloNumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloLicencaObrigatorio(count)); } if (r.Licenca.TituloValidadeData.Data.GetValueOrDefault() < DateTime.Today || !r.Licenca.ProtocoloRenovacaoData.IsEmpty) { ValidacoesGenericasBus.DataMensagem(r.Licenca.ProtocoloRenovacaoData, "ProtocoloRenovacaoData_DataTexto" + count, "renovação"); } if (!r.Licenca.ProtocoloRenovacaoData.IsEmpty && (r.Licenca.TituloValidadeData.Data.GetValueOrDefault().AddDays(-120)) < r.Licenca.ProtocoloRenovacaoData.Data) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.RenovacaoDataMaiorValidade(count)); } if (r.Licenca.TituloValidadeData.Data.GetValueOrDefault() < DateTime.Today && string.IsNullOrWhiteSpace(r.Licenca.ProtocoloRenovacaoNumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloRenovacaoObrigatorio(count)); } if (!r.Licenca.EmitidoPorInterno.Value && string.IsNullOrWhiteSpace(r.Licenca.OrgaoExpedidor)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.OrgaoExpedidoObrigatorio(count)); } } break; case ConfiguracaoSistema.Dispensado: if (!r.Licenca.EmitidoPorInterno.HasValue) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.GrupoDispensadoEmitidoIDAFOuExterno(count)); } if (string.IsNullOrWhiteSpace(r.Licenca.TituloModeloTexto)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DocumentoObrigatorio(count)); } if (string.IsNullOrWhiteSpace(r.Licenca.ProtocoloNumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.NumeroProtocoloLicencaObrigatorio(count)); } if (string.IsNullOrWhiteSpace(r.Licenca.OrgaoExpedidor)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.OrgaoEmissorObrigatorio(count)); } break; default: break; } } if (string.IsNullOrWhiteSpace(r.DUANumero)) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DUANumeroObrigatorio(count)); } if (Convert.ToDecimal(r.DUAValor) <= 0) { Validacao.Add(Mensagem.RegistroAtividadeFlorestal.DUAValorObrigatorio(count)); } ValidacoesGenericasBus.DataMensagem(r.DUADataPagamento, "DUADataPagamento" + count, "pagamento do DUA"); } count++; }); #endregion return(Validacao.EhValido); }
public RegistroAtividadeFlorestalPDF(RegistroAtividadeFlorestal registroAtividadeFlorestal) { Registro = registroAtividadeFlorestal.NumeroRegistro; }
internal int?Criar(RegistroAtividadeFlorestal caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Registro Atividade Florestal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_atividade_florestal c (id, empreendimento, numero_registro, possui_numero, tid) values (seq_crt_reg_ativida_florestal.nextval, :empreendimento, " + (caracterizacao.PossuiNumero.Value ? @":numero_registro," : @"{0}reg_atv_florestal_numero.nextval,") + @":possui_numero, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("possui_numero", caracterizacao.PossuiNumero, DbType.Int32); if (caracterizacao.PossuiNumero.Value) { comando.AdicionarParametroEntrada("numero_registro", caracterizacao.NumeroRegistro, DbType.String); } comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #endregion #region Consumos if (caracterizacao.Consumos != null && caracterizacao.Consumos.Count > 0) { foreach (Consumo consumo in caracterizacao.Consumos) { comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_ati_flo_consumo (id, tid, caracterizacao, atividade, possui_licenca, dua_numero, dua_valor, dua_data_pagamento) values (seq_crt_reg_ati_flo_consumo.nextval, :tid, :caracterizacao, :atividade, :possui_licenca, :dua_numero, :dua_valor, :dua_data_pagamento) returning id into :id " , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("atividade", consumo.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("possui_licenca", consumo.PossuiLicencaAmbiental, DbType.Int32); comando.AdicionarParametroEntrada("dua_numero", DbType.String, 40, consumo.DUANumero); comando.AdicionarParametroEntrada("dua_valor", consumo.DUAValor, DbType.Decimal); comando.AdicionarParametroEntrada("dua_data_pagamento", consumo.DUADataPagamento.Data, DbType.DateTime); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); consumo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Título if (consumo.Licenca != null) { comando = bancoDeDados.CriarComando(@"insert into {0}crt_reg_ati_flo_con_tit ( id, caracterizacao, consumo, emitido_idaf, titulo, titulo_numero, titulo_modelo, titulo_modelo_texto, data_validade, protocolo_numero, data_renovacao, protocolo_numero_ren, orgao_expedicao, tid) values (seq_crt_reg_ati_flo_con_tit.nextval, :caracterizacao, :consumo, :emitido_idaf, :titulo, :titulo_numero, :titulo_modelo, :titulo_modelo_texto, :data_validade, :protocolo_numero, :data_renovacao, :protocolo_numero_ren, :orgao_expedicao, :tid) returning id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32); comando.AdicionarParametroEntrada("emitido_idaf", (consumo.Licenca.EmitidoPorInterno.Value ? 1 : 0), DbType.Int32); comando.AdicionarParametroEntrada("titulo", (consumo.Licenca.TituloId.HasValue && consumo.Licenca.TituloId > 0) ? consumo.Licenca.TituloId : null, DbType.Int32); comando.AdicionarParametroEntrada("titulo_numero", DbType.String, 20, consumo.Licenca.TituloNumero); comando.AdicionarParametroEntrada("titulo_modelo", consumo.Licenca.TituloModelo, DbType.Int32); comando.AdicionarParametroEntrada("titulo_modelo_texto", DbType.String, 100, consumo.Licenca.TituloModeloTexto); comando.AdicionarParametroEntrada("data_validade", consumo.Licenca.TituloValidadeData.Data, DbType.DateTime); comando.AdicionarParametroEntrada("protocolo_numero", DbType.String, 20, consumo.Licenca.ProtocoloNumero); comando.AdicionarParametroEntrada("data_renovacao", consumo.Licenca.ProtocoloRenovacaoData.Data, DbType.DateTime); comando.AdicionarParametroEntrada("protocolo_numero_ren", DbType.String, 20, consumo.Licenca.ProtocoloRenovacaoNumero); comando.AdicionarParametroEntrada("orgao_expedicao", DbType.String, 150, consumo.Licenca.OrgaoExpedidor); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); consumo.Licenca.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #endregion #region Fontes Energia if (consumo.FontesEnergia != null && consumo.FontesEnergia.Count > 0) { comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_ati_flo_fonte (id, caracterizacao, consumo, tipo, unidade, qde, qde_floresta_plantada, qde_floresta_nativa, qde_outro_estado, tid) values (seq_crt_reg_ati_flo_fonte.nextval, :caracterizacao, :consumo, :tipo, :unidade, :qde, :qde_floresta_plantada, :qde_floresta_nativa, :qde_outro_estado, :tid) returning id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo", DbType.Int32); comando.AdicionarParametroEntrada("unidade", DbType.Int32); comando.AdicionarParametroEntrada("qde", DbType.Decimal); comando.AdicionarParametroEntrada("qde_floresta_plantada", DbType.Decimal); comando.AdicionarParametroEntrada("qde_floresta_nativa", DbType.Decimal); comando.AdicionarParametroEntrada("qde_outro_estado", DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); foreach (FonteEnergia fonteEnergia in consumo.FontesEnergia) { comando.SetarValorParametro("tipo", fonteEnergia.TipoId); comando.SetarValorParametro("unidade", fonteEnergia.UnidadeId); comando.SetarValorParametro("qde", fonteEnergia.Qde); comando.SetarValorParametro("qde_floresta_plantada", fonteEnergia.QdeFlorestaPlantada); comando.SetarValorParametro("qde_floresta_nativa", fonteEnergia.QdeFlorestaNativa); comando.SetarValorParametro("qde_outro_estado", fonteEnergia.QdeOutroEstado); bancoDeDados.ExecutarNonQuery(comando); fonteEnergia.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion } } #endregion Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.registroatividadeflorestal, eHistoricoAcao.criar, bancoDeDados, null); bancoDeDados.Commit(); return(caracterizacao.Id); } }
private RegistroAtividadeFlorestal ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { RegistroAtividadeFlorestal caracterizacao = new RegistroAtividadeFlorestal(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Registro Atividade Florestal Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.numero_registro, c.tid, c.possui_numero from {0}hst_crt_reg_ativida_florestal 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 = reader.GetValue <int>("id"); caracterizacao.Id = id; caracterizacao.EmpreendimentoId = reader.GetValue <int>("empreendimento_id"); caracterizacao.NumeroRegistro = reader.GetValue <string>("numero_registro"); caracterizacao.Tid = reader.GetValue <string>("tid"); caracterizacao.PossuiNumero = reader.GetValue <bool>("possui_numero"); } reader.Close(); } #endregion if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Consumos comando = bancoDeDados.CriarComando(@" select t.id, t.consumo consumo_id, t.tid, t.atividade_id atividade, a.atividade atividade_nome, a.cod_categoria, t.possui_licenca, t.possui_licenca, t.dua_numero, t.dua_valor, t.dua_data_pagamento from {0}hst_crt_reg_ati_flo_consumo t, {0}hst_atividade a where t.atividade_id = a.atividade_id and t.atividade_tid = a.tid and t.caracterizacao = :caracterizacao and t.tid = :tid order by t.consumo" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("tid", caracterizacao.Tid, DbType.String); int hst_consumo; using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Consumo consumo; while (reader.Read()) { consumo = new Consumo(); hst_consumo = reader.GetValue <int>("id"); consumo.Id = reader.GetValue <int>("consumo_id"); consumo.Tid = reader.GetValue <string>("tid"); consumo.Atividade = reader.GetValue <int>("atividade"); consumo.AtividadeNome = reader.GetValue <string>("atividade_nome"); consumo.AtividadeCategoria = reader.GetValue <string>("cod_categoria"); consumo.PossuiLicencaAmbiental = reader.GetValue <int?>("possui_licenca"); consumo.DUANumero = reader.GetValue <string>("dua_numero"); consumo.DUAValor = reader.GetValue <string>("dua_valor"); consumo.DUADataPagamento.DataTexto = reader.GetValue <string>("dua_data_pagamento"); #region Fonte energias comando = bancoDeDados.CriarComando(@"select t.id, t.fonte ,t.caracterizacao, t.tipo_id, t.tipo_texto, t.unidade_id, t.unidade_texto, t.qde, t.qde_floresta_plantada, t.qde_floresta_nativa, t.qde_outro_estado, t.tid from {0}hst_crt_reg_ati_flo_fonte t where t.id_hst_consumo = :id_hst" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst_consumo, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { FonteEnergia fonteEnergia; while (readerAux.Read()) { fonteEnergia = new FonteEnergia(); fonteEnergia.Id = readerAux.GetValue <int>("fonte"); fonteEnergia.TipoId = readerAux.GetValue <int>("tipo_id"); fonteEnergia.TipoTexto = readerAux.GetValue <string>("tipo_texto"); fonteEnergia.UnidadeId = readerAux.GetValue <int>("unidade_id"); fonteEnergia.UnidadeTexto = readerAux.GetValue <string>("unidade_texto"); fonteEnergia.Qde = readerAux.GetValue <string>("qde"); fonteEnergia.QdeFlorestaPlantada = readerAux.GetValue <string>("qde_floresta_plantada"); fonteEnergia.QdeFlorestaNativa = readerAux.GetValue <string>("qde_floresta_nativa"); fonteEnergia.QdeOutroEstado = readerAux.GetValue <string>("qde_outro_estado"); fonteEnergia.Tid = readerAux.GetValue <string>("tid"); consumo.FontesEnergia.Add(fonteEnergia); } readerAux.Close(); } #endregion #region Título comando = bancoDeDados.CriarComando(@"select ti.registro_ati_con_tit id, ti.emitido_idaf, ti.titulo_id, ti.titulo_numero, ti.titulo_modelo_id, ti.titulo_modelo_texto, ti.data_validade, ti.protocolo_numero, ti.data_renovacao, ti.protocolo_numero_ren, ti.orgao_expedicao from hst_crt_reg_ati_flo_con_tit ti where ti.id_hst_consumo = :id_hst" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst_consumo, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { while (readerAux.Read()) { consumo.Licenca.Id = readerAux.GetValue <int>("id"); consumo.Licenca.EmitidoPorInterno = readerAux.GetValue <int>("emitido_idaf") == 1; consumo.Licenca.TituloId = readerAux.GetValue <int?>("titulo_id"); consumo.Licenca.TituloNumero = readerAux.GetValue <string>("titulo_numero"); consumo.Licenca.TituloModelo = readerAux.GetValue <int?>("titulo_modelo_id"); consumo.Licenca.TituloModeloTexto = readerAux.GetValue <string>("titulo_modelo_texto"); consumo.Licenca.TituloValidadeData.DataTexto = readerAux.GetValue <string>("data_validade"); consumo.Licenca.ProtocoloNumero = readerAux.GetValue <string>("protocolo_numero"); consumo.Licenca.ProtocoloRenovacaoData.DataTexto = readerAux.GetValue <string>("data_renovacao"); consumo.Licenca.ProtocoloRenovacaoNumero = readerAux.GetValue <string>("protocolo_numero_ren"); consumo.Licenca.OrgaoExpedidor = readerAux.GetValue <string>("orgao_expedicao"); } readerAux.Close(); } #endregion caracterizacao.Consumos.Add(consumo); } reader.Close(); } #endregion } return(caracterizacao); }
internal void Editar(RegistroAtividadeFlorestal caracterizacao, BancoDeDados banco = null) { int numero = 0; bool gerarNumero = !caracterizacao.PossuiNumero.Value && !int.TryParse(caracterizacao.NumeroRegistro, out numero); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Registro Atividade Florestal bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@" update {0}crt_reg_atividade_florestal t set t.empreendimento = :empreendimento, t.numero_registro = " + (gerarNumero ? @"{0}reg_atv_florestal_numero.nextval," : @":numero_registro,") + @" t.tid = :tid, t.possui_numero = :possui_numero where t.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("possui_numero", caracterizacao.PossuiNumero, DbType.Int32); if (!gerarNumero) { comando.AdicionarParametroEntrada("numero_registro", caracterizacao.NumeroRegistro, DbType.String); } comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco comando = bancoDeDados.CriarComando(@"delete from {0}crt_reg_ati_flo_fonte t where t.caracterizacao = :caracterizacao ", EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.SelectMany(x => x.FontesEnergia).Select(y => y.Id).ToList()); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); comando = bancoDeDados.CriarComando(@"delete from {0}crt_reg_ati_flo_con_tit t where t.caracterizacao = :caracterizacao ", EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.Select(x => (x.Licenca ?? new FinalidadeCaracterizacao()).Id).ToList()); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); comando = bancoDeDados.CriarComando("delete from {0}crt_reg_ati_flo_consumo t where t.caracterizacao = :caracterizacao ", EsquemaBanco); comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Consumos if (caracterizacao.Consumos != null && caracterizacao.Consumos.Count > 0) { foreach (Consumo consumo in caracterizacao.Consumos) { if (consumo.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_consumo t set t.caracterizacao = :caracterizacao, t.atividade = :atividade, t.possui_licenca = :possui_licenca, t.dua_numero = :dua_numero, t.dua_valor = :dua_valor, t.dua_data_pagamento = :dua_data_pagamento, t.tid = :tid where t.id = :consumo returning t.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_ati_flo_consumo (id, tid, caracterizacao, atividade, possui_licenca, dua_numero, dua_valor, dua_data_pagamento) values (seq_crt_reg_ati_flo_consumo.nextval, :tid, :caracterizacao, :atividade, :possui_licenca, :dua_numero, :dua_valor, :dua_data_pagamento) returning id into :id " , EsquemaBanco); } comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("atividade", consumo.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("possui_licenca", consumo.PossuiLicencaAmbiental, DbType.Int32); comando.AdicionarParametroEntrada("dua_numero", DbType.String, 40, consumo.DUANumero); comando.AdicionarParametroEntrada("dua_valor", consumo.DUAValor, DbType.Decimal); comando.AdicionarParametroEntrada("dua_data_pagamento", consumo.DUADataPagamento.Data, DbType.DateTime); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); consumo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Título if (consumo.Licenca != null) { if (consumo.Licenca.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_con_tit t set t.emitido_idaf = :emitido_idaf, t.titulo = :titulo, t.titulo_numero = :titulo_numero, t.titulo_modelo = :titulo_modelo, t.titulo_modelo_texto = :titulo_modelo_texto, t.data_validade = :data_validade, t.protocolo_numero = :protocolo_numero, t.data_renovacao = :data_renovacao, t.protocolo_numero_ren = :protocolo_numero_ren, t.orgao_expedicao = :orgao_expedicao, t.tid = :tid where t.id = :id returning t.id into :idLicenca " , EsquemaBanco); comando.AdicionarParametroEntrada("id", consumo.Licenca.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}crt_reg_ati_flo_con_tit ( id, caracterizacao, consumo, emitido_idaf, titulo, titulo_numero, titulo_modelo, titulo_modelo_texto, data_validade, protocolo_numero, data_renovacao, protocolo_numero_ren, orgao_expedicao, tid) values (seq_crt_reg_ati_flo_con_tit.nextval, :caracterizacao, :consumo, :emitido_idaf, :titulo, :titulo_numero, :titulo_modelo, :titulo_modelo_texto, :data_validade, :protocolo_numero, :data_renovacao, :protocolo_numero_ren, :orgao_expedicao, :tid) returning id into :idLicenca" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32); } comando.AdicionarParametroEntrada("emitido_idaf", (consumo.Licenca.EmitidoPorInterno.Value ? 1 : 0), DbType.Int32); comando.AdicionarParametroEntrada("titulo", (consumo.Licenca.TituloId.HasValue && consumo.Licenca.TituloId > 0) ? consumo.Licenca.TituloId : null, DbType.Int32); comando.AdicionarParametroEntrada("titulo_numero", DbType.String, 20, consumo.Licenca.TituloNumero); comando.AdicionarParametroEntrada("titulo_modelo", consumo.Licenca.TituloModelo, DbType.Int32); comando.AdicionarParametroEntrada("titulo_modelo_texto", DbType.String, 100, consumo.Licenca.TituloModeloTexto); comando.AdicionarParametroEntrada("data_validade", consumo.Licenca.TituloValidadeData.Data, DbType.DateTime); comando.AdicionarParametroEntrada("protocolo_numero", DbType.String, 20, consumo.Licenca.ProtocoloNumero); comando.AdicionarParametroEntrada("data_renovacao", consumo.Licenca.ProtocoloRenovacaoData.Data, DbType.DateTime); comando.AdicionarParametroEntrada("protocolo_numero_ren", DbType.String, 20, consumo.Licenca.ProtocoloRenovacaoNumero); comando.AdicionarParametroEntrada("orgao_expedicao", DbType.String, 150, consumo.Licenca.OrgaoExpedidor); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("idLicenca", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); consumo.Licenca.Id = Convert.ToInt32(comando.ObterValorParametro("idLicenca")); } #endregion #region Fontes Energia if (consumo.FontesEnergia != null && consumo.FontesEnergia.Count > 0) { foreach (FonteEnergia fonteEnergia in consumo.FontesEnergia) { if (fonteEnergia.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_fonte t set t.caracterizacao = :caracterizacao, t.consumo = :consumo, t.tipo = :tipo, t.unidade = :unidade, t.qde = :qde, t.qde_floresta_plantada = :qde_floresta_plantada, t.qde_floresta_nativa = :qde_floresta_nativa, t.qde_outro_estado = :qde_outro_estado, t.tid = :tid where t.id = :id returning id into :idFonte " , EsquemaBanco); comando.AdicionarParametroEntrada("id", fonteEnergia.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_ati_flo_fonte (id, caracterizacao, consumo, tipo, unidade, qde, qde_floresta_plantada, qde_floresta_nativa, qde_outro_estado, tid) values (seq_crt_reg_ati_flo_fonte.nextval, :caracterizacao, :consumo, :tipo, :unidade, :qde, :qde_floresta_plantada, :qde_floresta_nativa, :qde_outro_estado, :tid) returning id into :idFonte " , EsquemaBanco); } comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32); comando.AdicionarParametroEntrada("tipo", fonteEnergia.TipoId, DbType.Int32); comando.AdicionarParametroEntrada("unidade", fonteEnergia.UnidadeId, DbType.Int32); comando.AdicionarParametroEntrada("qde", fonteEnergia.Qde, DbType.Decimal); comando.AdicionarParametroEntrada("qde_floresta_plantada", fonteEnergia.QdeFlorestaPlantada, DbType.Decimal); comando.AdicionarParametroEntrada("qde_floresta_nativa", fonteEnergia.QdeFlorestaNativa, DbType.Decimal); comando.AdicionarParametroEntrada("qde_outro_estado", fonteEnergia.QdeOutroEstado, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("idFonte", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); fonteEnergia.Id = Convert.ToInt32(comando.ObterValorParametro("idFonte")); } } #endregion } } #endregion Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.registroatividadeflorestal, eHistoricoAcao.atualizar, bancoDeDados, null); bancoDeDados.Commit(); } }