public static Decimal CalculaValorNET(Object contratoId, Object contratoAdmId, Object planoId, Object beneficiarioId, Int32 contratoTipoAcomodacao, DateTime?admissao, DateTime beneficiarioDataNascimento, DateTime?vencimento, DateTime?dataReferencia, out Int32 beneficiarioIdade, PersistenceManager pm) { Contrato.eTipoAcomodacao tipoAcomodacao = (Contrato.eTipoAcomodacao)contratoTipoAcomodacao; IList <TabelaValor> lista = null; beneficiarioIdade = -1; if (admissao == null || vencimento == null) { lista = TabelaValor.CarregarTabelaAtual(contratoAdmId, pm); } else { lista = TabelaValor.CarregarTabelaVigente(contratoAdmId, admissao.Value, vencimento.Value, 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 (dataReferencia == null) { beneficiarioIdade = Beneficiario.CalculaIdade(beneficiarioDataNascimento); } else { beneficiarioIdade = Beneficiario.CalculaIdade(beneficiarioDataNascimento, dataReferencia.Value); } Decimal valorTotal = 0; foreach (TabelaValorItem _item in itens) { if (beneficiarioIdade >= _item.IdadeInicio && _item.IdadeFim == 0) { if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun) { valorTotal += _item.QCValorPagamento; } else { valorTotal += _item.QPValorPagamento; } break; } else if (beneficiarioIdade >= _item.IdadeInicio && beneficiarioIdade <= _item.IdadeFim) { if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun) { valorTotal += _item.QCValorPagamento; } else { valorTotal += _item.QPValorPagamento; } break; } } return(valorTotal); }
public static Decimal CalculaValorNET(Contrato contrato, PersistenceManager pm, DateTime?admissao, DateTime?vencimento, DateTime?dataReferencia) { Contrato.eTipoAcomodacao tipoAcomodacao = (Contrato.eTipoAcomodacao)contrato.TipoAcomodacao; IList <TabelaValor> lista = null; if (admissao == null || vencimento == null) { lista = TabelaValor.CarregarTabelaAtual(contrato.ContratoADMID, pm); } else { lista = TabelaValor.CarregarTabelaVigente(contrato.ContratoADMID, admissao.Value, vencimento.Value, pm); } if (lista == null || lista.Count == 0) { return(0); } IList <TabelaValorItem> itens = TabelaValorItem.CarregarPorTabela(lista[0].ID, contrato.PlanoID, pm); if (itens == null || itens.Count == 0) { return(0); } IList <ContratoBeneficiario> beneficiarios = ContratoBeneficiario.CarregarPorContratoID_Parcial(contrato.ID, true, false, pm); int beneficiarioIdade = 0; Decimal valorTotal = 0; foreach (ContratoBeneficiario beneficiario in beneficiarios) { if (beneficiario.ID == null) { return(0); } if (dataReferencia == null) { beneficiarioIdade = Beneficiario.CalculaIdade(beneficiario.BeneficiarioDataNascimento); } else { beneficiarioIdade = Beneficiario.CalculaIdade(beneficiario.BeneficiarioDataNascimento, dataReferencia.Value); } foreach (TabelaValorItem _item in itens) { if (beneficiarioIdade >= _item.IdadeInicio && _item.IdadeFim == 0) { if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun) { valorTotal += _item.QCValorPagamento; } else { valorTotal += _item.QPValorPagamento; } break; } else if (beneficiarioIdade >= _item.IdadeInicio && beneficiarioIdade <= _item.IdadeFim) { if (tipoAcomodacao == Contrato.eTipoAcomodacao.quartoComun) { valorTotal += _item.QCValorPagamento; } else { valorTotal += _item.QPValorPagamento; } break; } } } beneficiarios = null; return(valorTotal); }
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); }