private void CriarMeta() { decimal valorMeta = _parametros.Meta; IUnidadeDeEntrega metaDeEntregas = _parametros.UnidadeDaMeta.CriarEntregas(valorMeta); _metaEmConstrucao = (IMetaConstruivel)_parametros.TipoDeMeta.Construir(metaDeEntregas, _parametros.PercentualBonus, _parametros.PercentualPenalizacao); }
internal override IMetaConstruivel Construir(IUnidadeDeEntrega valorDaMeta, decimal percentualBonus, decimal percentualPenalizacao) { if (!(valorDaMeta is Dinheiro)) { throw new ArgumentException("MetaDoTipoMonetarioMinimo so pode utilizar valores limites em forma de dinheiro"); } Dinheiro meta = (Dinheiro)valorDaMeta; return(new MetaMonetariaMaximaPorPercentualSobreOTodo(meta, percentualBonus, percentualPenalizacao)); }
internal override ILimiteDeRemuneracao Construir(IUnidadeDeEntrega valorLimite, bool podeAbaterFechadas = false) { if (!(valorLimite is Dinheiro)) { throw new ArgumentException("LimiteDoTipoMonetarioMinimo so pode utilizar valores limites em forma de dinheiro"); } Dinheiro limite = (Dinheiro)valorLimite; return(new LimiteMinimoPorValorMonetario(limite, podeAbaterFechadas)); }
internal abstract IMetaConstruivel Construir(IUnidadeDeEntrega valorDaMeta, decimal percentualBonus, decimal percentualPenalizacao);
internal abstract ILimiteDeRemuneracao Construir(IUnidadeDeEntrega valorLimite, bool podeAbaterFechadas = false);