示例#1
0
        public bool CheckBalance(double amount)
        {
            if (BankNotes.Sum(b => b) + BankCoins.Sum(b => b) < amount)
            {
                return(false);
            }

            return(true);
        }
示例#2
0
        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();
            }
        }
示例#3
0
        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");
            }
        }