コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
 public RegistroAtividadeFlorestalPDF(RegistroAtividadeFlorestal registroAtividadeFlorestal)
 {
     Registro = registroAtividadeFlorestal.NumeroRegistro;
 }
コード例 #11
0
        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);
            }
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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();
            }
        }