private Expression <Func <ExpenseLineConfirmHistory, bool> > Expp(ExpenseInput queryModel)
        {
            Expression <Func <ExpenseLineConfirmHistory, bool> > expression = s => s.Status == 0;

            if (!string.IsNullOrEmpty(queryModel.Period))
            {
                expression = expression.And(s => s.Period == queryModel.Period);
            }

            if (!string.IsNullOrEmpty(queryModel.POCode))
            {
                expression = expression.And(s => s.ExpenseCode == queryModel.POCode);
            }

            if (!string.IsNullOrEmpty(queryModel.ProjectName))
            {
                expression = expression.And(s => s.ProjectName.Contains(queryModel.ProjectName));
            }

            if (!string.IsNullOrEmpty(queryModel.DepartNamePath))
            {
                expression = expression.And(s => s.DepartNamePath.Contains(queryModel.DepartNamePath));
            }
            return(expression);
        }
        public override PagedResultDto <ExpenseOut> GetHistoryDatas(ExpenseInput queryModel)
        {
            var expression = Expp(queryModel);
            var data       = _historyRepository.PageList(expression, queryModel.CurrentPage,
                                                         queryModel.PageSize
                                                         , new Tuple <Expression <Func <FixedAssetsDepreciationHistory, object> >, SortOrder>(s => s.FixedAssetsCode, SortOrder.Descending)
                                                         , new Tuple <Expression <Func <FixedAssetsDepreciationHistory, object> >, SortOrder>(s => s.LineNum, SortOrder.Ascending));

            var models = new List <ExpenseOut>();
            var dic    = EnumHelper.GetValueAndDesc <CommonEnum.EnumCostAccountSplitStep>();

            foreach (var item in data.Items)
            {
                models.Add(new ExpenseOut()
                {
                    ExpenseCode    = item.FixedAssetsCode,
                    ExpenseLineNum = item.LineNum,
                    Period         = item.Period,
                    DepartNamePath = item.DepartNamePath,
                    Amount         = item.Amount,
                    CompanyName    = item.CompanyName,
                    StepName       = dic[(int)CommonEnum.EnumCostAccountSplitStep.History],
                });
            }
            return(new PagedResultDto <ExpenseOut>(data.Total, models));;
        }
Пример #3
0
        private static Expression <Func <ExpenseAccount, bool> > Expression(ExpenseInput queryModel)
        {
            Expression <Func <ExpenseAccount, bool> > expression = s => s.Status == 0 && s.ExpenseType == queryModel.ExpenseType;

            if (!string.IsNullOrEmpty(queryModel.Period))
            {
                expression = expression.And(s => s.Period == queryModel.Period);
            }

            if (!string.IsNullOrEmpty(queryModel.POCode))
            {
                expression = expression.And(s => s.ExpenseCode == queryModel.POCode);
            }

            if (!string.IsNullOrEmpty(queryModel.ProjectName))
            {
                expression = expression.And(s => s.ProjectName.Contains(queryModel.ProjectName));
            }

            if (!string.IsNullOrEmpty(queryModel.DepartNamePath))
            {
                expression = expression.And(s => s.DepartNamePath.Contains(queryModel.DepartNamePath));
            }
            if (queryModel.Step != 0)
            {
                expression = expression.And(s => s.Step == queryModel.Step);
            }
            return(expression);
        }
Пример #4
0
        /// <summary>
        /// 获取 汇总钱数和
        /// </summary>
        /// <param name="queryModel"></param>
        /// <returns></returns>
        public dynamic GetSummary(ExpenseInput queryModel)
        {
            var expression = Expression(queryModel);
            var tem        = _expenseAccountRepository.Where(expression).GroupBy(s => s.Step)
                             .Select(s => new { step = s.Key, summary = s.Sum(t => t.Amount) }).ToList();

            return(tem);
        }
Пример #5
0
        /// <summary>
        /// 更新差旅费用
        /// </summary>
        /// <param name="input"></param>
        public void UpdateExpense(ExpenseInput input)
        {
            var bill = _workOrderManager.Get(input.BillId);

            bill.TrafficUrban = input.TrafficUrban;
            bill.TrafficLong  = input.TrafficLong;
            bill.Supply       = input.Supply;
            bill.OtherEx      = input.OtherEx;
            bill.HotelEx      = input.HotelEx;
        }
        public override PagedResultDto <ExpenseOut> GetHistoryDatas(ExpenseInput queryModel)
        {
            var expression = Expp(queryModel);
            var data       = _expenseHistoryRepository.PageList(expression, queryModel.CurrentPage,
                                                                queryModel.PageSize
                                                                , new Tuple <Expression <Func <ExpenseLineConfirmHistory, object> >, SortOrder>(s => s.ExpenseCode, SortOrder.Descending)
                                                                , new Tuple <Expression <Func <ExpenseLineConfirmHistory, object> >, SortOrder>(s => s.ExpenseLineNum, SortOrder.Ascending));
            var models = _mapper.Map <List <ExpenseOut> >(data.Items);
            var dic    = EnumHelper.GetValueAndDesc <CommonEnum.EnumCostAccountSplitStep>();

            models.ForEach(s =>
            {
                s.Step     = s.Step == 0 ? -1 : s.Step;
                s.StepName = dic[s.Step];
            });
            return(new PagedResultDto <ExpenseOut>(data.Total, models));
        }
        private Expression <Func <FixedAssetsDepreciationHistory, bool> > Expp(ExpenseInput queryModel)
        {
            Expression <Func <FixedAssetsDepreciationHistory, bool> > expression = s => s.Status == 0;

            if (!string.IsNullOrEmpty(queryModel.Period))
            {
                expression = expression.And(s => s.Period == queryModel.Period);
            }

            if (!string.IsNullOrEmpty(queryModel.POCode))
            {
                expression = expression.And(s => s.FixedAssetsCode == queryModel.POCode);
            }

            if (!string.IsNullOrEmpty(queryModel.DepartNamePath))
            {
                expression = expression.And(s => s.DepartNamePath.Contains(queryModel.DepartNamePath));
            }
            return(expression);
        }
Пример #8
0
        /// <summary>
        /// 获取核算 列表信息
        /// </summary>
        /// <param name="queryModel"></param>
        /// <returns></returns>
        public PagedResultDto <ExpenseOut> GetListDatas(ExpenseInput queryModel)
        {
            if (queryModel.Step == (int)CommonEnum.EnumCostAccountSplitStep.History)
            {
                //根据不同的费用类型,进行适配转换
                ITarget adapter  = new Adapter.Adapter(_crmDbContext, _mapper, queryModel.ExpenseType, queryModel.Period);
                var     entities = adapter.GetHistoryData(queryModel);
                return(entities);
            }

            var expression = Expression(queryModel);
            var data       = _expenseAccountRepository.PageList(expression, queryModel.CurrentPage,
                                                                queryModel.PageSize
                                                                , new Tuple <Expression <Func <ExpenseAccount, object> >, SortOrder>(s => s.ExpenseCode, SortOrder.Descending)
                                                                , new Tuple <Expression <Func <ExpenseAccount, object> >, SortOrder>(s => s.ExpenseLineNum, SortOrder.Ascending));
            var models = _mapper.Map <List <ExpenseOut> >(data.Items);
            var dic    = EnumHelper.GetValueAndDesc <CommonEnum.EnumCostAccountSplitStep>();

            models.ForEach(s => s.StepName = dic[s.Step]);
            return(new PagedResultDto <ExpenseOut>(data.Total, models));
        }
Пример #9
0
        public PagedResultDto <ExpenseOut> GetHistoryData(ExpenseInput input)
        {
            TransExpenseAccountAbstractFactory factory;

            switch (_expenseType)
            {
            //报销借款
            case (int)CommonEnum.EnumExpenseType.ReimbursementAndBorrowing:
                factory = new ReimbursementAndBorrowingFactory(_crmDbContext, _mapper, _period, _expenseCode);
                break;

            //固资折旧
            case (int)CommonEnum.EnumExpenseType.FixedAssetsDepreciation:
                factory = new FixedAssetsDepreciationFactory(_crmDbContext, _mapper, _period, _expenseCode);
                break;

            default: return(new PagedResultDto <ExpenseOut>());
            }

            var models = factory.GetHistoryDatas(input);

            return(models);
        }
 /// <summary>
 /// 获取 历史表 分页数据
 /// </summary>
 /// <param name="expenseInput"></param>
 /// <returns></returns>
 public abstract PagedResultDto <ExpenseOut> GetHistoryDatas(ExpenseInput expenseInput);
Пример #11
0
        public JsonResult GetSummary(ExpenseInput queryModel)
        {
            var model = _expenseService.GetSummary(queryModel);

            return(Json(model));
        }
Пример #12
0
        public JsonResult GetListDatas(ExpenseInput queryModel)
        {
            var model = _expenseService.GetListDatas(queryModel);

            return(Json(new JsonFlagPage(queryModel.Draw, model.TotalCount, model.Items)));
        }