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.
            }
        }
        /// <summary>
        /// Ao desfazer o envio de um lote da operadora, o beneficiário precisa reassumir seu status de pendência no sistema.
        /// Este método calcula esse status com base no status assumido quando enviado à operadora.
        /// </summary>
        internal static ContratoBeneficiario.eStatus StatusAntesDeDesfazerEnvio(ContratoBeneficiario.eStatus statusAtual)
        {
            switch (statusAtual)
            {
            case ContratoBeneficiario.eStatus.PendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.Novo);
            }

            case ContratoBeneficiario.eStatus.AlteracaoCadastroPendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.AlteracaoCadastroPendente);
            }

            case ContratoBeneficiario.eStatus.ExclusaoPendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.ExclusaoPendente);
            }

            case ContratoBeneficiario.eStatus.SegundaViaCartaoPendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.SegundaViaCartaoPendente);
            }

            case ContratoBeneficiario.eStatus.MudancaPlanoPendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.MudancaPlanoPendente);
            }

            case ContratoBeneficiario.eStatus.CancelamentoPendenteNaOperadora:
            {
                return(ContratoBeneficiario.eStatus.CancelamentoPendente);
            }
            }

            return(ContratoBeneficiario.eStatus.Desconhecido);
        }