public IActionResult GetAllParticipacoes(Decimal saldo) { if (saldo == 0) { return(BadRequest()); } Participacoes result = Utils.CalculaParticipacao(_context.Funcionarios.ToList(), saldo, DateTime.Now); return(new ObjectResult(result)); }
public List <Participacoes> ListarArtistasDeItem(Int32 cod) { List <Participacoes> Lista = new List <Participacoes>(); SqlConnection conn = new SqlConnection(connectionString); try { conn.Open(); string sql = @"Select * from Artistas as A inner join Participacoes as P on P.cdArt = A.cdArt inner join Itens as I on i.cdItem = P.cdItem WHERE I.cdItem = @codItem "; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@codItem", cod); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { Participacoes P = null; while (dr.Read()) { P = new Participacoes(); P.cdArt = Convert.ToInt32(dr["cdArt"]); P.cdItem = cod; P.nmArt = dr["nmArt"].ToString(); P.cdPersonagem = dr["cdPersonagem"].ToString(); P.ImagemArt = (byte[])dr["imgArt"]; Lista.Add(P); } } } catch (Exception) { throw; } finally { if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } return(Lista); }
public static Participacoes CalculaParticipacao(List <Funcionarios> p_funcionarios, Decimal p_saldo, DateTime p_dataAtual) { if (p_funcionarios.Count == 0) { throw new System.Exception("CalculaParticipacao: Não existem funcionarios cadastrados"); } Participacoes participacoesDeLucro = new Participacoes(); participacoesDeLucro.participacoes = new List <Participante>(); int totalFuncionarios = p_funcionarios.Count(); Decimal totalDiponibilizado = p_saldo / totalFuncionarios; Decimal totalDistribuido = 0; //Varre lista de fucionários foreach (var funcionario in p_funcionarios) { try { Participante participante = new Participante(); Decimal participacao = 0; Decimal SB = Convert.ToDecimal(funcionario.salario_bruto.Replace("R$", "")); //retorna participação para o funcionario corrente participacao = ParticipacaoIndividual(funcionario, SB, totalDiponibilizado, p_dataAtual); //Insere dados de participante participante.nome = funcionario.nome; participante.matricula = funcionario.matricula; participante.valor_participacao = FormataMoeda(participacao); participacoesDeLucro.participacoes.Add(participante); //Incrementa total distribuido totalDistribuido = totalDistribuido + participacao; }catch (Exception error) { throw new System.Exception("CalculaParticipacao: Ocorreu um erro ao calcular a participação do funcionário de matricula " + funcionario.matricula + " " + error.Message); } } //Insere dados formatados em participação participacoesDeLucro.total_de_funcionarios = totalFuncionarios; participacoesDeLucro.total_de_distribuido = FormataMoeda(totalDistribuido); participacoesDeLucro.total_disponibilizado = FormataMoeda(p_saldo); participacoesDeLucro.saldo_total_disponibilizado = FormataMoeda(p_saldo - totalDistribuido); return(participacoesDeLucro); }
public List <Participacoes> ListarParticipacoes(int codArt) { List <Participacoes> lista = new List <Participacoes>(); SqlConnection conn = new SqlConnection(connectionString); try { conn.Open(); string sql = @"select P.cdPersonagem as Personagem,dsItem as Item from Participacoes as P inner join Itens as I on I.cdItem = P.cdItem Where P.cdArt =@cod"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddWithValue("@cod", codArt); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { Participacoes P = null; while (dr.Read()) { P = new Participacoes(); P.cdPersonagem = dr["Personagem"].ToString(); P.nmItem = dr["Item"].ToString(); lista.Add(P); } } } catch (Exception) { throw; } finally { if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); } } return(lista); }
public IActionResult GetParticipacaoByFuncionario(string matricula, decimal saldo) { if (saldo == 0) { return(BadRequest()); } Participacoes result = Utils.CalculaParticipacao(_context.Funcionarios.ToList(), saldo, DateTime.Now); result.participacoes = result.participacoes.FindAll(t => t.matricula == matricula); if (result == null) { return(NotFound()); } return(new ObjectResult(result)); }