示例#1
0
        internal static void SetaStatusDevolvidoParaContratoBeneficiario(ContratoBeneficiario.eStatus statusAtual, Object contratoId, Object beneficiarioId, PersistenceManager pm)
        {
            ContratoBeneficiario.eStatus novoStatus = ContratoBeneficiario.eStatus.Desconhecido;

            #region obtém próximo status

            switch (statusAtual)
            {
            case ContratoBeneficiario.eStatus.AlteracaoCadastroPendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.AlteracaoCadastroDevolvido;
                break;
            }

            case ContratoBeneficiario.eStatus.CancelamentoPendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.CancelamentoDevolvido;
                break;
            }

            case ContratoBeneficiario.eStatus.ExclusaoPendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.ExclusaoDevolvido;
                break;
            }

            case ContratoBeneficiario.eStatus.MudancaPlanoPendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.MudancaDePlanoDevolvido;
                break;
            }

            case ContratoBeneficiario.eStatus.PendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.Devolvido;
                break;
            }

            case ContratoBeneficiario.eStatus.SegundaViaCartaoPendenteNaOperadora:
            {
                novoStatus = ContratoBeneficiario.eStatus.SegundaViaCartaoDevolvido;
                break;
            }
            }
            #endregion

            if (novoStatus != ContratoBeneficiario.eStatus.Desconhecido)
            {
                ContratoBeneficiario.AlteraStatusBeneficiario(contratoId, beneficiarioId, novoStatus, pm);
                //ContratoStatusHistorico csh = new ContratoStatusHistorico();
                //csh.Data = DateTime.Now;
                //csh.OperadoraID = null;
                //csh.PropostaNumero = "";
                //csh.Status = ContratoStatusHistorico.eStatus.
            }
        }
示例#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);
        }