Esempio n. 1
0
        public void Obtem_Tabelas_Validas_Em_Periodo_Valido()
        {
            //Arrange
            IServicoFaturamento servicoFaturamento = new ServicoFaturamentoComContexto(_context, _endpoint);
            PeriodoSimples      periodo            = new PeriodoSimples();

            //Act
            Task <IEnumerable <ITabelaDePreco <int> > > task = servicoFaturamento.ListaTabelasDePrecoAsync(periodo);

            //Assert
            Assert.DoesNotThrow(task.Wait);

            IEnumerable <ITabelaDePreco <int> > tabelas = task.Result;

            ITabelaDePreco <int> tabela        = tabelas.ElementAt(new Random().Next(0, tabelas.Count() - 1));
            DateTime             dataAleatoria = PegaDataAleatoria(periodo);
            int categoriaAleatoria             = 1;


            Assert.DoesNotThrow(() => tabela.PrecoEm(dataAleatoria, categoriaAleatoria));
        }
        public async Task <bool> AtualizarEntregasDosFuncionariosDaRegra(IEnumerable <EntregaDeSaldoFuncionario> entregas, ParametrosDeRegraDeRemuneracao paramRegra, IEnumerable <ITabelaDePreco <int> > tabelasDePreco)
        {
            var idEntregas              = entregas.Select(x => x.Id).Distinct();
            var tipoDaRegra             = TipoDeRegraBD.Get(paramRegra.Tipo.Id);
            RegraDeRemuneracaoBD regra  = tipoDaRegra.ConverterDe(paramRegra);
            var idTabelaDePreco         = paramRegra.ParametrosExtras.IdTabelaDePreco.Value;
            ITabelaDePreco <int> tabela = tabelasDePreco.Single(x => x.Id == idTabelaDePreco);


            using (var context = _fabricaDeContextos.CriaContextoDe <EntregaContext>(TipoDeConexao.Entrega))
            {
                foreach (var idEntrega in idEntregas)
                {
                    EntregaDeSaldoFuncionarioBD entrega = await context.EntregasSaldoFuncionario.FindAsync(idEntrega);

                    Dinheiro valorHora = tabela.PrecoEm(entrega.DataFaturamento, entrega.IdCategoria, Moeda.Real);
                    entrega.IdRegra = regra.Id;
                    entrega.PercentualDeRemuneracao = (int)regra.Percentual;
                    entrega.Valor     = (entrega.QtdMinutos / 60) * valorHora.Valor;
                    entrega.ValorHora = valorHora.Valor;

                    context.EntregasSaldoFuncionario.Update(entrega);
                }

                try
                {
                    await context.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    return(false);
                }

                return(true);
            }
        }
 public CalculadoraDePrecos(IServicoEntrega servicoEntrega, ITabelaDePreco tabela)
 {
     _servicoEntrega = servicoEntrega;
     _tabela         = tabela;
 }
 public CalculadoraDePrecos(ITabelaDePreco tabela, IServicoDeEntrega entrega)
 {
     this.tabela  = tabela;
     this.entrega = entrega;
 }
        public static IRegraDeRemuneracao ConstroiRegraPorHora(ParametrosDeRegraDeRemuneracao parametrosDeRegra, IFavorecimento favorecimento, ITabelaDePreco <int> tabelaDePreco)
        {
            Fixture             fixture            = new Fixture();
            IServicoFaturamento servicoFaturamento = ConfigurarServicoFaturamentoMock(tabelasDePreco: new[] { tabelaDePreco });
            IServicoRetaguarda  servicoRetaguarda  = ConfiguraRetaguardaMock(servicoFaturamento);

            IRegraDeRemuneracao regra = new ConstrutorDeRegraDeRemuneracaoPorHora(servicoRetaguarda)
                                        .ComFavorecimento(favorecimento)
                                        .ComParametros(parametrosDeRegra)
                                        .Construir();

            return(regra);
        }
Esempio n. 6
0
 public CalculadoraDePrecos(IServicoDeEntrega servicoDeEntrega, ITabelaDePreco tabelaDePreco)
 {
     this.servicoDeEntrega = servicoDeEntrega;
     this.tabelaDePreco    = tabelaDePreco;
 }
 public CalculadoraDePrecos(ITabelaDePreco tabela, IServicoDeEntrega entrega)
 {
     _tabela  = tabela;
     _entrega = entrega;
 }
Esempio n. 8
0
 public CalculadoraDePrecos(IServicoDeEntrega entrega, ITabelaDePreco tabela)
 {
     Entrega = entrega;
     Tabela  = tabela;
 }