public bool CheckBalance(double amount) { if (BankNotes.Sum(b => b) + BankCoins.Sum(b => b) < amount) { return(false); } return(true); }
public PaymentResponse(List <int> notes = null, List <int> coins = null) { var sb = new StringBuilder(); if (notes != null && notes.Count > 0) { /* * 100 * 50 * 20 * 10 */ BankNotes.Add(new BankNoteResponse(100, notes[0])); BankNotes.Add(new BankNoteResponse(50, notes[1])); BankNotes.Add(new BankNoteResponse(20, notes[2])); BankNotes.Add(new BankNoteResponse(10, notes[3])); foreach (var item in BankNotes.Where(b => b.Quantity > 0)) { sb.AppendLine($"Entregar {item.Quantity} nota de R$ {item.Value},00"); } } if (coins != null && coins.Count > 0) { /* * 50 * 10 * 05 * 01 */ BankCoins.Add(new BankCoinsResponse(50, coins[0])); BankCoins.Add(new BankCoinsResponse(10, coins[1])); BankCoins.Add(new BankCoinsResponse(05, coins[2])); BankCoins.Add(new BankCoinsResponse(01, coins[3])); foreach (var item in BankCoins.Where(b => b.Quantity > 0)) { sb.AppendLine($"Entregar {item.Quantity} moeda de R$ {(item.Value * 0.01).ToString("N2").Replace(".", ",")}"); } } if (sb.Length > 0) { Mensagem = sb.ToString(); } }
public void InitiatePdv(List <int> notes = null, List <int> coins = null) { if (notes != null && notes.Any()) { BankNotes = notes; } else { BankNotes = new List <int> { 100, 50, 20, 10 }; } if (coins != null && coins.Any()) { BankCoins = coins; } else { BankCoins = new List <int> { 50, 10, 05, 01 }; } if (Validate().IsValid) { BankNotes = BankNotes.OrderByDescending(b => b).ToList(); BankCoins = BankCoins.OrderByDescending(b => b).ToList(); IsValid = true; IsOpen = true; } else { throw new PdvIniatializationError("Erro ao inicializar o Pdv"); } }