Пример #1
0
        private void ObterSaldoContaCorrenteUtilizandoLimite()
        {
            SaldoCustodiaRequest _SaldoRequest = new SaldoCustodiaRequest()
            {
                IdCliente = IdCliente
            };

            SaldoCustodiaResponse <CustodiaClienteInfo> resultData =
                new ServicoCustodia().ObterCustodiaCliente(_SaldoRequest);
        }
Пример #2
0
        private void ObterCustodiaBMF()
        {
            SaldoCustodiaRequest _SaldoRequest = new SaldoCustodiaRequest()
            {
                IdCliente = 108651
            };

            SaldoCustodiaResponse <CustodiaClienteInfo> resultData =
                new ServicoCustodia().ObterCustodiaCliente(_SaldoRequest);

            SaldoCustodiaResponse <CustodiaClienteBMFInfo> resposta =
                new ServicoCustodia().ObterCustodiaClienteBMF(new SaldoCustodiaRequest()
            {
                IdCliente = 108651
            });
        }
Пример #3
0
        private void ObterSaldoCustodia()
        {
            ServicoCustodia      custodia = new ServicoCustodia();
            SaldoCustodiaRequest RE       = new SaldoCustodiaRequest();

            RE.IdCliente = 31940;

            var Resposta = custodia.ObterCustodiaConsolidada(RE);

            SaldoCustodiaRequest _SaldoRequest = new SaldoCustodiaRequest()
            {
                IdCliente = 31940
            };

            SaldoCustodiaResponse <CustodiaClienteInfo> resultData =
                new ServicoCustodia().ObterCustodiaCliente(_SaldoRequest);
        }
Пример #4
0
        public ValidarCustodiaResponse ObterCustodiaCliente(ValidarCustodiaRequest request)
        {
            ValidarCustodiaResponse response = new ValidarCustodiaResponse();

            try
            {
                SaldoCustodiaRequest requestCustodia = new SaldoCustodiaRequest();
                requestCustodia.IdCliente = request.IdCliente;

                IServicoCustodia servico = Ativador.Get <IServicoCustodia>();
                SaldoCustodiaResponse <CustodiaClienteInfo> responseCustodia = servico.ObterCustodiaCliente(requestCustodia);
                response.ColecaoObjeto = responseCustodia.ColecaoObjeto;

                foreach (CustodiaClienteInfo custodia in response.ColecaoObjeto)
                {
                    decimal ultimaCotacao = ObterUltimaCotacao(custodia.CodigoInstrumento);
                    logger.Info(
                        "Papel[" + custodia.CodigoInstrumento +
                        "] Cotacao[" + ultimaCotacao +
                        "] Qtd.Atual[" + custodia.QtdeAtual +
                        "] Qtd.Disponivel[" + custodia.QtdeDisponivel +
                        "] Posicao[" + custodia.ValorPosicao + "]");
                }

                response.DataResposta      = DateTime.Now;
                response.CriticaResposta   = StatusRespostaEnum.Sucesso;
                response.DescricaoResposta = "Custodia carregada com sucesso.";
            }
            catch (Exception ex)
            {
                response.DataResposta      = DateTime.Now;
                response.CriticaResposta   = StatusRespostaEnum.ErroPrograma;
                response.Exception         = ex;
                response.DescricaoResposta = ex.Message;
            }

            return(response);
        }
Пример #5
0
 /// <summary>
 /// Obtem a custódia do cliente para mostrar na intranet
 /// </summary>
 /// <param name="pParametros">Informações do cliente</param>
 /// <returns>Custódia do cliente para mostrar na intranet</returns>
 public SaldoCustodiaResponse <CustodiaClienteInfo> ObterSaldoCustodiaClienteIntranet(SaldoCustodiaRequest pParametros)
 {
     return(new PersistenciaCustodia().ObterSaldoCustodiaClienteIntranet(pParametros));
 }
Пример #6
0
        private AdesaoClienteResponse CalcularRiscoCliente(AdesaoClienteRequest request)
        {
            AdesaoClienteResponse response = new AdesaoClienteResponse();
            decimal saldoProjetado         = 0;
            decimal saldoCustodia          = 0;
            decimal valorCarteira          = 0;

            // Obtendo saldo projetado do cliente
            SaldoContaCorrenteResponse <ContaCorrenteInfo> responseSaldo = new SaldoContaCorrenteResponse <ContaCorrenteInfo>();

            try
            {
                SaldoContaCorrenteRequest requestSaldoContaCorrente = new SaldoContaCorrenteRequest();
                requestSaldoContaCorrente.IdCliente = request.IdCliente;

                IServicoContaCorrente servico = Ativador.Get <IServicoContaCorrente>();

                responseSaldo = servico.ObterSaldoContaCorrente(requestSaldoContaCorrente);

                saldoProjetado = ((
                                      responseSaldo.Objeto.SaldoD0 +
                                      responseSaldo.Objeto.SaldoD1 +
                                      responseSaldo.Objeto.SaldoD2 +
                                      responseSaldo.Objeto.SaldoD3) +
                                  (decimal.Parse(responseSaldo.Objeto.SaldoContaMargem.ToString())) +
                                  (decimal.Parse(responseSaldo.Objeto.SaldoBloqueado.ToString())));
            }
            catch (Exception ex)
            {
                response.DataResposta      = DateTime.Now;
                response.bSucesso          = false;
                response.CriticaResposta   = StatusRespostaEnum.ErroPrograma;
                response.Exception         = ex;
                response.DescricaoResposta = ex.Message;
                return(response);
            }

            // Obtendo saldo da custódia do cliente
            string listaCustodia = "";

            try
            {
                SaldoCustodiaRequest requestCustodia = new SaldoCustodiaRequest();
                requestCustodia.IdCliente = request.IdCliente;

                IServicoCustodia servico = Ativador.Get <IServicoCustodia>();
                SaldoCustodiaResponse <CustodiaClienteInfo> responseCustodia = servico.ObterSaldoCustodiaClienteIntranet(requestCustodia);

                foreach (CustodiaClienteInfo custodia in responseCustodia.ColecaoObjeto)
                {
                    decimal ultimaCotacao = ObterUltimaCotacao(custodia.CodigoInstrumento);
                    if (ultimaCotacao != 0)
                    {
                        saldoCustodia += (custodia.QtdeDisponivel * ultimaCotacao);
                        listaCustodia += custodia.CodigoInstrumento + "(" + custodia.QtdeDisponivel + "*" + ultimaCotacao + ") ";
                    }
                    else
                    {
                        saldoCustodia += Convert.ToDecimal(custodia.ValorPosicao);
                        listaCustodia += custodia.CodigoInstrumento + "(" + custodia.ValorPosicao + ") ";
                    }
                }
            }
            catch (Exception ex)
            {
                response.DataResposta      = DateTime.Now;
                response.bSucesso          = false;
                response.CriticaResposta   = StatusRespostaEnum.ErroPrograma;
                response.Exception         = ex;
                response.DescricaoResposta = ex.Message;
                return(response);
            }

            // Obtendo valor total da composicao da carteira recomendada
            string listaCarteira = "";

            try
            {
                ListarComposicaoRequest requestComposicao = new ListarComposicaoRequest();
                requestComposicao.idProduto = request.IdProduto;

                ListarComposicaoResponse responseComposicao = SolicitarListaComposicao(requestComposicao);

                foreach (CarteiraRecomendadaComposicaoInfo composicao in responseComposicao.listaComposicao)
                {
                    decimal ultimaCotacao = ObterUltimaCotacao(composicao.IdAtivo);
                    valorCarteira += (composicao.Quantidade * ultimaCotacao);

                    listaCarteira += composicao.IdAtivo + "(" + composicao.Quantidade + "*" + ultimaCotacao + ") ";
                }
            }
            catch (Exception ex)
            {
                response.DataResposta      = DateTime.Now;
                response.bSucesso          = false;
                response.CriticaResposta   = StatusRespostaEnum.ErroPrograma;
                response.Exception         = ex;
                response.DescricaoResposta = ex.Message;
                return(response);
            }


            logger.Debug("Saldo Projetado: " + saldoProjetado + " (" +
                         responseSaldo.Objeto.SaldoD0 + " + " +
                         responseSaldo.Objeto.SaldoD1 + " + " +
                         responseSaldo.Objeto.SaldoD2 + " + " +
                         responseSaldo.Objeto.SaldoD3 + " + " +
                         responseSaldo.Objeto.SaldoContaMargem.ToString() + " + " +
                         responseSaldo.Objeto.SaldoBloqueado.ToString() + ")");
            logger.Debug("Saldo Custodia: " + saldoCustodia + " (" + listaCustodia + ")");
            logger.Debug("Valor Carteira: " + valorCarteira + " (" + listaCarteira + ")");

            // Verifica o risco do cliente
            if (saldoCustodia + saldoProjetado < valorCarteira)
            {
                response.DataResposta      = DateTime.Now;
                response.bSucesso          = false;
                response.CriticaResposta   = StatusRespostaEnum.ErroNegocio;
                response.DescricaoResposta = "Cliente não possui saldo suficiente para adesão à Carteira Recomendada solicitada.";
                logger.Debug("Cliente não possui saldo suficiente para adesão à Carteira Recomendada solicitada");
            }
            else
            {
                response.DataResposta      = DateTime.Now;
                response.bSucesso          = true;
                response.CriticaResposta   = StatusRespostaEnum.Sucesso;
                response.DescricaoResposta = SUCESSO;
            }

            return(response);
        }