Example #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var remuneracao = new RemuneracaoLimitada();

            serializer.Populate(reader, remuneracao);

            return(remuneracao);
        }
Example #2
0
        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);
        }