Esempio n. 1
0
        /// <summary>
        /// Executa a chamada do callback para mensagens CBLC
        /// </summary>
        /// <param name="cblc"></param>
        private void repassaEventoCBLC(EventoCBLC cblc)
        {
            switch (cblc.Cabecalho)
            {
            case ParserCBLCMessage.TIPO_MSG_AN:
            {
                CBLCConfirmacaoNegocioMegaBolsaInfo info = (CBLCConfirmacaoNegocioMegaBolsaInfo)cblc.Info;
                subscriberChannel.OnCBLC_ConfirmacaoNegocioMegabolsa(info);
            }
            break;

            case ParserCBLCMessage.TIPO_MSG_ANF:
            {
                CBLCConfirmacaoNegocioBovespaFixInfo fixinfo = (CBLCConfirmacaoNegocioBovespaFixInfo)cblc.Info;
                subscriberChannel.OnCBLC_ConfirmacaoNegocioBovespaFIX(fixinfo);
            }
            break;

            default:
                throw new Exception("repassaEventoCBLC() Error: Tipo de mensagem invalida: " + cblc.Cabecalho);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Confirmacao Negocio Megabolsa
        /// </summary>
        /// <param name="evento"></param>
        private void _parseAN(EventoSTM evento)
        {
            try
            {
                int offset = 0;
                CBLCConfirmacaoNegocioMegaBolsaInfo infoan = new CBLCConfirmacaoNegocioMegaBolsaInfo();

                infoan.Cabecalho = evento.Cabecalho;

                infoan.NaturezaOperacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD001_TAM_NATUREZA_OPERACAO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD001_TAM_NATUREZA_OPERACAO;

                if (!infoan.NaturezaOperacao.Equals("60") &&
                    !infoan.NaturezaOperacao.Equals("61") &&
                    !infoan.NaturezaOperacao.Equals("64") &&
                    !infoan.NaturezaOperacao.Equals("65"))
                {
                    logger.Info("Ignorando Msg [" + evento.Corpo + "]");
                    return;
                }

                infoan.CodigoMontagem = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD002_TAM_CODIGO_MONTAGEM);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD002_TAM_CODIGO_MONTAGEM;

                infoan.CodigoNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD003_TAM_CODIGO_NEGOCIACAO).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD003_TAM_CODIGO_NEGOCIACAO;

                infoan.CodigoISIN = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD004_TAM_CODIGO_ISIN).Trim();
                offset           += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD004_TAM_CODIGO_ISIN;

                infoan.NumeroDistribuicaoPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD005_TAM_NUMERO_DISTRIBUICAO_PAPEL);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD005_TAM_NUMERO_DISTRIBUICAO_PAPEL;

                infoan.NomeResumidoEmpresa = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD006_TAM_NOME_RESUMIDO_EMPRESA).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD006_TAM_NOME_RESUMIDO_EMPRESA;

                infoan.EspecificacaoPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD007_TAM_ESPEC_PAPEL).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD007_TAM_ESPEC_PAPEL;

                infoan.FatorCotacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD008_TAM_FATOR_COTACAO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD008_TAM_FATOR_COTACAO;

                infoan.CodigoMercado = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD009_TAM_CODIGO_MERCADO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD009_TAM_CODIGO_MERCADO;
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD010_TAM_RESERVADO1;
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD011_TAM_RESERVADO2;

                string preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD012_TAM_PRECO_EXERCICIO_OPCOES);
                preco = preco.Insert(11, ".");
                infoan.PrecoExercicioOpcoes = Convert.ToDecimal(preco, CultureInfo.InvariantCulture);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD012_TAM_PRECO_EXERCICIO_OPCOES;

                infoan.CodigoNegociacaoPapelObjeto = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD013_TAM_CODIGO_NEGOCIACAO_PAPEL_OBJETO).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD013_TAM_CODIGO_NEGOCIACAO_PAPEL_OBJETO;

                infoan.NumeroSerie = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD014_TAM_NUMERO_SERIE);
                offset            += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD014_TAM_NUMERO_SERIE;

                infoan.CodigoBDI = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD015_TAM_CODIGO_BDI);
                offset          += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD015_TAM_CODIGO_BDI;
                offset          += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD016_TAM_RESERVADO3;

                infoan.NumeroNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD017_TAM_NUMERO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD017_TAM_NUMERO_NEGOCIO;

                infoan.HorarioFato = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD018_TAM_HORARIO_FATO);
                offset            += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD018_TAM_HORARIO_FATO;

                infoan.TipoTransacaoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD019_TAM_TIPO_TRANSACAO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD019_TAM_TIPO_TRANSACAO_NEGOCIO;

                preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD020_TAM_PRECO_NEGOCIO);
                preco = preco.Insert(11, ".");
                infoan.PrecoNegocio = Convert.ToDecimal(preco, CultureInfo.InvariantCulture);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD020_TAM_PRECO_NEGOCIO;

                infoan.QuantidadeNegocio = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD021_TAM_QUANTIDADE_NEGOCIO));
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD021_TAM_QUANTIDADE_NEGOCIO;

                preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD022_TAM_PRECO_MEDIO_PAPEL);
                preco = preco.Insert(11, ".");
                infoan.PrecoMedioPapel = Convert.ToDecimal(preco, CultureInfo.InvariantCulture);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD022_TAM_PRECO_MEDIO_PAPEL;

                infoan.CodigoCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD023_TAM_CODIGO_CLIENTE);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD023_TAM_CODIGO_CLIENTE;

                infoan.DVCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD024_TAM_DIGITO_CLIENTE);
                offset          += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD024_TAM_DIGITO_CLIENTE;

                infoan.PrazoContradosTermo = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD025_TAM_PRAZO_CONTRATOS_TERMO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD025_TAM_PRAZO_CONTRATOS_TERMO;

                string dtvc = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD026_TAM_DATA_VENCIMENTO);
                if (dtvc.Equals("9999-12-31"))
                {
                    infoan.DataVencimento = DateTime.MaxValue;
                }
                else
                {
                    infoan.DataVencimento = DateTime.ParseExact(dtvc, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                }
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD026_TAM_DATA_VENCIMENTO;

                infoan.TipoPosicaoCliente = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD027_TAM_TIPO_POSICAO_CLIENTE);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD027_TAM_TIPO_POSICAO_CLIENTE;

                infoan.TipoLiquidacaoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD028_TAM_TIPO_LIQUIDACAO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD028_TAM_TIPO_LIQUIDACAO_NEGOCIO;

                infoan.IndicadorEstrategiaOpcoes = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD029_TAM_INDICADOR_ESTRATEGIA_OPCOES);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD029_TAM_INDICADOR_ESTRATEGIA_OPCOES;

                preco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD030_TAM_PRECO_ULTIMO_NEGOCIO_PAPEL);
                preco = preco.Insert(11, ".");
                infoan.PrecoUltimoNegocioPapel = Convert.ToDecimal(preco, CultureInfo.InvariantCulture);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD030_TAM_PRECO_ULTIMO_NEGOCIO_PAPEL;

                infoan.QuantidadeNegociadaTotalPapel = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD031_TAM_QTDE_TOTAL_NEGOCIADA_PAPEL));
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD031_TAM_QTDE_TOTAL_NEGOCIADA_PAPEL;

                infoan.VolumeNegociadoTotalPapel = Convert.ToInt64(evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD032_TAM_VOLUME_TOTAL_NEGOCIADO_PAPEL));
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD032_TAM_VOLUME_TOTAL_NEGOCIADO_PAPEL;
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD033_TAM_RESERVADO4;

                infoan.IdentificacaoCorretoraDestino = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD034_TAM_IDENTIFICACAO_CORRETORA_DESTINO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD034_TAM_IDENTIFICACAO_CORRETORA_DESTINO;

                infoan.NumeroSequencialRegistro = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD035_TAM_NUMERO_SEQUENCIAL_REGISTRO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD035_TAM_NUMERO_SEQUENCIAL_REGISTRO;

                infoan.IdentificacaoCorretoraContraparte = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD036_TAM_IDENTIFICACAO_CORRETORA_CONTRAPARTE);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD036_TAM_IDENTIFICACAO_CORRETORA_CONTRAPARTE;

                dtvc = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD037_TAM_DATA_MOVIMENTO);
                infoan.DataMovimento = DateTime.ParseExact(dtvc, "yyyy-MM-dd", CultureInfo.InvariantCulture);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD037_TAM_DATA_MOVIMENTO;

                infoan.CodigoEmpresaEmissoraPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD038_TAM_CODIGO_EMPRESA_EMISSORA);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD038_TAM_CODIGO_EMPRESA_EMISSORA;

                infoan.TipoTituloPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD039_TAM_TIPO_TITULO_PAPEL);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD039_TAM_TIPO_TITULO_PAPEL;

                infoan.EspecieTituloPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD040_TAM_ESPECIA_TITULO_PAPEL);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD040_TAM_ESPECIA_TITULO_PAPEL;

                infoan.IndicadorOrigemNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD041_TAM_INDICADOR_ORIGEM_NEGOCIO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD041_TAM_INDICADOR_ORIGEM_NEGOCIO;

                infoan.CodigoClienteVendedor = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD042_TAM_CODIGO_CLIENTE_VENDEDOR).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD042_TAM_CODIGO_CLIENTE_VENDEDOR;

                infoan.CodigoClienteComprador = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD043_TAM_CODIGO_CLIENTE_COMPRADOR).Trim();
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD043_TAM_CODIGO_CLIENTE_COMPRADOR;

                infoan.CodigoSistema = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD044_TAM_CODIGO_SISTEMA);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD044_TAM_CODIGO_SISTEMA;

                infoan.FormaLiquidacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD045_TAM_FORMA_LIQUIDACAO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD045_TAM_FORMA_LIQUIDACAO;

                infoan.PrazoLiquidacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD046_TAM_PRAZO_LIQUIDACAO);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD046_TAM_PRAZO_LIQUIDACAO;
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD047_TAM_RESERVADO5;

                infoan.NumeroOfertaCompraMega = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD048_TAM_NUMERO_OFERTA_COMPRA_MEGA);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD048_TAM_NUMERO_OFERTA_COMPRA_MEGA;

                infoan.NumeroOfertaVendaMega = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD049_TAM_NUMERO_OFERTA_VENDA_MEGA);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD049_TAM_NUMERO_OFERTA_VENDA_MEGA;

                infoan.TipoTermo = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD050_TAM_TIPO_TERMO);
                offset          += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD050_TAM_TIPO_TERMO;

                infoan.OperadorComprador = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD051_TAM_OPERADOR_COMPRADOR);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD051_TAM_OPERADOR_COMPRADOR;

                infoan.OperadorVendedor = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD052_TAM_OPERADOR_VENDEDOR);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD052_TAM_OPERADOR_VENDEDOR;

                infoan.CodigoOfertaEstrategia1 = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD053_TAM_CODIGO_OFERTA_ESTRATEG1);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD053_TAM_CODIGO_OFERTA_ESTRATEG1;

                infoan.CodigoOfertaEstrategia2 = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD054_TAM_CODIGO_OFERTA_ESTRATEG2);
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD054_TAM_CODIGO_OFERTA_ESTRATEG2;
                offset += CBLCConfirmacaoNegocioMegaBolsaInfo.FIELD055_TAM_RESERVADO6;

                EventoCBLC newevent = new EventoCBLC(TIPO_MSG_AN, infoan, evento.MsgID);

                ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
            }
            catch (Exception ex)
            {
                logger.Error("Erro _parseAN()" + ex.Message, ex);
                logger.Error("Msg: [" + evento.Corpo + "]");
            }
        }
Esempio n. 3
0
 public void OnCBLC_ConfirmacaoNegocioMegabolsa(Gradual.OMS.ConectorSTM.Lib.Mensagens.CBLCConfirmacaoNegocioMegaBolsaInfo info)
 {
     CBLCConfirmacaoNegocioMegaBolsaInfo f**k = info;
 }