private void CalcularTroco() { var montanteBuilder = new MontanteBuilder(); var troco = Pagamento.ValorEfetivamentePago - Pagamento.ValorTotal; var handlers = RegistrarTrocoHandlers(); handlers.HandleTroco(troco, montanteBuilder); Montante = montanteBuilder.ObterMontante(); }
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); } }