コード例 #1
0
        public List <AllowanceDetailViewModel> GetExpenseDetail(string expenseCate, DateTime orderD, string orderNo, int detailNo, int dispatchNo)
        {
            List <AllowanceDetailViewModel> expenseDetailList;
            List <AllowanceDetailViewModel> expenseDList     = null;
            List <AllowanceDetailViewModel> basicSettingList = null;
            //1. Load data from epenses details
            var expenseDetails = (from d in _allowanceDetailRepository.GetAllQueryable()
                                  where d.OrderD == orderD &&
                                  d.OrderNo == orderNo &&
                                  d.DetailNo == detailNo &&
                                  d.DispatchNo == dispatchNo
                                  select d).ToList();

            if (expenseDetails.Any())
            {
                expenseDetailList = Mapper.Map <List <Allowance_D>, List <AllowanceDetailViewModel> >(expenseDetails);
                var result = (from l in expenseDetailList
                              join e in _expenseRepository.GetAllQueryable() on l.AllowanceC equals e.ExpenseC into le
                              from e in le.DefaultIfEmpty()
                              select new AllowanceDetailViewModel()
                {
                    OrderD = l.OrderD,
                    OrderNo = l.OrderNo,
                    DetailNo = l.DetailNo,
                    DispatchNo = l.DispatchNo,
                    AllowanceNo = l.AllowanceNo,
                    AllowanceC = e.ExpenseC,
                    AllowanceN = e.ExpenseN,
                    Quantity = l.Quantity,
                    Unit = l.Unit,
                    UnitPrice = l.UnitPrice,
                    Amount = l.Amount,
                    Description = l.Description
                }).ToList();
                expenseDList = result;
                //return result;
            }

            //2. Load data from basic setting
            var isFirstTime = false;
            var bsExpenses  = _expenseService.GetExpensesFromBasicSetting(expenseCate, "-1", null, isFirstTime);

            if (bsExpenses != null)
            {
                basicSettingList = Mapper.Map <List <ExpenseViewModel>, List <AllowanceDetailViewModel> >(bsExpenses);
                //return Mapper.Map<List<ExpenseViewModel>, List<AllowanceDetailViewModel>>(bsExpenses);
            }

            return(MergeExpenseList(expenseDList, basicSettingList));
            //return null;

            ////if basic setting don't have any config, display empty
            ////3. Load data from master
            //var initExpenseDetail = _expenseService.GetExpenseByCategory(expenseCate, "-1");
            //expenseDetailList = Mapper.Map<List<ExpenseViewModel>, List<AllowanceDetailViewModel>>(initExpenseDetail);
            //return expenseDetailList;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public List <RouteExpenseViewModel> GetExpensesHistory(string expenseC, string categoryI, string departureC, string destinationC, string conSizeI, string conTypeC)
        {
            if (categoryI == Convert.ToInt32(ExpenseCategory.Expense).ToString())
            {
                var historyExpenses = from e in _expenseDetailRepository.GetAllQueryable()
                                      join d in _dispatchRepository.GetAllQueryable() on new { e.OrderD, e.OrderNo, e.DetailNo, e.DispatchNo } equals
                new { d.OrderD, d.OrderNo, d.DetailNo, d.DispatchNo } into ed
                from d in ed.DefaultIfEmpty()
                join c in _containerRepository.GetAllQueryable() on new { d.OrderD, d.OrderNo, d.DetailNo } equals
                new { c.OrderD, c.OrderNo, c.DetailNo } into edc
                from c in edc.DefaultIfEmpty()
                where e.ExpenseC == expenseC && c.ContainerSizeI == conSizeI && c.ContainerTypeC == conTypeC && d.DispatchStatus == Constants.CONFIRMED &&
                ((string.IsNullOrEmpty(d.Location1C) & !string.IsNullOrEmpty(d.Location2C) &
                  (d.Location2C == departureC ||
                   (!string.IsNullOrEmpty(d.Location3C) && d.Location3C == destinationC))) ||
                 (!string.IsNullOrEmpty(d.Location1C) & (d.Location1C == departureC ||
                                                         (!string.IsNullOrEmpty(d.Location3C) && d.Location3C == destinationC) ||
                                                         (string.IsNullOrEmpty(d.Location3C) && !string.IsNullOrEmpty(d.Location2C) && d.Location2C == destinationC))))
                select new RouteExpenseViewModel()
                {
                    UsedExpenseD = e.OrderD,
                    Quantity     = e.Quantity,
                    Unit         = e.Unit,
                    UnitPrice    = e.UnitPrice,
                    Amount       = e.Amount
                };

                if (historyExpenses.Any())
                {
                    historyExpenses = historyExpenses.OrderBy("UsedExpenseD descending");
                    var limitedHistoryExpenses = historyExpenses.Skip(0).Take(10).ToList();
                    return(limitedHistoryExpenses);
                }
            }
            else if (categoryI == Convert.ToInt32(ExpenseCategory.Allowance).ToString())
            {
                var historyAllowances = from e in _allowanceDetailRepository.GetAllQueryable()
                                        join d in _dispatchRepository.GetAllQueryable() on new { e.OrderD, e.OrderNo, e.DetailNo, e.DispatchNo } equals
                new { d.OrderD, d.OrderNo, d.DetailNo, d.DispatchNo } into ed
                from d in ed.DefaultIfEmpty()
                join c in _containerRepository.GetAllQueryable() on new { d.OrderD, d.OrderNo, d.DetailNo } equals
                new { c.OrderD, c.OrderNo, c.DetailNo } into edc
                from c in edc.DefaultIfEmpty()
                where e.AllowanceC == expenseC && c.ContainerSizeI == conSizeI && c.ContainerTypeC == conTypeC && d.DispatchStatus == Constants.CONFIRMED &&
                ((string.IsNullOrEmpty(d.Location1C) & !string.IsNullOrEmpty(d.Location2C) &
                  (d.Location2C == departureC ||
                   (!string.IsNullOrEmpty(d.Location3C) && d.Location3C == destinationC))) ||
                 (!string.IsNullOrEmpty(d.Location1C) & (d.Location1C == departureC ||
                                                         (!string.IsNullOrEmpty(d.Location3C) && d.Location3C == destinationC) ||
                                                         (string.IsNullOrEmpty(d.Location3C) && !string.IsNullOrEmpty(d.Location2C) && d.Location2C == destinationC))))
                select new RouteExpenseViewModel()
                {
                    UsedExpenseD = e.OrderD,
                    Quantity     = e.Quantity,
                    Unit         = e.Unit,
                    UnitPrice    = e.UnitPrice,
                    Amount       = e.Amount
                };

                if (historyAllowances.Any())
                {
                    historyAllowances = historyAllowances.OrderBy("UsedExpenseD descending");
                    var limitedhistoryAllowances = historyAllowances.Skip(0).Take(10).ToList();
                    return(limitedhistoryAllowances);
                }
            }

            return(null);
        }