internal static void AtualizarSolicitacaoCar(OracleConnection conn, RequisicaoJobCar requisicao, int situacao, string tid) { //var controleCAR = ObterItemControleCar(conn, requisicao); //if (situacao == ControleCarDB.SITUACAO_SOLICITACAO_VALIDO && controleCAR.solicitacao_passivo > 0) //{ // situacao = controleCAR.solicitacao_situacao_aprovado; //} AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, situacao, tid); }
private static void InserirHistoricoControleCar(OracleConnection conn, RequisicaoJobCar requisicao, string tid) { var schema = CarUtils.GetEsquemaInstitucional(); var item = ObterItemControleCar(conn, requisicao); var sqlBuilder = new StringBuilder(); sqlBuilder.Append("INSERT INTO " + schema + ".HST_CONTROLE_SICAR "); sqlBuilder.Append("(id,tid,empreendimento,empreendimento_tid,solicitacao_car,solicitacao_car_tid,situacao_envio,"); sqlBuilder.Append("chave_protocolo,data_gerado,data_envio,arquivo,pendencias,codigo_imovel,"); sqlBuilder.Append("url_recibo,status_sicar,condicao,solicitacao_car_esquema,data_execucao)"); sqlBuilder.Append(" values "); sqlBuilder.Append("(" + schema + ".SEQ_HST_CONTROLE_SICAR.nextval,:tid,:empreendimento,:empreendimento_tid,"); sqlBuilder.Append(":solicitacao_car,:solicitacao_car_tid,:situacao_envio,:chave_protocolo,"); sqlBuilder.Append(":data_gerado,:data_envio,:arquivo,:pendencias,:codigo_imovel,"); sqlBuilder.Append(":url_recibo,:status_sicar,:condicao,:solicitacao_car_esquema,CURRENT_TIMESTAMP)"); try { using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { cmd.Parameters.Add(new OracleParameter("tid", tid)); cmd.Parameters.Add(new OracleParameter("empreendimento", item.empreendimento)); cmd.Parameters.Add(new OracleParameter("empreendimento_tid", item.empreendimento_tid)); cmd.Parameters.Add(new OracleParameter("solicitacao_car", item.solicitacao_car)); cmd.Parameters.Add(new OracleParameter("solicitacao_car_tid", tid)); //item.solicitacao_car_tid)); cmd.Parameters.Add(new OracleParameter("situacao_envio", item.situacao_envio)); cmd.Parameters.Add(new OracleParameter("chave_protocolo", item.chave_protocolo)); cmd.Parameters.Add(new OracleParameter("data_gerado", item.data_gerado)); cmd.Parameters.Add(new OracleParameter("data_envio", item.data_envio)); cmd.Parameters.Add(new OracleParameter("arquivo", item.arquivo)); cmd.Parameters.Add(new OracleParameter("pendencias", item.pendencias)); cmd.Parameters.Add(new OracleParameter("codigo_imovel", item.codigo_imovel)); cmd.Parameters.Add(new OracleParameter("url_recibo", item.url_recibo)); cmd.Parameters.Add(new OracleParameter("status_sicar", item.status_sicar)); cmd.Parameters.Add(new OracleParameter("condicao", item.condicao)); cmd.Parameters.Add(new OracleParameter("solicitacao_car_esquema", item.solicitacao_car_esquema)); cmd.ExecuteNonQuery(); } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } }
public static int AtualizarControleSICAR(OracleConnection conn, MensagemRetorno resultado, RequisicaoJobCar requisicao, int situacaoEnvio, string tid, string arquivoCar = "", string tipo = "", bool catchEnviar = false, string codigoProtocolo = "") { var schema = CarUtils.GetEsquemaInstitucional(); var item = ObterItemControleCar(conn, requisicao); var pendencias = ""; var condicao = "Aguardando Análise"; var mensagensDeResposta = String.Empty; var mensagemErro = ""; if (resultado == null) { resultado = new MensagemRetorno { mensagensResposta = new List <string>() }; } else { if (resultado.mensagensResposta == null) { mensagensDeResposta = "Erro de conexão com o SICAR, será feita uma nova tentativa ; "; situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_REPROVADO; } else { if (resultado.codigoResposta != MensagemRetorno.CodigoRespostaSucesso) { if (resultado.mensagensResposta.Count > 1 || (tipo.Equals("gerar-car") && resultado.mensagensResposta.Count >= 1) || resultado.codigoResposta == 400 || resultado.codigoResposta == 500) { resultado.mensagensResposta = TratandoMensagens(conn, resultado.mensagensResposta); pendencias = resultado.mensagensResposta.Aggregate("", (current, resposta) => current + (resposta + " ; ")); situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_REPROVADO; } else { situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_ENTREGUE; } //pendencias = pendencias.Replace("O arquivo especificado contém informações inválidas.;", ""); } foreach (var men in resultado.mensagensResposta) { mensagensDeResposta = String.Concat(mensagensDeResposta, men); mensagensDeResposta = String.Concat(mensagensDeResposta, " ; "); if (men.Contains("sobreposição") && men.Contains("100")) { mensagemErro = men; } } } } var sqlBuilder = new StringBuilder(); sqlBuilder.Append("UPDATE " + schema + ".TAB_CONTROLE_SICAR SET "); sqlBuilder.Append("tid = :tid,"); sqlBuilder.Append("situacao_envio = :situacao_envio,"); sqlBuilder.Append("chave_protocolo = :chave_protocolo,"); if (tipo.Equals("gerar-car")) { sqlBuilder.Append("data_gerado = CURRENT_TIMESTAMP,"); } //if (situacaoEnvio == SITUACAO_ENVIO_ARQUIVO_ENTREGUE) else { sqlBuilder.Append("data_envio = CURRENT_TIMESTAMP,"); } if (arquivoCar != "") { sqlBuilder.Append("arquivo = '" + arquivoCar + "',"); } sqlBuilder.Append("pendencias = :pendencias,"); if (!String.IsNullOrWhiteSpace(resultado.codigoImovel)) { sqlBuilder.Append("codigo_imovel = :codigo_imovel,"); } if (!String.IsNullOrWhiteSpace(resultado.urlReciboInscricao)) { sqlBuilder.Append("url_recibo = :url_recibo,"); } sqlBuilder.Append("status_sicar = :status_sicar,"); sqlBuilder.Append("condicao = :condicao,"); if (!String.IsNullOrWhiteSpace(codigoProtocolo)) { sqlBuilder.Append("chave_protocolo_enviado = :chave_protocolo_enviado,"); } sqlBuilder.Append("CODIGO_RESPOSTA = :codigo_resposta, "); sqlBuilder.Append("CODIGO_IMOVEL_MASC = :codigo_imovel_masc, "); sqlBuilder.Append("MENSAGEM_RESPOSTA = :mensagem_resposta "); sqlBuilder.Append(" WHERE id = :id"); try { using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { cmd.Parameters.Add(new OracleParameter("tid", tid)); cmd.Parameters.Add(new OracleParameter("situacao_envio", situacaoEnvio)); cmd.Parameters.Add(new OracleParameter("chave_protocolo", resultado.protocoloImovel)); if (catchEnviar) { string pendencia = "Falha na integração, comunique o administrador do sistema"; cmd.Parameters.Add(new OracleParameter("pendencias", pendencia)); } else { cmd.Parameters.Add(new OracleParameter("pendencias", mensagensDeResposta)); } if (!String.IsNullOrWhiteSpace(resultado.codigoImovel)) { cmd.Parameters.Add(new OracleParameter("codigo_imovel", resultado.codigoImovel)); } if (!String.IsNullOrWhiteSpace(resultado.urlReciboInscricao)) { cmd.Parameters.Add(new OracleParameter("url_recibo", resultado.urlReciboInscricao)); } cmd.Parameters.Add(new OracleParameter("status_sicar", "IN")); cmd.Parameters.Add(new OracleParameter("condicao", condicao)); if (!String.IsNullOrWhiteSpace(codigoProtocolo)) { cmd.Parameters.Add(new OracleParameter("chave_protocolo_enviado", codigoProtocolo)); } cmd.Parameters.Add(new OracleParameter("codigo_resposta", resultado.codigoResposta)); cmd.Parameters.Add(new OracleParameter("codigo_imovel_masc", resultado.codigoImovelComMascara)); cmd.Parameters.Add(new OracleParameter("mensagem_resposta", mensagensDeResposta)); cmd.Parameters.Add(new OracleParameter("id", item?.id)); cmd.ExecuteNonQuery(); } //Inserir no Histórico InserirHistoricoControleCar(conn, requisicao, tid, resultado); //if (!String.IsNullOrWhiteSpace(mensagemErro) && item != null) // VerificarListaCodigoImovel(conn, schema, mensagemErro, item.solicitacao_car, item.empreendimento, requisicao.origem, requisicao, tid); } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } if (item == null) { return(0); } return(item.id); }
private static void AtualizaInformacoesCAR(OracleConnection conn, string codigo, int solicitacaoNumero, string origem, RequisicaoJobCar requisicao, string tid) { var retorno = new MensagemRetorno(); retorno.mensagensResposta = new List <string>(); retorno.codigoImovelComMascara = codigo; retorno.codigoResposta = 200; var resultado = "Imóvel inserido com sucesso no banco de dados do Sicar - Sistema Nacional de Cadastro Ambiental Rural;"; retorno.mensagensResposta.Add(resultado); var schema = (origem == RequisicaoJobCar.INSTITUCIONAL) ? "IDAF" : "IDAFCREDENCIADO"; try { // ATUALIZA TAB_CONTROLE_SICAR using (var cmd = new OracleCommand(@"UPDATE TAB_CONTROLE_SICAR SET CODIGO_IMOVEL = :codigo_imovel, SITUACAO_ENVIO = 6, CODIGO_RESPOSTA = 200, PENDENCIAS = NULL, MENSAGEM_RESPOSTA = :mensagem WHERE SOLICITACAO_CAR = :solicitacao_car" , conn)) { cmd.Parameters.Add(new OracleParameter("codigo_imovel", codigo)); cmd.Parameters.Add(new OracleParameter("mensagem", resultado)); cmd.Parameters.Add(new OracleParameter("solicitacao_car", solicitacaoNumero)); cmd.ExecuteNonQuery(); } // ATUALIZA TAB_CAR_SOLICITACAO using (var cmd = new OracleCommand("UPDATE " + schema + @".TAB_CAR_SOLICITACAO SET SITUACAO_ANTERIOR = SITUACAO, SITUACAO_ANTERIOR_DATA = SITUACAO_DATA, SITUACAO = 2, SITUACAO_DATA = SYSDATE WHERE ID = :solicitacao_car" , conn)) { cmd.Parameters.Add(new OracleParameter("solicitacao_car", solicitacaoNumero)); cmd.ExecuteNonQuery(); } // ATUALIZA O IDAF_CONSULTA var strQuery = String.Empty; if (origem == RequisicaoJobCar.INSTITUCIONAL) { strQuery = "begin LST_CONSULTA.carSolicitacaoTitulo(:id); end;"; } else { strQuery = "begin LST_CONSULTA_CRED.carSolicitacao(:id); end;"; } using (var cmd = new OracleCommand(strQuery, conn)) { cmd.Parameters.Add(new OracleParameter("id", solicitacaoNumero)); cmd.ExecuteNonQuery(); } // ATUALIZA O HISTORICO InserirHistoricoSolicitacaoCar(conn, origem, solicitacaoNumero); InserirHistoricoControleCar(conn, requisicao, tid, retorno); } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados - UPDATES:" + exception.Message, exception); } }
private static void VerificarListaCodigoImovel(OracleConnection conn, string schema, string codigoImovelString, int solicitacaoNumero, Int32 empreendimento, string origem, RequisicaoJobCar requisicao, string tid) { try { var listaCodigos = codigoImovelString.Split('\n', ':', ',', '.')?.Where(x => x.Length == 43)?.Select(x => x.Replace(",", "")).Select(x => x.Replace(".", ""))?.ToList(); if (listaCodigos.Count() == 1) { if (!VerificarCodigo(conn, listaCodigos[0], solicitacaoNumero, origem)) { AtualizaInformacoesCAR(conn, listaCodigos[0], solicitacaoNumero, origem, requisicao, tid); InserirTabelaTransacional(conn, listaCodigos[0], solicitacaoNumero, empreendimento, 1, origem); } else { InserirTabelaTransacional(conn, listaCodigos[0], solicitacaoNumero, empreendimento, 0, origem); } } else { var naoExisteNoSimlam = new List <string>(); foreach (var codigo in listaCodigos) { if (!VerificarCodigo(conn, listaCodigos[0], solicitacaoNumero, origem)) { naoExisteNoSimlam.Add(codigo); } } if (naoExisteNoSimlam.Count() > 1) { foreach (var codigo in naoExisteNoSimlam) { InserirTabelaTransacional(conn, codigo, solicitacaoNumero, empreendimento, 0, origem); } } else if (naoExisteNoSimlam.Count() == 1) { AtualizaInformacoesCAR(conn, naoExisteNoSimlam[0], solicitacaoNumero, origem, requisicao, tid); InserirTabelaTransacional(conn, naoExisteNoSimlam[0], solicitacaoNumero, empreendimento, 1, origem); } } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados / VerificarListaCodigoImovel: /" + exception.Message, exception); } }
public static ItemControleCar ObterItemControleCarRetificacao(OracleConnection conn, RequisicaoJobCar requisicao) { var item = new ItemControleCar(); var sqlBuilder = new StringBuilder(); try { using (var cmd = new OracleCommand(@"SELECT ID, TID, EMPREENDIMENTO, EMPREENDIMENTO_TID, SOLICITACAO_CAR, SOLICITACAO_CAR_TID, SOLICITACAO_CAR_ANTERIOR, SITUACAO_ENVIO, CHAVE_PROTOCOLO, DATA_GERADO, DATA_ENVIO, PENDENCIAS, CODIGO_IMOVEL, SOLICITACAO_CAR_ESQUEMA, SOLICITACAO_CAR_ANT_ESQUEMA, SOLICITACAO_CAR_ANTERIOR_TID FROM TAB_CONTROLE_SICAR WHERE SOLICITACAO_CAR = :solicitacao", conn)) { cmd.Parameters.Add(new OracleParameter("solicitacao", requisicao.solicitacao_car)); using (var dr = cmd.ExecuteReader()) { if (!dr.Read()) { return(null); } item = new ItemControleCar() { id = dr.GetValue <Int32>("id"), tid = dr.GetValue <string>("tid"), empreendimento = dr.GetValue <Int32>("empreendimento"), empreendimento_tid = dr.GetValue <string>("empreendimento_tid"), solicitacao_car = dr.GetValue <Int32>("solicitacao_car"), solicitacao_car_tid = dr.GetValue <string>("solicitacao_car_tid"), solicitacao_car_anterior = dr.GetValue <Int32>("solicitacao_car_anterior"), situacao_envio = dr.GetValue <int>("situacao_envio"), chave_protocolo = dr.GetValue <string>("chave_protocolo"), data_gerado = dr.GetValue <DateTime>("data_gerado"), data_envio = dr.GetValue <DateTime>("data_envio"), pendencias = dr.GetValue <string>("pendencias"), codigo_imovel = dr.GetValue <string>("codigo_imovel"), solicitacao_car_esquema = dr.GetValue <int>("solicitacao_car_esquema"), solicitacao_car_anterior_esquema = dr.GetValue <Int32>("solicitacao_car_ant_esquema"), solicitacao_car_anterior_tid = dr.GetValue <string>("solicitacao_car_anterior_tid"), }; } } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } return(item); }
public static ItemControleCar ObterItemControleCar(OracleConnection conn, RequisicaoJobCar requisicao) { var schema = CarUtils.GetEsquemaInstitucional(); var item = new ItemControleCar(); var sqlBuilder = new StringBuilder(); sqlBuilder.Append("SELECT T.ID, T.TID, T.EMPREENDIMENTO, T.EMPREENDIMENTO_TID,T.SOLICITACAO_CAR, T.SOLICITACAO_CAR_TID, "); sqlBuilder.Append("T.SITUACAO_ENVIO, T.CHAVE_PROTOCOLO,T.DATA_GERADO,T.DATA_ENVIO,T.PENDENCIAS,T.CODIGO_IMOVEL, "); sqlBuilder.Append("T.URL_RECIBO,T.STATUS_SICAR,T.CONDICAO,T.SOLICITACAO_CAR_ESQUEMA,NVL(T.SOLICITACAO_PASSIVO, 0)SOLICITACAO_PASSIVO, "); sqlBuilder.Append("NVL(T.SOLICITACAO_SITUACAO_APROVADO, 2)SOLICITACAO_SITUACAO_APROVADO FROM " + schema + ".TAB_CONTROLE_SICAR t WHERE "); sqlBuilder.Append("t.empreendimento = :empreendimento /*AND t.empreendimento_tid = :empreendimento_tid */"); sqlBuilder.Append("AND t.solicitacao_car = :solicitacao_car /*AND t.solicitacao_car_tid = :solicitacao_car_tid */"); sqlBuilder.Append("AND rownum = 1 ORDER BY id DESC"); try { if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed) { Log.Error("ObterItemControleCar: Conexão fechada ou quebrada."); } using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { cmd.Parameters.Add(new OracleParameter("empreendimento", requisicao.empreendimento)); //cmd.Parameters.Add(new OracleParameter("empreendimento_tid", requisicao.empreendimento_tid)); cmd.Parameters.Add(new OracleParameter("solicitacao_car", requisicao.solicitacao_car)); //cmd.Parameters.Add(new OracleParameter("solicitacao_car_tid", requisicao.solicitacao_car_tid)); using (var dr = cmd.ExecuteReader()) { if (!dr.Read()) { if (dr.IsClosed) { Log.Error(String.Concat("ObterItemControleCar: dr is closed. ", " - Estado da conexão: ", conn.State.ToString())); } else if (!dr.HasRows) { Log.Error(String.Concat("ObterItemControleCar: consulta não retornou resultado. empreendimento: ", requisicao.empreendimento, " - solicitacao_car: ", requisicao.solicitacao_car, " - Estado da conexão: ", conn.State.ToString())); } else { Log.Error(String.Concat("ObterItemControleCar: não foi possível ler a consulta. ", " - Estado da conexão: ", conn.State.ToString())); } return(null); } item = new ItemControleCar() { id = dr.GetValue <Int32>("id"), tid = dr.GetValue <string>("tid"), empreendimento = dr.GetValue <Int32>("empreendimento"), empreendimento_tid = dr.GetValue <string>("empreendimento_tid"), solicitacao_car = dr.GetValue <Int32>("solicitacao_car"), solicitacao_car_tid = dr.GetValue <string>("solicitacao_car_tid"), situacao_envio = dr.GetValue <int>("situacao_envio"), chave_protocolo = dr.GetValue <string>("chave_protocolo"), data_gerado = dr.GetValue <DateTime>("data_gerado"), data_envio = dr.GetValue <DateTime>("data_envio"), pendencias = dr.GetValue <string>("pendencias"), codigo_imovel = dr.GetValue <string>("codigo_imovel"), url_recibo = dr.GetValue <string>("url_recibo"), status_sicar = dr.GetValue <string>("status_sicar"), condicao = dr.GetValue <string>("condicao"), solicitacao_car_esquema = dr.GetValue <int>("solicitacao_car_esquema"), solicitacao_passivo = Convert.ToInt32(dr["solicitacao_passivo"]), solicitacao_situacao_aprovado = Convert.ToInt32(dr["solicitacao_situacao_aprovado"]), }; } } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } return(item); }
private static void InserirHistoricoControleCar(OracleConnection conn, RequisicaoJobCar requisicao, string tid, MensagemRetorno resultado) { var schema = CarUtils.GetEsquemaInstitucional(); var item = ObterItemControleCar(conn, requisicao); var sqlBuilder = new StringBuilder(); sqlBuilder.Append("INSERT INTO " + schema + ".HST_CONTROLE_SICAR "); sqlBuilder.Append("(id,tid,empreendimento,empreendimento_tid,solicitacao_car,solicitacao_car_tid,situacao_envio,"); sqlBuilder.Append("chave_protocolo,data_gerado,data_envio,arquivo,pendencias,codigo_imovel,"); sqlBuilder.Append("url_recibo,status_sicar,condicao,solicitacao_car_esquema,data_execucao,"); sqlBuilder.Append("CODIGO_RESPOSTA, CODIGO_IMOVEL_MASC, MENSAGEM_RESPOSTA)"); sqlBuilder.Append(" values "); sqlBuilder.Append("(" + schema + ".SEQ_HST_CONTROLE_SICAR.nextval,:tid,:empreendimento,:empreendimento_tid,"); sqlBuilder.Append(":solicitacao_car,:solicitacao_car_tid,:situacao_envio,:chave_protocolo,"); sqlBuilder.Append(":data_gerado,:data_envio,:arquivo,:pendencias,:codigo_imovel,"); sqlBuilder.Append(":url_recibo,:status_sicar,:condicao,:solicitacao_car_esquema,CURRENT_TIMESTAMP, :CODIGO_RESPOSTA, :CODIGO_IMOVEL_MASC, :MENSAGEM_RESPOSTA)"); var mensagensDeResposta = String.Empty; if (resultado.mensagensResposta == null) { mensagensDeResposta = "Erro de conexão com o SICAR, será feita uma nova tentativa ; "; //situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_REPROVADO; } else { foreach (var men in resultado.mensagensResposta) { mensagensDeResposta = String.Concat(mensagensDeResposta, men); mensagensDeResposta = String.Concat(mensagensDeResposta, " ; "); } } try { if (item == null) { throw new Exception("ITEM NULO !!!"); } using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { cmd.Parameters.Add(new OracleParameter("tid", tid)); cmd.Parameters.Add(new OracleParameter("empreendimento", item.empreendimento)); cmd.Parameters.Add(new OracleParameter("empreendimento_tid", item.empreendimento_tid)); cmd.Parameters.Add(new OracleParameter("solicitacao_car", item.solicitacao_car)); cmd.Parameters.Add(new OracleParameter("solicitacao_car_tid", tid)); //item.solicitacao_car_tid)); cmd.Parameters.Add(new OracleParameter("situacao_envio", item.situacao_envio)); cmd.Parameters.Add(new OracleParameter("chave_protocolo", item.chave_protocolo)); cmd.Parameters.Add(new OracleParameter("data_gerado", item.data_gerado)); cmd.Parameters.Add(new OracleParameter("data_envio", item.data_envio)); cmd.Parameters.Add(new OracleParameter("arquivo", item.arquivo)); cmd.Parameters.Add(new OracleParameter("pendencias", item.pendencias)); cmd.Parameters.Add(new OracleParameter("codigo_imovel", item.codigo_imovel)); cmd.Parameters.Add(new OracleParameter("url_recibo", item.url_recibo)); cmd.Parameters.Add(new OracleParameter("status_sicar", item.status_sicar)); cmd.Parameters.Add(new OracleParameter("condicao", item.condicao)); cmd.Parameters.Add(new OracleParameter("solicitacao_car_esquema", item.solicitacao_car_esquema)); cmd.Parameters.Add(new OracleParameter("codigo_resposta", resultado.codigoResposta)); cmd.Parameters.Add(new OracleParameter("codigo_imovel_masc", resultado.codigoImovelComMascara)); cmd.Parameters.Add(new OracleParameter("mensagem_resposta", mensagensDeResposta)); //cmd.Parameters.Add(new OracleParameter("mensagem_resposta", resultado.mensagensResposta)); cmd.ExecuteNonQuery(); } } catch (Exception exception) { Log.Error("Requisicao: " + (requisicao != null ? JsonConvert.SerializeObject(requisicao) : " IS NULL"), exception); } }
public static int AtualizarControleSICarRetificacao(OracleConnection conn, MensagemRetorno resultado, ItemControleCar item, int situacaoEnvio, int solicitacaoRetificadora, string tid, string arquivoCar = "", string tipo = "") { var schema = CarUtils.GetEsquemaInstitucional(); var pendencias = " Solicitação retificada pela solicitação : " + solicitacaoRetificadora; var condicao = "Aguardando Análise"; var mensagensDeResposta = pendencias; var sqlBuilder = new StringBuilder(); sqlBuilder.Append("UPDATE " + schema + ".TAB_CONTROLE_SICAR SET "); //sqlBuilder.Append("tid = :tid,"); sqlBuilder.Append("situacao_envio = :situacao_envio,"); sqlBuilder.Append("chave_protocolo = :chave_protocolo,"); if (tipo.Equals("gerar-car")) { sqlBuilder.Append("data_gerado = CURRENT_TIMESTAMP,"); } //if (situacaoEnvio == SITUACAO_ENVIO_ARQUIVO_ENTREGUE) else { sqlBuilder.Append("data_envio = CURRENT_TIMESTAMP,"); } if (arquivoCar != "") { sqlBuilder.Append("arquivo = '" + arquivoCar + "',"); } sqlBuilder.Append("pendencias = :pendencias,"); if (!String.IsNullOrWhiteSpace(resultado.codigoImovel)) { sqlBuilder.Append("codigo_imovel = :codigo_imovel,"); } if (!String.IsNullOrWhiteSpace(resultado.urlReciboInscricao)) { sqlBuilder.Append("url_recibo = :url_recibo,"); } sqlBuilder.Append("status_sicar = :status_sicar,"); sqlBuilder.Append("condicao = :condicao,"); sqlBuilder.Append("CODIGO_RESPOSTA = :codigo_resposta, "); sqlBuilder.Append("CODIGO_IMOVEL_MASC = :codigo_imovel_masc, "); sqlBuilder.Append("MENSAGEM_RESPOSTA = :mensagem_resposta "); sqlBuilder.Append(" WHERE solicitacao_car = :id"); try { using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { //cmd.Parameters.Add(new OracleParameter("tid", item.solicitacao_car_anterior_tid)); cmd.Parameters.Add(new OracleParameter("situacao_envio", SITUACAO_ENVIO_ARQUIVO_RETIFICADO)); cmd.Parameters.Add(new OracleParameter("chave_protocolo", resultado.protocoloImovel)); cmd.Parameters.Add(new OracleParameter("pendencias", pendencias)); if (!String.IsNullOrWhiteSpace(resultado.codigoImovel)) { cmd.Parameters.Add(new OracleParameter("codigo_imovel", resultado.codigoImovel)); } if (!String.IsNullOrWhiteSpace(resultado.urlReciboInscricao)) { cmd.Parameters.Add(new OracleParameter("url_recibo", resultado.urlReciboInscricao)); } cmd.Parameters.Add(new OracleParameter("status_sicar", "IN")); cmd.Parameters.Add(new OracleParameter("condicao", condicao)); cmd.Parameters.Add(new OracleParameter("codigo_resposta", resultado.codigoResposta)); cmd.Parameters.Add(new OracleParameter("codigo_imovel_masc", resultado.codigoImovelComMascara)); cmd.Parameters.Add(new OracleParameter("mensagem_resposta", mensagensDeResposta)); //cmd.Parameters.Add(new OracleParameter("mensagem_resposta", resultado.mensagensResposta)); cmd.Parameters.Add(new OracleParameter("solicitacao_car", item.solicitacao_car_anterior)); cmd.ExecuteNonQuery(); } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } RequisicaoJobCar requisicao = new RequisicaoJobCar(); requisicao.empreendimento = item.empreendimento; requisicao.empreendimento_tid = item.empreendimento_tid; requisicao.solicitacao_car = item.solicitacao_car_anterior; requisicao.solicitacao_car_tid = item.solicitacao_car_anterior_tid; //Inserir no Histórico InserirHistoricoControleCar(conn, requisicao, tid, resultado); if (item == null) { return(0); } return(item.id); }
public static int AtualizarControleSICAR(OracleConnection conn, MensagemRetorno resultado, RequisicaoJobCar requisicao, int situacaoEnvio, string tid, string arquivoCar = "") { var schema = CarUtils.GetEsquemaInstitucional(); var item = ObterItemControleCar(conn, requisicao); var pendencias = ""; var condicao = "Aguardando Análise"; if (resultado == null) { resultado = new MensagemRetorno { mensagensResposta = new List <string>() }; } else { if (resultado.codigoResposta != MensagemRetorno.CodigoRespostaSucesso) { if (resultado.mensagensResposta.Count > 0) { pendencias = resultado.mensagensResposta.Aggregate("", (current, resposta) => current + (resposta + ";")); situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_REPROVADO; } else { situacaoEnvio = SITUACAO_ENVIO_ARQUIVO_ENTREGUE; } //pendencias = pendencias.Replace("O arquivo especificado contém informações inválidas.;", ""); } } var sqlBuilder = new StringBuilder(); sqlBuilder.Append("UPDATE " + schema + ".TAB_CONTROLE_SICAR SET "); sqlBuilder.Append("tid = :tid,"); sqlBuilder.Append("situacao_envio = :situacao_envio,"); sqlBuilder.Append("chave_protocolo = :chave_protocolo,"); if (situacaoEnvio == SITUACAO_ENVIO_ARQUIVO_ENTREGUE) { sqlBuilder.Append("data_envio = CURRENT_TIMESTAMP,"); } if (arquivoCar != "") { sqlBuilder.Append("arquivo = '" + arquivoCar + "',"); } sqlBuilder.Append("pendencias = :pendencias,"); sqlBuilder.Append("codigo_imovel = :codigo_imovel,"); sqlBuilder.Append("url_recibo = :url_recibo,"); sqlBuilder.Append("status_sicar = :status_sicar,"); sqlBuilder.Append("condicao = :condicao"); sqlBuilder.Append(" WHERE id = :id"); try { using (var cmd = new OracleCommand(sqlBuilder.ToString(), conn)) { cmd.Parameters.Add(new OracleParameter("tid", tid)); cmd.Parameters.Add(new OracleParameter("situacao_envio", situacaoEnvio)); cmd.Parameters.Add(new OracleParameter("chave_protocolo", resultado.protocoloImovel)); cmd.Parameters.Add(new OracleParameter("pendencias", pendencias)); cmd.Parameters.Add(new OracleParameter("codigo_imovel", resultado.codigoImovel)); cmd.Parameters.Add(new OracleParameter("url_recibo", resultado.urlReciboInscricao)); cmd.Parameters.Add(new OracleParameter("status_sicar", "IN")); cmd.Parameters.Add(new OracleParameter("condicao", condicao)); cmd.Parameters.Add(new OracleParameter("id", item.id)); cmd.ExecuteNonQuery(); } } catch (Exception exception) { Log.Error("Erro ao conectar ao Banco de dados:" + exception.Message, exception); } //Inserir no Histórico InserirHistoricoControleCar(conn, requisicao, tid); return(item.id); }