示例#1
0
        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);
            }
        }
示例#2
0
        public static DataTable CarregarPorParametros(String[] operadoraIds, Object status, DateTime de, DateTime ate)
        {
            String deptoCond = "", cadastradosJoin = "";

            if (Convert.ToString(status) != "6") //propostas ja cadastradas
            {
                deptoCond = " and conferencia_depto=" + Convert.ToString(status);
            }
            else
            {
                cadastradosJoin = " inner join contrato on contrato_operadoraId=conferencia_operadoraId and contrato_numero=conferencia_propostaNumero ";
                //deptoCond = " and conferencia_depto >= 5 ";
            }

            String qry = String.Concat(
                "select conferencia_id as ID, conferencia_titularNome as TitularNome, '' as TitularIdade, conferencia_titularDataNascimento, filial_nome as FilialNome, ",
                "       operadora_nome as OperadoraNome, estipulante_descricao as EstipulanteNome, conferencia_titularValor, conferencia_data as Data, conferencia_admissao as Admissao, ",
                "       case conferencia_depto ",
                "           when 1 then 'Com Corretor' ",
                "           when 3 then 'Em Conferência' ",
                "           when 4 then 'No Cadastro' ",
                "           when 5 then 'Em análise técnica' ",
                "           when 6 then 'Cadastrado' ",
                "       end as Status, ",
                "       conferencia_propostaNumero as ContratoNumero, ",
                "       conferencia_titularCpf as TitularCpf, ",
                "       (select sum(conferenciabeneficiario_valor) from conferenciaBeneficiario where conferenciabeneficiario_conferenciaid=conferencia_id) as Total, ",
                "       (select count(conferenciabeneficiario_id) from conferenciaBeneficiario where conferenciabeneficiario_conferenciaid=conferencia_id) as QtdVidas",
                "   from conferencia ",
                cadastradosJoin,
                "       inner join filial on filial_id          = conferencia_filialId",
                "       inner join operadora on operadora_id    = conferencia_operadoraId",
                "       inner join estipulante on estipulante_id= conferencia_estipulanteId",
                "   where ",
                "       conferencia_propostaData between '", de.ToString("yyyy-MM-dd"), "' and '", ate.ToString("yyyy-MM-dd 23:59:59:990"), "' ",
                "       and operadora_id in (", String.Join(",", operadoraIds), ")", deptoCond);
//              "       and conferencia_depto=", status);

            DataTable dt = LocatorHelper.Instance.ExecuteQuery(qry, "result").Tables[0];

            dt.Columns.Add("ValorFinal");

            foreach (DataRow row in dt.Rows)
            {
                if (row["conferencia_titularDataNascimento"] != null &&
                    row["conferencia_titularDataNascimento"] != DBNull.Value &&
                    EntityBase.ToDateTime(row["conferencia_titularDataNascimento"]) != DateTime.MinValue)
                {
                    row["QtdVidas"]     = Convert.ToInt32(row["QtdVidas"]) + 1; //acrescenta o titular
                    row["TitularIdade"] = Beneficiario.CalculaIdade(EntityBase.ToDateTime(row["conferencia_titularDataNascimento"]));
                }

                if (Convert.ToString(status) == "6")
                {
                    row["Status"] = "Cadastrado";
                }

                row["ValorFinal"] = EntityBase.CToDecimal(row["conferencia_titularValor"]) + EntityBase.CToDecimal(row["Total"]);
            }

            return(dt);
        }
示例#3
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);
        }
示例#4
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);
        }
示例#5
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);
        }