public HealthPlanRevenueDetailsListModel CreateHealthPlanDetails(HealthPlanRevenue currrentRevenuePlan, IEnumerable <OrderedPair <long, decimal> > customerAndRevenuePairs, CorporateAccount corporateAccount, IEnumerable <HealthPlanRevenue> healthPlanRevenueList, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > packages, IEnumerable <OrderedPair <long, string> > tests, int maleCustomerCount, int femaleCustomerCount) { var model = new HealthPlanRevenueDetailsListModel(); decimal totalRevenue = 0; long totalCustomerCount = 0; if (customerAndRevenuePairs != null && customerAndRevenuePairs.Any()) { foreach (var item in customerAndRevenuePairs) { totalRevenue = totalRevenue + item.SecondValue; totalCustomerCount = totalCustomerCount + item.FirstValue; } } var objHealthPlanRevenue = new HealthPlanRevenueDetailsModel { HealthPlanName = corporateAccount.Name, HealthPlanId = corporateAccount.Id, PricingType = ((HealthPlanRevenueType)currrentRevenuePlan.RevenueItemTypeId).GetDescription(), TotalRevenue = totalRevenue, TotalCustomerCount = totalCustomerCount, CustomerMaleCount = maleCustomerCount, CustomerFemaleCount = femaleCustomerCount }; model.HealthPlanRevenueDetails = objHealthPlanRevenue; model.PricingConfigurationModel = BindPricingConfiguration(healthPlanRevenueList, healthPlanRevenueItems, packages, tests); return(model); }
public void GetReveneuePairByCustomer(HealthPlanRevenue revenue, HealthPlanRevenueItem revenueItem, List <OrderedPair <long, decimal> > list) { var customerCount = _eventCustomerRepository.GetEventCustomerCountForHealthPlanRevenueByCustomer(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1)); var price = revenueItem.Price; var revenueGenderated = (price * customerCount); list.Add(new OrderedPair <long, decimal>(customerCount, revenueGenderated)); }
public HealthPlanRevenue MapHealthPlanRevenueInfo(HealthPlanRevenueEditModel model, long createdById) { var retValue = new HealthPlanRevenue(); retValue.AccountId = model.HealthPlanId; retValue.DateFrom = model.DateFrom.Value; retValue.RevenueItemTypeId = model.RevenueItemTypeId; retValue.DataRecorderMetaData = new DataRecorderMetaData(createdById, DateTime.Now, null); return(retValue); }
public HealthPlanRevenue Save(HealthPlanRevenue domain) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var entity = Mapper.Map <HealthPlanRevenue, HealthPlanRevenueEntity>(domain); if (!adapter.SaveEntity(entity, true)) { throw new PersistenceFailureException("Could not save revenue"); } return(Mapper.Map <HealthPlanRevenueEntity, HealthPlanRevenue>(entity)); } }
private IEnumerable <OrderedPair <string, decimal> > GetPackageDetails(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > packages) { var packageList = new List <OrderedPair <string, decimal> >(); foreach (var item in healthPlanRevenueItems) { if (packages != null && packages.Any() && item.HealthPlanRevenueId == healthPlanRevenue.Id) { packageList.Add(new OrderedPair <string, decimal>(packages.First(x => x.FirstValue == item.PackageId).SecondValue, item.Price)); } } return(packageList); }
private IEnumerable <OrderedPair <string, decimal> > GetTestDetails(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems, IEnumerable <OrderedPair <long, string> > tests) { var testList = new List <OrderedPair <string, decimal> >(); foreach (var item in healthPlanRevenueItems) { if (tests != null && tests.Any() && item.HealthPlanRevenueId == healthPlanRevenue.Id) { testList.Add(new OrderedPair <string, decimal>(tests.First(x => x.FirstValue == item.TestId).SecondValue, item.Price)); } } return(testList); }
public void GetRevenuePairByPacakge(IEnumerable <HealthPlanRevenueItem> accountRevenueItems, HealthPlanRevenue revenue, List <OrderedPair <long, decimal> > list) { var packageRevenueItems = accountRevenueItems.Where(x => x.PackageId.HasValue); var pacakgeIds = packageRevenueItems.Select(x => x.PackageId.Value).Distinct(); var customerCountByPackage = _eventCustomerRepository.GetEventCustomerCountForHealthPlanRevenueByPackage(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), pacakgeIds); decimal revenueGeneatedbyPackage = 0; long customerCount = 0; foreach (var pacakgeId in pacakgeIds) { var customersAvailedPackagePair = customerCountByPackage.SingleOrDefault(x => x.FirstValue == pacakgeId); if (customersAvailedPackagePair != null) { var customersAvailedPackage = customersAvailedPackagePair.SecondValue; customerCount += customersAvailedPackage; var packagePrice = packageRevenueItems.First(x => x.PackageId.Value == pacakgeId).Price; revenueGeneatedbyPackage = revenueGeneatedbyPackage + (packagePrice * customersAvailedPackage); } } list.Add(new OrderedPair <long, decimal>(customerCount, revenueGeneatedbyPackage)); }
public void GetRevenuePairByTest(IEnumerable <HealthPlanRevenueItem> accountRevenueItems, HealthPlanRevenue revenue, List <OrderedPair <long, decimal> > list) { var testIdRevenueItems = accountRevenueItems.Where(x => x.TestId.HasValue); var testIds = testIdRevenueItems.Select(x => x.TestId.Value).Distinct(); var testAvailedTestPair = _eventCustomerRepository.GetTestAvailedForHealthPlanRevenueByTest(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), testIds); var customerCountByTest = _eventCustomerRepository.GetCustomerCountForHealthPlanRevenueByTest(revenue.AccountId, revenue.DateFrom, revenue.DateTo ?? DateTime.Today.AddDays(1), testIds); decimal revenueGeneatedbyTest = 0; foreach (var testId in testIds) { var customersAvailedTestPair = testAvailedTestPair.SingleOrDefault(x => x.FirstValue == testId); if (customersAvailedTestPair != null) { var customersAvailedTest = customersAvailedTestPair.SecondValue; var testPrice = testIdRevenueItems.First(x => x.TestId.Value == testId).Price; revenueGeneatedbyTest = revenueGeneatedbyTest + (testPrice * customersAvailedTest); } } list.Add(new OrderedPair <long, decimal>(customerCountByTest, revenueGeneatedbyTest)); }
public HealthPlanRevenueEditModel Create(HealthPlanRevenue healthPlanRevenue, IEnumerable <HealthPlanRevenueItem> healthPlanRevenueItems) { var model = new HealthPlanRevenueEditModel(); throw new System.NotImplementedException(); }