예제 #1
0
        public TransporteCustodia(MonitorCustodiaInfo.CustodiaPosicao pParametro)
            : this()
        {
            this.Empresa        = pParametro.NomeEmpresa;
            this.TipoMercado    = pParametro.TipoMercado;
            this.CodigoNegocio  = pParametro.CodigoInstrumento;
            this.QtdVenda       = pParametro.QtdeAExecVenda.ToString("N0");
            this.QtdAtual       = pParametro.QtdeAtual.ToString(gCultura);
            this.CodigoCarteira = pParametro.CodigoCarteira.ToString();
            this.Carteira       = pParametro.DescricaoCarteira;
            this.QtdCompra      = pParametro.QtdeAExecCompra.ToString("N0");
            this.CodigoSerie    = pParametro.CodigoSerie;
            this.QtdAbertura    = pParametro.QtdeDisponivel.ToString(gCultura);
            this.CodigoCliente  = pParametro.IdCliente.ToString();
            this.TipoGrupo      = pParametro.TipoGrupo;
            this.ValorPosicao   = pParametro.ValorPosicao.ToString(gCultura);
            this.QtdLiquid      = pParametro.QtdeLiquidar.ToString("N0");
            this.QtdD1          = pParametro.QtdeD1.ToString("N0");
            this.QtdD2          = pParametro.QtdeD2.ToString("N0");
            this.QtdD3          = pParametro.QtdeD3.ToString("N0");

            if (pParametro.TipoGrupo == "TEDI")
            {
                this.QtdAtual    = String.Format(gCultura, "{0:f2}", pParametro.QtdeAtual);
                this.QtdAbertura = String.Format(gCultura, "{0:f2}", pParametro.QtdeDisponivel);
            }
            else
            {
                this.QtdAtual    = String.Format(gCultura, "{0:#,0}", pParametro.QtdeAtual);
                this.QtdAbertura = String.Format(gCultura, "{0:#,0}", pParametro.QtdeDisponivel);
            }


            if (this.TipoMercado.Equals("OPC") || this.TipoMercado.Equals("OPV"))
            {
                this.QtdD1 = pParametro.QtdeD3.ToString("N0");
                this.QtdD2 = 0.ToString("N0");
                this.QtdD3 = 0.ToString("N0");
            }
            else
            {
                this.QtdD1 = pParametro.QtdeD1.ToString("N0");
                this.QtdD2 = pParametro.QtdeD2.ToString("N0");
                this.QtdD3 = pParametro.QtdeD3.ToString("N0");
            }

            this.Variacao          = pParametro.Variacao.ToString("N2");
            this.ValorDeFechamento = pParametro.ValorFechamento.ToString("N2");
            this.Cotacao           = pParametro.Cotacao.ToString("N2");
            this.Resultado         = pParametro.Resultado.ToString("N2");
            //this.ValorPU           = pParametro.ValorPU.ToString("N2");

            if (pParametro.TipoGrupo == "TEDI")
            {
                this.Resultado = pParametro.ValorPosicao.ToString("N2");
            }
        }
예제 #2
0
        private List <MonitorCustodiaInfo.CustodiaPosicao> TratarListaCustodia(List <MonitorCustodiaInfo.CustodiaPosicao> list)
        {
            List <MonitorCustodiaInfo.CustodiaPosicao> lRetorno = new List <MonitorCustodiaInfo.CustodiaPosicao>();

            MonitorCustodiaInfo lRetornaCustodia = new MonitorCustodiaInfo();

            try
            {
                MonitorCustodiaInfo.CustodiaPosicao lPosicao;

                foreach (MonitorCustodiaInfo.CustodiaPosicao posicao in list)
                {
                    lPosicao = new MonitorCustodiaInfo.CustodiaPosicao();

                    lPosicao = posicao;

                    if (lPosicao.TipoMercado.Equals("FUT") || lPosicao.TipoMercado.Equals("OPF"))
                    {
                        decimal lQuantidadeAtual = posicao.QtdeAtual;

                        decimal lValorCotacao = posicao.Cotacao; ///!= 0?posicao.Cotacao: posicao.ValorFechamento ;

                        decimal lFatorMultiplicador = RetornaFatorMultiplicador(posicao.CodigoInstrumento, Convert.ToDouble(posicao.ValorFechamento), Convert.ToDouble(posicao.Cotacao));

                        decimal lValorPosicao = posicao.ValorFechamento;

                        decimal lDiferenca = Convert.ToDecimal((lValorCotacao - lValorPosicao), gCultura);

                        lPosicao.Resultado = ((lDiferenca * lFatorMultiplicador) * lQuantidadeAtual);
                    }
                    else
                    {
                        string lpapel = posicao.CodigoInstrumento;

                        if (lpapel != string.Empty)
                        {
                            if (lpapel.Substring(lpapel.Length - 1, 1).Equals("F"))
                            {
                                lpapel = lpapel.Substring(0, lpapel.Length - 1);
                            }
                        }

                        decimal lQuantidadeAtual = posicao.QtdeAtual;

                        decimal lValorCotacao = posicao.Cotacao;

                        decimal lFatorMultiplicador = (lstFatorCotacao1000.Contains(lpapel) ? 1000 : 1);

                        //decimal lValorPosicao = posicao.ValorFechamento;

                        //decimal lDiferenca = Convert.ToDecimal((lValorCotacao - lValorPosicao), gCultura);

                        lPosicao.Resultado = ((lValorCotacao / lFatorMultiplicador) * lQuantidadeAtual);
                    }

                    lRetornaCustodia.ValorSubtotalBMFAbertura += lPosicao.Resultado;

                    lRetorno.Add(lPosicao);
                }
            }
            catch (Exception ex)
            {
                gLogger.ErrorFormat("Erro ao tratar posição de custódia - StackTrace - {0}", ex.StackTrace);
            }

            return(lRetorno);
        }