Example #1
0
        public EnviarOrdemBasketResponse EnviarOrdemBasket(EnviarOrdemBasketRequest _request)
        {
            EnviarOrdemBasketResponse _response = new EnviarOrdemBasketResponse();

            IServicoOrdens _gServico = Ativador.Get <IServicoOrdens>();

            try
            {
                ListarItensBasketResponse _resposta = new PersistenciaOrdens().SelecionarItemsBasket(_request.CodigoBasket);

                foreach (BasketItemInfo info in _resposta.ListaItemsBasket)
                {
                    EnviarOrdemRequest OrdemRequest = new EnviarOrdemRequest();

                    ClienteOrdemInfo _ClienteOrdemInfo = new ClienteOrdemInfo();

                    _ClienteOrdemInfo.CodigoCliente       = info.CodigoCliente;
                    _ClienteOrdemInfo.DataHoraSolicitacao = DateTime.Now;
                    _ClienteOrdemInfo.DataValidade        = info.DataValidade;

                    if (info.LadoOferta == "C")
                    {
                        _ClienteOrdemInfo.DirecaoOrdem = OrdemDirecaoEnum.Compra;
                    }
                    else
                    {
                        _ClienteOrdemInfo.DirecaoOrdem = OrdemDirecaoEnum.Venda;
                    }

                    _ClienteOrdemInfo.Instrumento        = info.Papel;
                    _ClienteOrdemInfo.PortaControleOrdem = _request.PortaControle.ToString();
                    _ClienteOrdemInfo.Preco              = double.Parse(info.Preco.ToString());
                    _ClienteOrdemInfo.Quantidade         = info.Quantidade;
                    _ClienteOrdemInfo.QuantidadeAparente = info.QuantidadeAparente;
                    _ClienteOrdemInfo.QuantidadeMinima   = info.QuantidadeMinima;
                    _ClienteOrdemInfo.TipoDeOrdem        = OrdemTipoEnum.Limitada;
                    _ClienteOrdemInfo.ValidadeOrdem      = Gradual.OMS.RoteadorOrdens.Lib.Dados.OrdemValidadeEnum.ValidaParaODia;

                    OrdemRequest.ClienteOrdemInfo = _ClienteOrdemInfo;

                    EnviarOrdemResponse _resp = _gServico.EnviarOrdem(OrdemRequest);
                }

                new PersistenciaOrdens().AtualizarStatusBasket("D", _request.CodigoBasket);

                _response.Sucesso = true;

                return(_response);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
Example #2
0
        public InativarLimiteContratoResponse InativarLimiteContrato(InativarLimiteContratoRequest InativarLimiteContratoRequest)
        {
            InativarLimiteContratoResponse response = new InativarLimiteContratoResponse();

            try
            {
                PersistenciaOrdens PersistenciaOrdens = new PersistenciaOrdens();
                response = PersistenciaOrdens.InativarLimiteCliente(InativarLimiteContratoRequest);
            }
            catch (Exception ex)
            {
            }

            return(response);
        }
Example #3
0
        public ExcluirLimiteBMFResponse InativarLimiteInstrumento(ExcluirLimiteBMFRequest ExcluirLimiteBMFRequest)
        {
            ExcluirLimiteBMFResponse response = new ExcluirLimiteBMFResponse();

            try
            {
                PersistenciaOrdens PersistenciaOrdens = new PersistenciaOrdens();
                response = PersistenciaOrdens.InativarLimiteInstrumento(ExcluirLimiteBMFRequest);
            }
            catch (Exception ex)
            {
            }

            return(response);
        }
Example #4
0
        public ListarLimiteBMFResponse ObterLimiteBMFCliente(ListarLimiteBMFRequest ListarLimiteBMFRequest)
        {
            ListarLimiteBMFResponse response = new ListarLimiteBMFResponse();

            try
            {
                PersistenciaOrdens PersistenciaOrdens = new PersistenciaOrdens();
                response = PersistenciaOrdens.ObterLimiteBMFCliente(ListarLimiteBMFRequest);
            }
            catch (Exception ex)
            {
            }

            return(response);
        }
Example #5
0
        public InserirLimiteBMFInstrumentoResponse AtualizarLimiteInstrumentoBMF(InserirLimiteBMFInstrumentoRequest InserirLimiteBMFInstrumentoRequest)
        {
            InserirLimiteBMFInstrumentoResponse response = new InserirLimiteBMFInstrumentoResponse();

            try
            {
                PersistenciaOrdens PersistenciaOrdens = new PersistenciaOrdens();
                response = PersistenciaOrdens.AtualizarLimiteInstrumentoBMF(InserirLimiteBMFInstrumentoRequest);
            }
            catch (Exception ex)
            {
                response.bSucesso = false;
            }

            return(response);
        }
Example #6
0
        public EnviarAtualizaoPrecoGlobalBasketResponse EnviarAtualizaoPrecoGlobal(EnviarAtualizaoPrecoGlobalRequest _request)
        {
            try
            {
                EnviarAtualizaoPrecoGlobalBasketResponse _response = new EnviarAtualizaoPrecoGlobalBasketResponse();

                if (_request.IndicadorOscilacao == 'S')
                {
                    _request.PrecoBasket = (_request.PrecoBasket / 100);
                }
                _response = new PersistenciaOrdens().AtualizaocaoGlobalClienteBasket(_request);

                return(_response);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }
        private OrdemFIXResponse <OrdemCancelamentoInfo> ParsearOrdemCancelamentoCliente(ClienteCancelamentoInfo pParametro)
        {
            OrdemFIXResponse <OrdemCancelamentoInfo> Response =
                new OrdemFIXResponse <OrdemCancelamentoInfo>();


            try
            {
                OrdemInfo OrdemInfo = new PersistenciaOrdens().SelecionarOrdemCliente(pParametro.OrderID);

                OrdemCancelamentoInfo CancelamentoInfo =
                    new OrdemCancelamentoInfo();

                CancelamentoInfo.ClOrdID     = CtrlNumber;
                CancelamentoInfo.OrigClOrdID = OrdemInfo.ClOrdID;
                CancelamentoInfo.ChannelID   = OrdemInfo.ChannelID;
                CancelamentoInfo.Account     = OrdemInfo.Account;
                CancelamentoInfo.OrderID     = OrdemInfo.ExchangeNumberID;
                CancelamentoInfo.OrderQty    = OrdemInfo.OrderQty;
                CancelamentoInfo.Side        = OrdemInfo.Side;
                CancelamentoInfo.Symbol      = OrdemInfo.Symbol;

                if ((OrdemInfo.OrdStatus != OrdemStatusEnum.NOVA) || (OrdemInfo.OrdStatus == OrdemStatusEnum.SUBSTITUIDA) ||
                    (OrdemInfo.OrdStatus == OrdemStatusEnum.PARCIALMENTEEXECUTADA))
                {
                    Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                    info.Critica         = "Não é possível cancelar uma oferta em processamento. Esta oferta pode estar cancelada ou cancelando / executada ou executando. ";
                    info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                    info.DataHoraCritica = DateTime.Now;

                    Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                    Response.CriticaInfo.Add(info);
                    Response.StatusResposta    = CriticaRiscoEnum.ErroNegocio;
                    Response.DataResposta      = DateTime.Now;
                    Response.DescricaoResposta = "O Sistema de risco encontrou <" + Response.CriticaInfo.Count.ToString() + "> item(s) a serem verificados";

                    return(Response);
                }



                if (OrdemInfo.Symbol.Substring(OrdemInfo.Symbol.Length - 1, 1) == "F")
                {
                    OrdemInfo.Symbol = OrdemInfo.Symbol.Remove(OrdemInfo.Symbol.Length - 1);
                }

                // Defini o Exchange pelo cadastro de papeis
                CadastroPapeisResponse <CadastroPapelInfo> CadastroPapeis = new ServicoCadastroPapeis().ObterInformacoesIntrumento(
                    new CadastroPapeisRequest()
                {
                    Instrumento = OrdemInfo.Symbol
                });

                if (CadastroPapeis.Objeto == null)
                {
                    Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                    info.Critica         = "Instrumento não encontrado";
                    info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                    info.DataHoraCritica = DateTime.Now;

                    Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                    Response.CriticaInfo.Add(info);
                    Response.StatusResposta    = CriticaRiscoEnum.ErroNegocio;
                    Response.DataResposta      = DateTime.Now;
                    Response.DescricaoResposta = "O Sistema de risco encontrou <" + Response.CriticaInfo.Count.ToString() + "> item(s) a serem verificados";

                    return(Response);
                }

                if (CadastroPapeis.Objeto.TipoMercado == OMS.CadastroPapeis.Lib.Enum.TipoMercadoEnum.FUTURO)
                {
                    CancelamentoInfo.Exchange   = "BMF";
                    CancelamentoInfo.SecurityID = new PersistenciaCadastroAtivos().ObterSecurityList(OrdemInfo.Symbol);
                }
                else
                {
                    CancelamentoInfo.Exchange = "BOVESPA";
                }


                Response.Objeto = CancelamentoInfo;

                Response.StatusResposta    = CriticaRiscoEnum.Sucesso;
                Response.DataResposta      = DateTime.Now;
                Response.DescricaoResposta = "Ordem parseado com sucesso";
            }
            catch (Exception ex)
            {
                Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                info.Critica         = ex.Message;
                info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                info.DataHoraCritica = DateTime.Now;

                Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                Response.CriticaInfo.Add(info);

                Response.StatusResposta    = CriticaRiscoEnum.Exception;
                Response.DataResposta      = DateTime.Now;
                Response.DescricaoResposta = "Ocorreu um erro ao parsear a mensagem";
            }

            return(Response);
        }