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"); } }
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); }