private IEnumerable <BeneficiarioTabelaPreco> CalcularPrecoDaFamiliaPorContrato(long idContrato) { using (var contexto = new ComercialContext()) { var beneficiariosCalculados = new List <BeneficiarioTabelaPreco>(); var contrato = contexto.Contrato.FirstOrDefault(f => f.Id == idContrato); var produto = contexto.Produtos.FirstOrDefault(f => f.Id == contrato.ProdutosId); var familiasDoContrato = contexto.Familia.Where(p => p.ContratoId == idContrato); foreach (var familia in familiasDoContrato) { var beneficiariosDaFamilia = contexto.Beneficiarios.Where(p => p.FamiliaId == familia.Id); foreach (var beneficiario in beneficiariosDaFamilia) { var idade = CalculaIdade(beneficiario.DataNascimento); var tabelaPreco = contexto.TabelaDeValores.Where(p => p.ProdutosId == produto.Id && p.IdadeMaxima <= idade).OrderByDescending(o => o.IdadeMaxima).FirstOrDefault(); if (tabelaPreco.Valor != 0) { beneficiariosCalculados.Add(new BeneficiarioTabelaPreco(beneficiario, tabelaPreco)); } else { beneficiariosCalculados.Add(new BeneficiarioTabelaPreco(beneficiario, null)); } } } return(beneficiariosCalculados); } }
public IEnumerable <BeneficiarioTabelaPreco> CalcularPorFamiliaPorContrato(long idFamilia) { using (var contexto = new ComercialContext()) { var familia = contexto.Familia.FirstOrDefault(p => p.Id == idFamilia); return(CalcularPrecoDaFamiliaPorContrato(familia.ContratoId)); } }
public IEnumerable <FamiliaTabelaPreco> CalcularPorFamilia(long idFamilia) { using (var contexto = new ComercialContext()) { var familiasTabelaPreco = new List <FamiliaTabelaPreco>(); var familia = contexto.Familia.FirstOrDefault(p => p.Id == idFamilia); var familiaTabelaPreco = new FamiliaTabelaPreco(); familiaTabelaPreco.Familia = familia; familiaTabelaPreco.BeneficiarioTabelaPreco = CalcularPorFamiliaPorContrato(idFamilia); familiasTabelaPreco.Add(familiaTabelaPreco); return(familiasTabelaPreco); } }
public IEnumerable <FamiliaTabelaPreco> CalcularPorEmpresa(long idEmpresa) { using (var contexto = new ComercialContext()) { var familiasTabelaPreco = new List <FamiliaTabelaPreco>(); var familias = contexto.Familia.Where(p => p.EmpresaId == idEmpresa); foreach (var familia in familias) { var familiaTabelaPreco = new FamiliaTabelaPreco(); familiaTabelaPreco.Familia = familia; familiaTabelaPreco.BeneficiarioTabelaPreco = CalcularPorFamiliaPorContrato(familia.Id); familiasTabelaPreco.Add(familiaTabelaPreco); } return(familiasTabelaPreco); } }