Exemplo n.º 1
0
 public RendaVariavelAnaliseSaida(
     string siglaAcao,
     string nomeAcao,
     TipoConta tipo,
     int quantidadeEmCarteira,
     int quantidadeComprada,
     decimal valorTotalCompra,
     int quantidadeVendida,
     decimal valorTotalVenda,
     decimal valorTotalJurosDividendos,
     decimal valorTotalImpostos,
     decimal valorGanhoPrejuizo,
     RendaVariavelCotacaoSaida cotacao,
     IEnumerable <RendaVariavelOperacaoSaida> operacoes)
 {
     SiglaAtivo                = siglaAcao;
     NomeAtivo                 = nomeAcao;
     CodigoTipo                = (int)tipo;
     DescricaoTipo             = tipo.ObterDescricao();
     QuantidadeEmCarteira      = quantidadeEmCarteira;
     QuantidadeComprada        = quantidadeComprada;
     ValorTotalCompra          = valorTotalCompra;
     QuantidadeVendida         = quantidadeVendida;
     ValorTotalVenda           = valorTotalVenda;
     ValorTotalJurosDividendos = valorTotalJurosDividendos;
     ValorTotalImpostos        = valorTotalImpostos;
     ValorGanhoPrejuizo        = valorGanhoPrejuizo;
     Cotacao   = cotacao;
     Operacoes = operacoes;
 }
Exemplo n.º 2
0
        public RendaVariavelAnaliseSaida(ContaSaida acao, IEnumerable <Lancamento> operacoes, RendaVariavelCotacaoSaida cotacao)
        {
            this.IdConta       = acao.Id;
            this.SiglaAtivo    = acao.Nome;
            this.NomeAtivo     = acao.NomeInstituicao;
            this.CodigoTipo    = acao.CodigoTipo;
            this.DescricaoTipo = acao.DescricaoTipo;

            this.QuantidadeComprada = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.CompraAcoes).Sum(x => x.QtdRendaVariavel.HasValue ? x.QtdRendaVariavel.Value : 0);
            this.ValorTotalCompra   = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.CompraAcoes).Sum(x => x.Valor);

            this.QuantidadeVendida = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.VendaAcoes).Sum(x => x.QtdRendaVariavel.HasValue ? x.QtdRendaVariavel.Value : 0);
            this.ValorTotalVenda   = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.VendaAcoes).Sum(x => x.Valor);

            this.QuantidadeEmCarteira = this.QuantidadeComprada - this.QuantidadeVendida;

            this.ValorTotalJurosDividendos = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.JurosDividendos).Sum(x => x.Valor);

            this.ValorTotalImpostos = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.Impostos).Sum(x => x.Valor);

            this.ValorGanhoPrejuizo = this.ValorTotalVenda + this.ValorTotalJurosDividendos - (this.ValorTotalCompra + this.ValorTotalImpostos);

            this.Cotacao = cotacao;

            this.Operacoes = operacoes.OrderBy(x => x.Data).Select(x => new RendaVariavelOperacaoSaida(x));
        }