Ejemplo n.º 1
0
        internal void InserirFilaArquivoCarSicar(int solicitacaoId, eCARSolicitacaoOrigem solicitacaoOrigem, BancoDeDados banco = null)
        {
            string requisicao_fila = string.Empty;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioInterno))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"select s.solicitacao_id solic_id, s.tid solic_tid, s.empreendimento_id emp_id, s.empreendimento_tid emp_tid from hst_car_solicitacao s where s.solicitacao_id = :idSolicitacao
					and s.tid = (select ss.tid from tab_car_solicitacao ss where ss.id= :idSolicitacao) order by id desc"                    , UsuarioInterno);

                comando.AdicionarParametroEntrada("idSolicitacao", solicitacaoId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        requisicao_fila = "'{\"origem\":" + (int)solicitacaoOrigem + ",\"empreendimento\":" +
                                          reader.GetValue <int>("emp_id") + ",\"empreendimento_tid\":" + reader.GetValue <string>("emp_tid") +
                                          ",\"solicitacao_car\":" + reader.GetValue <int>("solic_id") + ",\"solicitacao_car_tid\":" + reader.GetValue <string>("solic_tid") + "\"}'";;
                    }

                    reader.Close();
                }

                if (requisicao_fila != string.Empty)
                {
                    comando = bancoDeDados.CriarComando(@"
				    insert into tab_scheduler_fila (id, tipo, requisitante, requisicao, empreendimento, data_criacao, data_conclusao, resultado, sucesso) 
                    values (seq_tab_scheduler_fila.nextval, 'gerar-car', 0, :requisicao, 0, NULL, NULL, '', '')", UsuarioInterno);

                    comando.AdicionarParametroEntrada("requisicao", requisicao_fila, DbType.String);

                    bancoDeDados.ExecutarNonQuery(comando);

                    SalvarControleArquivoCarSicar(solicitacaoId, eStatusArquivoSICAR.AguardandoEnvio, solicitacaoOrigem, banco);

                    bancoDeDados.Commit();
                }
            }
        }
Ejemplo n.º 2
0
        internal void SalvarControleArquivoCarSicar(int solicitacaoId, eStatusArquivoSICAR statusArquivoSICAR, eCARSolicitacaoOrigem solicitacaoOrigem, BancoDeDados banco = null)
        {
            ControleArquivoSICAR controleArquivoSICAR = new ControleArquivoSICAR();

            controleArquivoSICAR.SolicitacaoCarId = solicitacaoId;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioInterno))
            {
                bancoDeDados.IniciarTransacao();

                #region Coleta de dados
                Comando comando = bancoDeDados.CriarComando(@"select tcs.id solic_id, tcs.tid solic_tid, te.id emp_id, te.tid emp_tid, tcrls.id controle_id
                    from tab_car_solicitacao tcs, tab_empreendimento te, (select tcsicar.id, tcsicar.solicitacao_car from tab_controle_sicar tcsicar 
                    where tcsicar.solicitacao_car_esquema = :esquema) tcrls where tcs.empreendimento = te.id and tcs.id = tcrls.solicitacao_car(+)
                    and tcs.id = :idSolicitacao", UsuarioInterno);

                comando.AdicionarParametroEntrada("esquema", (int)solicitacaoOrigem, DbType.Int32);
                comando.AdicionarParametroEntrada("idSolicitacao", controleArquivoSICAR.SolicitacaoCarId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        controleArquivoSICAR.SolicitacaoCarTid = reader.GetValue <String>("solic_tid");
                        controleArquivoSICAR.EmpreendimentoId  = reader.GetValue <Int32>("emp_id");
                        controleArquivoSICAR.EmpreendimentoTid = reader.GetValue <String>("emp_tid");
                        controleArquivoSICAR.Id = Convert.ToInt32(reader.GetValue <String>("controle_id"));
                    }
                    reader.Close();
                }

                #endregion

                if (controleArquivoSICAR.Id == 0)
                {
                    #region Criar controle arquivo SICAR
                    comando = bancoDeDados.CriarComando(@"
				    insert into tab_controle_sicar (id, tid, empreendimento, empreendimento_tid, solicitacao_car, solicitacao_car_tid, situacao_envio, solicitacao_car_esquema)
                    values
                    (seq_tab_controle_sicar.nextval, :tid, :empreendimento, :empreendimento_tid, :solicitacao_car, :solicitacao_car_tid, :situacao_envio, :solicitacao_car_esquema)
                     returning id into :id", UsuarioInterno);

                    comando.AdicionarParametroEntrada("empreendimento", controleArquivoSICAR.EmpreendimentoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("empreendimento_tid", controleArquivoSICAR.EmpreendimentoTid, DbType.String);
                    comando.AdicionarParametroEntrada("solicitacao_car", controleArquivoSICAR.SolicitacaoCarId, DbType.Int32);
                    comando.AdicionarParametroEntrada("solicitacao_car_tid", controleArquivoSICAR.SolicitacaoCarTid, DbType.String);
                    comando.AdicionarParametroEntrada("situacao_envio", (int)statusArquivoSICAR, DbType.Int32);
                    comando.AdicionarParametroEntrada("solicitacao_car_esquema", (int)solicitacaoOrigem, DbType.Int32);

                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroSaida("id", DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);

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

                    #endregion
                }
                else
                {
                    #region Editar controle arquivo SICAR

                    comando = bancoDeDados.CriarComando(@"
				    update tab_controle_sicar r set r.empreendimento_tid = :empreendimento_tid, r.solicitacao_car_tid = :solicitacao_car_tid, r.situacao_envio = :situacao_envio, 
                    r.tid = :tid where r.id = :id", UsuarioInterno);

                    comando.AdicionarParametroEntrada("empreendimento_tid", controleArquivoSICAR.EmpreendimentoTid, DbType.String);
                    comando.AdicionarParametroEntrada("solicitacao_car_tid", controleArquivoSICAR.SolicitacaoCarTid, DbType.String);
                    comando.AdicionarParametroEntrada("situacao_envio", (int)statusArquivoSICAR, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroEntrada("id", controleArquivoSICAR.Id, DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);

                    #endregion
                }

                GerarHistoricoControleArquivoCarSicar(controleArquivoSICAR.Id, banco);

                bancoDeDados.Commit();
            }
        }