Example #1
0
        private void CalcularTroco()
        {
            var montanteBuilder = new MontanteBuilder();

            var troco = Pagamento.ValorEfetivamentePago - Pagamento.ValorTotal;

            var handlers = RegistrarTrocoHandlers();

            handlers.HandleTroco(troco, montanteBuilder);

            Montante = montanteBuilder.ObterMontante();
        }
Example #2
0
        public void HandleTroco(decimal troco, MontanteBuilder montanteBuilder)
        {
            if (troco >= _faixaInicial.Valor && troco < _faixaFinal.Valor)
            {
                while (troco > _faixaInicial.Valor - 0.01M)
                {
                    montanteBuilder.Adicionar(_faixaInicial);
                    troco -= _faixaInicial.Valor;
                }
            }

            if (_proximoHandler != null)
            {
                _proximoHandler.HandleTroco(troco, montanteBuilder);
            }
        }