public SuggestedExpenseList GetSuggestedExpensesFromHistory(List <SuggestedRoute> suggestedRoutes) { var suggestedExpenses = new SuggestedExpenseList(); suggestedExpenses.ExpenseList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.AllowanceList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.FixedExpenseList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.OtherExpenseList = new List <CustomerPricingDetailViewModel>(); var expenseCate = Convert.ToInt32(ExpenseCategory.Expense).ToString(); var allowanceCate = Convert.ToInt32(ExpenseCategory.Allowance).ToString(); var expenseRoot = Convert.ToInt32(ExpenseRoot.History).ToString(); foreach (var suggestedRoute in suggestedRoutes) { var history = suggestedRoute; #region Get expense history var exCate = expenseCate; var historyExpenses = (from p in _expenseDetailRepository.GetAllQueryable() join e in _expenseRepository.GetAllQueryable() on p.ExpenseC equals e.ExpenseC into pe from e in pe.DefaultIfEmpty() where p.OrderD == history.OrderD & p.OrderNo == history.OrderNo & p.DetailNo == history.DetailNo & p.DispatchNo == history.DispatchNo & p.IsIncluded == "1" & p.IsRequested == "0" select new CustomerPricingDetailViewModel() { CategoryI = exCate, ExpenseC = p.ExpenseC, ExpenseN = e.ExpenseN, Unit = p.Unit, UnitPrice = p.UnitPrice, Quantity = p.Quantity, Amount = p.Amount, OrderD = p.OrderD, OrderNo = p.OrderNo, DetailNo = p.DetailNo, DispatchNo = p.DispatchNo, ExpenseRoot = expenseRoot }).ToList(); if (historyExpenses.Any()) { suggestedExpenses.ExpenseList.AddRange(historyExpenses); } #endregion #region Get allowance history var allCate = allowanceCate; var historyAllowances = (from p in _allowanceDetailRepository.GetAllQueryable() join e in _expenseRepository.GetAllQueryable() on p.AllowanceC equals e.ExpenseC into pe from e in pe.DefaultIfEmpty() where p.OrderD == history.OrderD & p.OrderNo == history.OrderNo & p.DetailNo == history.DetailNo & p.DispatchNo == history.DispatchNo select new CustomerPricingDetailViewModel() { CategoryI = allCate, ExpenseC = p.AllowanceC, ExpenseN = e.ExpenseN, Unit = p.Unit, UnitPrice = p.UnitPrice, Quantity = p.Quantity, Amount = p.Amount, OrderD = p.OrderD, OrderNo = p.OrderNo, DetailNo = p.DetailNo, DispatchNo = p.DispatchNo, ExpenseRoot = expenseRoot }).ToList(); if (historyAllowances.Any()) { suggestedExpenses.AllowanceList.AddRange(historyAllowances); } #endregion } return(suggestedExpenses); }
public SuggestedExpenseList GetSuggestedExpensesFromRoute(List <SuggestedRoute> suggestedRoutes) { var suggestedExpenses = new SuggestedExpenseList(); suggestedExpenses.ExpenseList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.AllowanceList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.FixedExpenseList = new List <CustomerPricingDetailViewModel>(); suggestedExpenses.OtherExpenseList = new List <CustomerPricingDetailViewModel>(); foreach (var suggestedRoute in suggestedRoutes) { var route = suggestedRoute; var expenseRoot = Convert.ToInt32(ExpenseRoot.Route).ToString(); #region Get route expense list var expenseCate = Convert.ToInt32(ExpenseCategory.Expense).ToString(); var expenses = _routeDetailRepository.Query( p => p.RouteId == route.RouteId & p.CategoryI == expenseCate & p.IsUsed).ToList(); if (expenses.Any()) { var expensesDestination = Mapper.Map <List <Route_D>, List <CustomerPricingDetailViewModel> >(expenses); expensesDestination.ForEach(s => s.ExpenseRoot = expenseRoot); suggestedExpenses.ExpenseList.AddRange(expensesDestination); } #endregion #region Get route allowance list var allowanceCate = Convert.ToInt32(ExpenseCategory.Allowance).ToString(); var allowances = _routeDetailRepository.Query( p => p.RouteId == route.RouteId & p.CategoryI == allowanceCate & p.IsUsed).ToList(); if (allowances.Any()) { var allowancesDestination = Mapper.Map <List <Route_D>, List <CustomerPricingDetailViewModel> >(allowances); allowancesDestination.ForEach(s => s.ExpenseRoot = expenseRoot); suggestedExpenses.AllowanceList.AddRange(allowancesDestination); } #endregion #region Get fixed expense list var fixedCate = Convert.ToInt32(ExpenseCategory.Fix).ToString(); var fixedExpenses = _routeDetailRepository.Query( p => p.RouteId == route.RouteId & p.CategoryI == fixedCate & p.IsUsed).ToList(); if (fixedExpenses.Any()) { var fixedExpensesDestination = Mapper.Map <List <Route_D>, List <CustomerPricingDetailViewModel> >(fixedExpenses); fixedExpensesDestination.ForEach(s => s.ExpenseRoot = expenseRoot); suggestedExpenses.FixedExpenseList.AddRange(fixedExpensesDestination); } #endregion #region Get other expense list var otherCate = Convert.ToInt32(ExpenseCategory.Other).ToString(); var otherExpenses = _routeDetailRepository.Query( p => p.RouteId == route.RouteId & p.CategoryI == otherCate & p.IsUsed).ToList(); if (otherExpenses.Any()) { var otherExpensesDestination = Mapper.Map <List <Route_D>, List <CustomerPricingDetailViewModel> >(otherExpenses); otherExpensesDestination.ForEach(s => s.ExpenseRoot = expenseRoot); suggestedExpenses.OtherExpenseList.AddRange(otherExpensesDestination); } #endregion } return(suggestedExpenses); }