public async Task <int> InserirSaldoFuncionarioAsync(EntregaDeSaldoFuncionario modelo) { EntregaDeSaldoFuncionarioBD entregaBSFuncionarioBD = ConversorEntregaBSFuncionario.ConverteDoDominio(modelo); using (var context = _fabricaDeContextos.CriaContextoDe <EntregaContext>(TipoDeConexao.Entrega)) { EntityEntry <EntregaDeSaldoFuncionarioBD> insertedObject = await context.EntregasSaldoFuncionario.AddAsync(entregaBSFuncionarioBD); await context.SaveChangesAsync(); return(insertedObject.Entity.Id); } }
public async Task <bool> AtualizarEntregasDosFuncionariosDaRegraInativada(IEnumerable <EntregaDeSaldoFuncionario> entregas) { var idEntregas = entregas.Select(x => x.Id).Distinct(); using (var context = _fabricaDeContextos.CriaContextoDe <EntregaContext>(TipoDeConexao.Entrega)) { foreach (var idEntrega in idEntregas) { EntregaDeSaldoFuncionarioBD entrega = await context.EntregasSaldoFuncionario.FindAsync(idEntrega); entrega.IdRegra = null; entrega.PercentualDeRemuneracao = 0; entrega.Valor = 0; entrega.ValorHora = 0; context.EntregasSaldoFuncionario.Update(entrega); } try { await context.SaveChangesAsync(); } catch (Exception ex) { return(false); } //IEnumerable<EntregaDeSaldoFuncionarioBD> entregasToUpdate = await context.EntregasSaldoFuncionario.Where(x=> idEntregas.Contains(x.Id)).ToArrayAsync(); //foreach (EntregaDeSaldoFuncionarioBD entrega in entregasToUpdate) //{ // entrega. //} //IEnumerable<EntregaDeSaldoFuncionario> retorno = entregas.Select(x => x.ConverteParaDominio()); return(true); } }
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); } }