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