Esempio n. 1
0
        public bool Salvar(CARSolicitacao entidade)
        {
            try
            {
                if (_validar.RetificacaoValidar(entidade))
                {
                    if (_validar.Salvar(entidade))
                    {
                        GerenciadorTransacao.ObterIDAtual();

                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                        {
                            bancoDeDados.IniciarTransacao();

                            entidade.AutorId = User.FuncionarioId;

                            _da.Salvar(entidade, bancoDeDados);

                            bancoDeDados.Commit();

                            Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoSalvarTopico1(entidade.Id.ToString()));
                            Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoSalvarTopico2);
                            Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoSalvarTopico3);
                        }

                        #region Carga das tabelas APP Caculada e APP Escadinha
                        var qtdModuloFiscal = 0.0;
                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                        {
                            #region Select QTD Modulo Fiscal
                            Comando comando = bancoDeDados.CriarComando(@"SELECT ATP_QTD_MODULO_FISCAL FROM CRT_CAD_AMBIENTAL_RURAL WHERE EMPREENDIMENTO = :empreendimentoID");//, EsquemaBanco);

                            comando.AdicionarParametroEntrada("empreendimentoID", entidade.Empreendimento.Id, DbType.Int32);

                            using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                            {
                                while (reader.Read())
                                {
                                    qtdModuloFiscal = Convert.ToDouble(reader["ATP_QTD_MODULO_FISCAL"]);
                                }

                                reader.Close();
                            }
                            #endregion
                        }
                        using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia("idafgeo"))
                        {
                            #region Chamada Procedure
                            bancoDeDados.IniciarTransacao();
                            Comando command = bancoDeDados.CriarComando(@"begin OPERACOESPROCESSAMENTOGEO.CalcularAppClassificadaCAR(:emp); end;");

                            command.AdicionarParametroEntrada("emp", entidade.Empreendimento.Id, System.Data.DbType.Int32);

                            bancoDeDados.ExecutarNonQuery(command);
                            bancoDeDados.Commit();

                            bancoDeDados.IniciarTransacao();
                            Comando com = bancoDeDados.CriarComando(@"begin OPERACOESPROCESSAMENTOGEO.CalcularEscadinhaCAR(:emp, :moduloFiscal); end;");

                            com.AdicionarParametroEntrada("emp", entidade.Empreendimento.Id, System.Data.DbType.Int32);
                            com.AdicionarParametroEntrada("moduloFiscal", qtdModuloFiscal, System.Data.DbType.Double);

                            bancoDeDados.ExecutarNonQuery(com);
                            bancoDeDados.Commit();

                            bancoDeDados.IniciarTransacao();
                            command = bancoDeDados.CriarComando(@"begin OPERACOESPROCESSAMENTOGEO.CalcularArlTotalCAR(:emp); end;");

                            command.AdicionarParametroEntrada("emp", entidade.Empreendimento.Id, System.Data.DbType.Int32);

                            bancoDeDados.ExecutarNonQuery(command);

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

            return(Validacao.EhValido);
        }