Example #1
0
        public static Decimal CalculaValor(Object adicionalId, Object beneficiarioId, Int32 beneficiarioIdade, DateTime?dataReferencia, PersistenceManager pm)
        {
            Adicional adicional = new Adicional();

            adicional.ID = adicionalId;
            adicional.Carregar();

            if (adicional.ID == null)
            {
                return(-1);
            }

            IList <AdicionalFaixa> faixa = AdicionalFaixa.CarregarPorTabela(adicionalId, dataReferencia, pm);

            if (faixa != null && faixa.Count > 0)
            {
                if (beneficiarioIdade == -1)
                {
                    Beneficiario beneficiario = new Beneficiario();
                    beneficiario.ID = beneficiarioId;
                    if (pm == null)
                    {
                        beneficiario.Carregar();
                    }
                    else
                    {
                        pm.Load(beneficiario);
                    }
                    if (beneficiario.ID == null)
                    {
                        return(-1);
                    }
                    beneficiarioIdade = Beneficiario.CalculaIdade(beneficiario.DataNascimento);
                }

                foreach (AdicionalFaixa _item in faixa)
                {
                    if (beneficiarioIdade >= _item.IdadeInicio && _item.IdadeFim == 0)
                    {
                        return(_item.Valor);
                    }
                    else if (beneficiarioIdade >= _item.IdadeInicio && beneficiarioIdade <= _item.IdadeFim)
                    {
                        return(_item.Valor);
                    }
                }

                return(0);
            }
            else
            {
                return(0);
            }
        }
Example #2
0
        public static Decimal CalculaValor(Object beneficiarioId, int beneficiarioIdade, Object contratoAdmId, Object planoId, Contrato.eTipoAcomodacao tipoAcomodacao, PersistenceManager pm, DateTime admissaoProposta, DateTime?vencimentoCobranca, Boolean forcaTabelaVigente)
        {
            IList <TabelaValor> lista = TabelaValor.CarregarTabelaVigente(contratoAdmId, admissaoProposta, vencimentoCobranca, pm, forcaTabelaVigente); //TabelaValor.CarregarTabelaAtual(contratoAdmId, pm);

            if (lista == null || lista.Count == 0)
            {
                return(0);
            }

            IList <TabelaValorItem> itens = TabelaValorItem.CarregarPorTabela(lista[0].ID, planoId, pm);

            if (itens == null || itens.Count == 0)
            {
                return(0);
            }

            if (beneficiarioIdade == 0)
            {
                Beneficiario beneficiario = new Beneficiario();
                beneficiario.ID = beneficiarioId;

                if (beneficiario.ID != null)
                {
                    if (pm == null)
                    {
                        beneficiario.Carregar();
                    }
                    else
                    {
                        pm.Load(beneficiario);
                    }

                    if (beneficiario.ID == null)
                    {
                        return(0);
                    }

                    beneficiarioIdade = Beneficiario.CalculaIdade(beneficiario.DataNascimento);
                }
            }

            foreach (TabelaValorItem _item in itens)
            {
                if (beneficiarioIdade >= _item.IdadeInicio && _item.IdadeFim == 0)
                {
                    if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun)
                    {
                        return(_item.QCValor);
                    }
                    else
                    {
                        return(_item.QPValor);
                    }
                }
                else if (beneficiarioIdade >= _item.IdadeInicio && beneficiarioIdade <= _item.IdadeFim)
                {
                    if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun)
                    {
                        return(_item.QCValor);
                    }
                    else
                    {
                        return(_item.QPValor);
                    }
                }
            }

            return(0);
        }