public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var remuneracao = new RemuneracaoLimitada(); serializer.Populate(reader, remuneracao); return(remuneracao); }
private IRemuneracao AbaterRemuneracao(IRemuneracao rem, Dinheiro valorDoAbatimento, ILimiteDeRemuneracao limiteOriginario) { IExcedenteDeRemuneracao remuneracaoExcedente = new ExcedenteDeRemuneracao(rem, limiteOriginario, rem.ValorBruto, valorExcedenteAoLimiteDestaRemuneracao: valorDoAbatimento); IRemuneracao remuneracaoAposLimite = rem; if (rem is IRemuneracaoLimitada remuneracaoLimitada) { rem.ValorAjustado = new Dinheiro(rem.ValorBruto.Valor, rem.ValorBruto.Moeda); remuneracaoAposLimite = remuneracaoLimitada.AdicionarExcedente(remuneracaoExcedente); } else { remuneracaoLimitada = new RemuneracaoLimitada(remuneracaoAposLimite, valorBruto: remuneracaoAposLimite.ValorBruto); remuneracaoAposLimite = remuneracaoLimitada.AdicionarExcedente(remuneracaoExcedente); } return(remuneracaoAposLimite); }