Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
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);
        }