public void GetValorBonus_CaminhoFeliz_RetornoOk() { Funcionario f = funcionarios[0]; double valorBonus = 0; int PFS = RegraNegocio.GetPesoPorFaixaSalarial(f); valorBonus = f.salarioBruto * RegraNegocio.GetPesoPorTempoDeAdmissao(f); valorBonus += f.salarioBruto * RegraNegocio.GetPesoPorAreaDeAtuacao(f); valorBonus = (valorBonus / PFS); int nmeses = RegraNegocio.GetQtdMesesTrabalhadosAnoAnterior(f); valorBonus = valorBonus * nmeses; // Pelas regras estabelecidas a fórmula para se chegar ao bônus de cada funcionário é: // (SB* PTA) + (SB* PAA) // ______________________________ * 12 (Meses do Ano) // (PFS) // Legenda SB: Salário Bruto // PTA: Peso por tempo de admissão // PAA: Peso por aréa de atuação // PFS: Peso por faixa salarial // //valorBonus = 989.0 * 1 = 989.0 //valorBonus = 989.0 + 989.0 * 5 = 5934.0 //valorBonus = (5934.0 / 1) = 5934.0 //valorBonus = 5934.0 * 4 = 23736.0 double resultado = RegraNegocio.GetValorBonus(f); Assert.Equal((double)23736.0d, resultado); }
public void GetPesoPorAreaDeAtuacao_ServicosGerais_Retorno3()//peso por area de atuacao { Funcionario f = funcionarios[0]; f.area = "Serviços Gerais"; Assert.Equal(3, RegraNegocio.GetPesoPorAreaDeAtuacao(f)); }
public void GetPesoPorFaixaSalarial_Estagiario_Retorno1() { Funcionario f = funcionarios[0]; f.cargo = "Estagiário"; Assert.Equal(1, RegraNegocio.GetPesoPorFaixaSalarial(f)); }
public void GetPesoPorAreaDeAtuacao_RelacionamentoCliente_Retorno5()//peso por area de atuacao { Funcionario f = funcionarios[0]; f.area = "Relacionamento com o Cliente"; Assert.Equal(5, RegraNegocio.GetPesoPorAreaDeAtuacao(f)); }
public void GetPesoPorAreaDeAtuacao_Tecnologia_Retorno2() { Funcionario f3 = funcionarios[0]; f3.area = "Tecnologia"; Assert.Equal(2, RegraNegocio.GetPesoPorAreaDeAtuacao(f3)); }
public void GetPesoPorAreaDeAtuacao_Financeiro_Retorno2() { Funcionario f2 = funcionarios[0]; f2.area = "Financeiro"; Assert.Equal(2, RegraNegocio.GetPesoPorAreaDeAtuacao(f2)); }
public void GetPesoPorAreaDeAtuacao_Contabilidade_Retorno2() { Funcionario f1 = funcionarios[0]; f1.area = "Contabilidade"; Assert.Equal(2, RegraNegocio.GetPesoPorAreaDeAtuacao(f1)); }
/// <summary> /// Feito esse metodo de verificao externo para nao poluir o construtor com verificacoes /// </summary> private string verificaErros(int matricula, string nome, string area, string cargo, string salarioBrutoReais, DateTime dataAdmissao) { double salarioBruto; if (salarioBrutoReais == null || !salarioBrutoReais.Equals("")) { salarioBruto = RegraNegocio.RealEmDouble(salarioBrutoReais); } else { return("Erro ao processar o funcionario matricula: " + matricula.ToString() + " nome: " + nome + ". Salario bruto nao pode ser vazio ou nulo"); } if (nome == null || area == null || cargo == null || matricula < 0 || nome.Equals("") || area.Equals("") || cargo.Equals("")) { return("Erro ao processar o funcionario matricula: " + matricula.ToString() + " nome: " + nome + ", area: " + area + ", cargo: " + cargo + ". Existem campos sem preenchimento adequado"); } if (dataAdmissao > DateTime.Today) { return("Erro ao processar o funcionario matricula: " + matricula.ToString() + " nome: " + nome + ". Data de admissao nao pode ser maior do que a data atual."); } if (salarioBruto < 0) { return("Erro ao processar o funcionario matricula: " + matricula.ToString() + " nome: " + nome + ". Seu salario eh nao pode ser negativo."); } return(""); }
public void GetPesoPorFaixaSalarial_MenosDe3Salarios_Retorno1() { Funcionario f = funcionarios[0]; double salarioMinimo = RegraNegocio.GetSalarioMinimo(); f.salarioBruto = salarioMinimo * 3 - 1; Assert.Equal(1, RegraNegocio.GetPesoPorFaixaSalarial(f)); }
public void GetPesoPorFaixaSalarial_3a5salarios_Retorno2() { Funcionario f = funcionarios[0]; double salarioMinimo = RegraNegocio.GetSalarioMinimo(); f.salarioBruto = salarioMinimo * 3 + 1; Assert.Equal(2, RegraNegocio.GetPesoPorFaixaSalarial(f)); }
public Participacao(int matricula, string nome, double valorParticipacao) { this.matricula = matricula.ToString("D7"); this.nome = nome; this.valorParticipacao = valorParticipacao; this.valorParticipacaoReais = RegraNegocio.DoubleEmReal(valorParticipacao); }
public void GetPesoPorAreaDeAtuacao_Diretoria_Retorno1()//peso por area de atuacao { Funcionario f = funcionarios[0]; f.area = "Diretoria"; Assert.Equal(1, RegraNegocio.GetPesoPorAreaDeAtuacao(f)); }
public DistribuicaoLucros(IEnumerable <Funcionario> l, double totalDisponibilizado, bool enforceBudget = false) { double totalDistribuido = 0; total_de_funcionarios = l.Count(); participacoes = new List <Participacao>(); if (total_de_funcionarios == 0) { throw new Exception("Não existem funcionarios para distribuir o lucro!"); } if (totalDisponibilizado <= 0) { throw new Exception("Não há lucro a ser distribuído!"); } foreach (Funcionario f in l) { try { Participacao p = new Participacao(f.matricula, f.nome, RegraNegocio.GetValorBonus(f)); participacoes.Add(p); totalDistribuido += p.valorParticipacao; } catch { throw new Exception("Erro ao processar o funcionario " + f.ToString()); } } if (enforceBudget) { //tendo o que eh definido pela regra, agora eh necessario caber dentro do budget if (totalDistribuido > 0) //divisao por zero nao rola { double proporcao = totalDisponibilizado / totalDistribuido; totalDistribuido = 0; foreach (Participacao p in participacoes) { p.valorParticipacao = p.valorParticipacao * proporcao; p.valorParticipacaoReais = RegraNegocio.DoubleEmReal(p.valorParticipacao); totalDistribuido += p.valorParticipacao; } } else { throw new Exception("Erro ao calcular o valor da participação"); } } total_disponibilizado = RegraNegocio.DoubleEmReal(totalDisponibilizado); total_distribuido = RegraNegocio.DoubleEmReal(totalDistribuido); saldo_total_disponibilizado = RegraNegocio.DoubleEmReal(totalDisponibilizado - totalDistribuido); }
/// <summary> // Metodo utilizado para passar parametro do arquivo de log que será gerar, // A comando utilizado para gerar o arquivo esta no metodo GravaLog. // parameter msg é utliza para criar a linha dentro do arquivo log // parameter fileName é utilizado para definir o nome do arquivo de log. /// </summary> public void Log(string msg, string fileName) { RegraNegocio rNeg = new RegraNegocio(); string filePath = System.Configuration.ConfigurationManager.AppSettings["PathLog"]; if (!filePath.EndsWith("\\")) { filePath += "\\"; } rNeg.SaveLog(filePath, fileName, msg); }
public void GetQtdMesesTrabalhadosAnoAnterior_CaminhoFeliz_RetornoOk() { Funcionario f = funcionarios[0]; if (f.dataAdmissao.Year == DateTime.Today.Year) //entrou esse ano { Assert.Equal(0, RegraNegocio.GetQtdMesesTrabalhadosAnoAnterior(f)); } if (f.dataAdmissao.Year < DateTime.Today.Year - 1) //entrou antes do ano passado { Assert.Equal(12, RegraNegocio.GetQtdMesesTrabalhadosAnoAnterior(f)); } Assert.Equal((13 - f.dataAdmissao.Month), RegraNegocio.GetQtdMesesTrabalhadosAnoAnterior(f)); }
public Funcionario(int matricula, string nome, string area, string cargo, string salarioBrutoReais, DateTime dataAdmissao) { string erro = verificaErros(matricula, nome, area, cargo, salarioBrutoReais, dataAdmissao); if (!erro.Equals("")) { throw new Exception(erro); } this.matricula = matricula; this.nome = nome; this.area = area; this.cargo = cargo; this.dataAdmissao = dataAdmissao; this.salarioBrutoReais = salarioBrutoReais; this.salarioBruto = RegraNegocio.RealEmDouble(salarioBrutoReais); }
public void GetPesoPorTempoDeAdmissao_CaminhoFeliz_RetornoOk() { Funcionario f = funcionarios[0]; TimeSpan d = DateTime.Today - f.dataAdmissao; int anos = (int)(DateTime.Today.Subtract(f.dataAdmissao).Days / 365.2425); if (anos > 8) { Assert.Equal(5, RegraNegocio.GetPesoPorTempoDeAdmissao(f)); } if (anos > 3) { Assert.Equal(3, RegraNegocio.GetPesoPorTempoDeAdmissao(f)); } if (anos > 1) { Assert.Equal(2, RegraNegocio.GetPesoPorTempoDeAdmissao(f)); } Assert.Equal(1, RegraNegocio.GetPesoPorTempoDeAdmissao(f)); }
public void DoubleEmReal_CaminhoFeliz_RetornoOk() { double valor = 100000.01d; Assert.Equal("R$ 100.000,01", RegraNegocio.DoubleEmReal(valor)); }
public ActionResult Amigos(string nome) { List <Pessoa> lista = new RegraNegocio().Amigos(""); return(View(lista)); }
// GET: BirthDay public ActionResult BirthDay() { List <Pessoa> lista = new RegraNegocio().BirthDay(""); return(View(lista)); }
// GET: Pessoa public ActionResult Index(string nome) { List <Pessoa> lista = new RegraNegocio().Aniversariantes(""); return(View(lista)); }
public ValorDisponibilizado(string valorDisponibilizadoReais) { this.valorDisponibilizadoReais = valorDisponibilizadoReais ?? throw new ArgumentNullException(nameof(valorDisponibilizadoReais)); this.valorDisponibilizado = RegraNegocio.RealEmDouble(valorDisponibilizadoReais); }
public ListaAmigos Get(Int64 id) { #region clases/variaveis /// <summary> /// Variaveis e classes utilizadas /// </summary> string msg; Crypt vlToken = new Crypt(); Dictionary <double, Amigos> lisFriendOrder = new Dictionary <double, Amigos>(); BaseDados dbData = new BaseDados(); RegraNegocio rn = new RegraNegocio(); Amigos friendTime = null; Amigos friend = null; #endregion #region retornoGet /// <summary> ///Identifica e guarda o amigo que esta fazendo a solicitação /// </summary> try { friendTime = dbData.Busca(id); } catch { // Registrar uma linha de erro no log caso falhe o acesso pelo Token. msg = string.Empty; msg = "Token invalid: " + id; Log(msg, "CalculoHistoricoLog"); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } /// <summary> /// Essa rotina ira calcular a distancia de todos amigos diferente do amigo que solicitou a busca /// </summary> int tot = dbData.totalDados(); int i = 1; while (i <= tot) { try { friend = dbData.Busca2(i); } catch { msg = string.Empty; msg = "Error at find a friend"; Log(msg, "CalculoHistoricoLog"); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } if (friend.Token != vlToken.EncDec(id.ToString(), true).ToString()) { double distancia = rn.DistanciaAmigos(friendTime.latitude, friendTime.longitude, friend.latitude, friend.longitude); lisFriendOrder.Add(distancia, friend); msg = string.Empty; msg = "Calculo de distancia entro o " + friendTime.Name + " com o " + friend.Name + ", total of : " + distancia.ToString() + " KM"; Log(msg, "CalculoHistoricoLog"); } i++; } /// <summary> /// Lista que retona apenas os 3 amigos mais proximos, baseado no calculo de distancia. /// </summary> int c = 1; ListaAmigos liFriend = new ListaAmigos(); liFriend.AfProximos = "Your next friends"; foreach (KeyValuePair <double, Amigos> liRemove in lisFriendOrder.OrderBy(key => key.Key)) { if (c > 3) { lisFriendOrder.Remove(liRemove.Key); } else { liFriend.Amigos.Add(liRemove.Value); } c++; } return(liFriend); #endregion }
public void GetSalarioMinimo_CaminhoFeliz_RetornaValor() { double valorAtualSalarioMinimo = 998.0; Assert.Equal(valorAtualSalarioMinimo, RegraNegocio.GetSalarioMinimo()); }
public void RealEmDouble_CaminhoFeliz_RetornoOk() { string real = "R$ 100.000,01"; Assert.Equal(RegraNegocio.RealEmDouble(real), (double)100000.01); }
public String Get() { return("Webservice desafio." + Environment.NewLine + " O valor Disponibilizado atualmente é de " + RegraNegocio.DoubleEmReal(ArmazenaValorDisponibilizado.valorDisponibilizado)); }