public async Task RegisterAsync(PointOfSale pointOfSale, ChangeComposition composition) { using var context = new PointOfSaleContext(_configuration); await context.Transactions.AddAsync(new Transactions { ValueToPay = pointOfSale.ValueToPay, TotalValue = pointOfSale.TotalValue, Change = composition.TotalChange, ChangeMessage = composition.ResponseMessage }); await context.SaveChangesAsync(); }
private void SetChange(decimal change, ChangeComposition changeComposition, List <Money> moneyOnAccount, List <Money> moneyToReceive) { for (int i = 0; i < moneyOnAccount.Count && changeComposition.TotalChange < change; i++) { var amount = moneyOnAccount.ElementAt(i); var value = amount.Value; if (value <= Math.Round(change - changeComposition.TotalChange, 2, MidpointRounding.ToZero)) { moneyToReceive.Add(amount); changeComposition.AddTotalChange(value); i--; } } }
private ChangeComposition CalculeChange(decimal change, ChangeComposition changeComposition) { SetChange(change, changeComposition, Bills, changeComposition.Bills); SetChange(change, changeComposition, Coins, changeComposition.Coins); return(changeComposition); }