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); } }
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); }