/// <summary> /// Monta o arquivo XML com o estado da conta dos clientes cadastrados com sua projeção DN e Conta Margem. /// </summary> public SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo> AlimentarConsultaDN(SaldoContaCorrenteRiscoRequest pParametro) { var lRetorno = new SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo>(); var lAcessaDados = new AcessaDados(); try { lAcessaDados.ConnectionStringName = gNomeConexaoSinacor; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "pccsaldoprojetado_lst")) { lAcessaDados.AddInParameter(lDbCommand, "pCdCliente", DbType.Int32, null); lAcessaDados.AddInParameter(lDbCommand, "pCdAssessor", DbType.Int32, null); lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD0", DbType.Byte, null); lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD1", DbType.Byte, null); lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD2", DbType.Byte, null); lAcessaDados.AddInParameter(lDbCommand, "pStNegativoD3", DbType.Byte, null); var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand); { //--> Gravando em XML para teste. //lDataTable.TableName = "pccsaldoprojetado"; //lDataTable.WriteXmlSchema(@"c:\pccsaldoprojetado.xsd"); //lDataTable.WriteXml(@"c:\pccsaldoprojetado.xml"); } if (null != lDataTable) { for (int i = 0; i < lDataTable.Rows.Count; i++) { lRetorno.Objeto = new ContaCorrenteRiscoInfo(); // SALDOS lRetorno.Objeto.SaldoD0 = lDataTable.Rows[i]["D0"].DBToDecimal(); lRetorno.Objeto.SaldoD1 = lDataTable.Rows[i]["D1"].DBToDecimal(); lRetorno.Objeto.SaldoD2 = lDataTable.Rows[i]["D2"].DBToDecimal(); lRetorno.Objeto.SaldoD3 = lDataTable.Rows[i]["D3"].DBToDecimal(); lRetorno.Objeto.SaldoContaMargem = ObtemSaldoContaMargem(lDataTable.Rows[i]["cd_cliente"].DBToInt32()); // OUTRAS INFORMACOES lRetorno.Objeto.IdClienteSinacor = lDataTable.Rows[i]["cd_cliente"].DBToInt32(); lRetorno.Objeto.NomeCliente = lDataTable.Rows[i]["nm_cliente"].DBToString(); lRetorno.Objeto.DsCpfCnpj = lDataTable.Rows[i]["cd_cpfcgc"].DBToString(); lRetorno.Objeto.IdAssessor = lDataTable.Rows[i]["cd_assessor"].DBToInt32(); lRetorno.ObjetoLista.Add(lRetorno.Objeto); } ColecaoObjetos.Remover(); ColecaoObjetos.AdicionarItem("SaldoContaCorrenteRiscoResponse", lRetorno); gLogger.Debug(string.Format("{0} registros encontrados", lDataTable.Rows.Count.ToString())); } ColecaoObjetos.DataHoraUltimaAtualizacao = DateTime.Now; lRetorno.StatusResposta = CriticaMensagemEnum.OK; } } catch (Exception ex) { gLogger.Error("AlimentarConsultaDN", ex); lRetorno.DescricaoResposta = ex.Message; lRetorno.StackTrace = ex.StackTrace; lRetorno.StatusResposta = CriticaMensagemEnum.Exception; lRetorno.Objeto = null; } return(lRetorno); }
public SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo> ConsultarSaldoCCProjetado(SaldoContaCorrenteRiscoRequest pParametro) { if (!ColecaoObjetos.ContemItem("SaldoContaCorrenteRiscoResponse")) { gLogger.Error("Erro ao consultar a instância: O objeto com os registros não contém a instância de 'SaldoContaCorrenteRiscoResponse'."); return(new SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo>()); } var lRetorno = new SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo>(); try { var lSaldoContaCorrenteRiscoResponse = (SaldoContaCorrenteRiscoResponse <ContaCorrenteRiscoInfo>)ColecaoObjetos.RetornarItem("SaldoContaCorrenteRiscoResponse"); var lListaFiltradaCpfCnpj = new List <ContaCorrenteRiscoInfo>(); IEnumerable <ContaCorrenteRiscoInfo> lRetornoConsulta = null; ContaCorrenteRiscoInfo lContaCorrenteRiscoInfo; if (null != lSaldoContaCorrenteRiscoResponse) { //Caro Programador, o filtro abaixo filtra os clientes pelo CPF/CNPJ informado. if (null != pParametro.ConsultaClientesCpfCnpj && pParametro.ConsultaClientesCpfCnpj.Count > 0) { for (int i = 0; i < pParametro.ConsultaClientesCpfCnpj.Count; i++) { lContaCorrenteRiscoInfo = lSaldoContaCorrenteRiscoResponse.ObjetoLista.Find( delegate(ContaCorrenteRiscoInfo ccr) { return(ccr.DsCpfCnpj == pParametro.ConsultaClientesCpfCnpj[i].Replace(".", "").Replace("-", "").Replace("/", "")); }); if (null != lContaCorrenteRiscoInfo && !lListaFiltradaCpfCnpj.Contains(lContaCorrenteRiscoInfo)) { lListaFiltradaCpfCnpj.Add(lContaCorrenteRiscoInfo); } lContaCorrenteRiscoInfo = null; } lSaldoContaCorrenteRiscoResponse.ObjetoLista = lListaFiltradaCpfCnpj; //--> Substitui a lista que para processar APENAS os clientes selecionados por CPF/CNPJ. } lRetornoConsulta = lSaldoContaCorrenteRiscoResponse.ObjetoLista.Where <ContaCorrenteRiscoInfo>( delegate(ContaCorrenteRiscoInfo ccr) //--> Realiza o filtro da consulta. { return(((pParametro.ConsultaPosicaoD0 && ccr.SaldoD0 < 0) || (!pParametro.ConsultaPosicaoD0 && (ccr.SaldoD0 < 0 || ccr.SaldoD0 >= 0))) && ((pParametro.ConsultaPosicaoD1 && ccr.SaldoD1 < 0) || (!pParametro.ConsultaPosicaoD1 && (ccr.SaldoD1 < 0 || ccr.SaldoD1 >= 0))) && ((pParametro.ConsultaPosicaoD2 && ccr.SaldoD2 < 0) || (!pParametro.ConsultaPosicaoD2 && (ccr.SaldoD2 < 0 || ccr.SaldoD2 >= 0))) && ((pParametro.ConsultaPosicaoD3 && ccr.SaldoD3 < 0) || (!pParametro.ConsultaPosicaoD3 && (ccr.SaldoD3 < 0 || ccr.SaldoD3 >= 0))) && ((pParametro.ConsultaContaMargem && ccr.SaldoContaMargem < 0) || (!pParametro.ConsultaContaMargem && (ccr.SaldoContaMargem < 0 || ccr.SaldoContaMargem >= 0))) && ((pParametro.ConsultaIdAssessor != null && ccr.IdAssessor == pParametro.ConsultaIdAssessor) || (pParametro.ConsultaIdAssessor == null && ccr.IdAssessor == ccr.IdAssessor)) && ((pParametro.IdCliente != 0 && ccr.IdClienteSinacor == pParametro.IdCliente) || (pParametro.IdCliente == 0 && ccr.IdClienteSinacor == ccr.IdClienteSinacor))); }); foreach (var item in lRetornoConsulta) { lRetorno.ObjetoLista.Add(item); //--> Incrementa a lista de retorno com os registros selecionados. } lRetorno.ObjetoLista.Sort(delegate(ContaCorrenteRiscoInfo cc1, ContaCorrenteRiscoInfo cc2) { return(Comparer <string> .Default.Compare(cc1.NomeCliente, cc2.NomeCliente)); }); lRetorno.DescricaoResposta = string.Format("Consulta realizada com sucesso às {0}.", DateTime.Now.ToString()); lRetorno.StatusResposta = CriticaMensagemEnum.OK; } } catch (Exception ex) { gLogger.Error("ConsultarSaldoCCProjetado", ex); lRetorno.DescricaoResposta = ex.Message; lRetorno.StackTrace = ex.StackTrace; lRetorno.StatusResposta = CriticaMensagemEnum.Exception; lRetorno.Objeto = null; } return(lRetorno); }