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); } }
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); }
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); }