Example #1
0
        /// <summary>
        ///  Notificacao de cancelamento de negocio
        /// </summary>
        /// <param name="evento"></param>
        private void _parse100(EventoSTM evento)
        {
            int offset = 0;
            MEGA0100NotificacaoCancelamentoNegocioInfo info100 = new MEGA0100NotificacaoCancelamentoNegocioInfo();

            info100.FunctionCode = evento.Cabecalho;

            info100.InternalReference = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD003_TAM_DSEABSEVEN);

            info100.DataNegocio = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD003_TAM_DSEABSEVEN;

            info100.Papel = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD004_TAM_CVALISIN).Trim();
            offset       += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD004_TAM_CVALISIN;

            dthr = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD005_TAM_DSAIOM);
            info100.DataRegistro = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD005_TAM_DSAIOM;

            info100.SequencialOrdem = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD006_TAM_NSEQOM);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD006_TAM_NSEQOM;

            info100.IndicadorFormatoPreco = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD007_TAM_IND_PRICE);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD007_TAM_IND_PRICE;

            string preco = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD009_TAM_PRICE);

            preco         = STMUtilities.saidaFormatada(info100.IndicadorFormatoPreco[0], preco, false, true, false, preco.Length);
            info100.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD008_TAM_PRICE;

            info100.QuantidadeExecutadaNegocio = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD009_TAM_QTITTRAN));
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD009_TAM_QTITTRAN;

            info100.HoraExecucaoNegocio = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD010_TAM_HTRAN);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD010_TAM_HTRAN;
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD011_TAM_NMSGREPON;
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD012_TAM_HMSGREPON;

            info100.CorretoraContraparte = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD013_TAM_CLDADFCIE);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD013_TAM_CLDADFCIE;

            info100.NumeroNegocio = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD014_TAM_NTRAN);
            offset += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD014_TAM_NTRAN;

            info100.Side = evento.Corpo.Substring(offset, MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD015_TAM_ISENOM);
            offset      += MEGA0100NotificacaoCancelamentoNegocioInfo.FIELD015_TAM_ISENOM;

            EventoMega newevent = new EventoMega(TIPO_MSG_0100, info100, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Example #2
0
        void stmclient_OnReceiveData(string LastMsgId, string SPF_Header, string DataPtr, int DataSize)
        {
            logger.Debug("stmclient_OnReceiveData():");

            string cabecalho;
            string corpo;
            string tipo;
            string instrumento;
            long   antesSendEvent;
            long   depoisSendEvent;

            ultimoMsgId = LastMsgId;
            try
            {
                if (DataPtr.Length < TAM_CABECALHO_STM)
                {
                    logger.Error("Tamanho da mensagem invalida [" + DataPtr + "]");
                }

                antesSendEvent = DateTime.Now.Ticks;
                cabecalho      = DataPtr.Substring(0, TAM_CABECALHO_STM);
                tipo           = EventoSTM.TIPO_MSG_CBLC;

                if (this.isMsgCBLC(cabecalho))
                {
                    corpo = DataPtr.Substring(TAM_CABECALHO_STM);
                }
                else
                {
                    cabecalho = DataPtr.Substring(MSG_MEGA_FUNCTIONCODE_OFFSET, TAM_MSG_MEGA_FUNCTIONCODE);
                    corpo     = DataPtr.ToString();
                    tipo      = EventoSTM.TIPO_MSG_MEGA;
                }

                EventoSTM evento = new EventoSTM(tipo, cabecalho, corpo, ultimoMsgId);
                ServicoConectorSTM.epService.EPRuntime.SendEvent(evento);
                depoisSendEvent = DateTime.Now.Ticks;

                TimeSpan duracaoSendEvent = new TimeSpan(depoisSendEvent - antesSendEvent);
                logger.Debug("OnReceiveData(): msg [" + ultimoMsgId + "] [" + tipo + ":" + cabecalho + "] processado em " + duracaoSendEvent.TotalMilliseconds + " ms");

                stmclient.Ack = true;
            }
            catch (Exception ex)
            {
                logger.Error("Erro em OnDataReceived():" + ex.Message);
                logger.Error(ex);
            }
        }
Example #3
0
        public void Parse(EventoSTM evento)
        {
            logger.Debug("Parse(): " + evento.Cabecalho);

            switch (evento.Cabecalho)
            {
            case TIPO_MSG_0172:
                _parse172(evento);
                break;

            case TIPO_MSG_0105:
                _parse105(evento);
                break;

            default:
                logger.Warn("Mensagem desconhecida: [" + evento.Cabecalho + "]");
                break;
            }
        }
Example #4
0
        public void Parse(EventoSTM evento)
        {
            switch (evento.Cabecalho)
            {
            case TIPO_MSG_AN:
                _parseAN(evento);
                break;

            case TIPO_MSG_ANF:
                _parseANF(evento);
                break;

            case TIPO_MSG_AN53:
                msgID53 = evento.MsgID;
                Parse(evento.Corpo);
                break;

            default:
                logger.Warn("Mensagem desconhecida: [" + evento.Cabecalho + "]");
                break;
            }
        }
Example #5
0
        /// <summary>
        /// Confirmacao de ordem
        /// </summary>
        /// <param name="evento"></param>
        private void _parse172(EventoSTM evento)
        {
            int offset = 0;
            MEGA0172ConfirmacaoOrdemInfo info172 = new MEGA0172ConfirmacaoOrdemInfo();

            info172.FunctionCode = evento.Cabecalho;

            info172.InternalReference = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD003_TAM_DSAIOM);

            info172.DataEntradaOrdem = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD003_TAM_DSAIOM;

            info172.NumeroSequencialOrdem = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD004_TAM_NSEQOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD004_TAM_NSEQOM;

            info172.StatusOrdem = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD005_TAM_IMAJOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD005_TAM_IMAJOM;

            info172.Papel = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD006_TAM_CVALISIN).Trim();
            offset       += MEGA0172ConfirmacaoOrdemInfo.FIELD006_TAM_CVALISIN;

            info172.QuantidadeOrdem = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD007_TAM_QTITTOTOM));
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD007_TAM_QTITTOTOM;

            info172.Side = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD008_TAM_ISENSOM);
            offset      += MEGA0172ConfirmacaoOrdemInfo.FIELD008_TAM_ISENSOM;

            info172.IndicadorFormato = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD009_TAM_FORMAT_INDICATOR);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD009_TAM_FORMAT_INDICATOR;

            string preco = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD010_TAM_PRICE);

            preco         = STMUtilities.saidaFormatada(info172.IndicadorFormato[0], preco, false, true, false, preco.Length);
            info172.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0172ConfirmacaoOrdemInfo.FIELD010_TAM_PRICE;

            info172.CorretoraEmitente = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD011_TAM_CLDAFTEMETOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD011_TAM_CLDAFTEMETOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD012_TAM_NMSGREPON;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD013_TAM_HMSGREPON;

            info172.TipoOrdem = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD014_TAM_YPLIMSAIOM);
            offset           += MEGA0172ConfirmacaoOrdemInfo.FIELD014_TAM_YPLIMSAIOM;
            offset           += MEGA0172ConfirmacaoOrdemInfo.FIELD015_TAM_QTITXTEINTROM;
            offset           += MEGA0172ConfirmacaoOrdemInfo.FIELD016_TAM_CFONORG;

            info172.DataModificacao = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD017_TAM_DOMINI);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD017_TAM_DOMINI;

            info172.NumeroSequencialOriginal = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD018_TAM_NSEQOMINI);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD018_TAM_NSEQOMINI;

            info172.TipoValidadeOrdem = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD019_TAM_YVALIOMNSC);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD019_TAM_YVALIOMNSC;

            info172.DataValidadeOrdem = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD020_TAM_DVALIOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD020_TAM_DVALIOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD021_TAM_QTITMINOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD022_TAM_QTITDVLOM;

            info172.CodigoOrigemOferta = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD023_TAM_YOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD023_TAM_YOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD024_TAM_ICFMOM;

            info172.QuantidadeRemanescente = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD025_TAM_QTITRESTOMINI));
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD025_TAM_QTITRESTOMINI;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD026_TAM_FORMAT_INDICATOR2;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD027_TAM_PRICE2;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD028_TAM_TVALIOM;

            info172.CodigoOperadorMega = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD029_TAM_CLDNGSAIOM);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD029_TAM_CLDNGSAIOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD030_TAM_YCPTEMBROM;

            info172.CodigoClienteMegabolsa = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD031_TAM_NCPTEPOSIPTOM).Trim();
            info172.CodigoCliente          = STMUtilities.RetornarNumeros(info172.CodigoClienteMegabolsa);
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD031_TAM_NCPTEPOSIPTOM;
            offset += MEGA0172ConfirmacaoOrdemInfo.FIELD032_TAM_CLDOMNG;

            dthr = evento.Corpo.Substring(offset, MEGA0172ConfirmacaoOrdemInfo.FIELD033_TAM_DHSAIOMADF);
            info172.DataHoraCriacaoOrdem = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);

            EventoMega newevent = new EventoMega(TIPO_MSG_0172, info172, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Example #6
0
        /// <summary>
        ///  Notificacao de cancelamento de negocio
        /// </summary>
        /// <param name="evento"></param>
        private void _parse138(EventoSTM evento)
        {
            int offset = 0;
            MEGA0138OrdemEliminadaInfo info138 = new MEGA0138OrdemEliminadaInfo();

            info138.FunctionCode = evento.Cabecalho;

            info138.InternalReference = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0138OrdemEliminadaInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0138OrdemEliminadaInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD003_TAM_DSAIOM);

            info138.DataEntradaOrdem = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0138OrdemEliminadaInfo.FIELD003_TAM_DSAIOM;

            info138.NumeroSequencialOrdem = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD004_TAM_NSEQOM);
            offset += MEGA0138OrdemEliminadaInfo.FIELD004_TAM_NSEQOM;

            info138.StatusOrdem = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD005_TAM_IMAJOM);
            offset += MEGA0138OrdemEliminadaInfo.FIELD005_TAM_IMAJOM;

            info138.Papel = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD006_TAM_CVALISIN).Trim();
            offset       += MEGA0138OrdemEliminadaInfo.FIELD006_TAM_CVALISIN;

            info138.QuantidadeRemanescente = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD007_TAM_QTITRESTOM));
            offset += MEGA0138OrdemEliminadaInfo.FIELD007_TAM_QTITRESTOM;

            info138.IndicadorFormato = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD008_TAM_FORMAT_INDICATOR);
            offset += MEGA0138OrdemEliminadaInfo.FIELD008_TAM_FORMAT_INDICATOR;

            string preco = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD009_TAM_PRICE);

            preco         = STMUtilities.saidaFormatada(info138.IndicadorFormato[0], preco, false, true, false, preco.Length);
            info138.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0138OrdemEliminadaInfo.FIELD009_TAM_PRICE;

            info138.CorretoraEmitente = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD010_TAM_CLDADFEMETOM);
            offset += MEGA0138OrdemEliminadaInfo.FIELD010_TAM_CLDADFEMETOM;

            info138.TipoValidade = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD011_TAM_YVALIOMNSC);
            offset += MEGA0138OrdemEliminadaInfo.FIELD011_TAM_YVALIOMNSC;

            info138.FlagCliente = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD012_TAM_YCPTEOM);
            offset += MEGA0138OrdemEliminadaInfo.FIELD012_TAM_YCPTEOM;

            dthr = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD013_TAM_DVALIOM);
            info138.DataValidadeOrdem = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0138OrdemEliminadaInfo.FIELD013_TAM_DVALIOM;

            info138.Side = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD014_TAM_ISENSOM);
            offset      += MEGA0138OrdemEliminadaInfo.FIELD014_TAM_ISENSOM;

            info138.TipoOrdem = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD015_TAM_YPLIMSAIOM);
            offset           += MEGA0138OrdemEliminadaInfo.FIELD015_TAM_YPLIMSAIOM;
            offset           += MEGA0138OrdemEliminadaInfo.FIELD016_TAM_NMSGREPON;
            offset           += MEGA0138OrdemEliminadaInfo.FIELD017_TAM_HMSGREPON;

            info138.CodigoClienteMegabolsa = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD018_TAM_NCPTEPOSIPTOM).Trim();
            info138.CodigoCliente          = STMUtilities.RetornarNumeros(info138.CodigoClienteMegabolsa);
            offset += MEGA0138OrdemEliminadaInfo.FIELD018_TAM_NCPTEPOSIPTOM;

            info138.CodigoOperadorMega = evento.Corpo.Substring(offset, MEGA0138OrdemEliminadaInfo.FIELD019_TAM_CLDNGSAIOM);
            offset += MEGA0138OrdemEliminadaInfo.FIELD019_TAM_CLDNGSAIOM;

            EventoMega newevent = new EventoMega(TIPO_MSG_0138, info138, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Example #7
0
        /// <summary>
        /// Notificacao de execucao de Negocio
        /// </summary>
        /// <param name="evento"></param>
        private void _parse105(EventoSTM evento)
        {
            int offset = 0;
            MEGA0105NotificacaoExecucaoInfo info105 = new MEGA0105NotificacaoExecucaoInfo();

            info105.FunctionCode = evento.Cabecalho;

            info105.InternalReference = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD003_TAM_DSAIOM);

            info105.DataRegistro = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD003_TAM_DSAIOM;

            info105.NumeroSequencialOrdem = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD004_TAM_NSEQOM);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD004_TAM_NSEQOM;

            info105.Papel = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD005_TAM_CVALISIM).Trim();
            offset       += MEGA0105NotificacaoExecucaoInfo.FIELD005_TAM_CVALISIM;

            info105.GrupoPapel = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD006_TAM_CGRVALCOT);
            offset            += MEGA0105NotificacaoExecucaoInfo.FIELD006_TAM_CGRVALCOT;

            info105.Side = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD007_TAM_ISENSOM);
            offset      += MEGA0105NotificacaoExecucaoInfo.FIELD007_TAM_ISENSOM;

            info105.QuantidadeNegocio = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD008_TAM_QTITTRAN));
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD008_TAM_QTITTRAN;

            info105.IndicadorFormato = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD009_TAM_FORMAT_INDICATOR);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD009_TAM_FORMAT_INDICATOR;

            string preco = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD010_TAM_PRICE);

            preco         = STMUtilities.saidaFormatada(info105.IndicadorFormato[0], preco, false, true, false, preco.Length);
            info105.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0105NotificacaoExecucaoInfo.FIELD010_TAM_PRICE;

            info105.IndicadorQtdeRemanescente = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD011_TAM_IPRSQTITREST);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD011_TAM_IPRSQTITREST;

            info105.QuantidadeRemanescente = Convert.ToInt64(evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD012_TAM_QTITRESTOM));
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD012_TAM_QTITRESTOM;

            info105.CorretoraContraparte = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD013_TAM_CLDADFCIE);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD013_TAM_CLDADFCIE;

            info105.CodigoOrigemOferta = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD014_TAM_YOM);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD014_TAM_YOM;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD015_TAM_NMSGREPON;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD016_TAM_DMSGREPON;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD017_TAM_HMSGREPON;

            info105.NumeroNegocio = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD018_TAM_NTRAN);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD018_TAM_NTRAN;

            info105.DataNegocio = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD019_TAM_DTRAN);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD019_TAM_DTRAN;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD020_TAM_YPLIMSAIOM;

            info105.TipoValidadeOrdem = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD021_TAM_YVAIOMNSC);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD021_TAM_YVAIOMNSC;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD022_TAM_CGDSVAL;

            info105.CodigoOperadorMega = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD023_TAM_CLDNGSAIOM);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD023_TAM_CLDNGSAIOM;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD024_TAM_YCPTEMBROM;

            info105.CodigoClienteMegabolsa = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD025_TAM_NCPTEPOSIPTOM).Trim();
            info105.CodigoCliente          = STMUtilities.RetornarNumeros(info105.CodigoClienteMegabolsa);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD025_TAM_NCPTEPOSIPTOM;
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD026_TAM_CLDNGSAIOM;

            dthr = evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD027_TAM_DHSAIOMADF);
            info105.DataHoraEntradaOrdem = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD027_TAM_DHSAIOMADF;

            info105.QuantidadePatas = Convert.ToInt32(evento.Corpo.Substring(offset, MEGA0105NotificacaoExecucaoInfo.FIELD028_TAM_ZPRODCPSTRAN));
            offset += MEGA0105NotificacaoExecucaoInfo.FIELD028_TAM_ZPRODCPSTRAN;

            for (int i = 0; i < info105.QuantidadePatas; i++)
            {
                PataEstrategiaNegocioInfo pata = new PataEstrategiaNegocioInfo();

                pata.CodigoIdentificacao = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS;

                pata.SinalCompraVenda = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS;

                pata.ProporcaoPata = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG);
                offset            += PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG;

                pata.FormatIndicator = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR);
                offset += PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR;

                preco      = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD005_TAM_DATA);
                preco      = STMUtilities.saidaFormatada(pata.FormatIndicator[0], preco, false, true, false, preco.Length);
                pata.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
                offset    += PataEstrategiaNegocioInfo.FIELD005_TAM_DATA;

                pata.NumeroNegocio = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS);
                offset            += PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS;

                info105.Patas.Add(pata);
            }

            EventoMega newevent = new EventoMega(TIPO_MSG_0105, info105, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Example #8
0
        /// <summary>
        ///  Notificacao de cancelamento de negocio
        /// </summary>
        /// <param name="evento"></param>
        private void _parse103(EventoSTM evento)
        {
            int offset = 0;
            MEGA0103CriacaoNegocioInfo info103 = new MEGA0103CriacaoNegocioInfo();

            info103.FunctionCode = evento.Cabecalho;

            info103.InternalReference = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE);
            offset += MEGA0103CriacaoNegocioInfo.FIELD001_TAM_INTERNAL_REFERENCE;
            offset += MEGA0103CriacaoNegocioInfo.FIELD002_TAM_FUNCTION_CODE;

            string dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD003_TAM_DSEABS);

            info103.DataNegocio = DateTime.ParseExact(dthr, "yyyyMMdd", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD003_TAM_DSEABS;

            info103.Papel = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD004_TAM_CVALISIN).Trim();
            offset       += MEGA0103CriacaoNegocioInfo.FIELD004_TAM_CVALISIN;

            info103.IndicadorFormato = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD005_TAM_INDICADOR_FORMATO);
            offset += MEGA0103CriacaoNegocioInfo.FIELD005_TAM_INDICADOR_FORMATO;

            string preco = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD006_TAM_PRECO);

            preco         = STMUtilities.saidaFormatada(info103.IndicadorFormato[0], preco, false, true, false, preco.Length);
            info103.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
            offset       += MEGA0103CriacaoNegocioInfo.FIELD006_TAM_PRECO;

            info103.QuantidadeNegocio = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD007_TAM_QTITTRAN);
            offset += MEGA0103CriacaoNegocioInfo.FIELD007_TAM_QTITTRAN;

            dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD008_TAM_DHTRANBS);
            info103.DataHoraNegocio = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD008_TAM_DHTRANBS;

            info103.Side = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD009_TAM_ISENSOM);
            offset      += MEGA0103CriacaoNegocioInfo.FIELD009_TAM_ISENSOM;

            info103.CorretoraContraparte = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD010_TAM_CLDADFCIE);
            offset += MEGA0103CriacaoNegocioInfo.FIELD010_TAM_CLDADFCIE;

            info103.CodigoOrigemOferta = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD011_TAM_YOM);
            offset += MEGA0103CriacaoNegocioInfo.FIELD011_TAM_YOM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD012_TAM_NMSGREPON;
            offset += MEGA0103CriacaoNegocioInfo.FIELD013_TAM_HMSGREPON;

            info103.NumeroNegocio = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD014_TAM_NTRAN);
            offset += MEGA0103CriacaoNegocioInfo.FIELD014_TAM_NTRAN;

            info103.TipoOrdemOrigem = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD015_TAM_IORGINFMAR);
            offset += MEGA0103CriacaoNegocioInfo.FIELD015_TAM_IORGINFMAR;

            info103.CodigoOperadorMega = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD016_TAM_CLDNGSAIOM);
            offset += MEGA0103CriacaoNegocioInfo.FIELD016_TAM_CLDNGSAIOM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD017_TAM_YCPTEMBROM;

            info103.CodigoClienteMegabolsa = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD018_TAM_NCPTEMBROM);
            info103.CodigoCliente          = STMUtilities.RetornarNumeros(info103.CodigoClienteMegabolsa);
            offset += MEGA0103CriacaoNegocioInfo.FIELD018_TAM_NCPTEMBROM;
            offset += MEGA0103CriacaoNegocioInfo.FIELD019_TAM_CLDOMNG;

            dthr = evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD020_TAM_DHSAIOMADF);
            info103.DataHoraRegistro = DateTime.ParseExact(dthr, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            offset += MEGA0103CriacaoNegocioInfo.FIELD020_TAM_DHSAIOMADF;

            info103.QuantidadePatas = Convert.ToInt32(evento.Corpo.Substring(offset, MEGA0103CriacaoNegocioInfo.FIELD021_TAM_ZPRODCPSTRAN));
            offset += MEGA0103CriacaoNegocioInfo.FIELD021_TAM_ZPRODCPSTRAN;

            for (int i = 0; i < info103.QuantidadePatas; i++)
            {
                PataEstrategiaNegocioInfo pata = new PataEstrategiaNegocioInfo();

                pata.CodigoIdentificacao = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD001_TAM_CISINPRODCPS;

                pata.SinalCompraVenda = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS);
                offset += PataEstrategiaNegocioInfo.FIELD002_TAM_CSIGNKMUPRODCPS;

                pata.ProporcaoPata = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG);
                offset            += PataEstrategiaNegocioInfo.FIELD003_TAM_KRAOCPSSTG;

                pata.FormatIndicator = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR);
                offset += PataEstrategiaNegocioInfo.FIELD004_TAM_FORMAT_INDICATOR;

                preco      = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD005_TAM_DATA);
                preco      = STMUtilities.saidaFormatada(pata.FormatIndicator[0], preco, false, true, false, preco.Length);
                pata.Preco = Convert.ToDecimal(preco, STMUtilities.ciPtBR);
                offset    += PataEstrategiaNegocioInfo.FIELD005_TAM_DATA;

                pata.NumeroNegocio = evento.Corpo.Substring(offset, PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS);
                offset            += PataEstrategiaNegocioInfo.FIELD006_TAM_NTRANSCPRODCPS;

                info103.Patas.Add(pata);
            }

            EventoMega newevent = new EventoMega(TIPO_MSG_0103, info103, evento.MsgID);

            ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
        }
Example #9
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 + "]");
            }
        }
Example #10
0
        /// <summary>
        /// Mensagens Bovespa FIX
        /// </summary>
        /// <param name="evento"></param>
        private void _parseANF(EventoSTM evento)
        {
            try
            {
                int offset = 0;
                CBLCConfirmacaoNegocioBovespaFixInfo infoanf = new CBLCConfirmacaoNegocioBovespaFixInfo();

                infoanf.Cabecalho = evento.Cabecalho;

                infoanf.CodigoSistemaNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD001_TAM_CODIGO_SISTEMA_NEGOCIACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD001_TAM_CODIGO_SISTEMA_NEGOCIACAO;

                infoanf.DataNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD002_TAM_DATA_NEGOCIACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD002_TAM_DATA_NEGOCIACAO;

                infoanf.TipoOperacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD003_TAM_TIPO_OPERACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD003_TAM_TIPO_OPERACAO;

                infoanf.CodigoInstrumento = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD004_TAM_CODIGO_INSTRUMENTO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD004_TAM_CODIGO_INSTRUMENTO;

                infoanf.CodigoISIN = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD005_TAM_CODIGO_ISIN);
                offset            += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD005_TAM_CODIGO_ISIN;

                infoanf.NumeroDistribuicao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD006_TAM_NUMERO_DISTRIBUICAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD006_TAM_NUMERO_DISTRIBUICAO;

                infoanf.NumeroSerie = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD007_TAM_NUMERO_SERIE);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD007_TAM_NUMERO_SERIE;

                infoanf.NomeResumidoSociedadeEmissora = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD008_TAM_NOME_SOCIEDADE_EMISSORA);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD008_TAM_NOME_SOCIEDADE_EMISSORA;

                infoanf.EspecificacaoPapel = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD009_TAM_ESPECIFICACAO_PAPEL);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD009_TAM_ESPECIFICACAO_PAPEL;

                infoanf.CodigoOperacaoOrigem = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD010_TAM_CODIGO_OPERACAO_ORIGEM);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD010_TAM_CODIGO_OPERACAO_ORIGEM;

                infoanf.CodigoRodaNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD011_TAM_CODIGO_RODA_NEGOCIACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD011_TAM_CODIGO_RODA_NEGOCIACAO;

                infoanf.FatorCotacaoPreco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD012_TAM_FATOR_COTACAO_PRECO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD012_TAM_FATOR_COTACAO_PRECO;

                infoanf.CodigoMercado = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD013_TAM_CODIGO_MERCADO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD013_TAM_CODIGO_MERCADO;

                infoanf.PrecoExercicio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD014_TAM_PRECO_EXERCICIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD014_TAM_PRECO_EXERCICIO;

                infoanf.CodigoColocacaoMercado = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD015_TAM_CODIGO_COLOCACAO_MERCADO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD015_TAM_CODIGO_COLOCACAO_MERCADO;

                infoanf.TipoCotacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD016_TAM_TIPO_COTACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD016_TAM_TIPO_COTACAO;

                infoanf.CodigoBDI = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD017_TAM_CODIGO_BDI);
                offset           += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD017_TAM_CODIGO_BDI;

                infoanf.NumeroNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD018_TAM_NUMERO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD018_TAM_NUMERO_NEGOCIO;

                infoanf.HoraNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD019_TAM_HORA_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD019_TAM_HORA_NEGOCIO;

                infoanf.TipoTransacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD020_TAM_TIPO_TRANSACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD020_TAM_TIPO_TRANSACAO;

                infoanf.CodigoOrigemOperacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD021_TAM_CODIGO_ORIGEM_OPERACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD021_TAM_CODIGO_ORIGEM_OPERACAO;

                infoanf.PrecoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD022_TAM_PRECO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD022_TAM_PRECO_NEGOCIO;

                infoanf.QuantidadeTitulosNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD023_TAM_QTDE_TITULOS_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD023_TAM_QTDE_TITULOS_NEGOCIO;

                infoanf.VolumeFinanceiroNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD024_TAM_VOL_FINANCEIRO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD024_TAM_VOL_FINANCEIRO_NEGOCIO;

                infoanf.PercentualOscilacaoPreco = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD025_TAM_PERCENTUAL_OSCILACAO_PRECO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD025_TAM_PERCENTUAL_OSCILACAO_PRECO;

                infoanf.SinalOscilacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD026_TAM_SINAL_OSCILACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD026_TAM_SINAL_OSCILACAO;

                infoanf.PrecoMedio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD027_TAM_PRECO_MEDIO);
                offset            += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD027_TAM_PRECO_MEDIO;

                infoanf.PrecoMedio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD027_TAM_PRECO_MEDIO);
                offset            += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD027_TAM_PRECO_MEDIO;

                infoanf.PrecoReferenciaInstrumento = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD028_TAM_PRECO_REFERENCIA_INSTRUMENTO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD028_TAM_PRECO_REFERENCIA_INSTRUMENTO;

                infoanf.Side = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD029_TAM_NATUREZA_OPERACAO);
                offset      += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD029_TAM_NATUREZA_OPERACAO;

                infoanf.CodigoAgenteDestino = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD030_TAM_CODIGO_AGENTE_DESTINO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD030_TAM_CODIGO_AGENTE_DESTINO;

                infoanf.CodigoCorretoraDestino = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD031_TAM_CODIGO_CORRETORA_DESTINO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD031_TAM_CODIGO_CORRETORA_DESTINO;

                infoanf.CodigoAgenteContraparte = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD032_TAM_CODIGO_AGENTE_CONTRAPARTE);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD032_TAM_CODIGO_AGENTE_CONTRAPARTE;

                infoanf.CodigoCorretoraContraparte = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD033_TAM_CODIGO_CORRETORA_CONTRAPARTE);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD033_TAM_CODIGO_CORRETORA_CONTRAPARTE;

                infoanf.CodigoInvestidor = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD034_TAM_CODIGO_INVESTIDOR);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD034_TAM_CODIGO_INVESTIDOR;

                infoanf.PrazoLiquidacaoNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD035_TAM_PRAZO_LIQUIDACAO_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD035_TAM_PRAZO_LIQUIDACAO_NEGOCIO;

                infoanf.DataVencimento = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD036_TAM_DATA_VENCIMENTO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD036_TAM_DATA_VENCIMENTO;

                infoanf.FormaLiquidacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD037_TAM_FORMA_LIQUIDACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD037_TAM_FORMA_LIQUIDACAO;

                infoanf.NumeroOferta = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD038_TAM_NUMERO_OFERTA);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD038_TAM_NUMERO_OFERTA;

                infoanf.CodigoInstrumentoObjeto = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD039_TAM_CODIGO_INSTRUMENTO_OBJETO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD039_TAM_CODIGO_INSTRUMENTO_OBJETO;

                infoanf.NumeroOperacaoVinculada = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD040_TAM_NUMERO_OPERACAO_VINCULADA);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD040_TAM_NUMERO_OPERACAO_VINCULADA;

                infoanf.Brokeragem = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD041_TAM_BROKERAGEM);
                offset            += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD041_TAM_BROKERAGEM;

                infoanf.CodigoNegociacao = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD042_TAM_CODIGO_NEGOCIACAO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD042_TAM_CODIGO_NEGOCIACAO;

                infoanf.DataPrecoReferencia = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD043_TAM_DATA_PRECO_REFERENCIA);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD043_TAM_DATA_PRECO_REFERENCIA;

                infoanf.NomeResumidoSistema = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD044_TAM_NOME_RESUMIDO_SISTEMA);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD044_TAM_NOME_RESUMIDO_SISTEMA;

                infoanf.TaxaNegocio = evento.Corpo.Substring(offset, CBLCConfirmacaoNegocioBovespaFixInfo.FIELD045_TAM_TAXA_NEGOCIO);
                offset += CBLCConfirmacaoNegocioBovespaFixInfo.FIELD045_TAM_TAXA_NEGOCIO;

                EventoCBLC newevent = new EventoCBLC(TIPO_MSG_ANF, infoanf, evento.MsgID);

                ServicoConectorSTM.epService.EPRuntime.SendEvent(newevent);
            }
            catch (Exception ex)
            {
                logger.Error("Erro _parseANF()" + ex.Message, ex);
                logger.Error("Msg: [" + evento.Corpo + "]");
            }
        }